Apostila 3 concorrência
-
Upload
paulo-fonseca -
Category
Technology
-
view
97 -
download
0
description
Transcript of 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
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
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.
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.
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.
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.
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
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.
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
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).
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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.
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
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.
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
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
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.
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.