SO - Aula 05 - Concorrencia

21
Sistemas operacionais Aula 05 - Concorrência 17/08/2009 – Turma B 18/08/2009 – Turma A

description

Hardware, Software, ComputadoresSistemas monoprogramáveis,Sistemas multiprogramáveis,Interrupção e exceção,Exceção,Operações de E/S,Buffering,Spooling,Reentrância.

Transcript of SO - Aula 05 - Concorrencia

Page 1: SO - Aula 05 - Concorrencia

Sistemas operacionais

Aula 05 - Concorrência17/08/2009 – Turma B

18/08/2009 – Turma A

Page 2: SO - Aula 05 - Concorrencia

Introdução

Os sistemas operacionais podem ser vistos como um conjunto de rotinas que executam concorrentemente de forma ordenada

A execução de instruções em paralelo permite que diversas tarefas sejam executadas concorrentemente

Sistemas multiprogramáveis surgiram a partir das limitações dos sistemas monoprogramáveis

Page 3: SO - Aula 05 - Concorrencia

Sistemas monoprogramáveis

O processador fica dedicado exclusivamente a uma tarefa (desperdício no uso do processador)

Enquanto uma leitura de disco é realizada, o processador fica esperando

E/S muito lentas em relação ao processador Somente um programa fica na memória,

ocasionando a existência de áreas livres sem uso

Page 4: SO - Aula 05 - Concorrencia

Sistemas multiprogramáveis

Vários programas são armazenados em memória, concorrendo com o uso do processador

Enquanto um programa solicita uma operação de E/S, outros programas podem usar o processador

Em sistemas de tempo compartilhado, existe a impressão que o computador está inteiramente dedicado ao usuário

Page 5: SO - Aula 05 - Concorrencia

Interrupção e exceção

São desvios forçados no fluxo de execução de um programa que podem ocorrer devido a eventos

Ocasionados por sinalização de algum dispositivo de hardware externo ao processador ou execução de instruções do próprio programa

Alguns autores fazem distinção entre interrupção e exceção

Page 6: SO - Aula 05 - Concorrencia

Interrupção

Gerada por um evento externo ao programa Mecanismo que torna possível a

implementação de sistemas multiprogramáveis

Em função dele, o SO sincroniza a execução de todas as rotinas e dos programas dos usuários, além de controlar dispositivos

Page 7: SO - Aula 05 - Concorrencia

Interrupção

Na ocorrência da interrupção, o programa em execução é interrompido e o controle desviado para uma rotina de tratamento de interrupção O conjunto de informações sobre a execução deve ser

preservados e restaurados ao final da rotina de tratamento

Page 8: SO - Aula 05 - Concorrencia

Interrupção

Instrução 1Instrução 2Instrução 3Instrução 4

Instrução 5Instrução 6Instrução 7Instrução 8Instrução 9

Salva conteúdo dos registradores na

pilha de controle

Identifica a origem do evento

Obtém o endereço darotina de tratamento

Rotina detratamento

Restaura o conteúdodos registradores

Interrupção

Programa

Page 9: SO - Aula 05 - Concorrencia

Interrupção

Para cada tipo de interrupção existe uma rotina de tratamento associada, para qual o fluxo de execução deve ser desviado

Existem dois métodos para o tratamento de interrupções No primeiro, uma estrutura de dados chamada vetor de

interrupções contém um mapeamento (evento, endereço de tratamento)

No segundo, existe somente uma única rotina de tratamento e um registrador especial guarda o tipo de evento ocorrido

Page 10: SO - Aula 05 - Concorrencia

Interrupção As interrupções são decorrentes de eventos

assíncronos Esses eventos são imprevisíveis, podendo ocorrer

mais de uma vez, como no caso de dispositivos de E/S informarem que precisam da atenção do processador

Page 11: SO - Aula 05 - Concorrencia

Interrupção O processador poderá ignorar a ocorrência de

outras interrupções enquanto executa uma rotina de tratamento (interrupção mascarada)

Caso o processador não permita ignorar interrupções haverá um mecanismo para avaliar as interrupções geradas e definir suas prioridades

Page 12: SO - Aula 05 - Concorrencia

Exceção

É semelhante a uma interrupção, sendo a principal diferença o motivo pelo qual o evento é gerado

Ela é o resultado direto da execução de uma instrução do próprio programa, como uma divisão por zero

Page 13: SO - Aula 05 - Concorrencia

Exceção

É gerada por evento síncrono, enquanto a interrupção é gerada por um evento assíncrono

Um evento síncrono é resultado direto da execução do programa corrente

Sempre que ocorre uma exceção, o controle é desviado para uma rotina de tratamento de exceção

Page 14: SO - Aula 05 - Concorrencia

Operações de E/S

Nos primeiros sistemas computacionais, a comunicação entre processador e periféricos era controlada por instruções de E/S, com detalhes específicos do periférico

Este modelo cria uma forte dependência entre o processador e os dispositivos de E/S

Processador

Memória

Dispositivo E/S

Page 15: SO - Aula 05 - Concorrencia

Operações de E/S

Com o surgimento do controlador ou interface, o processador não mais se comunica com os periféricos diretamente, mas sim através do controlador

Processador

Memória

Controlador Dispositivo E/S

Page 16: SO - Aula 05 - Concorrencia

Buffering

Consiste no uso de uma área de memória principal, para a transferência de dados entre os dispositivos de E/S e a memória

Permite que em uma operação de leitura o dado seja transferido primeiramente para o buffer, liberando imediatamente o dispositivo de entrada para realizar uma nova leitura

Permite minimizar o problema de disparidade de velocidade de processamento existente entre o processador e os dispositivos de E/S

Page 17: SO - Aula 05 - Concorrencia

Spooling

Simultaneous Peripheral Operation On-Line No início, os programas dos usuários eram

submetidos um a um para processamento pelo processador

Como a velocidade de operação dos dispositivos de E/S é muito menor que o processador, era comum que a CPU permanecesse ociosa à espera de programas e dados de entrada ou pelo término de uma impressão

Page 18: SO - Aula 05 - Concorrencia

Spooling

A solução foi armazenar os vários programas e seus dados (jobs), em uma fita magnética e em seguida submetê-los ao processamento

O processador poderia executar sequencialmente os jobs, diminuindo o tempo de processamento e transição entre eles.

Da mesma forma, o resultado do processamento era gravado em fita, para posteriormente ser enviado a impressora

Page 19: SO - Aula 05 - Concorrencia

Spooling

Esta técnica está presente na maioria dos sistemas operacionais para o 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, liberando imediatamente o programa para outras atividades

Page 20: SO - Aula 05 - Concorrencia

Reentrância É comum em sistemas multiprogramáveis, vários

usuários usarem os mesmos aplicativos simultaneamente

Se cada execução do programa por um usuário, trouxesse para memória o código executável, haveria diversas cópias de um mesmo programa na memória principal, o que acarreta um desperdício de memória

Reentrância é a capacidade de um código executável ser compartilhado por diversos usuários, exigindo apenas uma cópia do programa na memória

Page 21: SO - Aula 05 - Concorrencia

Proteção do sistema

O sistema operacional deve implementar mecanismos de proteção que controlam o acesso concorrente aos diversos recursos do sistema para garantir a confiabilidade e a integridade dos programas e dados dos usuários, além do próprio sistema operacional