20
Sistemas Operacionais Concorrência

Sistemas Operacionais - Amazon Simple Storage Service · Sistemas Operacionais podem ser vistos como um conjunto de rotinas executadas de forma concorrente e ordenada. O conceito

Embed Size (px)

Citation preview

Sistemas

Operacionais Concorrência

Sumário

1. Introdução

2. Sistemas Multiprogramáveis

3. Interrupções e Exceções

4. Operações de E/S

1. Entrada e Saída Controlada por Programa

2. Evolução da Entrada e Saída Controlada por Programa

3. Entrada e Saída Controlada por Interrupção

4. Entrada e Saída por Acesso Direto à Memória (DMA)

1. Introdução

Sistemas Operacionais podem ser vistos como um conjunto de rotinas executadas de forma concorrente e ordenada.

O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas multiprogramáveis.

2. Sistemas Multiprogramáveis

Os sistemas operacionais multiprogramáveis surgiram devido às limitações existentes nos sistemas monoprogramáveis.

Quais eram as limitações dos sistemas monoprogramáveis/monotarefas?

Nos sistemas monoprogramáveis somente um programa pode estar em execução por vez.

O processador permanece dedicado, exclusivamente, a tarefa em execução, desperdiçando o seu uso.

2. Sistemas Multiprogramáveis

Por exemplo: enquanto uma leitura em disco é realizada, o processador permanece ocioso.

2. Sistemas Multiprogramáveis

Os sistemas monoprogramáveis podem subutilizar outro recurso além do processador?

Em sistemas monoprogramáveis pode também ocorrer a subutilização da memória principal.

Qual é a principal diferença entre os sistemas multiprogramáveis e monoprogramáveis?

Nos sistemas multiprogramáveis, vários programas podem estar residentes em memória, concorrendo pela utilização do processador.

Dessa forma, quando um programa solicita, por exemplo, uma operação de E/S, outros programas podem utilizar o processador.

2. Sistemas Multiprogramáveis

A concorrência deve ser implementada da seguinte maneira:

1. O programa perde o uso do processador.

2. O programa retorna para continuar o processamento.

3. O estado do programa deve ser idêntico ao do momento em que foi interrompido.

O programa deverá continuar sua execução exatamente na instrução seguinte àquela em que havia parado, aparentando ao usuário que nada aconteceu.

3. Interrupções e Exceções

Interrupção e exceção são eventos inesperados que ocorrem no sistema, ocasionando um desvio forçado no seu fluxo de execução.

Qual a principal diferença entre interrupção e exceção?

A principal diferença é o motivo pelo qual o evento é gerado.

A interrupção é gerada por algum evento externo ao programa, independente da instrução que está sendo executada.

Já a exceção é depende de instrução do próprio programa. Por exemplo: divisão de número por zero e ocorrência de overflow em operação aritmética.

3. Interrupções e Exceções

As interrupções são geradas por eventos assíncronos.

Podem ocorrer múltiplas vezes simultaneamente.

Diversos dispositivos podem informar ao processador que estão prontos.

de Interrupção

Interrupção

3. Interrupções e Exceções

A exceção é gerada por um evento síncrono.

Os eventos síncronos só podem ocorrer um de cada vez.

A mesma entrada, a exceção ocorrerá sempre na mesma instrução.

de Exceção

Exceção

4. Operações de E/S

O processador não se comunica diretamente com os dispositivos de E/S, mas sim por meio do controlador ou interface de E/S.

4. Operações de E/S

Existem basicamente 3 métodos (fundamentais) pelos quais o processador gerencia as operações de E/S.

1. Entrada e Saída Controlada por Programa:

O processador sincroniza-se com o controlador, para o início da transferência de dados.

Após iniciada a transferência, o programa fica permanentemente testando o estado do controlador, para saber quando a operação está concluída.

4. Operações de E/S

Qual o problema que existe em relação ao método de Entrada e Saída Controlada por Programa?

O processador é mantido ocupado até o término da operação de E/S (busy wait).

Enorme desperdício de tempo do processador.

O processador executa uma instrução muito mais rapidamente que a realização de uma operação de E/S.

4. Operações de E/S

1. Evolução da Entrada e Saída Controlada por Programa

Após o início da transferência dos dados, o processador fica livre para realizar outras tarefas.

O processador deveria testar os controladores, de tempos em tempos, para saber se as transferências de dados já haviam terminado (polling).

Contudo o processamento ainda é interrompido frequentemente para testar estados.

4. Operações de E/S

2. Entrada e Saída Controlada por Interrupção

O processador permanece livre para o processamento de outras tarefas, após a execução de um comando de leitura ou gravação.

O próprio controlador interrompe o processador para avisar do término da operação.

Ao invés do processador verificar periodicamente o estado do controlador.

4. Operações de E/S

Passos da Entrada e Saída Controlada por Interrupção:

1. O controlador, ao receber um sinal de leitura, fica encarregado de ler os blocos do disco e armazená-los em registradores próprios.

2. O controlador sinaliza uma interrupção ao processador.

3. A rotina de tratamento de interrupção transfere os dados dos registradores do controlador para a memória principal.

4. Ao término da transferência, o processador pode voltar a executar o programa interrompido.

O método de Entrada e Saída pode ser melhorado? Como?

4. Operações de E/S

3. Entrada e Saída por Acesso Direto à Memória (DMA)

Operação de leitura

principal

4. Operações de E/S

A extensão do conceito de DMA possibilitou o surgimento do Canal de Entrada e Saída introduzido pela IBM.

O canal é um processador com capacidade de executar programas de entrada e saída, permitindo o controle total sobre operações de E/S.

As instruções do programa de entrada e saída são armazenadas na memória principal pelo processador principal (UCP).

O Canal de Entrada e Saída realiza a transferência e, ao final, gera uma interrupção, avisando do término da operação.

4. Operações de E/S

Processador de Entrada e Saída

A evolução do Canal de Entrada e Saída permitiu que este possuísse sua própria memória.

Diminuindo ainda mais a intervenção do processador.

Essa evolução é chamada de Processador de Entrada e Saída.

Os dois termos (canal ou processador de E/S) são empregados indistintamente.

[Fim] Concorrência

"A vida não examinada não vale a pena ser vivida.“

Sócrates

Próximo Módulo: Estrutura do SO