290 likes | 696 Views
Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Revisto Capítulo 3 Concorrência. Arquitetura de Sistemas Operacionais – Machado/Maia. 3 – Concorrência. Sist. Monoprogramável x Multiprogramável Sistemas Monoprogramáveis:
E N D
Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Revisto Capítulo 3 Concorrência Arquitetura de Sistemas Operacionais – Machado/Maia
3 – Concorrência • Sist. Monoprogramável x Multiprogramável • 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 • Sistemas Multiprogramáveis: • Permite a concorrência dos programas • Execução de novos programas inicia-se durante a execução de outros programas Arquitetura de Sistemas Operacionais – Machado/Maia 3/1
3 – Concorrência • Sist. Monoprogramável x Multiprogramável • Vantagens dos Sistemas Multiprogramáveis: • Tempo total de execução de vários programas torna-se menor • Uso mais racional dos recursos • Melhor aproveitamento do espaço de memória • Aproveitamento do processador durante operações de E/S • Cada programa (processo) ocupa uma fatia de tempo do processador Arquitetura de Sistemas Operacionais – Machado/Maia 3/2
3 – Concorrência • Sist. Monoprogramável x Multiprogramável Arquitetura de Sistemas Operacionais – Machado/Maia 3/3
3 – Concorrência • Sist. Monoprogramável x Multiprogramável • Exemplo hipotético com 3 programas: • Prog 1: • 10% de CPU, 30% de memória e 5 min • Prog 2: • 50% de CPU, 30% de memória e 15 min • Prog 3: • 30% de CPU, 20% de memória e 10 min • Execução concorrente dos 3 programas: • < 90% de CPU, < 80% de memória e < 15 min Arquitetura de Sistemas Operacionais – Machado/Maia 3/4
3 – Concorrência • Sist. Monoprogramável x Multiprogramável • 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 Arquitetura de Sistemas Operacionais – Machado/Maia 3/5
3 – Concorrência • Interrupção e Exceçã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) • Ao final de cada instrução, a UC verifica a ocorrência de interrupção ou exceção • Processador interrompe o programa em execução para tratar o evento Arquitetura de Sistemas Operacionais – Machado/Maia 3/6
3 – Concorrência • Interrupção e Exceção Arquitetura de Sistemas Operacionais – Machado/Maia 3/7
3 – Concorrência • Interrupção e Exceçã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 Arquitetura de Sistemas Operacionais – Machado/Maia 3/8
3 – Concorrência • Interrupção e Exceção • Para cada tipo de interrupção existe uma rotina de tratamento associada para a qual o fluxo de execução é desviado • Dois métodos para tratamento de interrupções • Vetor de interrupçã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 • Uma única rotina que verifica o tipo de evento e faz o tratamento adequado Arquitetura de Sistemas Operacionais – Machado/Maia 3/9
3 – Concorrência • Interrupção e Exceçã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 • Interrupções mascaráveis • Demais interrupções podem ser enfileiradas segundo respectivas prioridades Arquitetura de Sistemas Operacionais – Machado/Maia 3/10
3 – Concorrência • Interrupção e Exceçã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 • São previsíveis e só podem ocorrer um de cada vez • Tratamento equivalente ao da interrupção • Rotina de tratamento para uma determinada exceção pode ser escrita pelo próprio programador Arquitetura de Sistemas Operacionais – Machado/Maia 3/11
3 – Concorrência • Operações de Entrada/Saída • Antes, instruções de E/S específicas para cada periférico eram executadas pela CPU • Surgimento do controlador de dispositivo desonerou o processador e permitiu maior agilidade • 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 Arquitetura de Sistemas Operacionais – Machado/Maia 3/12
3 – Concorrência • Operações de Entrada/Saída Arquitetura de Sistemas Operacionais – Machado/Maia 3/13
3 – Concorrência • Operações de Entrada/Saída • Transferência de grande volume de dados entre controladora e MP onera por demais o processador • 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 Arquitetura de Sistemas Operacionais – Machado/Maia 3/14
3 – Concorrência • Canal de E/S • Introduzido pela IBM no sistema 7094 • Canal de E/S é um processador com capacidade de executar programas de E/S e controle total dos dispositivos • 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 • Pode controlar múltiplos dispositivos de E/S Arquitetura de Sistemas Operacionais – Machado/Maia 3/15
3 – Concorrência • Canal de E/S Arquitetura de Sistemas Operacionais – Machado/Maia 3/16
3 – Concorrência • Buffering • Consiste em utilizar uma área na memória principal para transferência de dados entre dispositivos de E/S e a MP • Numa operação de leitura do dispositivo: • Dado é transferido para buffer sem onerar o processador, dispositivo fica liberado após conclusã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. Arquitetura de Sistemas Operacionais – Machado/Maia 3/17
3 – Concorrência • Buffering Arquitetura de Sistemas Operacionais – Machado/Maia 3/18
3 – Concorrência • Buffering • 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 • 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 Arquitetura de Sistemas Operacionais – Machado/Maia 3/19
3 – Concorrência • Spooling • Simultaneous Peripheral Operation On-line, introduzido no fim dos anos 1950 • Técnica usa uma área do disco (arquivo) para buffering de impressão • Tudo que é submetido para impressão vai para o arquivo de spool, liberando o programa de origem • SO é quem gerencia os jobs de impressão Arquitetura de Sistemas Operacionais – Machado/Maia 3/20
3 – Concorrência • Reentrância Arquitetura de Sistemas Operacionais – Machado/Maia 3/21
3 – Concorrência • Proteção do Sistema • 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 Arquitetura de Sistemas Operacionais – Machado/Maia 3/22