apostila 3 concorrência

27
rquitetura de Sistemas Operacionais – Machado/Maia Cap. 3 – Concorrência 1 Arquitetura de Sistemas Arquitetura de Sistemas Operacionais Operacionais Apostila 3 Apostila 3 Concorrência Concorrência

Upload: paulo-fonseca

Post on 27-Jun-2015

97 views

Category:

Technology


0 download

DESCRIPTION

concorrência em sistemas operacionais

TRANSCRIPT

Page 1: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 1

Arquitetura de Sistemas Arquitetura de Sistemas OperacionaisOperacionais

Apostila 3Apostila 3ConcorrênciaConcorrência

Page 2: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 2

Sumário

• Introdução• Interrupção e exceção• Operações de E/S• Buffering• Spooling• Reentrância• Proteção do sistema

Page 3: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 3

Concorrência

• É a possibilidade de o processador executar instruções em paralelo com operações de E/S.

• Isto permite que diversas tarefas sejam executadas concorrentementeconcorrentemente.

• Este é o princípio básico para o projeto e implementação dos sistemas multiprogramáveis.

Page 4: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 4

Concorrência• Os SOs podem ser vistos como um conjunto de rotinas

que executam concorrentemente de forma ordenada. A possibilidade de o processador executar instruções em paralelo com operações de E/S permite que diversas tarefas sejam executadas concorrentemente.

• Nos sistemas monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado exclusivamente a uma tarefa, com o consequente desperdício na utilização do mesmo.

• A Tabela 3.1 apresenta um exemplo de um programa que lê registros de um arquivo e executa, em média, 100 instruções por registro lido.

• Neste caso, o processador gasta aproximadamente 93% do tempo esperando o dispositivo de E/S concluir a operação para continuar o processamento.

Page 5: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 5

Exemplo de utilização do sistema

Leitura de um registro 0,0015s

Execução de 100 instruções 0,0001s

Total 0,0016s

% utilização da CPU (0,0001/0,0016)=0,0625=6,25%

A tabela abaixo apresenta um exemplo de A tabela abaixo apresenta um exemplo de um programa que lê registros de um arquivo um programa que lê registros de um arquivo e executa, em média, 100 instruções por e executa, em média, 100 instruções por registro.registro.

Neste caso o processador gasta aproximadamente 93% do tempo esperando o dispositivo de E/S concluir a operação para continuar o processamento.

Page 6: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 6

Concorrência

• Outro aspecto a ser considerado é a subutilização da memória principal. Um programa que não ocupe totalmente a memória ocasiona a existência de áreas livres sem utilização.

• 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 uma operação de E/S, outros programas poderão usar o processador.

Page 7: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 7

concorrência

Sistema Monoprogramável x Sistema multiprogramávelSistema Monoprogramável x Sistema multiprogramável

livreUCP

E/S

tempoMonoprogramável

tempoMultiprogramável

1 1

1

2

A utilização concorrente da UCP é implementada no Sist. A utilização concorrente da UCP é implementada no Sist. MultProg., de maneira que quando um programa perde o MultProg., de maneira que quando um programa perde o uso da UCP e depois retorna para continuar sua execução, uso da UCP e depois retorna para continuar sua execução, seu estado deve ser idêntico ao do momento em que foi seu estado deve ser idêntico ao do momento em que foi interrompido.interrompido.

interrupção

Page 8: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 8

Concorrência

• As vantagens proporcionadas pela multiprogramação podem ser percebidas onde existe um sistema computacional com um disco, um terminal e uma impressora, como mostra a figura seguinte.

• Neste ambiente, são executados três programas (Prog1, Prog2 e Prog3) que possuem características de processamento distintas.

Page 9: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 9

Características

Utilização da CPUOperações de E/STempo de processamentoMemória utilizadaUtilização do discoUtilização do terminalUtilização da impressora

Prog1 Prog2 Prog3

AltaPoucas5 min50 KbNãoNãoNão

BaixaMuitas15 min100 Kb

NãoSimNão

BaixaMuitas10 min80 KbSimNãoSim

Características de execução dos programas

Monoprogramação Utilização da CPU

Utilização de memóriaUtilização de discoUtilização de impressoraTempo total processamentoTaxa de througput

Multiprogramação 17%

30%33%33%

30 min6 prog/hora

33%67%67%67%

15 min12 prog/hora

Comparação entre monoprogramação e multiprogramação

Page 10: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 10

EventosApós o sistema operacional ser carregado ele geralmente espera a ocorrência de um evento inicial, como por exemplo ‘init’, e espera que algum evento ocorra.

Este evento geralmente é uma interrupção de hardware ou software.

Interrupção por hardware = sinal para a CPU através do barramento do sistema.

Interrupção por software = uma operação especial denominada chamada ao sistema. (system call) ou chamada ao monitor (monitor call).

Page 11: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 11

Evento: Interrupção

• Durante a execução de um programa, alguns eventos inesperados podem ocorrer, ocasionando um desvio forçado no seu fluxo de execução.

• Este tipos de eventos são chamados interrupções.

Page 12: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 12

Interrupções

• 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.

Page 13: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 13

Eventos que podem disparar uma interrupção

• Conclusão de uma operação de E/S.

• Divisão por zero.• Acesso inválido à memória.• Um pedido por algum serviço de

sistema operacional.• Para cada interrupção, uma rotina

de serviço é designada responsável para tratar a interrupção.

Page 14: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 14

Tratamentos 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.

Page 15: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 15

Mecanismos de interrupções1. Um sinal de interrupção é gerado para o processador.

2. Após o término da execução da instrução corrente, o processamento identifica o pedido de interrupção;

3. Os conteúdos dos registradores PC e de status são salvos;

4. O processador identifica qual a rotina de tratamento que será executada e carrega o PC com o endereço inicial desta rotina;

5. A rotina de tratamento salva o conteúdo dos demais registradores do processador na pilha de controle do programa;

6. A rotina de tratamento é executada;

7. Após o término da execução da rotina de tratamento, os registradores de uso geral são restaurados, além do registrador de status e o PC, retornando à execução do programa interrompido.

Page 16: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 16

Programa

Obtém o endereço da rotina detratamento

Rotina deTratamento

Identifica a origem do evento

Instrução 1Instrução 2Instrução 3Instrução 4Instrução 5Instrução 6Instrução 7Instrução 8Instrução 9

Instrução n

Salva conteúdo dos registradoresNa pilha de controle

Restaura o conteúdoDos registradores

Mecanismos de interrupções

Interrupção

Page 17: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 17

Tratamentos de interrupção

• Existem dois métodos utilizados para o tratamento de interrupções.

• O primeiro 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.

• Um segundo método utiliza um registrador de status que armazena o tipo do 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 e tratá-la de maneira adequada.

Page 18: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 18

Tratamentos de interrupção

• 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. Isto 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 serão ignoradas, ou seja, não receberão tratamento. Interrupções com esta característica são denominadas interrupções mascaráveis.

Page 19: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 19

Interrupções

• Sistemas operacionais modernos são baseados em interrupções.

• Se não houver:- processos para executar, - nenhum dispositivo de E/S ao qual

fornecer serviço e, - nenhum usuário a ser atendido, • O sistema operacional ficará

parado, esperando que algo aconteça.

Page 20: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 20

Operações de E/S

• Controlador

M em óriaPr in cip a lU C P

C on tro la do r

D ispo sitivo s d e E/ S

Page 21: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 21

Operações de E/S1. Instruções de entrada/saída = todo o

controle do periférico era executado pelo próprio processador.

2. Controlador ou interface = permitiu ao processador agir de maneira independente do dispositos de E/S.

3. E/S controlada por programa = mantinha o processador ocupado até o término da operação.

4. Polling E/S = o sistemas testava cada dispositivo a certos intervalos de tempo. Esta técnica permitiu o surgimento dos primeiros sistemas multiprogramáveis.

Page 22: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 22

Operações de E/S

• Canal de E/S

M em óriaPr in cip a lU C P

C an a l de E/ S

C on tro la do r

D ispo sitivo s de E/ S

C on tro la do r

D ispo sitivo s de E/ S

Page 23: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 23

Operações de E/S5. E/S controlada por interrupção = o próprio

controlador interrompia a CPU para avisar o término da operação.

6. DMA(Direct Memory Access) = permite que blocos de dados seja transferido entre a memória principal e dispositivos de E/S, sem a intervenção do processador.

Page 24: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 24

Buffering

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.

Controlador

Gravação

Leitura

Gravação

Leitura

MemóriaPrincipal

BufferBuffer

Page 25: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 25

Spooling• A técnica de spooling (simultaneous peripheral

operation on-line) foi introduzida no final dos anos de 1950 para aumentar o grau de concorrência e a eficiência dos sistemas operacionais.

• Esta técnica é semelhante à técnica de buffering, utiliza uma área de disco como se fosse um grande buffer.

SistemaOperacional

Programa Arquivode Spool

Impressora

Page 26: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 26

ReentrânciaÉ a capacidade de um código executável (código reentrante) ser compartilhado por diversos usuários, exigindo que apenas uma cópia do programa esteja na

memória.

Memória Principal

Área de Dados do Usuário A

Área de Dados do Usuário B

Área de Dados do Usuário C

Área de Dados do Usuário D

Usuário A

Usuário B

Usuário C

Código reentrante

Editor de Texto

Usuário D

Utilitários do sistema, como editores de texto e

compiladores são exemplos de código reentrante.

Page 27: Apostila 3   concorrência

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

Cap. 3 – Concorrência 27

Proteção do sistema• A eficiência proporcionada por um ambiente

multiprogramável resulta em maior complexidade do SO, já que alguns problemas de proteção surgem como decorrência desse tipo de implementação.

• Se considerarmos que diversos usuários estão compartilhando os mesmos recursos, deve existir uma preocupação em garantir a confiabilidade e a integridade dos programas e dos dados dos usuários, além do próprio SO.

• Como vários programas ocupam a memória simultaneamente, cada usuário possui uma área reservada onde seus dados e código são armazenados. O SO deve possui mecanismos de proteção de forma a preservar estas informações. Caso um programa tente acessar uma posição de memória fora de sua área, um erro indicando violação de acesso deve ocorrer.

• Para que diferentes programas tenham direitos de compartilhar uma mesma área de memória, mecanismos devem ser oferecidos pelo SO para que a comunicação seja feita de forma sincronizada, evitando problemas de consistência.