Buscar

SO_05 - Concorrência

Prévia do material em texto

Sistemas Operacionais
Prof. Fernando Eryck
2012.2
Redes de Computadores
SUMÁRIO
� Interrupções e Exceções
� Operações de Entrada/Saída
� Buffering
� Spooling
� Reentrância
Concorrência
�Sistemas oepracionais podem ser vistos como um conjunto de 
rotinas executadas de forma concorrente e ordenada. 
� A possibilidade de o processador executar instruções ao mesmo 
tempo que outras operações, como por exemplo, operação de E/S, tempo que outras operações, como por exemplo, operação de E/S, 
permite que diversas tarefas sejam executadas concorrentemente. 
Interrupções e Exceções
� Durante a execução de um programa podem ocorrer alguns 
eventos inesperados, ocasionando um desvio forçado na sua 
execução.
� Eventos � Eventos 
� Interrupção
� Exceção
� Interrupção é um mecanismo que o SO utiliza para sincronizar a 
execução de todas as suas rotinas e dos programas dos usuários, 
além de controlar os dispositivos.
Gerados em conseqüência da sinalização de algum 
dispositivo de hardware externo ao processador ou
da execução de instruções do próprio programa. 
Interrupções e Exceções
� A interrupção é sempre gerada por algum evento externo ao 
programa, independe da instrução que está sendo executada. 
Interrupções e Exceções
� Ex. 
1. O processador está executando um programa qualquer (em outras 
palavras, um fluxo de execução);
2. Um pacote vindo da rede é recebido pela placa Ethernet;2. Um pacote vindo da rede é recebido pela placa Ethernet;
3. A placa envia uma solicitação de interrupção (IRQ) ao processador;
4. O processamento é desviado do programa em execução para a rotina de 
tratamento da interrupção
5. A rotina de tratamento é executada para receber as informações da 
placa de rede (via barramentos de dados e de endereços) e atualizar as 
estruturas de dados do sistema operacional;
6. A rotina de tratamento da interrupção é finalizada e o processador 
retorna à execução do programa que havia sido interrompido.
Interrupções e Exceções
� Para cada tipo de interrupção existe uma rotina de tratamento 
associada
� Fundamental para determinar o endereço da rotina de 
tratamentotratamento
�Métodos de tratamento de interrupções
� Vetor de interrupção – contém o endereço inicial de todas 
as rotinas de tratamento existentes associada a cada tipo de 
evento
� Registrador de status – armazena o tipo de evento ocorrido, 
e testa através de uma única rotina para identificar o tipo de 
interrupção. 
Interrupções e Exceções
� Múltiplas interrupções
�Diversos dispositivos informando ao processador que estão 
prontos para enviar ou receber dados. 
�Interrupções mascaráveis�Interrupções mascaráveis
�Rotina de tratamento que ignora/evita a ocorrência de 
múltiplas interrupções durante a execução da rotina de 
tratamento 
�Controlador de pedidos de interrupção
�Outra forma de tratamento de múltiplas interrupções. 
Dispositivo responsável por avaliar as interrupções geradas e 
suas prioridades de atendimento.
Interrupções e Exceções
� Exceção – semelhante a interrupção, sendo a principal 
diferença o motivo pelo qual o evento é gerado. 
� Exceção é resultado direto da execução de uma instrução do 
próprio programa. próprio programa. 
� Ex.: Overflow (ocorre qdo uma programa recebe mais dados do 
que ele está preparado para armazenar no buffer)
�Da mesma forma que na interrupção, sempre que uma exceção 
é gerada o programa em execução é interrompido e o controle é 
desviado para uma rotina de tratamento de exceção.
Operações de Entrada/Saída
� Nos primeiros sistemas computacionais, a comunicação entre o 
processador e os periféricos era controlada por um conjunto de 
instruções, denominadas instruções de E/S, executadas pelo 
próprio processador. 
� Esse modelo criava certa dependência entre o processador e os 
dispositivos de E/S.
� O surgimento do controlador ou interface permitiu ao 
processador agir de maneira idependente dos dispositivos de E/S.
� O processador não se comunicava mais diretamente com os 
periféricos,mas sim através do controlador.
Operações de Entrada/Saída
� O controlador simplificou as instruções de E/S por não ser mais 
necessário especificar detalhes de operação dos periféricos. 
Memória
PrincipalUCP
Controlador
Dispositivos de E/S
Operações de Entrada/Saída
� Operações de E/S trabalham em conjunto com o mecanismo de 
interrupção, permitindo uma maior eficiência.
� Em vez do sistema verificar o estado de uma operação de 
E/S pendente, o próprio controlador interrompe o E/S pendente, o próprio controlador interrompe o 
processador para avisar da realização de uma operação, por 
exemplo, o término de uma operação.
�Quando o sistema fica permanentemente testando o estado do 
periférico é chamado de E/S controlada por programa
� Com o mecanismo E/S controlador por interrupção, o 
processador, após a execução de um comando de leitura ou 
gravação, permanece livre para o processamento de outras 
tarefas. 
Operações de Entrada/Saída
� DMA (Direct Memory Access) – 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
� Ao ocorrer uma leitura ou gravação de bloco de dados, o � Ao ocorrer uma leitura ou gravação de 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 e 
gravados e o tamanho do bloco.
� O controlador realiza a transferência entre a memória e o periférico, e o 
processador é somente interrompido no final da operação.
Operações de Entrada/Saída
� Extensão DMA, possibilitou o surgimento do canal e/ou 
processador de E/S. 
� O canal é um processador com capacidade de executar programas 
de E/S, permitindo um controle total sobre operações de E/S. 
Memória
PrincipalUCP
Canal de E/S
Controlador
Dispositivos de E/S
Controlador
Dispositivos de E/S
Permite o controle de múltiplos dispositivos através de diversos controladores
Buffering
� Consiste na utilização de uma área na memória principal, para 
a transferência de dados entre os dispositivos de E/S e a memória 
principal.
� Enquanto o processador manipula o dado localizado no buffer, o 
dispositivo realiza outra operação de leitura no mesmo instante.dispositivo realiza outra operação de leitura no mesmo instante.
Memória
Principal
UCP Buffer
gravação gravação
leitura leitura
Controlador
Spooling 
� Semelhante ao buffering, só que utiliza uma área em disco 
como se fosse um grande buffer.
� Os dados podem ser lidos ou gravados em disco, enquanto 
programas são executados concorrentemente.
�Utilizada para o gerenciamento de impressão.
� Informações que serão impressas são gravadas no arquivo 
spool, liberando o programa para outras atividades
Programa ImpressoraArquivode Spool
Sistema OperacionalSistema Operacional
Reentrância
� É a capacidade de um código executável ser compartilhado por 
diversos usuários, exigindo que apenas uma cópia do programa 
esteja na memória
� A reentrância permite que cada usuário possa estar em um 
ponto diferente do código reentrante, manipulando dados ponto diferente do código reentrante, manipulando dados 
próprios, exclusivos de cada usuário
Memória Principal
código reentrante
área de dados do usuário A
usuário A usuário C
usuário B usuário D
área de dados do usuário B
área de dados do usuário C
área de dados do usuário D

Continue navegando