SlideShare uma empresa Scribd logo
1 de 27
ArquiteturadeSistemasOperacionais–Machado/Maia
Cap. 3 – Concorrência 1
Arquitetura de SistemasArquitetura de Sistemas
OperacionaisOperacionais
Apostila 3Apostila 3
ConcorrênciaConcorrência
ArquiteturadeSistemasOperacionais–Machado/Maia
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
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
ArquiteturadeSistemasOperacionais–Machado/Maia
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 exemploA tabela abaixo apresenta um exemplo
de um programa que lê registros de umde um programa que lê registros de um
arquivo e executa, em média, 100arquivo e executa, em média, 100
instruções por registro.instruções por registro.
Neste caso o processador gasta aproximadamente 93% do
tempo esperando o dispositivo de E/S concluir a operação
para continuar o processamento.
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
ArquiteturadeSistemasOperacionais–Machado/Maia
Cap. 3 – Concorrência 7
concorrência
Sistema Monoprogramável x Sistema multiprogramável
livreUCP
E/S
tempo
Monoprogramável
tempo
Multiprogramá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 oMultProg., 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 foiseu estado deve ser idêntico ao do momento em que foi
interrompido.interrompido.
interrupçã
o
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
ArquiteturadeSistemasOperacionais–Machado/Maia
Cap. 3 – Concorrência 9
Características
Utilização da CPU
Operações de E/S
Tempo de processamento
Memória utilizada
Utilização do disco
Utilização do terminal
Utilização da impressora
Prog1 Prog2 Prog3
Alta
Poucas
5 min
50 Kb
Não
Não
Não
Baixa
Muitas
15 min
100 Kb
Não
Sim
Não
Baixa
Muitas
10 min
80 Kb
Sim
Não
Sim
Características de execução dos programas
Monoprogramaçã
oUtilização da CPU
Utilização de memória
Utilização de disco
Utilização de impressora
Tempo total processamento
Taxa de througput
Multiprogramaçã
o17%
30%
33%
33%
30 min
6 prog/hora
33%
67%
67%
67%
15 min
12 prog/hora
Comparação entre monoprogramação e
multiprogramação
ArquiteturadeSistemasOperacionais–Machado/Maia
Cap. 3 – Concorrência 10
Eventos
Apó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).
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
ArquiteturadeSistemasOperacionais–Machado/Maia
Cap. 3 – Concorrência 15
Mecanismos de interrupções
1. 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.
ArquiteturadeSistemasOperacionais–Machado/Maia
Cap. 3 – Concorrência 16
Programa
Obtém o endereço da rotina de
tratamento
Rotina de
Tratamento
Identifica a origem do evento
Instrução 1
Instrução 2
Instrução 3
Instrução 4
Instrução 5
Instrução 6
Instrução 7
Instrução 8
Instrução 9
Instrução n
Salva conteúdo dos registradores
Na pilha de controle
Restaura o conteúdo
Dos registradores
Mecanismos de interrupções
Interrupção
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
ArquiteturadeSistemasOperacionais–Machado/Maia
Cap. 3 – Concorrência 20
Operações de E/S
• Controlador
M e m ó r i a
P r i n c i p a l
U C P
C o n t r o l a d o r
D i s p o s i t i v o s d e E / S
ArquiteturadeSistemasOperacionais–Machado/Maia
Cap. 3 – Concorrência 21
Operações de E/S
1. 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.
ArquiteturadeSistemasOperacionais–Machado/Maia
Cap. 3 – Concorrência 22
Operações de E/S
• Canal de E/S
M e m ó r i a
P r i n c i p a l
U C P
C a n a l d e E / S
C o n t r o l a d o r
D i s p o s i t i v o s d e E / S
C o n t r o l a d o r
D i s p o s i t i v o s d e E / S
ArquiteturadeSistemasOperacionais–Machado/Maia
Cap. 3 – Concorrência 23
Operações de E/S
5. 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.
ArquiteturadeSistemasOperacionais–Machado/Maia
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ória
Principal
BufferBuffer
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
Sistema
Operacional
Programa Arquivo
de Spool
Impressora
ArquiteturadeSistemasOperacionais–Machado/Maia
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.
ArquiteturadeSistemasOperacionais–Machado/Maia
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.

Mais conteúdo relacionado

Mais procurados

Sistemas operativos de grande porte
Sistemas operativos de grande porteSistemas operativos de grande porte
Sistemas operativos de grande porte
teacherpereira
 
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosSistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Luiz Arthur
 
Sistemas operativos módulo2 - ms dos
Sistemas operativos   módulo2 -  ms dosSistemas operativos   módulo2 -  ms dos
Sistemas operativos módulo2 - ms dos
teacherpereira
 
Carina E Andreia 9ºB
Carina E Andreia 9ºBCarina E Andreia 9ºB
Carina E Andreia 9ºB
carinandreia
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
Rodrigo Rodrigues
 

Mais procurados (20)

Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisSistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
 
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
 
SO-02 Processos
SO-02 ProcessosSO-02 Processos
SO-02 Processos
 
Sistemas operativos de grande porte
Sistemas operativos de grande porteSistemas operativos de grande porte
Sistemas operativos de grande porte
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosSistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
 
Escalonamento em 3 níveis e Escalonamento por alternância circular
Escalonamento em 3 níveis e Escalonamento por alternância circularEscalonamento em 3 níveis e Escalonamento por alternância circular
Escalonamento em 3 níveis e Escalonamento por alternância circular
 
Categorias de Escalonamento e Objetivos do Algoritmo de Escalonamento
Categorias de Escalonamento e Objetivos do Algoritmo de EscalonamentoCategorias de Escalonamento e Objetivos do Algoritmo de Escalonamento
Categorias de Escalonamento e Objetivos do Algoritmo de Escalonamento
 
Sistemas operativos módulo2 - ms dos
Sistemas operativos   módulo2 -  ms dosSistemas operativos   módulo2 -  ms dos
Sistemas operativos módulo2 - ms dos
 
Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
Hadware
HadwareHadware
Hadware
 
Dispositivos de memória
Dispositivos de memóriaDispositivos de memória
Dispositivos de memória
 
A unidade central de processamento - o que acontece dentro do computador
A unidade central de processamento - o que acontece dentro do computadorA unidade central de processamento - o que acontece dentro do computador
A unidade central de processamento - o que acontece dentro do computador
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de Escalonamento
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
 
Carina E Andreia 9ºB
Carina E Andreia 9ºBCarina E Andreia 9ºB
Carina E Andreia 9ºB
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 

Semelhante a Apostila 3 concorrência

Interrupções e interconexões
Interrupções e interconexõesInterrupções e interconexões
Interrupções e interconexões
PAULO Moreira
 
Sistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoSistemas Operacionais - Introducao
Sistemas Operacionais - Introducao
Luiz Arthur
 
Sistemas operativos de grande porte
Sistemas operativos de grande porteSistemas operativos de grande porte
Sistemas operativos de grande porte
teacherpereira
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
Universal.org.mx
 
Sistemas Operativos De Grande Porte
Sistemas Operativos De Grande PorteSistemas Operativos De Grande Porte
Sistemas Operativos De Grande Porte
arturramisio
 
Automação ind 6_2014
Automação ind 6_2014Automação ind 6_2014
Automação ind 6_2014
Marcio Oliani
 
2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativos
Maria194536
 

Semelhante a Apostila 3 concorrência (20)

SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Interrupções e interconexões
Interrupções e interconexõesInterrupções e interconexões
Interrupções e interconexões
 
gabarito.pdf
gabarito.pdfgabarito.pdf
gabarito.pdf
 
Programação Concorrente - Introdução
Programação Concorrente - IntroduçãoProgramação Concorrente - Introdução
Programação Concorrente - Introdução
 
Sistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoSistemas Operacionais - Introducao
Sistemas Operacionais - Introducao
 
Sistemas operativos de grande porte
Sistemas operativos de grande porteSistemas operativos de grande porte
Sistemas operativos de grande porte
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Silberschatz sistemas operacionais
Silberschatz   sistemas operacionaisSilberschatz   sistemas operacionais
Silberschatz sistemas operacionais
 
ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdf
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Sistemas Operativos De Grande Porte
Sistemas Operativos De Grande PorteSistemas Operativos De Grande Porte
Sistemas Operativos De Grande Porte
 
Hierarquia dos Processadores da Intel.pptx
Hierarquia dos Processadores da Intel.pptxHierarquia dos Processadores da Intel.pptx
Hierarquia dos Processadores da Intel.pptx
 
Automação ind 6_2014
Automação ind 6_2014Automação ind 6_2014
Automação ind 6_2014
 
Conceito de processos
Conceito de processosConceito de processos
Conceito de processos
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativos
 
Atps sistemas operacionais
Atps sistemas operacionaisAtps sistemas operacionais
Atps sistemas operacionais
 

Mais de Paulo Fonseca (20)

Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - nova
 
Apostila 8 sistema de arquivos
Apostila 8   sistema de arquivosApostila 8   sistema de arquivos
Apostila 8 sistema de arquivos
 
Arquitetura 10
Arquitetura 10Arquitetura 10
Arquitetura 10
 
Arquitetura 8 3
Arquitetura 8 3Arquitetura 8 3
Arquitetura 8 3
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
Arquitetura 8 1
Arquitetura 8 1Arquitetura 8 1
Arquitetura 8 1
 
Arquitetura 8
Arquitetura 8Arquitetura 8
Arquitetura 8
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2
 
Arquitetura 7
Arquitetura 7Arquitetura 7
Arquitetura 7
 
Arquitetura 6 1
Arquitetura 6 1Arquitetura 6 1
Arquitetura 6 1
 
Arquitetura 6
Arquitetura 6Arquitetura 6
Arquitetura 6
 
Arquitetura 6 exercícios
Arquitetura 6   exercíciosArquitetura 6   exercícios
Arquitetura 6 exercícios
 
Arquitetura 6 1
Arquitetura 6   1Arquitetura 6   1
Arquitetura 6 1
 
Arquitetura 5
Arquitetura 5Arquitetura 5
Arquitetura 5
 
Arquitetura 4
Arquitetura 4Arquitetura 4
Arquitetura 4
 
Arquitetura 4 complemento de 2
Arquitetura 4   complemento de 2Arquitetura 4   complemento de 2
Arquitetura 4 complemento de 2
 
Arquitetura 2
Arquitetura 2Arquitetura 2
Arquitetura 2
 
Arquitetura digital works
Arquitetura   digital worksArquitetura   digital works
Arquitetura digital works
 
Arquitetura 9
Arquitetura 9Arquitetura 9
Arquitetura 9
 
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - nova
 

Apostila 3 concorrência

  • 1. ArquiteturadeSistemasOperacionais–Machado/Maia Cap. 3 – Concorrência 1 Arquitetura de SistemasArquitetura de Sistemas OperacionaisOperacionais Apostila 3Apostila 3 ConcorrênciaConcorrência
  • 2. ArquiteturadeSistemasOperacionais–Machado/Maia 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
  • 3. ArquiteturadeSistemasOperacionais–Machado/Maia 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.
  • 4. ArquiteturadeSistemasOperacionais–Machado/Maia 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.
  • 5. ArquiteturadeSistemasOperacionais–Machado/Maia 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 exemploA tabela abaixo apresenta um exemplo de um programa que lê registros de umde um programa que lê registros de um arquivo e executa, em média, 100arquivo e executa, em média, 100 instruções por registro.instruções por registro. Neste caso o processador gasta aproximadamente 93% do tempo esperando o dispositivo de E/S concluir a operação para continuar o processamento.
  • 6. ArquiteturadeSistemasOperacionais–Machado/Maia 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.
  • 7. ArquiteturadeSistemasOperacionais–Machado/Maia Cap. 3 – Concorrência 7 concorrência Sistema Monoprogramável x Sistema multiprogramável livreUCP E/S tempo Monoprogramável tempo Multiprogramá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 oMultProg., 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 foiseu estado deve ser idêntico ao do momento em que foi interrompido.interrompido. interrupçã o
  • 8. ArquiteturadeSistemasOperacionais–Machado/Maia 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.
  • 9. ArquiteturadeSistemasOperacionais–Machado/Maia Cap. 3 – Concorrência 9 Características Utilização da CPU Operações de E/S Tempo de processamento Memória utilizada Utilização do disco Utilização do terminal Utilização da impressora Prog1 Prog2 Prog3 Alta Poucas 5 min 50 Kb Não Não Não Baixa Muitas 15 min 100 Kb Não Sim Não Baixa Muitas 10 min 80 Kb Sim Não Sim Características de execução dos programas Monoprogramaçã oUtilização da CPU Utilização de memória Utilização de disco Utilização de impressora Tempo total processamento Taxa de througput Multiprogramaçã o17% 30% 33% 33% 30 min 6 prog/hora 33% 67% 67% 67% 15 min 12 prog/hora Comparação entre monoprogramação e multiprogramação
  • 10. ArquiteturadeSistemasOperacionais–Machado/Maia Cap. 3 – Concorrência 10 Eventos Apó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).
  • 11. ArquiteturadeSistemasOperacionais–Machado/Maia 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.
  • 12. ArquiteturadeSistemasOperacionais–Machado/Maia 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.
  • 13. ArquiteturadeSistemasOperacionais–Machado/Maia 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.
  • 14. ArquiteturadeSistemasOperacionais–Machado/Maia 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.
  • 15. ArquiteturadeSistemasOperacionais–Machado/Maia Cap. 3 – Concorrência 15 Mecanismos de interrupções 1. 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.
  • 16. ArquiteturadeSistemasOperacionais–Machado/Maia Cap. 3 – Concorrência 16 Programa Obtém o endereço da rotina de tratamento Rotina de Tratamento Identifica a origem do evento Instrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 8 Instrução 9 Instrução n Salva conteúdo dos registradores Na pilha de controle Restaura o conteúdo Dos registradores Mecanismos de interrupções Interrupção
  • 17. ArquiteturadeSistemasOperacionais–Machado/Maia 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.
  • 18. ArquiteturadeSistemasOperacionais–Machado/Maia 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.
  • 19. ArquiteturadeSistemasOperacionais–Machado/Maia 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.
  • 20. ArquiteturadeSistemasOperacionais–Machado/Maia Cap. 3 – Concorrência 20 Operações de E/S • Controlador M e m ó r i a P r i n c i p a l U C P C o n t r o l a d o r D i s p o s i t i v o s d e E / S
  • 21. ArquiteturadeSistemasOperacionais–Machado/Maia Cap. 3 – Concorrência 21 Operações de E/S 1. 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.
  • 22. ArquiteturadeSistemasOperacionais–Machado/Maia Cap. 3 – Concorrência 22 Operações de E/S • Canal de E/S M e m ó r i a P r i n c i p a l U C P C a n a l d e E / S C o n t r o l a d o r D i s p o s i t i v o s d e E / S C o n t r o l a d o r D i s p o s i t i v o s d e E / S
  • 23. ArquiteturadeSistemasOperacionais–Machado/Maia Cap. 3 – Concorrência 23 Operações de E/S 5. 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.
  • 24. ArquiteturadeSistemasOperacionais–Machado/Maia 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ória Principal BufferBuffer
  • 25. ArquiteturadeSistemasOperacionais–Machado/Maia 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. Sistema Operacional Programa Arquivo de Spool Impressora
  • 26. ArquiteturadeSistemasOperacionais–Machado/Maia 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.
  • 27. ArquiteturadeSistemasOperacionais–Machado/Maia 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.