Buscar

Sistemas Operacionais-Apresentação

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
Sistemas Operacionais
*
*
*
Plano de Curso
Conceitos Iniciais
Processos
Gerencia de Memória
Sistemas de Arquivos
Gerencia de E/S
Deadlocks
S.O Modernos
*
*
*
Conceitos Iniciais
Computador
Hardware
Processador
Memória Principal
Dispositivos de Entrada/Saída
Software
Programas de Aplicação
Programas do Sistema
*
*
*
Sistema Operacional
*
*
*
Sistema Operacional
*
*
*
Visões sobre o S.O
Como máquina Estendida (“Top-down view”)
Arquitetura Básica
Máquina extremamente primitiva
Difícil programação
Dificuldade para acesso aos dispositivos de entrada/saída
Máquina Virtual
Mais simples de ser operável
Mais amigável
*
*
*
Máquina virtual: serviços
Execução de programas
carregamento do programa em memória
arquivos e dispositivos de E/S devem ser iniciados
outros recursos devem ser preparados
SO gerencia estas ações para o usuário
*
*
*
Máquina virtual: serviços
Acesso a dispositivos de E/S
cada dispositivo tem seu próprio conjunto de instruções ou sinais de controle
SO esconde estas ações e usuário só executa leituras e escritas
*
*
*
Máquina virtual: serviços
Acesso controlado a arquivos
usuário não se preocupa coma natureza do dispositivo de E/S (disco, fita, ...)
usuário não se preocupa com formato do arquivo no dispositivo
mecanismos de proteção em caso de múltiplos usuários
*
*
*
Máquina virtual: serviços
Acesso ao sistema
SO controla acesso ao sistema como um todo e a recursos específicos em particular
i.e., proteção contra acesso não autorizado
i.e., resolução de conflitos em caso de disputa
*
*
*
Máquina virtual: serviços
Detecção e correção de erros
erros de h/w: memória, dispositivos, ...
erros de s/w: estouro aritmético, acesso proibido a certas posições de memória
correção da situação com mínimo de impacto no sistema
*
*
*
Visões sobre o S.O
Como gerenciador de Recursos (“Botton-up view”)
Gerencia todas as partes do sistema
Coordena a alocação controlada e ordenada dos recursos
Implementa proteção
*
*
*
SO: gerenciador de recursos
controlador de E/S
controlador de E/S
controlador de E/S
(núcleo
do)
SO
programas
e
dados
processador
processador
•••
•
•
•
Sistema computacional
Dispositivos de E/S
•
•
•
memória
*
*
*
Primeira Geração (1945-1955)
Máquina a válvula
Enormes
Mais lentas que os Pc´s atuais
Anos 40: não possuíam Sistemas Operacionais
Anos 50:Os programas em linguagem de máquina eram entrados em cartões perfurados.
*
*
*
Segunda Geração (1955-1965)
Transistores e Sistemas em Lote
O primeiro S.O. foi desenvolvido pela GM Laboratories no início da década de 50 para um IBM 701. Os sistemas operacionais da década de 50 eram do tipo lote (batch).
Programas eram perfurados em cartões
Cartões eram lidos e transcritos em fitas
Operadores levavam fita para processamento
Resultados eram escritos em fitas
Fitas eram levadas para saída de relatórios 
*
*
*
Terceira Geração (1965-1980)
Circuitos Integrados e Multiprogramação
Diferença no preço, tamanho e desempenho
Todo software deveria rodar em qualquer máquina
Os SOs da década de 60 também eram do tipo lote, mas passaram a utilizar melhor os recursos do computador rodando vários jobs de uma só vez
*
*
*
Terceira Geração (1965-1980)
Não é possível escrever um S.O. que atenda bem a todas as necessidades concomitantemente
Assim, o produto final foi:
S.O. enorme (milhares de linhas)
Complexo
Envolvimento de milhares de programadores
Milhares e milhares de erros
Novas versões => novos erros
*
*
*
Terceira Geração (1965-1980)
Grandes inovações foram introduzidas através das quais pode-se obter um paralelismo entre operações de E/S e a execução de instruções pela UCP
interrupções e canais autônomos de E/S
multiprogramação (vários jobs são mantidos na memória ao mesmo tempo)
*
*
*
Terceira Geração (1965-1980)
*
*
*
Terceira Geração (1965-1980)
Década 70: Surgimento de sistemas operacionais de tempo compartilhado (time-sharing) motivado necessidade de se aumentar a produtividade do programador. Neste tipo de sistema, o tempo da UCP é chaveada entre os processos ativos na máquina dando-se a cada um fatias de tempo do processador até que eles sejam completados
*
*
*
Terceira Geração (1965-1980)
Tempo compartilhado:
Usuários possuem um terminar “on-line”
Uso iterativo de computador + processamento em lote
“time slice”
Aparecimento dos Minicomputadores
Início da série PDP
PDP – 7 deu início ao UNICS => UNIX
PDP 11/45 => UNIX reescrito em C
*
*
*
Quarta Geração (1980 – 1990...)
Uso de microprocessadores (computadores pessoais)
Softwares => amigáveis
Dois sistemas operacionais que dominaram o mercado:
MS-DOS (microsoft)
Unix (Bell/AT&T)
*
*
*
Quarta Geração (1980 – 1990...)
O protocolo de comunicações TCP/IP tornou-se largamente utilizado (Depto de Defesa dos EUA) e as LANs tornaram-se mais práticas e econômicas com o surgimento do padrão Ethernet desenvolvido pela Xerox.
Década de 80: Desenvolvimento e popularização do modelo cliente/servidor
*
*
*
Quarta Geração (1980 – 1990...)
Difusão das redes de computadores
Internet
Década de 90: Entramos na era da computação distribuída: um processo será dividido em subprocessos que executarão em sistemas multiprocessados e em redes de computadores ou até mesmo em sistemas virtualmente paralelos
*
*
*
Quarta Geração (1980 – 1990...)
Sistemas Operacionais Distribuídos
Conjunto de módulos de, no mínimo, processador e memória interligados através de um subsistema de comunicação de topologia arbitrária.
Descentralização do controle
*
*
*
Quarta Geração (1980 – 1990...)
Um sistema operacional distribuído deve se apresentar aos usuários como um sistema operacional centralizado, mas que, na realidade, tem suas funções executadas por um conjunto de máquinas independentes. 
*
*
*
Quarta Geração (1980 – 1990...)
O ponto fundamental: conceito de transparência
Assim, o usuário utiliza um conjunto de máquinas como se fosse uma única máquina centralizada. 
*
*
*
Atualidades
Sistemas Operacionais Orientados a Objetos
Reuso
Interface orientada a objetos
JavaOS
Sistemas operacionais (proprietários – tentativa de portabilidade)
Sistemas Operacionais de Tempo Real
Inferno (gerenciamento do tempo)
RTLinux
Gerenciamento de processos industriais (aviões, caldeiras)
*
*
*
Revisão de Arquitetura
Funções básicas de um computador são:
Processamento de dados
Armazenamento de dados
Movimentação de dados
Controle
*
*
*
Estrutura: a UCP
Computador
ULA
Unidade
de
controle
Interconexão
interna à UCP
Registradores
UCP
E/S
Memória
Sistem.
Com.
UCP
*
*
*
Arquitetura
*
*
*
Ciclo de instrução
Início
Parada
Busca nova
instrução
Executa
Instrução
Ciclo de busca
Ciclo de execução
*
*
*
Ciclo de busca
PC contém o endereço da próxima instrução
Instrução é buscada e colocada no IR para ser interpretada
PC é incrementado
*
*
*
Ciclo de execução
UCP interpreta instrução e executa ação:
UCP  memória: transferência de dados
UCP  E/S: transferência de dados
processamento de dados: operação lógica ou aritmética
controle: alteração da seqüência de operação
combinação dessas ações
*
*
*
Organização da UCP
Funções da UCP:
buscar instruções
interpretar instruções
buscar dados
processar dados
UCP precisa fazer armazenamento temporário: registradores
*
*
*
Registradores
Espaço de trabalho temporário
Quantidade e função varia entre processadores
Uma das principais decisões de projeto
Nível superior da hierarquia de memória
Dispositivos de alta velocidade para armazenamento temporário de dados
*
*
*
Registradores
Uso específico
e de uso geral
contador de instruções (CI) ou program counter (PC)
registrador responsável pelo armazenamento do endereço da próxima instrução que a UCP deverá executar
apontador de pilha (AP) ou stack pointer (SP)
registrador que contém o endereço de memória do topo da pilha (estrutura de dados onde o sistema mantém informações sobre tarefas que estavam sendo processadas e tiveram de ser interrompidas por algum motivo)
 registrador de estado ou program status word (PSW)
registrador responsável por armazenar informações sobre a execução do programa, como a ocorrência de overflow
*
*
*
Clock
Circuito integrado que gera pulsos elétricos síncronos em um determinado intervalo de tempo (sinal de clock)
Freqüência do clock
quantidade de vezes que o sinal se repete em um segundo
unidade de medida: Hertz (Hz)
quanto maior a freqüência, mais instruções podem ser executadas pela UCP em um mesmo intervalo de tempo
quanto maior a freqüência do clock, melhor o desempenho do processador?
*
*
*
Conceito de interrupção
Mecanismo pelo qual outros módulos (e.g., E/S) interrompem processamento normal da UCP
Tipos mais comuns de interrupção:
programa (e.g., 0)
temporização (e.g., escalonamento)
E/S (e.g., fim de escrita em disco)
falha de h/w (e.g., falta de energia)
*
*
*
Transferência de controle
1
2
i
i+1
Programa do usuário






M



Tratador de interrupção
*
*
*
Tratador de interrupção
Programa que determina a natureza da interrupção e que realiza o tratamento adequado
Controle é transferido para este programa após salvamento de algumas informações
Em geral, é parte do sistema operacional
*
*
*
Ciclo de interrupção
Início
Parada
Busca nova
instrução
Executa
instrução
Verifica inter-
rupção: processa
interrupção
Ciclo de busca
Ciclo de execução
Ciclo de interrupção
Interrupções
inibidas
Interrupções
permitidas
*
*
*
Tipos de SO
*
*
*
Sistemas Monoprogramáveis ou Monotarefa
Permite que o processador, a memória e os periféricos permaneçam exclusivamente dedicados à execução de um único programa
Desvantagens
processador permanece ocioso durante operações de e/s
memória é subutilizada
periféricos não são utilizados de forma integral
Vantagem
implementação simples
*
*
*
Sistemas Multiprogramáveis / Multitarefa
Existem vários programas dividindo os diversos recursos do sistema
Gerencia o acesso concorrente aos seus diversos recursos de forma ordenada e protegida, entre os diversos programas
vantagens
• aumento da produtividade
• redução de custos
desvantagem
• implementação complexa
*
*
*
Multiprogramação
Permite que o processador execute outro programa enquanto um espera por E/S
*
*
*
Multiprogramação
Necessidade de hardware extra, como:
E/S por interrupção ou DMA
gerenciamento de memória
Necessidade de software extra, como:
escalonamento de processos
proteção de arquivos
sincronização entre processos
*
*
*
Multiprogramação
*
*
*
Sistema Batch
Sistemas Batch (lote)
os programas (jobs) são executados seqüencialmente e não exigem interação com os usuários, lendo e gravando dados em discos ou fitas
Vantagem
podem ser eficientes, quando bem projetados
Desvantagem
podem oferecer tempos de resposta longos
*
*
*
Time-sharing
Permitem interação dos usuários com o sistema
terminais que incluem vídeo, teclado e mouse, também conhecidos como sistemas on-line
Sistema operacional aloca uma fatia de tempo (time-slice) para cada usuário
O processador, a memória e os periféricos são compartilhados
Vantagens
 aumento da produtividade e redução de custos
Desvantagem: implementação complexa
*
*
*
Tempo Real
Os tempos de resposta devem estar dentro de limites rígidos,que devem ser obedecidos, caso contrário poderão ocorrer danos irreparáveis
Não existe o conceito de fatia de tempo
Um programa detém o processador o tempo que for necessário ou até que apareça outro com maior prioridade
*
*
*
Múltiplos Processadores
*
*
*
Estrutura dos Sistemas Operacionais
Sistemas Operacionais Monolíticos
Não há estrutura
Coleção de procedimentos com chamadas livres a quaisquer outros procedimentos
Procedimento: interface bem definida
*
*
*
Estrutura dos Sistemas Operacionais
Modelo Estrutural Simples (melhorando os sistemas monolíticos)
*
*
*
Estrutura dos Sistemas Operacionais
Estrutura em Camadas (generaliza o modelo anterior)
Primeiro sistema a usar esse conceito: “THE” (E. W. Dijkstra – 1968) possuindo seis camadas:
			5 operador
			4 programas dos usuários
			3 entrada/saída
			2 comunicação entre processo/operador
			1 gerenciamento de memória e tambor
			0 alocação de processadores e multiprogramação
*
*
*
Estrutura dos Sistemas Operacionais
Modelo cliente servidor
Sistemas Operacionais Modernos
Núcleo mínimo
Maior parte do Sistema Operacional => implementado como processos de usuários
*
*
*
Estrutura dos Sistemas Operacionais
Evolução do Modelo Cliente Servidor
*
*
*
Organização de Sistemas Operacionais
Processos
Gerenciamento de Memória
Entrada/Saída
Sistema de Arquivos
*
*
*
Processos
*
*
*
Processos
Conceito fundamental em Sistemas Operacionais
Processo  programa em execução incluindo os valores do contador de programa, registradores e variáveis
Processo seqüencial  processo
*
*
*
Processos
UCP  virtualmente cada proc.  sua UCP. 
		Na realidade  UCP chaveia de um processo para o outro
Paralelismo  Computadores modernos desempenham inúmeras tarefas concorrentemente
Pseudo-paralelismo  simulação da concorrência em uma única UCP (ex. multiprogramação)
*
*
*
O Modelo de Processos
Software  processos seqüenciais
Cada proc.  UCP (conceitualmente)
Execução de um processo depende do estado da máquina e dos demais processos em andamento 
Condições são de difícil reprodução
*
*
*
*
*
*
O Modelo de Processos
Processos não devem ser construídos com condições de temporização pré-estabelecidas
Ex: Fita magnética
	Processo E/S
Aciona a fita
Espera num “loop” até a fita entrar na velocidade correta 
Lê 1º registro
*
*
*
O Modelo de Processos
Problema: UCP chaveia para o outro processo durante o “loop”. 
	Quando processo lê, o 1º registro, já passou.
*
*
*
Programa x Processo
Ex. cientista mestre-cuca – Bolo de aniversário
2 processos concorrentes
	Confecção do bolo
	Socorro ao filho
*
*
*
Programa x processo
Conclusão: processo é uma atividade de algum tipo, tendo um programa, entradas, saídas e um estado
Chaveamento entre processos: depende de um algoritmo de escalonamento (scheduling algorithm)
*
*
*
Modelo de Processo– bloco de controle do processo (Process Control Block - PCB)
Mantém todas as informações sobre o processo
Processos são gerenciados pelo SO por system calls
Processo pode ser dividido em três elementos básicos:
• contexto de hardware
• contexto de software
• espaço de endereçamento
*
*
*
Chamada ao Sistema
Os 11 passos ao fazer a chamada ao sistema read(fd, buffer, nbytes)
*
*
*
Chamadas ao Sistema
*
*
*
Contexto Hardware
Contexto de hardware
 registradores: program counter (PC), stack pointer (SP) e bits de estado
Troca de Contexto
*
*
*
Contexto Software
Especifica características do processo que vão influir na execução de um programa
Cada processo criado pelo sistema recebe uma identificação única (PID - process identification), representada por um número
O processo também possui a identificação do usuário ou processo que o criou (owner)
Cada usuário possui uma identificação única (UID - user identification)
Apenas os objetos com a mesma UID do usuário (processo) podem ser acessados
*
*
*
Criação/Destruição de Processos
S.O. simples: todos os processos são criados com a inicialização
do sistema (system start-up)
S.O. modernos: mecanismos para criação e destruição dinâmica de processos
Ex. FORK (chamada ao sistema) cria uma cópia idêntica (filho) do processo que está chamando (pai)
*
*
*
Criação/Destruição de Processos
Outros: chamadas ao sistema para criar/ carregar/ disparar, etc
Processos precisam criar processos
*
*
*
O Conceito de Estado de um Processo
Processo: entidade independente mas necessita interagir com outros processos, ex. saída para outro processo
Ex. Processo 1 - ordenar (v1, v2, n1, n2, v, n)
		Processo 2 – maior (v, n)
	Ordenar (v1, v2, n1, n2, v, n) & maior(v, n)
Dependendo das velocidades relativas dos 2 processos, maior poderá / deverá ficar bloqueado, esperando o outro.
*
*
*
Estados de um Processo
*
*
*
Estados de um Processo
Executando: usando o processador
Bloqueado: Não pode continuar porque depende de algum dado ou evento externo
Pronto: Pode executar mas foi suspenso temporariamente pela UCP para permitir outro processo
E as transições de estados? 1, 2, 3 e 4
*
*
*
Estados de um Processo
*
*
*
Estados de um Processo
(1) Processo descobre que não pode continuar; (pode ser automático ou por execução de uma chamada ao sistema – Block)
(2) Escalonador (scheduler) de processo decide que o processo em execução DEVE parar – passa a vez
*
*
*
Estados de um Processo
(3) Processo é escolhido pelo escalonador para executar (novamente)
(4) O evento/ dado externo ocorreu
*
*
*
Modelo S.O. Estruturado por Processos
*
*
*
Modelo S.O. Estruturado por Processos
Implementação
Modelo de processos requer uma tabela de processos (array de structures em C)
Uma estrutura para cada processo
Estado
Contador de programa
Ponteiro da pilha
Alocação de memória
Arquivos, etc
*
*
*
Hierarquia de Processos
*
*
*
Threads
Uso de subprocessos 
tempo para alocar recursos (e desalocar recursos)
possuem espaços de endereçamento independentes e protegidos
Conceito de thread (linha)
compartilham o processador da mesma maneira que um processo
possui seu próprio conjunto de registradores
compartilham o mesmo espaço de endereçamento do processo
*
*
*
Thread
*
*
*
Thread
*
*
*
Thread
*
*
*
Thread
*
*
*
Thread
*
*
*
Thread
*
*
*
Bibliografia
Capitulo1, Sistemas Operacionais Modernos, A. Tanenbaun
Capítulo 1, Computer Organization and Architecture, W. Stallings
Capítulo 2, Operating Systems: Internals and Design Principles, W. Stallings

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais