Sistemas Multiprogram�veis
1. Introdu��o
- Possibilidade de perif�ricos e dispositivos funcionarem simultaneamente junto com a CPU permitiu execu��o de tarefas concorrentes.
- Sistemas Operacionais podem ser vistos como um conjunto de rotinas que executam concorrentemente de uma forma ordenada
- Sistemas multiprogram�veis X baixa utiliza��o dos recursos do sistema.
- Uso M�dio CPU � monoprogram�veis 30% X multiprogram�veis 90%.
- V�rios programas podem estar residentes na mem�ria, deixando-a menos ociosa
- Quando um programa perde o uso do processador, o estado do processamento deve ser armazenado para quando ele retornar para continuar executando a partir de onde parou.
- Compartilhamento de perif�ricos e recursos do sistema por v�rios usu�rios e programas.
- Maior compexibilidade do Sistema Operacional.
2. Interrup��o e Exce��o
- Interrup��o X Exce��o
- Interrup��o gerada por evento s�ncrono e Exce��o gerada por evento ass�ncrono.
- Evento s�ncrono � Resultado direto da execu��o do programa corrente e s�o previs�veis.
- Evento ass�ncrono � Ocorre independentemente da execu��o do programa corrente e s�o imprevis�veis.
- Interrup��es
- Tornou poss�vel a implementa��o da concorr�ncia nos sistemas multiprogram�veis.
- Eventos que causam interven��o no Sistema Operacional durante a execu��o de programas.
- Gerados pelo pr�prio Sistema Operacional ou por Hardware.
- O sistema � desviado para uma rotina especial de tratamento.
- Vetor de Interrup��o � Rela��o de todas as rotinas de tratamento das interrup��es.
- Mecanismo de Interrup��o � Procedimento para detectar a interrup��o, salvar o contexto do programa e desviar para a rotina de tratamento. Na maioria das vezes implementados pelos projetistas e realizados pelo harware.
- Mascar�veis (podem ser desabilitadas) X N�o-Mascar�veis (tratamento obrigat�rio).
- As interrup��es possuem prioridades de execu��o.
- Controlador de pedidos de interrup��o � avalia as interrup��es geradas e suas prioridades de atendimento.
- Exce��o
- Resultado direto da execu��o de uma instru��o do pr�prio programa (ex: divis�o por zero, overflow).
- Muitas vezes pode ser escrita pelo pr�prio programador, sendo poss�vel evitar que um programa seja encerrado no caso de alguma exce��o ocorrer.
3. Opera��es de Entrada/Sa�da
- Instru��es de entrada/sa�da:
- Primitivo.
- Comunica��o entre a CPU e os perif�ricos controladas por um conjunto de instru��es especiais.
- Limitava a comunica��o do processador a um conjunto particular de dispositivos.
- controlador de interfa�e:
- Mais atual
- CPU interage independente dos dispositivos de E/S.
- CPU n�o comunica diretamente com perif�ricos, mas atrav�z de um controlador.
- Controle de opera��es de E/S pelo processador
- Controlada por programa:
- CPU sincronizada com perif�rico no in�cio daopera��o
- Sistema testa perif�rico esperando final da opera��o
- Ocupa CPU at� t�rmino da opera��o (busy wait)
- Desperd�cio de CPU.
- Por Polling
- CPU liberada para outras tarefas.
- Controlador testa final da opera��o a cada per�odo de tempo (polling).
- Permitiu o paralelismo e sistemas multiprogram�veis.
- Mais eficiente
- DMA
- Polling exigiu a implementa��o, por parte do controlador, da Direct Memory Access (DMA).
- Transferir blocos de dados entre mem�ria e perif�ricos, sem interven��o da CPU, a n�o ser no in�cio e t�rmino da opera��o.
- CPU interrompida s� no in�cio e final da Opera��o.
- No momento da Transfer�ncia da DMA, CPU interrompe acesso ao bus.
- No IBM 7094:
- Extens�o do conceito de DMA
- Canal de E/S � processador para executar programas de E/S.
- Controle total sobre opera��es de entrada e sa�da.
- Instru��es E/S armazenadas na mem�ria principal pela CPU
- CPU instrui canal para executar programa de canal.
- O canal avisa o t�rmino da opera��o.
- Um canal pode controlar m�ltiplos dispositivos atrav�s de diversos controladores.
- Um controlador pode manipular um dispositivo, ou um conjunto de dispositivos.
- Canal - liga��o entre CPU e controlador.
- Processador de E/S:
- Evolu��o com mem�ria pr�pria.
- Sem necessidade de programas de E/S serem carregados na Mem�ria Principal.
- Controle com m�nima interven��o da CPU.
4. Buffering
- Utiliza��o de uma �rea da mem�ria para transfer�ncia de dados entre perif�ricos e mem�ria principal denomidada buffer.
- Os dado s�o transferidos para o buffer.
- O dispositivo pode iniciar nova leitura enquanto a CPU manipula os dados do buffer.
- O mesmo pode ser aplicado para opera��es de grava��o.
- Minimiza o problema da disparidade da velocidade de processamento e dispositivos de E/S
- Objetiva manter CPU e dispositivos de E/S ocupados na maior parte do tempo.
- O buffer possui uma fila FIFO podendo conter v�rios registros (unidade de transfer�ncia usada no mecanismo de buffering).
5. Spooling (simultaneous pefipheral operation on-line)
- Surgiu no final dos anos 50.
- Base dos Sistemas Batch
- Antes, as Opera��es I/O eram lentas, deixando a CPU ociosa.
- No spooling v�rios programas (JOBS) eram armazenados em uma fita magn�tica, ent�o eram enviados para processamento.
- Diminui��o do tempo de execu��o dos jobs e transi��o entre eles.
- Da mesma forma um job poderia direcionar as sa�das para impressora para outra fita.
- Sistemas estritamente sequenciais devido as fitas magn�ticas.
- Mais efici�ncia com o surgimento de dispositivos de acesso direto, como discos e atribui��o de prioridades aos jobs.
6. Reentr�ncia
- Diversos usu�rios podem estar rodando o mesmo utilit�rio (compartilhado) simultaneamente.
- N�o precisa ter mais de uma c�pia do mesmo utilit�rio na mem�ria
- Exige que o c�digo reentrante n�o possa ser modificado por nenhum usu�rio enquanto est� sendo executado.
- Diversos usu�rios podem acessar partes diferentes do c�digo manipulando seus pr�prios dados
- Exemplo: Editores de texto, compiladores, linkers.
7. Prote��o do Sistema
- Garantia de prote��o de recursos compartilhados, como mem�ria, dispositivos de E/S e CPU
- Na mem�ria, cada usu�rio deve possuir uma �rea de dados e c�digos armazenados de forma que outros n�o interfiram nessas informa��es.
- Numa impress�o, n�o deve ser poss�vel a utiliza��o at� que a impress�o corrente termine.
- O Sistema Operacional deve implementar esses mecanismos (modos de acesso).
[voltar]
O que é um mecanismo de interrupções?
O mecanismo de interrupção constitui a base para a implementação do esquema de paralelismo entre CPU e periféricos na multiprogramação. É um mecanismo usado para sinalizar à CPU a ocorrência de eventos importantes relacionados aos dispositivos periféricos e outros elementos do sistema.
O que é uma interrupção exemplifique?
Uma interrupção é um evento externo que causa o processador parar a execução do programa corrente e desviar a execução para um bloco de código chamado rotina de interrupção (normalmente são decorrentes de operações de E/S).
Quais são os três tipos de interrupção?
Interrupções podem ser categorizadas em: maskable interrupt, non-maskable interrupt (NMI), inter-processor interrupt (IPI), software interrupt, e spurios interrupt.