Sistemas Monoprogramáveis X
Multiprogramáveis
3.2
• Os sistemas monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado, exclusivamente, a essa tarefa.Podemos
observar que, nesse tipo de sistema, ocorre um desperdício na utilização do processador , pois enquanto uma leitura em disco é
Sistemas Monoprogramáveis X
Multiprogramáveis
3.2
• Os sistemas multiprogramáveis,vários programas podem estar residentes em
memória, concorrendo pela utilização do processador. Dessa forma, quando um
programa solicita uma operação de E/S outros programas poderão utilizar o
processador. Neste caso a CPU permanece menos tempo ociosa.
Sistemas Monoprogramáveis X
Multiprogramáveis
Sistemas Monoprogramáveis X
Multiprogramáveis
3.2
• Em um sistema monoprogramável, os programas são executados sequencialmente. Sendo assim um programa prog1 é processado em 5 minutos,
enquanto um outro prog2 espera para começar a execução, que leva 15 minutos. Finalmente um prog3 inicia sua execução após 20 minutos e
completa em 10 minutos, totalizando 30 minutos na execução de 3 programas. No caso de sistema multiprogramáveis, o ganho da utilização é
Sistemas Monoprogramáveis X
Multiprogramáveis
Interrupções e Exceções
3.3
• Durante a execução de um programa podem
ocorrer alguns eventos inesperados, ocasionando um desvio forçado no seu fluxo de execução.
Estes tipos de eventos são conhecidos por
interrupção ou exceção e podem ser consequência da sinalização de algum dispositivo de hardware externo ao processador ou da execução de
instruções do próprio programa.A diferença entre um e outro é dada pelo tipo de evento ocorrido.
Interrupções e Exceções
3.3
• Uma interrupção é sempre gerada por algum evento externo ao programa e, nesse caso,
independe da instrução que está sendo executada. Um exemplo de interrupção ocorre quando um
dispositivo avisa ao processador que alguma operação de E/S está completa. Neste caso, o processador deve interromper o programa para tratar o término da operação.
Interrupções e Exceções
3.3
• Ao final da execução de cada instrução, a unidade de controle UC verifica a
ocorrência de algum tipo de interrupção. Neste caso, o programa em execução é interrompido e o controle desviado para uma rotina responsável por tratar o evento ocorrido, denominada:
Interrupções e Exceções
Interrupções e Exceções
3.3
Para que um programa possa posteriormente voltar a ser executado é necessário que, no momento da interrupção, um conjunto de informações sobre a execução seja
preservado. Essas informações consistem no conteúdo dos registradores, que deverão ser restaurados para continuação do programa.
Interrupções e Exceções
3.3
Existem dois métodos para tratamento de
interrupções. O primeiro utiliza uma estrutura de dados chamada Vetor de Interrupção, que contém o endereço inicial de todas as rotinas de
tratamento existentes associadas a cada tipo de evento. Um segundo utiliza um registrador de status que armazena o tipo de evento
ocorrido.Neste método só existe uma única rotina de tratamento que, no seu início testa o registrador para identificar o tipo de interrupção.
Interrupções e Exceções
3.3
As interrupções são decorrentes de eventos assíncronos, ou seja, não relacionados à instrução do programa corrente. Esses
eventos, por serem imprevisíveis, podem ocorrer múltiplas vezes, como no caso de diversos dispositivos de E/S informarem ao processador que estão prontos para receber ou transmitir dados.
Interrupções e Exceções
3.3
Por causa dos eventos serem imprevisíveis,
possibilita a ocorrência de múltiplas interrupções simultâneas.Uma maneira de evitar esta situação é a rotina de tratamento inibir as demais
interrupções. Neste caso, na ocorrência de outras interrupções durante a execução da rotina de
tratamento elas são ignoradas, ou seja, não receberão tratamento. Interrupções com esta característica são denominadas:
Interrupções e Exceções
3.3
Um evento é síncrono quando é resultado direto da execução do programa corrente. Tais eventos são previsíveis e, por
definição, só podem ocorrer um de cada
vez. Se um programa que causa esse tipo de evento for reexecutado com a mesma
entrada de dados, a execução ocorrerá sempre na mesma instrução.
Interrupções e Exceções
3.3
A diferença fundamental entre exceção e interrupção é que a primeira é gerada por um evento síncrono, enquanto a segunda é gerada por eventos assíncronos.
Operações de Entrada/Saída
3.4
Nos primeiros computadores a comunicação entre o processador e os periféricos era
controlada por um conjunto de instruções especiais, denominadas Instruções de
entrada/saída, executadas pelo próprio processador.
Operações de Entrada/Saída
3.4
Com o surgimento do CONTROLADOR OU INTERFACE permitiu ao processador agir de maneira independente dos dispositivos de E/S. Com esse novo elemento, o
processador não se comunica mais
diretamente com os periféricos más sim através do controlador.
Operações de Entrada/Saída
Operações de Entrada/Saída
3.4
Com a utilização do controlador, existiam maneiras básicas pelas quais o processador gerenciava as operações de E/S. O processador sincronizava-se com o periférico para o início da transferência de dados e, após iniciada a transferência, o sistema ficava permanentemente testando o estado do
periférico para saber quando a operação chegaria ao final. Este controle é chamado E/S
CONTROLADA POR PROGRAMA, mantinha o processador ocupado até o término da operação de E/S.
Operações de Entrada/Saída
3.4
Como o processador executa uma instrução muito mais rapidamente que a realização de uma operação de E/S pelo controlador,
havia um enorme desperdício de tempo da CPU.
Operações de Entrada/Saída
3.4
A evolução do modelo anterior foi permitir que, após o início da transferência dos
dados, o processador permanecesse livre para realizar outras tarefas. Assim em
determinados intervalos de tempo o sistema operacional deveria testar cada dispositivo para saber do término da operação de E/S (polling).
Operações de Entrada/Saída
3.4
Com a implementação do mecanismo de interrupção, as operações de E/S puderam ser realizadas com mais eficiência.
A operação de E/S controlada por interrupção é muito mais eficiente que a controlada por
programa, já que elimina a necessidade de o
processador esperar o término da operação, além de permitir que várias operações de E/S sejam executadas simultaneamente.
Operações de Entrada/Saída
3.4
Apesar da operação de E/S por interrupção ser mais eficiente, a transferência de grande
volume de dados exige muitas intervenções do processador, reduzindo sua eficiência. A solução para esse problema foi a
implementação de uma técnica de
transferência de dados denominada DMA (direct memory access)
Operações de Entrada/Saída
3.4
A técnica DMA permite que um bloco de dados seja transferido entre a memória principal e dispositivos de E/S sem
intervenção do processador, exceto no início e no fim da transferência.
A área da memória utilizada pelo controlador na técnica de DMA é chamada de:
Operações de Entrada/Saída
3.4
A extensão do conceito do DMA possibilitou o surgimento do CANAL DE ENTRADA E SAÍDA introduzido pela IBM. O Canal é
um processador com capacidade de executar programas de E/S, permitindo o controle
total sobre operações de E/S.As Instruções E/S são armazenadas na memória principal pelo processador, porém o canal é
Operações de Entrada/Saída
3.4
A evolução do canal permitiu que este possuísse sua própria memória, eliminando a necessidade de os programas de E/S serem carregados para a memória principal.
Buffering
3.5
Consiste na utilização de uma área na memória
principal, denominada buffer, para a transferência de dados entre os dispositivos de E/S e a memória. O objetivo principal desta técnica é manter, na maior
parte do tempo, processador e dispositivos de E/S ocupados.
A unidade de transferência usada no mecanismo de Buffering é o REGISTRO.
Buffering
3.5
• Neste caso enquanto o processador manipula o dado localizado no buffer, o dispositivo realiza outra operação de leitura no mesmo instante.
Sppoling
3.6
• A técnica de spooling foi introduzida no final dos anos 1950 para aumentar o grau de concorrência e a eficiência dos sistemas operacionais.
É semelhante a técnica de Buffering, utiliza uma área em disco como se fosse um grande buffer. Neste caso podem ser lidos ou gravados em disco,
enquanto os programas são executados concorrentemente.
Sppoling
3.6
• Atualmente essa técnica está na maioria dos sistemas operacionais, sendo utilizada no
gerenciamento de impressão. No momento em que um comando de impressão é
executado, as informações que serão impressas são gravadas antes em um
arquivo em disco, conhecido com arquivo de SPOOL, liberando imediatamente o
Sppoling
3.6
O sistema operacional encarrega-se de
direcionar o conteúdo do arquivo de spool para a impressora.
Reentrância
3.7
É a capacidade de um código executável ser compartilhado por diversos usuários,
exigindo apenas uma cópia do programa esteja na memória.
É comum, em sistemas multiprogramáveis, vários usuários utilizarem os mesmos
aplicativos simultaneamente, como editores de textos e compiladores.
Reentrância
3.7
Permite que cada
usuário possa estar em um ponto diferente do código executável, manipulando dados próprios, exclusivo de cada usuário.