Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira

Propaganda
Cursos de Computação
Sistemas Operacionais
Prof. M.Sc. Sérgio Teixeira
Aula 04 - Concorrência
Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007.
Mono x Multiprogramação
E/ S
UCP
1
E/ S
UCP
livre
1
2
1
tempo
tempo
(a) Sistema Monoprogramável
(b) Sistema Multiprogramável
Conceitos básicos
• Concorrência entre os processos é o
princípio básico da multiprogramação nos
SOs.
• A concorrência deve permitir que o
processo interrompido retorne ao seu
estado original após o período de
interrupção.
• O contexto deve ser idêntico para que ele
prossiga para a operação seguinte.
Concorrência e
compartilhamento
O que devemos fazer quando todos querem
a mesma coisa ao mesmo tempo?
Tirar uma fotografia dos
registradores
Unidade Lógica
e Aritmética
Unidade de
Controle
Registradores
Solução: uma fatia de
tempo para cada um
RAM
HD
Compartilhamento
• Além de compartilhar o processador,
outros
recursos
também
são
compartilhados em sistemas multitarefa:
memória, impressora, disco, etc.
• Quem
ajuda
ou
permite
esse
compartilhamento de recursos?
Interrupção e Exceção: A
essência da Multiprogramação
• Durante a execução de um programa, eventos
inesperados podem ocorrer. Estes eventos são
sinalizados por interrupções ou exceções.
• A interrupção torna possível a implementação da
concorrência. É através dela que o S.O. sincroniza
a execução de suas rotinas e dos programas dos
usuários, além de controlar dispositivos.
• Sempre ao final da execução de uma instrução, a
unidade e controle verifica a ocorrência de alguma
interrupção.
Neste
caso,
o
programa
é
interrompido e o fluxo é desviado para uma rotina
de tratamento de interrupções.
Como funciona a
Interrupção e Exceção
Interrupção e exceção
• Para tratar a interrupção, há um vetor com
o endereço do início de cada rotina de
tratamento.
• As interrupções podem ocorrem a qualquer
momento, inclusive durante o tratamento de
outra interrupção. Alguns processadores
inibem as demais interrupções durante o
tratamento. Outros adotam prioridade no
tratamento. Neste caso, o dispositivo
controlador de pedidos de interrupções
avalia as interrupções e suas prioridades.
Interrupção e exceção
• Uma exceção é semelhante a uma interrupção,
sendo a principal diferença o motivo do disparo. A
exceção é resultado da execução de uma instrução
do programa, como divisão por zero ou overflow.
• A exceção é gerada em eventos síncronos (são
previsíveis e se forem repetidos as entradas de
dados e o contexto, volta a acontecer) e as
interrupções são assíncronas (podem ocorrer a
qualquer momento – dependem de entidades
externas).
• As rotinas de tratamento de exceção podem ser
escritas pelo próprio programador.
Interrupções do Sistema
Operacional
•
IRQ – Interrupt Request ou Requisição de interrupção: Quando o controlador
de interrupções recebe um IRQ de algum dispositivo é gerado um sinal para o
processador. O controlador também faz a gerência das prioridades entre as
interrupções que leva em consideração interrupções concorrentes.
•
Referências:
–
Fototeca e videoteca do Prof. Sérgio Teixeira
–
http://www.guiadohardware.net/termos/irq
–
http://www.laercio.com.br/artigos/HARDWARE/HARD-010/HARD-010.HTM
–
http://www.laercio.com.br/artigos/HARDWARE/HARD-019/HARD-019.HTM
DMA (Direct Memory Access)
•
Acesso direto à memória (DMA) – Quando um processo vai fazer I/O é
possível liberar a CPU. Esse processo é feito por meio do DMA que é capaz
de transferir dados da memória direto para o dispositivo sem ocupar o
tempo da CPU. A imagem mostra o uso dos canais de DMA no Gerenciador
de Dispositivos do Windows .
•
Referências:
–
http://www.laercio.com.br/artigos/HARDWARE/HARD-010/HARD-010.HTM
–
http://www.laercio.com.br/artigos/HARDWARE/HARD-019/HARD-019.HTM
Operações de E/S
• Nos primeiros computadores, a comunicação
entre o processador e os periféricos era
controlada por um conjunto de instruções
especiais
executada
pelo
próprio
processador.
• Estas instruções tinham detalhes específicos
de cada periférico, como trilha e setor de
um disco.
• O surgimento do controlador permitiu ao
processador agir de maneira independente
dos dispositivos de E/S
Operações de E/S
Memória
Principal
UCP
Controlador
Dispositivos de E/ S
Operações de E/S
• Abordagens para a transferência de dados:
• Busy wait – o processador se sincroniza com o
periférico e fica permanentemente testando o
periférico para saber se ele já terminou
• Polling – de tempos em tempos o processador testa
se o periférico terminou a operação
• Por interrupção – o controlador interrompe o
processador para notificar o fim da operação.
• DMA – para evitar que na transferência de grandes
volumes de dados o processador seja interrompido
toda vez que o buffer do controlador acabar ou
encher, com o DMA (Direct Memory Access) o
próprio controlador acessa a memória para buscar
ou gravar os dados.
Operações de E/S
• Como o acesso ao barramento é
exclusivo, enquanto o controlador estiver
acessando a memória, o processo fica
impedido de fazê-lo.
• Usa-se também um processador de E/S
para criar um canal de E/S. Este
processador executa programas de E/S.
Operações de E/S
Memória
Principal
UCP
Canal de E/ S
Controlador
Controlador
Dispositivos de E/ S
Dispositivos de E/ S
Buffer
• memória que ajuda no problema de
diferença de velocidade entre os
dispositivos
Memória
Principal
gravação
UCP
gravação
Controlador
Buffer
leitura
leitura
Spooling
• A técnica de spooling foi utilizada nos
computadores antigos para gravar os programas
numa fita, que era executada, e os resultados eram
gravados em outra fita, que depois era impressa.
• Esta mesma técnica é usada hoje por exemplo com
impressoras. Um área em disco é utilizada como se
fosse um grande buffer. Antes de serem impressos,
os dados são gravados em arquivo, conhecido como
arquivo de spool, liberando o programa para outras
atividades, enquanto o S.O. direciona o conteúdo
do arquivo para a impressora.
Spooling
Sistema Operacional
Programa
Arquivo
de Spool
Impressora
• O uso do spooling também desvincula o
programa do dispositivo de impressão,
impedindo que um programa reserve a
impressora de modo exclusivo.
• O S.O. gerencia as impressões solicitadas pelos
programas, mesmo que sejam ao mesmo
tempo.
Reentrância
• É comum em sistemas multitarefa, várias cópias de
um mesmo programa (ex. processador de texto,
navegador) em memória, seja do mesmo usuário ou
de usuários distintos.
• Diversas cópias do mesmo programa na memória é
desperdício.
• Reentrância é a capacidade de um código ser
compartilhado por vários usuários, exigindo que
apenas uma cópia esteja em memória.
• Com a reentrância, cada usuário pode estar em um
ponto do código, manipulando dados próprios.
• Normalmente os utilitários do S.O tem esta
capacidade.
Reentrância
usuário A
usuário C
código reentrante
usuário B
usuário D
á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
Memória Principal
Proteção do sistema
• A eficiência do ambiente multitarefa resulta em
maior complexidade do sistema operacional, já que
terá que cuidar de vários problemas de proteção.
• Como vários programas ocupam a memória
simultaneamente, cada um possui uma área
reservada onde seu código e dados são
armazenados. Se um programa tentar acessar uma
posição de memória fora de sua área, um erro de
violação de acesso deve ocorrer.
• Da mesma forma, um programa não deve dominar o
uso do processador.
Cursos de Computação
Sistemas Operacionais
Prof. M.Sc. Sérgio Teixeira
Aula 04 - Concorrência
Obrigado e bons estudos!
Download