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
Download

Apresentação 3