sistemas operacionais prof. m.sc. sérgio teixeira · sistemas operacionais prof. m.sc. sérgio...
TRANSCRIPT
Sistemas Operacionais
Prof. M.Sc. Sérgio Teixeira
Aula 04 - Concorrência
Cursos de Computação
Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007.
2
(a) Sistema Monoprogramáveltempo tempo
E/S E/S
UCP UCPlivre 11
1
(b) Sistema Multiprogramável
Mono x Multiprogramação
• Concorrência entre os processos é oprincípio básico da multiprogramação nosSOs.
• A concorrência deve permitir que oprocesso interrompido retorne ao seuestado original após o período deinterrupção.
• O contexto deve ser idêntico para que eleprossiga para a operação seguinte.
Conceitos básicos
O que devemos fazer quando todos querem a mesma coisa ao mesmo tempo?
Concorrência e compartilhamento
Unidade Lógicae Aritmética
Registradores
Unidade deControle
Tirar uma fotografia dos
registradores
HD
RAM
Solução: uma fatia de
tempo para cada um
• Além de compartilhar o processador,outros recursos também sãocompartilhados em sistemas multitarefa:memória, impressora, disco, etc.
• Quem ajuda ou permite essecompartilhamento de recursos?
Compartilhamento
• Durante a execução de um programa, eventosinesperados podem ocorrer. Estes eventos sãosinalizados por interrupções ou exceções.
• A interrupção torna possível a implementação daconcorrência. É através dela que o S.O. sincronizaa execução de suas rotinas e dos programas dosusuários, além de controlar dispositivos.
• Sempre ao final da execução de uma instrução, aunidade e controle verifica a ocorrência de algumainterrupção. Neste caso, o programa éinterrompido e o fluxo é desviado para uma rotinade tratamento de interrupções.
Interrupção e Exceção: A essência da Multiprogramação
Como funciona a
Interrupção e Exceção
• Para tratar a interrupção, há um vetor como endereço do início de cada rotina detratamento.
• As interrupções podem ocorrem a qualquermomento, inclusive durante o tratamento deoutra interrupção. Alguns processadoresinibem as demais interrupções durante otratamento. Outros adotam prioridade notratamento. Neste caso, o dispositivocontrolador de pedidos de interrupçõesavalia 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. Aexceção é resultado da execução de uma instruçãodo programa, como divisão por zero ou overflow.
• A exceção é gerada em eventos síncronos (sãoprevisíveis e se forem repetidos as entradas dedados e o contexto, volta a acontecer) e asinterrupções são assíncronas (podem ocorrer aqualquer momento – dependem de entidadesexternas).
• As rotinas de tratamento de exceção podem serescritas pelo próprio programador.
Interrupção e exceção
Interrupções do Sistema Operacional
• IRQ – Interrupt Request ou Requisição de interrupção: Quando o controladorde interrupções recebe um IRQ de algum dispositivo é gerado um sinal para oprocessador. O controlador também faz a gerência das prioridades entre asinterrupçõ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 é capazde transferir dados da memória direto para o dispositivo sem ocupar otempo da CPU. A imagem mostra o uso dos canais de DMA no Gerenciadorde 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
• Nos primeiros computadores, a comunicaçãoentre o processador e os periféricos eracontrolada por um conjunto de instruçõesespeciais executada pelo próprioprocessador.
• Estas instruções tinham detalhes específicosde cada periférico, como trilha e setor deum disco.
• O surgimento do controlador permitiu aoprocessador agir de maneira independentedos dispositivos de E/S
Operações de E/S
MemóriaPrincipal
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 operiférico e fica permanentemente testando operiférico para saber se ele já terminou
• Polling – de tempos em tempos o processador testase o periférico terminou a operação
• Por interrupção – o controlador interrompe oprocessador para notificar o fim da operação.
• DMA – para evitar que na transferência de grandesvolumes de dados o processador seja interrompidotoda vez que o buffer do controlador acabar ouencher, com o DMA (Direct Memory Access) opróprio controlador acessa a memória para buscarou gravar os dados.
Operações de E/S
• Como o acesso ao barramento éexclusivo, enquanto o controlador estiveracessando a memória, o processo ficaimpedido de fazê-lo.
• Usa-se também um processador de E/Spara criar um canal de E/S. Esteprocessador executa programas de E/S.
Operações de E/S
MemóriaPrincipal
UCP
Canal de E/S
Controlador
Dispositivos de E/S
Controlador
Dispositivos de E/S
Operações de E/S
• memória que ajuda no problema dediferença de velocidade entre osdispositivos
MemóriaPrincipal
UCPBuffer
gravação gravação
leitura leitura
Controlador
Buffer
• A técnica de spooling foi utilizada noscomputadores antigos para gravar os programasnuma fita, que era executada, e os resultados eramgravados em outra fita, que depois era impressa.
• Esta mesma técnica é usada hoje por exemplo comimpressoras. Um área em disco é utilizada como sefosse um grande buffer. Antes de serem impressos,os dados são gravados em arquivo, conhecido comoarquivo de spool, liberando o programa para outrasatividades, enquanto o S.O. direciona o conteúdodo arquivo para a impressora.
Spooling
Programa ImpressoraArquivode Spool
Sistema OperacionalSistema Operacional
• 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 pelosprogramas, mesmo que sejam ao mesmotempo.
Spooling
• É comum em sistemas multitarefa, várias cópias deum mesmo programa (ex. processador de texto,navegador) em memória, seja do mesmo usuário oude usuários distintos.
• Diversas cópias do mesmo programa na memória édesperdício.
• Reentrância é a capacidade de um código sercompartilhado por vários usuários, exigindo queapenas uma cópia esteja em memória.
• Com a reentrância, cada usuário pode estar em umponto do código, manipulando dados próprios.
• Normalmente os utilitários do S.O tem estacapacidade.
Reentrância
Memória Principal
código reentrante
área de dados do usuário A
usuário A usuário C
usuário B usuário D
área de dados do usuário B
área de dados do usuário C
área de dados do usuário D
Reentrância
• A eficiência do ambiente multitarefa resulta emmaior complexidade do sistema operacional, já queterá que cuidar de vários problemas de proteção.
• Como vários programas ocupam a memóriasimultaneamente, cada um possui uma áreareservada onde seu código e dados sãoarmazenados. Se um programa tentar acessar umaposição de memória fora de sua área, um erro deviolação de acesso deve ocorrer.
• Da mesma forma, um programa não deve dominar ouso do processador.
Proteção do sistema
Sistemas Operacionais
Prof. M.Sc. Sérgio Teixeira
Aula 04 - ConcorrênciaObrigado e bons estudos!
Cursos de Computação