sistemas operacionais - ulbra.inf.br · chamada de sistema) ... com paginação em sistemas...
TRANSCRIPT
ENADE 2011
SISTEMAS OPERACIONAIS
SOs: conteúdos comuns
● Gerência de processos/processador● Comunicação● Concorrência e Sinc. de Processos● Gerenciamento de Memória● Alocação de Recursos e Deadlocks● Sistemas de Arquivos● Gerenciamento de Dispositivos de E/S
Gerência de processos/processador
● processo = programa em execução (código+dados+pilha+contexto)
● contextos de processos são armazenados em descritores de processos (BCP/PCB)
● processos alternam ciclos de UCP e E/S:– I/O-bound: bursts curtos de CPU
– CPU-bound: bursts longos de CPU
Gerência de processos/processador
● multiprogramação: quando um processo precisa esperar, outro é executado
– cooperativa: o processo somente perde a UCP voluntariamente (quando faz uma chamada de sistema)
– preemptiva: um processo pode perder a UCP quando faz uma chamada de sistema ou quando termina o seu limite de tempo
● o SO organiza os processos em listas
Gerência de processos/processador
● compartilhamento de tempo (time-sharing):– cada processo fica com a UCP por uma
fatia de tempo (time-slice ou quantum)
– a UCP é passada para outro processo
– depois que todos tiverem recebido a sua fatia de tempo, a execução volta para o primeiro processo
● multiprocessamento
Gerência de processos/processador
● processos passam por diferentes estados:
● o SO organiza os processos em listas
Gerência de processos/processador
● escalonadores: selecionam o processo que receberá a UCP
– curto prazo: seleção do processo da lista de aptos que receberá a UCP
– médio prazo: controle de swapping
– longo prazo: controle de sistemas batch
Gerência de processos/processador
● algoritmos de escalonamento:– FCFS (First-Come-First-Served)
– SJF (Shortes-Job-First)
– Prioridade● postergação indefinida e envelhecimento
– Round-Robin● tamanho ideal do time-slice
– Filas Multi-nível
Concorrência e Comunicação
● Aplicações concorrentes:– são formadas por mais de um processo
– aproveitam melhor o tempo de UCP (mais tempo em execução)
– melhor desempenho em SMP
– maior complexidade
Concorrência e Comunicação
● Aplicações concorrentes podem ser formadas por
– processos que se comunicam usando mecanismos de IPC
– threads (processos leves) se comunicam através de memória compartilhada ou mecanismos de IPC
Concorrência e Comunicação
● Aplicações concorrentes com processos:– chamadas como fork(), wait(), exec() e
exit() são usadas para criar processos
– exemplos de mecanismos de IPC:● dutos, troca de mensagens, memória
compartilhada, semáforos, sinais, morte do filho e rastreamento
Concorrência e Comunicação
● Aplicações concorrentes com processos:– chamadas como fork(), wait(), exec() e
exit() são usadas para criar processos
– exemplos de mecanismos de IPC:● dutos, troca de mensagens, memória
compartilhada, semáforos, sinais, morte do filho e rastreamento
Concorrência e Comunicação
● Aplicações concorrentes com threads:– sistemas multithread permitem processos
com mais de um fluxo de execução
– threads compartilham código e dados, mas tem pilha e contexto próprios
– comunicação via memória compartilhada ou IPC
– implementação pode ser no nível de usuário (biblioteca) ou de sistema (SO)
Concorrência e Comunicação
● Formas básicas de comunicação:– Troca de mensagens
– Memória Compartilhada
– Monitores (recursos de linguagens de programação que dão suporte para comunicação através de memória compartilhada)
Concorrência e Comunicação
● Troca de mensagens– é bastante utilizada quando não se tem
memória compartilhada
– duas chamadas básicas: send e receive
– endereçamento pode ser:● direto ou indireto
– classificação:● sem buffer/bloqueante/síncrona/rendezvouz● com buffer/não bloqueante/assíncrona
Concorrência e Comunicação
● Memória Compartilhada– é a forma mais rápida de comunicação
– podem surgir problemas de seção crítica no acesso a variáveis compartilhadas
Sincronização de Processos
● Problema da Seção Crítica:– processos podem gerar inconsistências ao
acessar recursos compartilhados
● Solução:– protocolo de entrada + protocolo de saída
– requisitos: independência de velocidade, progresso, espera limitada e exclusão mútua
Sincronização de Processos
● Solução 1: desabilitar interrupções– diminui a eficiência
– não funciona em SMP
● Solução 2: spin-locks– usa instruções como test-and-set,
compare-on-store e swap
– espera ocupada
– usado por SOs em SMP
Sincronização de Processos
● Solução 3: semáforos– variáveis especiais formadas por valor e
fila
– controladas por 2 operações atômicas:● p/sleep/lock/down: decrementa o valor do
semáforo e bloqueia o processo (se v<0)● v/wakeup/unlock/up: incrementa o valor do
semáforo e desbloqueia processo
– é a solução para aplicações
Deadlock
● processos bloqueados à espera de um evento que somente pode ser causado por um dos processos do conjunto
● condições necessárias:– exclusão mútua
– segura e espera
– recursos não são preemptados
– fila de espera circular
Deadlock
● tratamento:– prevenção
– evitamento
– detecção e recuperação
Gerenciamento de Memória
● capacidade de memória é definida pelo barramento de endereços: 2n
● endereços lógicos (aplicação) x físicos (dispositivo)
● fragmentação:– interna
– externa
Gerenciamento de Memória
● modelos:– múltiplas partições de tamanho fixo
– múltiplas partições de tamanho variável● programa deve ocupar posições contíguas● políticas de alocação de áreas livres: first-
fit, best-fit, worst-fit, last-fit, next-fit● principal problema: fragmentação externa● pode usar alocação exata ou em bloco
– paginação
Gerenciamento de Memória
● paginação:– programa dividido em páginas
– memória dividida em quadros
– páginas podem ficar em quaisquer quadros
– o SO preenche a tabela de páginas e a MMU converte endereços lógicos em físicos
Gerenciamento de Memória
Gerenciamento de Memória
● paginação (continuação):– implementação da tabela de páginas:
● registradores dedicados● memória principal● memória associativa (TLB – Translation
Lookaside Buffer)
Gerenciamento de Memória
● Memória Virtual: execução de um programa que não está todo presente na memória (permite executar programas maiores do que a memória física)
– overlays (programador + compilador)
– paginação por demanda (SO + hw)
Gerenciamento de Memória
● Paginação por Demanda:– as páginas do programa ficam no disco
– quando se acessa uma página que não está na memória ocorre uma falha de página (page fault)
– o SO é chamado e busca a página
– problema: desempenho
Gerenciamento de Memória
● Paginação por Demanda:– algoritmos de substituição escolhem
páginas para serem jogadas para disco● FIFO (First-In-First-Out)● Ótimo● LRU (Least Recently Used)● Segunda Chance● Histórico dos bits de referência● MFU (Most Freq. Used) x LFU (Least...)
Sistemas de Arquivos
● Formato usado para armazenamento de informações em disco
● Deve definir:– que arquivos? - Sistema de Diretórios!
– que áreas estão livres? - Mapas de bits ou listas de setores livres!
– onde? - Métodos de alocação!
Sistemas de Arquivos
● Métodos de Alocação:– Alocação Contígua
● First-fit, Best-fit, Worst-fit
– Alocação Encadeada
– Alocação Indexada
Sistemas de Arquivos
● Diretórios podem ser implementados como:
– listas de descritores (FAT)● não permite atalhos físicos
– listas de endereços de descritores (Unix)● permite atalhos físicos e simbólicos
● Atalhos físicos x simbólicos
Sistemas de Arquivos
● Outras questões:– Particionamento
● partições primárias, estendidas, secundárias (ou lógicas)
– Formatação● física x lógica
– Montagem● mount (Unix)● A:, B: (Microsoft)
Gerenciamento de Dispositivos de E/S
Gerenciamento de Dispositivos de E/S
● Discos magnéticos– setores, trilhas, cilindros
– tempos de acesso:● busca, latência (ou rotação), transferência
– escalonamento:● FCFS, SSTF● Scan (com ou sem look)● C-Scan (com ou sem look)● N-Step Scan, N-Step C-Scan
QUESTÕES
Gerência de processos/processador
(TRF/2ª Região – 2003 – AJ/Inf – FEC/UFF – 19) Um processo em Unix tem um espaço de endereçamento constituído de três segmentos. Existe um segmento que não pode ser alterado pelo programa, o qual é definido como segmento:
(A) de código;
(B) de dados;
(C)de pilha;
(D)de página;
(E) de alocação de disco.
Gerência de processos/processador
(TRF/4ª Região – 2010 – AJ/Inf – FCC – 36) No contexto de sistemas operacionais, sobre processos é correto afirmar:
(A) Um computador multiprocessador pode ter tantos processos em execução quanto são os processadores.
(B) Os termos processo e programa são sinônimos.
(C) Todo processo utiliza o mesmo espaço de endereço.
(D) A qualquer dado instante somente um processo pode executar instruções em um computador com qualquer tipo de arquitetura.
(E) Um processo não pode ter um número zero de processos-pai.
Gerenciamento de Memória
(ENADE 2005 - Bacharelado em SI - 22) Com relação ao gerenciamento de memória com paginação em sistemas operacionais, assinale a opção correta.
(A) As páginas utilizadas por um processo, sejam de código ou de dados, devem ser obrigatoriamente armazenadas na partição de swap do disco, quando o processo não estiver sendo executado.
(B) Todas as páginas de um processo em execução devem ser mantidas na memória física enquanto o processo não tiver terminado.
(C) Um processo somente pode ser iniciado se o sistema operacional conseguir alocar um bloco contíguo de páginas do tamanho da memória necessária para execução do processo.
(D) O espaço de endereçamento virtual disponível para os processos pode ser maior que a memória física disponível.
(E) Um processo somente pode ser iniciado se o sistema operacional conseguir alocar todas as páginas de código desse processo.