Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS OPERACIONAIS SIMONE MARKENSON Rio de Janeiro, maio de 2011 1 FUNÇÕES DO S.O PROCESSOS THREADS CONCORRÊNCIA CONCEITOS IMPORTANTES EXCLUSÃO MÚTUA ENTRAR_RC() Espera ocupada OU bloqueio Código da região crítica SAIR_RC() Liberação do recurso SOLUÇÕES ALGORITMICAS São baseadas em espera ocupada Processos se alternam no uso de suas respectivas RCs, fazendo com que o tempo de execução seja ditado pelo processo mais lento. Somente pode ser utilizado por dois processos. Se um dos processos falhar (abortar, por exemplo) o outro jamais poderá entrar em sua RC novamente pois a variável vez não será alterada, contrariando uma das regras de implementação de mecanismos de exclusão mútua SOLUÇÕES BASEADAS EM HARDWARE Inibir interrupções Não habilitar as interrupções por erro de programação (só desligando o computador!!!) Como somente as interrupções do processador que executou a instrução são desabilitadas não garante exclusão mútua em sistemas multiprocessados. Instruções TSL Utiliza espera ocupada Possibilidade de starvation; Deve garantir exclusividade no uso do barramento para multiprocessadores Troca de Mensagens Utilizado também em sistemas distribuídos Utiliza primitivas send e receive para o envio e recebimento de mensagens. As primitivas podem ou não bloquear o processo Considere um receive bloqueante e um send não bloqueante. O processo deve aguardar um send par liberar o processo bloqueado na instrução receive. receive(caixa_postal) Região Crítica send (caixa_postal) SOLUÇÕES BASEADAS NO S.O. Semáforos O semáforo deve ser inicializado com um valor não negativo. A operação wait decrementa o semáforo; se o valor ficar negativo o processo é bloqueado A operação signal incrementa o semáforo; se o valor não ficar positivo o processo bloqueado pela operação wait é desbloqueado. Wait(s) Região Crítica Signal(s) SOLUÇÕES BASEADAS NO S.O. PARA QUE UMA ESTRATÉGIA DE ESCALONAMENTO? Manter o processador ocupado o maior parte do tempo possível Balancear o tempo de CPU entre as tarefas Oferecer tempos de resposta razoáveis Maximizar a taxa de atendimento (vazão) do sistema (throughput) ESCALONAMENTO Cinco jobs, A, B, C, D e E, em batch, chegam ao computador com 1 segundo de intervalo entre eles. Seus tempos de processamento são estimados em 10, 7, 3, 4 e 5 segundos de CPU, respectivamente. Sendo round-robin a política de escalonamento utilizada, com um time-slice de 1 segundo, o tempo médio de turnaround desses processos (ignorando overheads de troca de contexto e interrupções e assumindo que um job recém-chegado é colocado no início da fila, ou seja, na frente dos outros) é: EXERCICIOS – AULA 6 Organizando Processo A(10) 1 1 1 1 1 1 1 1 1 1---------------- 29s B(7) 1 1 1 1 1 1 1 --------------------------- 25s C (3) 1 1 1 -------------------------------------------- 11s D (4) 1 1 1 1 ---------------------------------- 15s E (5) 1 1 1 1 1 ------------------------- 18s Calculando média TM = (29 + 25 + 11 + 15 + 18 ) / 5 TM = 98/5 = 19,6 s VINCULAÇÃO DE ENDEREÇOS Tempo de Compilação Código com endereçamento absoluto Lógico = Físico Tempo de Carga Código relocável Lógico = Físico Tempo de Execução Processo pode ser movimentado entre segmentos durante a execução Lógico MMU Físico Estática Estática relocável SO Partição #1 Partição #2 Partição #3 Limite Superior da partição #1 Limite Inferior da partição #1 C A X Y W Z SO Partição #1 2Kb Partição #2 8Kb Partição #3 5Kb Limite Superior da partição #1 Limite Inferior da partição #1 C A X 6Kb 1.5Kb 3Kb ou ALOCAÇÃO CONTÍGUA Dinâmico X A C 1Kb 3Kb S.O. B 5 KB D 2KB ALOCAÇÃO CONTÍGUA MEMÓRIA PAGINADA Memória física é dividida em blocos de tamanho fixo: moldura (frames) Processo é divido em blocos do mesmo tamanho: páginas Tamanho da moldura = tamanho da página Cada página é alocada em uma moldura Exercícios – aula 7 Considere um sistema baseado em memória paginada com endereço lógico de 32 bits sendo 8 bits utilizados para identificação da página e os demais para o offset. a)Quantos endereços cada página possui? 224 = 24 * 220 = 16M b)Quantas páginas um processo pode ter? 28 = 256 páginas c)Qual o tamanho máximo de um processo considerando que cada endereço ocupa 2 bytes? 256 x 16 M x 2B = 28 x 224 x 2 B = 233 B = 23 x 230 B = 8 GB 8bits 24 bits MV EM FUNCIONAMENTO! S.O. traz a página que possui o endereço referenciado para a memória Há uma grande chance dos próximos endereços estarem na mesma página, que já estarão na memória princípio da localidade Problema Trashing CONSIDERAÇÕES Página na memória? SIM : Page Hit NÃO: Page Fault Página grande ou pequena? GRANDE: saturação; fragmentação interna PEQUENA: mais paginação; tabela de páginas maior Onde colocar? Em qualquer moldura disponível Considerando a sequência de referência de páginas abaixo e a utilização de 6 molduras (frames). A situação das molduras, imediatamente antes do início da sequência, inseridas nesta ordem (moldura 1, 2,3...6), inicio 1 3 4 7 12 6 5 2 3 M1 1 M2 12 M3 11 M4 9 M5 6 M6 3 Exercícios – aula 8 FIFO inicio 1 3 4 7 12 6 5 2 3 M1 1 1 1 4 4 4 4 4 4 4 M2 12 12 12 12 7 7 7 7 7 7 M3 11 11 11 11 11 12 12 12 12 12 M4 9 9 9 9 9 9 9 5 5 5 M5 6 6 6 6 6 6 6 6 2 2 M6 3 3 3 3 3 3 3 3 3 3 PF PF PF PF PF Memória virtual LRU inicio 1 3 4 7 12 6 5 2 3 M1 1 1 1 1 1 1 1 5 5 5 M2 12 12 12 4 4 4 4 4 4 3 M3 11 11 11 11 7 7 7 7 7 7 M4 9 9 9 9 9 12 12 12 12 12 M5 6 6 6 6 6 6 6 6 6 6 M6 3 3 3 3 3 3 3 3 2 2 PF PF PF PF PF PF Memória virtual COMPONENTES E/S E/S Nível do usuário E/S independente do dispositivo Interface de I/O para aplicação Driver (mecanismos de acesso ao dispositivo fornecendo uma visão uniforme) Hardware S.O. Escalonamento de E/S Baseado na fila de requisição FiFo (First in First out) Mais simples Atendimento na ordem dos pedidos Prioridade fora do controle do gerenciador LiFo (Last in First out) Diminui o movimento da cabeça de leitura em arquivos seqüenciais Escalonamento de E/S Baseado na localização SSTF (shortest service time first) Fila é reordenada para atender as requisições de forma a minimizar o movimento da cabeça Possibilidade de starvation Scan (elevador) Variação do SSTF porém estipula uma direção preferencial O sentido se inverte ao final da varredura C-Scan Semelhante ao Scan porém com um sentido único Exercício Uma unidade de disco com 5000 cilindros , numerados de 0 a 4999 esta atendendo a um pedido no cilindro 20, sendo o atendimento anterior feito no cilindro 15. Considerando as requisições abaixo em ordem de chegada calcule o tempo gasto para atender as requisições para as políticas de escalonamento FIFO e C-SCAN sabendo que são gastos 6 ms entre cada trilha. Requisições: 10 – 22 – 20 – 2 – 40 – 6 - 38 Solução: FIFO: Posição atual = 20 20 10 10 10 22 12 22 20 2 20 2 18 2 40 38 40 6 34 6 38 32 ----- 146 * 6 = 876 876 e 59914 ms 30 e 28 ms 59914 e 59934 ms 876 e 59934 ms Exercício Uma unidade de disco com 5000 cilindros , numerados de 0 a 4999 esta atendendo a um pedido no cilindro 20, sendo o atendimento anterior feito no cilindro 15. Considerando as requisições abaixo em ordem de chegada calcule o tempo gasto para atender as requisições para as políticas de escalonamento FIFO e C-SCAN sabendo que são gastos 6 ms entre cada trilha. Requisições: 10 – 22 – 20 – 2 – 40 – 6 - 38 Solução: C-SCAN: Posição atual = 20 (subindo) 20 4999 4979 4999 0 5000 0 10 10 ----- 9989 * 6 = 59934 876 e 59914 ms 30 e 28 ms 59914 e 59934 ms 876 e 59934 ms SISTEMAS DE ARQUIVOS Persistência: Arquivos são armazenados em discos e não desaparecem ao término da sessão Compartilhamento: Arquivos podem ser compartilha dos por processos diferentes Estrutura: Possuem uma organização interna em função do tipo de informação que armazena Atributos de um arquivo Nome: representação utilizada para o usuário Tipo: necessário em sistemas que utilizam mais de um tipo de arquivo Localização: identificação da posição de um arquivo em um dispositivo específico Tamanho: registro do tamanho atual do arquivo Proteção: informações de controle de acesso Usuário: identificação do criador do arquivo Data e hora: registro da criação, ultimo acesso e ultima modificação O QUE FAZ UM SISTEMA DE ARQUIVOS? Atende às requisições de armazenamento e recuperação de informações Garante a validade do arquivo Provê rotinas para acesso Provê acesso à dispositivos diferentes Provê acesso à múltiplos usuários Exercício Um SO trabalha com blocos de 4KB. Endereços de bloco ocupam 4 bytes. Esse sistema utiliza alocação indexada para localizar os arquivos no disco. Cada descritor de arquivo possui uma tabela com 12 endereços de blocos composto por 8 endereços são diretos, 2 endereços indiretos simples e 2 endereços indiretos duplos. Qual o tamanho máximo de um arquivo nesse sistema? Exercício Tam do arquivo = (End.Direto + End. Ind. Simples + End. Ind. Duplo) * tam do bloco Quantidade de endereços / bloco = 4KB / 4 = 210 endereços bloco de endereços = 210 endereços Direto = 23 * 212 = 215 bytes = 25 KB = 32 KB IndSimples = 2 * 210 * 212 = 223 bytes = 23 MB = 8 MB IndDuplo = 2 * 210 * 210 * 212 = 233 bytes = 23 GB = 8 GB Total ~ 8 GB
Compartilhar