Title: Arquitetura de Sistemas Operacionais
1 Arquitetura de Sistemas Operacionais Francis
Berenger Machado / Luiz Paulo Maia Revisto
Capítulo 3 Concorrência
Arquitetura de Sistemas Operacionais
Machado/Maia
23 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
33 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
43 Concorrência
- Sist. Monoprogramável x Multiprogramável
-
Arquitetura de Sistemas Operacionais
Machado/Maia
3/3
53 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
- lt 90 de CPU, lt 80 de memória e lt 15 min
Arquitetura de Sistemas Operacionais
Machado/Maia
3/4
63 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
73 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
83 Concorrência
Arquitetura de Sistemas Operacionais
Machado/Maia
3/7
93 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
103 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
113 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
123 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
133 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
143 Concorrência
- Operações de Entrada/Saída
Arquitetura de Sistemas Operacionais
Machado/Maia
3/13
153 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
163 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
173 Concorrência
Arquitetura de Sistemas Operacionais
Machado/Maia
3/16
183 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
193 Concorrência
Arquitetura de Sistemas Operacionais
Machado/Maia
3/18
203 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
213 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
223 Concorrência
Arquitetura de Sistemas Operacionais
Machado/Maia
3/21
233 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