UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Suporte ao Sistema Operacional Prof. Sílvio Fernandes Introdução • Um SO é um programa que controla a execução dos programas aplicativos e atua como uma interface entre o usuário e o hardware do computador – Conveniência: um SO torna um computador mais conveniente para uso – Eficiência: um SO permite que os recursos do sistema de computação sejam usados de uma maneira eficiente 2 Introdução Usuário final Programador Programas Aplicativos Utilitários Projetista do SO Sistema Operacional Hardware do computador 3 Introdução • SO normalmente oferece os serviços – Criação de programas – Execução de programas – Acesso aos dispositivos de E/S – Acesso controlado aos arquivos – Acesso ao sistema para recursos compartilhados – Detecção e respostas a erros – Contabilidade 4 SO como um Gerente de Recursos • O SO controla o processamento, o armazenamento e a transferência de dados • Como mecanismo de controle, o SO é incomum em dois aspectos – O SO é um programa como outro qualquer, sendo executado pelo μP – O SO renuncia ao controle do μP para, em seguida, obter o controle novamente 5 SO como um Gerente de Recursos • Recursos controlados Memória Módulo de E/S SO (núcleo) Módulo de E/S ... Programas e dados Módulo de E/S Armazenamento μP ... μP SO Programas e dados 6 Tipos de SO • Monoprogramado – O µP carrega para a memória principal (MP) e executa apenas um programa de cada vez • Multiprogramado – Diversos programas são carregados simultaneamente na MP, e o tempo do μP é dividido entre eles 7 Características de um SO • Interrupções – Fornecem ao SO a capacidade de obter o controle do µP quando este está executando programas dos usuários • Proteção de memória – Programas do usuário não devem alterar a área de memória que contém o SO • Temporização – Um relógio é usado para evitar que um único programa monopolize o sistema • Instruções privilegiadas – Algumas instruções só podem ser executadas pelo SO (instruções de E/S, por exemplo) 8 Latência das Instruções de E/S • Suponha um programa que processa um arquivo de registros e executa, em média, 100 instruções do µP por registro Ler um registro Executar 100 instruções Escrever um registro TOTAL UtilizaçãoP 15 µs 1 µs 15 µs 31 µs 1 0,032 3,2 % 31 9 Efeito da Multiprogramação Esperar Executar Esperar Esperar Executar Esperar Executar Esperar Executar Executar Executar Executar Esperar Executar Esperar Esperar Executar Esperar Executar Executar Executar Esperar tempo 10 Comparação Monoprogramação x Multiprogramação • Memória com capacidade igual a 256 K palavras de memória (não usadas pelo SO) Processo P1 P2 P3 Tipo de tarefa Computação intensiva E/S intensiva E/S intensiva Duração 5 min 15 min 10 min Memória requerida 50 K 100 K 80 K Usa disco? Não Não Sim Usa terminal? Não Sim Não Usa impressora? Não Não Sim 11 SO Monoprogramado MONOPROGRAMAÇÃO 100 CPU 0 Memória 0 100 Disco 0 Terminal 0 100 Impressora 0 0 5 P1 10 15 P2 20 25 P3 30 12 SO Multiprogramado 100 CPU 0 100 Memória 0 100 Disco 0 MULTIPROGRAMAÇÃO Terminal 0 100 Impressora 0 0 5 P1 10 P2 P3 15 13 Conclusões Monoprogramação Multiprogramação Uso de processador 17 % 33 % Uso de memória 30 % 67 % Uso de disco 33 % 67 % Uso de impressora 33 % 67 % Tempo decorrido 30 min 15 min Taxa de execução de tarefas 6 tarefas/h 12 tarefas/h Tempo de resposta médio 18 min 10 min 14 Um SO Multiprogramado é Mais Complexo que SO Monoprogramado • Eles requerem que os programas estejam carregados na MP para serem executados (gerência de memória) • Quando diversas programas estão prontos para serem executados, o processador deve decidir qual deles deve ser executado (escalonamento) 15 Escalonamento • Conceito de processo – Introduzido nos anos 60 – Termo mais genérico que tarefa (job) – Pode ser definido de várias maneiras, incluindo • Um programa em execução • O “espírito animado” de um programa • A entidade à qual um processador é alocado 16 Tipos de Escalonamento • Escalonamento de longo prazo • Escalonamento de médio prazo • Escalonamento de curto prazo • Escalonamento de E/S 17 Escalonamento de Longo Prazo • Converte (ou não) uma tarefa em um novo processo, que é colocado na fila do escalonador de médio prazo SO comporta mais um processo? Que tarefas devem ser transformadas em processos? Fila do escalonador de longo prazo T7 T6 T5 T4 Fila do escalonador de médio prazo P3 Memória Principal P0 tarefa T3 Escalonador de Longo Prazo P1 P2 processos 18 Escalonamento de Médio Prazo • Acrescenta um novo processo ao conjunto de processos a serem executados na MP P2 e P3 movidos para a MP! Memória Principal P0 Fila do escalonador de médio prazo P3 P2 processos Escalonador de Médio Prazo P1 P2 P3 19 Escalonamento de Médio Prazo • É também responsável pela troca de processos (swapping) entre a MP e o disco P2 removido da MP para a fila, e P4 movido da fila para a MP! P0 Fila do escalonador de médio prazo P2 P5 processos Memória Principal Escalonador de Médio Prazo P1 P4 P3 20 Escalonamento de Curto Prazo • Também chamado de despachante (dispatcher), decide qual dos processos residentes na MP deve ser executado P1 deve ser executado pelo processador neste instante! Memória Principal P0 Escalonador de Curto Prazo P1 P2 P3 21 Estado de um Processo Despachar Novo Admitir Em execução Pronto Liberar Concluído Fim do período de execução Ocorrência de evento Aguardar evento Suspenso 22 Bloco de Controle de Processos • Quando o escalonador admite um novo processo, ele cria um bloco de controle para esse processo; • O bloco de controle possui seus campos em branco, exceto o estado – novo; • Depois que o SO tiver preenchido adequadamente as informações, o Identificador Estado Prioridade Contador de programa Limites de memória Informações de contexto Informação de estado de E/S Informação de contabilidade . . . estado muda para pronto. 23 Escalonamento de E/S • Decide qual processo deve ser atendido por um dado dispositivo de E/S. Dispositivo de E/S # 01 Fila para o Dispositivo de E/S # 01 P3 P2 P1 Fila para o Dispositivo de E/S # 02 P6 P5 Servindo a P1! P4 Escalonador de E/S Dispositivo de E/S # 02 Servindo a P4! 24 Técnicas de Escalonamento SO SO Tratador de Serviço Escalonador Tratador de interrupção A “Em execução” Com o controle B “Pronto” Outras partições SO Tratador de Serviço Escalonador Tratador de Serviço Escalonador Tratador de interrupção Tratador de interrupção A “Em espera” A “Em espera” B “Pronto” B “Em execução” Outras partições Outras partições 25 Elementos-chave de um SO com multiprogramação SO Chamada ao SO feita Por um processo Interrupção do processo Interrupção de E/S Rotina de tratamento de chamadas de sistema Fila de longo prazo Rotina de tratamento de interrupções Fila de Filas curto de E/S prazo Escalonador de curto prazo Transferência de controle para o processo 26 Diagrama de Filas de Escalonamento de Processos Requisição de processo Fila de longo prazo Fila de curto prazo µP E/S Fila de E/S E/S Fila de E/S E/S Fila de E/S FIM 27 Gerência da Memória • Monoprogramação – MP é dividida em 2 partes: uma para o SO e outra para o programa em execução • Multiprogramação – A parte do “usuário” é subdividida para acomodar diversos processo – A memória precisa ser alocada de modo eficiente para encaixar o máximo de processo possíveis na memória 28 Gerência da Memória - Swapping • O µP é mais rápido que os dispositivos de E/S – É possível ter TODOS os processos aguardando operações de E/S ao mesmo tempo • Soluções possíveis 1. Aumentar a quantidade de memória principal • Memória ainda é relativamente cara • Quantidades maiores de memória têm resultado em processos maiores, e não em mais processos 2. Troca (swapping) de processos na memória 29 Gerência da Memória - Swapping 30 Gerência da Memória – Estabelecimento de Partições • Processos são carregados para a MP • Lá, eles ocupam partições da MP – Suponha (inicialmente) que um processo não possa ocupar mais de uma partição • Como se dá essa ocupação? – Processos ocupam partições definidas estaticamente (i.e., à priori)? – Processos ocupam partições definidas dinamicamente (i.e., assim que eles são caregados)? 31 Exemplos de Particionamento Estático SO (8 M) 8M 8M 8M 8M 8M SO (8 M) 2M 4M 6M 8M 8M 12 M 8M 16 M 8M (a) Partições de mesmo tamanho (a) Partições de tamanhos diferentes 32 Efeito de Partições Estáticas de Tamanhos Iguais SO (8 M) 8M 8M Processo 1 Processo 1 Processo 2 Processo 2 8M 8M 8M Desperdício! 8M 8M Processo 3 Não cabe na partição! 33 Efeito de Partições Estáticas de Tamanhos Diferentes SO (8 M) 2M 4M 4M Processo 1 Processo 1 Processo 2 Processo 2 Processo 3 Processo 3 8M 8M 12 M Desperdício! 16 M Processo 4 Não cabe na partição! 34 Efeito de Partições Dinâmicas SO 128 K SO Processo 1 SO 320 K 896 K SO Processo 1 320 K Processo 1 320 K Processo 2 224 K Processo 2 224 K Processo 3 288 K 576 K 352 K 64 K (a) SO Processo 1 (b) SO 320 K Processo 1 (c) SO 320 K (d) SO 320 K Processo 2 224 K 96 K 224 K Processo 3 288 K Processo 4 Processo 4 96 K Processo 3 288 K (f) 128 K Processo 4 96 K Processo 3 64 K 64 K (e) 128 K 288 K 96 K Processo 3 64 K (g) 128 K 288 K 64 K (h) 35 Sumário sobre Partições • Partições estáticas – Mais simples – Maior desperdício • Partições dinâmicas – Começam bem – Surgimento de “buracos” na memória • Amenizados com o uso da compactação • Compactação requer tempo de processamento 36 Paginação de Memória • Memória é dividida à priori em partes iguais de tamanho fixo denominadas blocos • Cada processo também é dividido em pequenos pedaços de tamanho fixo denominados páginas • As páginas de um processo são alocadas em blocos disponíveis na memória. • Desperdício é reduzido – Espaço desperdiçado é apenas uma fração do último bloco alocado ao processo 37 Alocação de Blocos Livres Lista de Blocos Livres 13 14 15 18 20 Processo A Página 0 Página 1 Página 2 Página 3 Lista de Blocos Livres 20 21 13 Livre 14 Livre 14 15 Livre 15 16 Em uso 17 Em uso 18 Livre 19 Em uso 20 Livre 21 Livre Processo A 13 Página 0 de A Página 1 de A Página 2 de A 16 Em uso 17 Em uso 18 Página 3 de A 19 Em uso Processo A Tabela de páginas 20 Livre 13 21 Livre Página 0 Página 1 Página 2 Página 3 14 15 18 3 Tradução de Endereços Memória Principal Número de página Endereço Lógico Deslocamento dentro da página 1 Página 0 de A Página 1 de A Página 2 de A 14 Em uso 16 Em uso 17 Página 3 de A 18 Em uso 19 15 Livre 20 18 Livre 21 Número de bloco Endereço Físico 30 13 14 Deslocamento dentro do bloco 14 30 13 15 Tabela de páginas do Processo A 39 Memória Virtual • Paginação sob demanda – Cada página de um processo é trazida para a memória apenas quando é necessária – É possível que um processo seja maior que toda a área da memória principal! • Interrupção por Falta de Página – Processo desvia para uma instrução localizada em uma página que não está na memória, ou dados referenciados encontram-se em uma página que não está na memória – SO deve carregar a página desejada 40 Tabelas de Páginas Podem Ser Muito GRANDES! • Suponha um processo com endereços lógicos de 32 bits e páginas de 4 KB... 1B ... Página (212 posições) 0 1 2 20 bits 12 bits No da página Deslocamento 32 bits 4095 ... Tabela de Páginas (220 entradas) Entrada 0 Entrada 1 Entrada 2 Entrada (220 – 1) 41 Tabelas de Páginas Podem Ser Muito GRANDES! • Se cada entrada ocupar 4 B, a Tabela inteira ocupa 4 MB na MP • Imagine agora N processos iguais àquele – Se cada processo possui uma Tabela de Páginas, há N Tabelas iguais àquela ocupando espaço na MP! • Estratégias usadas para contornar este problema – Paginação Multinível – Tabela de Páginas Invertida (IPT) 42 Paginação Multinível Endereço lógico 32 bits 10 bits 12 bits No Pág. #1 No Pág. #2 Deslocamento ... 10 bits Entrada 0 Entrada 1 Entrada 1023 Entrada 0 ... Entrada 25 ... Entrada 0 Entrada 1 ... Entrada 0 Entrada 1 ... Carregada permanentemente na MP (4KB) Entrada 1023 ... ... Entrada 1023 + Entrada 1023 Endereço físico Carregada temporariamente na MP 43 Exemplo de Paginação Multinível No Pág. # 1 No Pág. # 2 Deslocamento 0x0 0x1 0x123 Apontador para a Tab. Pág. de 2º nível Bloco 0xB1284000 0xAF013 0x94A1C000 0x18F1B 0x0831A000 0x0A921 ... ... 0x18F1B No Bloco 0x123 Deslocamento 44 Efeitos da Paginação Multinível • Menor espaço ocupado na MP – Apenas uma Tabela de Páginas é armazenada permanentemente na MP • Maior quantidade de acessos à MP – Para uma paginação de N níveis, são necessários N+1 acessos à MP para um acesso simples 45 IPT (Tabela de Páginas Invertida) • Há apenas uma Tabela de Páginas • Indexação se dá pelo Número do Bloco • Tipos – IPT Linear – IPT com Função Hash • Tabelas de Páginas convencionais são também chamadas de Tabelas de Páginas Diretas 46 IPT Linear PID No Pág. Deslocamento 0 0x1 0x123 Índice PID No Pág. 0x0 ... 1 0xA63 ... ... 0x18F1B 0 0x1 0x18F1C ... 3 0x31AB ... ... No Bloco Deslocamento 0x18F1B 0x123 Endereço lógico Endereço físico 47 IPT com Função Hash Função Hash PID No Pág. Deslocamento 0 0x1 0x123 Índice Índice PID No Pág. Próximo 0x18F1C 1 0xA63 0x18F1B ... 0x0 ... ... ... ... 0xAF013 0x18F1B 0 0x1 — 0x0 0x18F1C ... 3 0x31AB 0x0A921 ... ... ... ... Tabela de Âncoras Hash Endereço lógico No Bloco Deslocamento 0x18F1B 0x123 Endereço físico 48 Resumo dos Tipos de IPT • IPT Linear – Ocupa pouco espaço – Busca demorada • IPT com Função Hash – Ocupa um pouco mais de espaço – Busca acelerada (com uso de apontadores) • Colisões tratadas com o uso de encadeamento 49 TLB (Translation Lookaside Buffer) • Um acesso à MP requer, na verdade, dois acessos (no mínimo) 1. Acesso à Tabela de Páginas 2. Acesso efetivo à MP para obtenção dos dados • Para solucionar este problema, existe a TLB • Trata-se de uma espécie de cache para entradas de Tabelas de Páginas • A TLB contém as entradas mais recentemente usadas 50 Paginação e a TLB Programa solicita acesso a uma página Início µP checa a TLB No da página na TLB? Sim Não Acessa a Tabela de Páginas SO instrui µP a ler a página do disco Não µP ativa HW de E/S Rotina de manipulação de falha de página Página está na MP? Sim Atualiza a TLB Página transferida do disco para a MP Memória cheia? Sim Realiza substituição de páginas µP gera endereço físico Não Tabela de páginas atualizada 51 Operação da TLB e da Cache Operação da TLB Endereço lógico 1 2 No página Desloc. TLB falha 2’ acerto Operação da TLB Endereço físico 2’ 3 5 6 + 4 Rótulo Cache (resto) acerto palavra falha 6’ 2’ 6’ 6’ palavra Tabela de páginas MP 52 Conceitos de Segmentação • MP não é particionada à priori • Espaço de endereçamento lógico do processo é dividido em segmentos de vários tamanhos – Exemplos: segmentos de código, dados e pilha • Quando um processo é executado, todos os segmentos são carregados para a MP • Segmentos são carregados em qualquer posição livre da MP 53 Exemplo de Segmentação Memória Principal Segmento 1 Segmento 0 Espaço de Endereçamento Lógico do Processo Segmento 1 Segmento 3 Segmento 2 Segmento 2 Segmento 3 Segmento 0 54 Segmentação – Tradução de Endereços Endereço relativo dentro do segmento Número do segmento Endereço Lógico 0x00000001 RBase + 0x103AD098 0x6364D3C3 Endereço Físico ... RLimite 0x532A032B 0x6CD93E2 1 ... ... Tabela de Segmentos > Não Acesso permitido 55 Segmentação – Implementando Proteção Número do segmento Endereço Lógico Endereço relativo dentro do segmento 0x00000001 RBase + 0x203AD098 0x7364D3C3 Endereço Físico ... RLimite 0x532A032B 0x6CD93E2 1 ... ... Tabela de Segmentos > Sim Falha de Segmentação! 56 Combinação Segmentação-Paginação • MP é particionada em Quadros • Espaço de endereçamento lógico do processo é dividido em segmentos de vários tamanhos • Segmentos são paginados • Páginas de um segmento são alocadas em Quadros da MP 57 Exemplo da Combinação Segmentação-Paginação Memória Principal P0 P1 Segmento 0 P0 P1 P2 P3 Segmento 1 P0 P1 P0 Segmento 2 P0 P1 P0 P1 Segmento 3 P0 P1 P2 P1 P0 P2 P3 P2 P1 58 Exemplo da Combinação Segmentação-Paginação RBase ... ... ... Página 0 de A Página 1 de A Página 2 de A Tabela de Segmentos ... Em uso 16 Em uso 17 Página 3 de A 18 Em uso 19 Livre 20 Livre 21 End. Tab.Pág. ... 14 ... Endereço Lógico 1 2 Memória Principal 30 Tabela de Páginas Endereço Físico Número do Segmento 14 30 Número de bloco Número da Página Endereço relativo dentro da página/bloco 13 14 15 59 Referências • STALLINGS, W. Arquitetura e organização de computadores: projeto para o desempenho. 8. ed. Prentice Hall, 2009. • DELGADO, J.; RIBEIRO, C. Arquitetura de Computadores. 2 ed. LTC, 2009. • PATTERSON, D. A. ; HENNESSY, J.L. Organização e projeto de computadores – a interface hardware software. 3. ed. Editora Campus, 2005. 60