Interrupções - Adriana Vettorazzo

Download Report

Transcript Interrupções - Adriana Vettorazzo

FACULDADE CAMBURY
Sistemas Operacionais
Adriana Vettorazzo
FACULDADE CAMBURY
 Processos
Sistemas Operacionais
Tipos de Filas para escalonamento de processos
Sistemas Operacionais
• Filas para escalonamento de processos
• "Fila de “jobs”: conjunto de todos os processos no sistema;
• "Fila de prontos: conjunto de todos os processos que estão
prontos para executar mas não estão em execução
• "Filas de dispositivos: conjunto de processos esperando por um
dispositivo de I/O
Sistemas Operacionais
• Filas para escalonamento de processos
• “Os processos migram entre as diversas filas do sistema”
Sistemas Operacionais
Interrupções
Sistemas Operacionais
Interrupções
• O mecanismo de interrupções é um recurso comum dos
processadores de qualquer porte.
• Ele permite que um controlador de periférico chame a
atenção do processador.
Sistemas Operacionais
Interrupções
• Analogia:
Uma pessoa (processador) escrevendo uma
carta e o telefone toca (interrupção).
Quando termina a ligação, a pessoa volta a
escrever a carta.
Sistemas Operacionais
Interrupções
• Sempre sinaliza a ocorrência de algum evento
• A rotina responsável por atender a interrupção é
chamada “Tratador de Interrupção”
Sistemas Operacionais
Interrupções
• Tipos de interrupções:
– Externas
– Internas
Sistemas Operacionais
Interrupções
• Externas:
– Originadas por periféricos
– Tempo Real
– Assíncronas
Tipos de Interrupções
 Externa
 É gerada pelo S.O. ou por algum dispositivo e, neste caso,
independe do programa que está sendo executado.
 Exemplo: Falta de papel na impressora.
Sistemas Operacionais
Interrupções
• Internas:
– Erro (instrução inválida)
– Software (Chamada de Sistemas)
– Síncronas
Tipos de Interrupções
 Interna
 É resultado direto da execução do próprio programa, ou
seja, uma instrução responsável pela ocorrência da
interrupção. Também é chamado de traps ou exceções.
Eventos Síncronos e Eventos Assíncronos
• Os eventos síncronos são previsíveis e são resultados direto
da execução de um programa corrente.
• Eventos assíncronos são imprevisíveis e podem ocorrer
múltiplas vezes. Eles não estão relacionados à instrução do
programa corrente.
Interrupção e Exceção
Sistemas Operacionais
Deadlock
Sistemas Operacionais
Deadlock
Um conjunto de N processos está em deadlock quando cada um
dos N processos está bloqueado à espera de um evento que
somente pode ser causado por um dos N processos do
Conjunto.
Este processo está em deadlock porque está aguardando por um
evento que nunca ocorrerá.
Sistemas Operacionais
Sistemas Operacionais
Deadlock
Um exemplo de deadlock de tráfego:
Uma lei americana do início do século:
“Quando dois trens se aproximarem um do outro em um
cruzamento, ambos deverão parar completamente e nenhum
dos dois deverá ser acionado até que o outro tenha partido”
Sistemas Operacionais
Deadlock
Sistemas Operacionais
Exemplos de Deadlock
Sistemas Operacionais
Deadlock Simples de Recursos
Muitos deadlocks ocorrem devido à natureza de recursos
dedicados que são recursos que só podem ser usados por um
usuário por vez.
Ex: Processo A, detém o recurso 1, e precisa alocar o recurso 2
para prosseguir. Processo B, detém o recurso 2 e precisa do
recurso 1 para prosseguir.
Sistemas Operacionais
Deadlock em sistemas de Spooling
Spooling serve para agilizar as tarefas de impressão. Ao
invés de mandar linhas diretas para a impressora, ele
manda para o spool que envia para a impressora.
Sistemas Operacionais
Deadlock em sistemas de Spooling
Alguns sistemas de spool, todo o job de impressão deve ser
gerado antes do início da impressão.
Isso pode gerar deadlock, uma vez que o espaço disponível para
spooling é limitado.
Sistemas Operacionais
Adiamento indefinido
Processos ficam esperando pela alocação de recursos, é
provável que ocorra adiamento indefinido, também
chamado de bloqueamento indefinido (starvation).
Sistemas Operacionais
Adiamento indefinido
Adiamento indefinido pode ocorrer devido às políticas de
escalonamento, principalmente quando utiliza prioridades.
Uma forma de resolver é implementando o algoritmo de
prioridades onde a prioridade do processo cresce enquanto ele
espera.
Sistemas Operacionais
Recursos
Sistemas Operacionais
Recursos
Nome dado aos objetos que os processos podem adquirir;
Um recurso pode ser um dispositivo de hardware, ou uma
informação na base de dados.
Sistemas Operacionais
Recursos
Recursos podem ser:
• Preemptíveis
• Não-preemptíveis
Sistemas Operacionais
Recurso Preemptível
É aquele que pode ser tomado do processo que estiver
utilizando o recurso sem nenhum prejuízo ao processo.
Ex: Mémoria e CPU
Sistemas Operacionais
Recurso Não-Preemptível
É aquele que não pode ser tomado do processo aos quais
foram alocados. Tem que ser executado até o fim.
Ex: Impressora iniciou a impressão de um relatório, não
pode parar e começar a imprimir outro.
Gravação de CD/DVD.
Sistemas Operacionais
Recurso
Um processo pode requisitar um recurso antes de usá-lo e
deve liberá-lo após o uso.
Em uma situação de operação normal, um processo pode
utilizar um recurso somente nesta sequência:
Sistemas Operacionais
Sequência:
1) Requisitar: se não pode ser atendida imediatamente, então o
requisitante tem que esperar.
2) Usar: o processo pode operar sobre o recurso.
3) Liberar: processo libera o recurso.