Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Revisto Capítulo 3 Concorrência 3 – Concorrência Sist. Monoprogramável x Multiprogramável o Sistemas Monoprogramáveis: Apenas um programa sendo executado a cada vez Execução de um novo programa deve esperar o encerramento do programa sendo executado o Sistemas Multiprogramáveis: Permite a concorrência dos programas Execução de novos programas inicia-se durante a execução de outros programas 3/1 3 – Concorrência Sist. Monoprogramável x Multiprogramável o Vantagens dos Sistemas Multiprogramáveis: Tempo total de execução de vários programas torna-se menor Uso mais racional dos recursos o Melhor aproveitamento do espaço de memória o Aproveitamento do processador durante operações de E/S o Cada programa (processo) ocupa uma fatia de tempo do processador 3/2 3 – Concorrência Sist. Monoprogramável x Multiprogramável E/ S UCP 1 E/ S UCP livre 1 2 1 tempo (a) Sistema Monoprogramável tempo (b) Sistema Multiprogramável 3/3 3 – Concorrência Sist. Monoprogramável x Multiprogramável o Exemplo hipotético com 3 programas: Prog 1: o 10% de CPU, 30% de memória e 5 min Prog 2: o 50% de CPU, 30% de memória e 15 min Prog 3: o 30% de CPU, 20% de memória e 10 min Execução concorrente dos 3 programas: o < 90% de CPU, < 80% de memória e < 15 min 3/4 3 – Concorrência Sist. Monoprogramável x Multiprogramável o Troca de contexto: Mudança de um processo para outro faz com que todo o conteúdo dos registradores seja trocado (estado do sistema) Quando um processo retorna à sua execução, todo o contexto imediatamente anterior à sua saída deve ser recuperado 3/5 3 – Concorrência Interrupção e Exceção o Durante a execução de um programa, alguns eventos inesperados podem ocorrer, ocasionando um desvio forçado no fluxo de execução Sinalização de operação de E/S de dispositivo externo (interrupção) Problemas decorrentes da execução de instruções do programa (exceção) o Ao final de cada instrução, a UC verifica a ocorrência de interrupção ou exceção o Processador interrompe o programa em execução para tratar o evento 3/6 3 – Concorrência Interrupção e Exceção 3/7 3 – Concorrência Interrupção e Exceção o Mecanismo de interrupção Sinal de interrupção gerado p/ o processador Processador termina a instrução corrente e identifica qual interrupção foi gerada Registradores PC e de status são salvos, PC recebe endereço inicial da rotina de tratamento Rotina de tratamento salva demais conteúdos de registradores na pilha de controle e é executada Após o término, todos os registradores são restaurados e programa interrompido retorna 3/8 3 – Concorrência Interrupção e Exceção o Para cada tipo de interrupção existe uma rotina de tratamento associada para a qual o fluxo de execução é desviado o Dois métodos para tratamento de interrupções Vetor de interrupção o Contém o endereço inicial de todas as rotinas de tratamento p/ cada tipo de evento A partir de um registrador de status o Uma única rotina que verifica o tipo de evento e faz o tratamento adequado 3/9 3 – Concorrência Interrupção e Exceção o Interrupções são decorrentes de eventos assíncronos, sem relação com o programa corrente Podem ocorrer múltiplas vezes num mesmo intervalo de tempo (simultaneamente) Rotina de tratamento pode desabilitar tratamento das demais interrupções o Interrupções mascaráveis Demais interrupções podem ser enfileiradas segundo respectivas prioridades 3/10 3 – Concorrência Interrupção e Exceção o Exceções são eventos síncronos, resultado direto da execução do programa corrente Divisão por zero Overflow em operação aritmética o São previsíveis e só podem ocorrer um de cada vez o Tratamento equivalente ao da interrupção o Rotina de tratamento para uma determinada exceção pode ser escrita pelo próprio programador 3/11 3 – Concorrência Operações de Entrada/Saída o Antes, instruções de E/S específicas para cada periférico eram executadas pela CPU o Surgimento do controlador de dispositivo desonerou o processador e permitiu maior agilidade o Processador não mais se comunica diretamente com o dispositivo, somente via controlador Instruções de E/S mais simplificadas Inicialmente operava em modo busy-wait, posteriormente fazendo polling nos dispositivos, finalmente se valendo de interrupção para avisar término da operação de E/S 3/12 3 – Concorrência Operações de Entrada/Saída Memória Principal UCP Controlador Dispositivos de E/ S 3/13 3 – Concorrência Operações de Entrada/Saída o Transferência de grande volume de dados entre controladora e MP onera por demais o processador o Solução usando DMA – Direct Memory Access Permite que dados sejam transferidos entre controladoras e MP sem intervenção do processador, exceto no início e no final Área de memória usada pelo controlador de DMA é chamada buffer de entrada/saída Controle de barramento assumido temporariamente pelo DMA, processador limitado a acessar caches 3/14 3 – Concorrência Canal de E/S o Introduzido pela IBM no sistema 7094 o Canal de E/S é um processador com capacidade de executar programas de E/S e controle total dos dispositivos o Instruções de E/S armazenadas na MP ou no canal de E/S, porém executadas pelo canal de E/S Processador instrui o canal de E/S a executar um programa de canal, responsável por especificar dispositivos, buffers e ações Ao final da transferência, gera interrupção o Pode controlar múltiplos dispositivos de E/S 3/15 3 – Concorrência Canal de E/S Memória Principal UCP Canal de E/ S Controlador Controlador Dispositivos de E/ S Dispositivos de E/ S 3/16 3 – Concorrência Buffering o Consiste em utilizar uma área na memória principal para transferência de dados entre dispositivos de E/S e a MP o Numa operação de leitura do dispositivo: Dado é transferido para buffer sem onerar o processador, dispositivo fica liberado após conclusão o Numa operação de gravação p/o dispositivo: Dado é escrito rapidamente no buffer, liberando o processador para outras atividades enquanto este é gravado no dispositivo. 3/17 3 – Concorrência Buffering Memória Principal gravação UCP gravação Controlador Buffer leitura leitura 3/18 3 – Concorrência Buffering o Unidade de transferência é o registro, cujo tamanho depende do tipo de dispositivo Vários registros podem ser armazenados num buffer Buffer conterá dados lidos mas ainda não processados, ou dados processados mas ainda não gravados o Buffering minimiza problemas decorrentes da disparidade de velocidades, compatibilizando tempos de acesso de maneira que processador e dispositivo de E/S não fiquem ociosos 3/19 3 – Concorrência Spooling o Simultaneous Peripheral Operation On-line, introduzido no fim dos anos 1950 o Técnica usa uma área do disco (arquivo) para buffering de impressão o Tudo que é submetido para impressão vai para o arquivo de spool, liberando o programa de origem o SO é quem gerencia os jobs de impressão Sistema Operacional Programa Arquivo de Spool Impressora 3/20 3 – Concorrência Reentrância usuário A usuário C código reentrante usuário B usuário D área de dados do usuário A área de dados do usuário B área de dados do usuário C área de dados do usuário D Memória Principal 3/21 3 – Concorrência Proteção do Sistema o SO deve garantir a confiabilidade e a integridade dos programas e dados dos usuários, além do próprio SO Cada programa possui uma área reservada para código e outra para dados que devem ser preservadas durante sua execução Idem para o SO em si Arquivos também devem ter sua integridade garantida quando acessados por múltiplos programas e/ ou múltiplos usuários Recursos não devem ser monopolizados 3/22