A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Operacionais

Apresentações semelhantes


Apresentação em tema: "Sistemas Operacionais"— Transcrição da apresentação:

1 Sistemas Operacionais
Noções de Concorrência

2 Interrupção e Exceção A interrupção é o mecanismo que tornou possível a implementação da concorrência nos computadores, sendo o fundamento básico dos sistemas multiprogramáveis. É em função desse mecanismo que o sistema operacional sincroniza a execução de todas as suas rotinas e dos programas dos usuários, além de controlar dispositivos.

3 Interrupção e Exceção 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. Nesse caso, o processador deve interromper o programa para tratar o término da operação. Ao final da execução de cada instrução, a unidade de controle verifica a ocorrência de algum tipo de interrupção.

4 Interrupção e Exceção Nesse caso, o programa em execução é interrompido e o controle desviado para uma rotina responsável por tratar o evento ocorrido, denominada rotina de tratamento de interrupção. Para que o programa possa posteriormente voltar a ser executado, é necessário que, no momento da interrupção, um conjunto de informações sobre a sua execução seja preservado. Essas informações consistem no conteúdo de registradores, que deverão ser restaurados para a continuação do programa.

5 Interrupção e Exceção Aplicação Rotina de Tratamento
Salva o conteúdo dos registradores na pilha de controle Interrupção ou Exceção Identifica a origem da interrupção Obtém o endereço da rotina de tratamento Restaura o conteúdo dos registradores

6 Interrupção e Exceção Passos realizados após um pedido de interrupção ser aceito

7 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 deve ser desviado. A identificação do tipo de evento ocorrido é fundamental para determinar o endereço da rotina de tratamento. No momento da ocorrência de uma interrupção, o processador deve saber para qual rotina de tratamento deve ser desviado o fluxo de execução. O principal método 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.

8 Interrupção e Exceção Uma exceção é semelhante a uma interrupção, sendo a principal diferença o motivo pelo qual o evento é gerado. A exceção é resultado direto da execução de uma instrução do próprio programa, como a divisão de um número por zero, ou um overflow em uma operação aritmética.

9 Interrupção e Exceção Sistemas operacionais são dirigidos por interrupções Interrupções por hardware Interrupções por erro ou pedido de software (exceções ou traps) Divisão por zero Loop infinito Tentativas de modificação de outros processos ou do sistema operacional

10 Operações de entrada e saída
Existem três maneiras básicas de executar operações de Entrada e Saída. E/S controlada por programa. E/S controlada por interrupção. E/S controlada por DMA.

11 E/S controlada por programa
Nesta técnica, o processador sincronizava-se com o periférico para o início da transferência de dados. Após iniciada a transferência, o sistema ficava permanentemente testando o estado do periférico para saber quando a operação chegaria ao seu final. Este controle mantinha o processador ocupado até o término da operação de E/S. Como o processador executa uma instrução muito mais rapidamente que a realização de uma operação de E/S, havia um enorme desperdício de tempo da CPU.

12 E/S controlada por interrupção
Com a implementação do mecanismo de interrupção, as operações de E/S puderam ser realizadas de uma forma mais eficiente. Neste caso, o controlador interromperia o processador para avisar do término da operação de E/S. Com este mecanismo, o processador, após a execução de um comando de leitura ou gravação, permanece livre para o processamento de outras tarefas.

13 E/S controlada por interrupção
O controlador por sua vez, ao receber um sinal de leitura fica encarregado de ler os blocos do disco e armazená-los em memória ou registradores próprios. Em seguida, o controlador sinaliza uma interrupção ao processador. Quando o processador atende à interrupção, a rotina responsável pelo tratamento transfere os dados dos registradores do controlador para a memória principal. Ao término da transferência, o processador pode voltar a executar o programa interrompido e o controlador fica novamente disponível para outra operação.

14 E/S controlada por DMA Permite que um bloco de dados seja transferido entre a memória principal e dispositivos de E/S sem a intervenção do processador, exceto no início e no final da transferência. Quando o sistema deseja ler ou gravar um bloco de dados, o processador informa ao controlador sua localização, o dispositivo de E/S, a posição inicial da memória de onde os dados serão lidos ou gravados e o tamanho do bloco. Com estas informações, o controlador de DMA realiza a transferência entre o periférico e a memória principal, e o processador é somente interrompido no final da operação. A área de memória utilizada pelo controlador de DMA é chamada de buffer de entrada e saída.

15 E/S controlada por DMA No momento em que uma transferência de dados através da técnica de DMA é realizada, o controlador deve assumir, momentaneamente, o controle do barramento. Como a utilização do barramento é exclusiva de um dispositivo, o processador deve suspender o acesso ao barramento, temporariamente, durante a operação de transferência. Este procedimento não gera uma interrupção, e o processador pode realizar tarefas, desde que sem a utilização do barramento, como um acesso à memória cache.

16 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

17 Canal de E/S Arquitetura de Sistemas Operacionais – Machado/Maia

18 Buffering Buffer(RAM) é uma região de memória física utilizada para armazenar temporariamente os dados enquanto eles estão sendo movidos de um lugar para outro. Normalmente, os dados são armazenados em um buffer enquanto eles são recuperados de um dispositivo de entrada (como um microfone) ou pouco antes de serem enviados para um dispositivo de saída (como auto-falantes). Contudo, um buffer pode ser utilizado quando movem-se dados entre processos dentro de um computador. Isto é comparável com os buffers de telecomunicações. Os buffers podem ser implementados em um local de memória fixa no hardware - ou utilizando-se um buffer de dados virtual em software, apontando para um local na memória física. Em todos os casos, os dados armazenados em um buffer de dados são armazenados em um meio de armazenamento físico.

19 Buffering A maioria dos buffers são implementados em software, que normalmente usa a RAM mais rápida para armazenar dados estáveis, devido ao tempo de acesso muito mais rápido comparado com as unidades de disco rígido. Os buffers normalmente são usados quando há uma diferença entre a taxa a qual os dados são recebidos e a taxa a qual eles podem ser processados, ou no caso em que estas taxas são variáveis, por exemplo em um spooler de impressão ou em streaming de vídeos online. Um buffer frequentemente ajusta o tempo pela implementação de um algoritmo de fila (ou FIFO) na memória, simultaneamente escrevendo dados na fila em uma taxa e lendo-os em outra taxa.

20 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

21 Buffering Arquitetura de Sistemas Operacionais – Machado/Maia

22 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

23 Spooling Refere-se a um processo de transferência de dados colocando-os em uma área de trabalho temporária onde outro programa pode acessá-lo para processá-lo em um tempo futuro. A técnica de Spooling consiste em colocar jobs em um buffer, uma área da memória ou de um disco onde um dispositivo pode acessa-la quando estiver preparada. O Spooling é útil porque os dispositivos acessam dados em diferentes velocidades, o buffer provê uma estação de espera onde o dado pode ficar armazenado enquanto o dispositivo mais lento fica carregando. O mais comum exemplo de spooling é o da primeira impressão.

24 Spooling Como a impressora é um periférico muito mais lento que o computador, este teria de ficar esperando a impressão terminar para, então, executar uma nova tarefa. Para resolver esse problema, a maioria das impressoras tem um buffer, ou seja, uma memória interna utilizada para armazenar temporariamente os dados que estão vindo do computador. Com isso, os dados são transferidos do computador para o buffer, liberando-o mais rapidamente. Quanto maior o buffer da impressora, mais cedo esta liberará o computador.

25 Spooling No entanto, mesmo existindo esse recurso, o tamanho do buffer da impressora não é o suficiente para armazenar documentos grandes de uma só vez. Em outras palavras, na impressão de documentos pequenos, o aplicativo transfere os dados para o buffer da impressora, ficando livre para executar outra tarefa. No caso de documentos grandes, mesmo com o buffer, a impressora "prende" a atenção do aplicativo.

26 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

27 Spooling A solução adaptada por todos os sistemas operacionais (com exceção do DOS) chama-se spooler. O aplicativo gera a impressão e transfere os dados a serem impressos para o spooler, um programa que ficará sendo executado em segundo plano. Esse programa ficará gerenciando a impressão, enquanto o aplicativo ficará livre para executar outra tarefa ou trabalhar com outro documento. É possível, inclusive, fechar o aplicativo que gerou a impressão.

28 Reentrância Refere-se a qualidade de uma sub-rotina ser executada concorrentemente de forma segura, isto é, a subrotina pode ser invocada enquanto está em execução. Para atender essa qualidade, a sub-rotina não deve armazenar dados estáticos (globais) não constantes, não deve retornar o endereço de dados estáticos não constantes, deve trabalhar somente com os dados fornecidos pela subrotina que a invocou, não deve contar com exclusão mútua para recursos construídos com o modelo singletone só deve invocar sub-rotinas que também atendam as qualidades anteriores, isto é, que também sejam reentrantes.[1]

29 Reentrância Vários níveis de prioridade de tarefas ou multiprocessamento geralmente complicam o controle de código reentrante. Código de entrada/saída geralmente não é reentrante pois manipula recursos singleton como discos rígidos. Entretanto, a reentrância é uma funcionalidade importante da programação funcional.

30 Reentrância Arquitetura de Sistemas Operacionais – Machado/Maia


Carregar ppt "Sistemas Operacionais"

Apresentações semelhantes


Anúncios Google