Escolar Documentos
Profissional Documentos
Cultura Documentos
4.2 4.1
4.4 4.3
Sistemas Operacionais Sistemas Operacionais
4.6 4.5
4.8 4.7
Representação do escalonamento de Sistemas Operacionais Fila de prontos e as diversas filas de Sistemas Operacionais
4.10 4.9
4.12 4.11
Sistemas Operacionais Sistemas Operacionais
" Quando CPU troca processo em execução por outro, SO deve " Escalonador de curto prazo é invocado muito frequentemente
salvar o estado (contexto de execução) do processo anterior e (milisegundos) ⇒ (deve ser rápido)
carregar nos regs. da máquina o estado (guardado) do próximo
" Escalonador de longo prazo é invocado infrequentemente
processo
(segundos, minutos) ⇒ (pode ser lento)
" Tempo de troca de contexto é “overhead”; a traca é útil mas não
" Escalonador de longo prazo controla o grau de
é o objetivo do sistema, objetivo é processar / computar jobs
multiprogramação do sistema
" Tempo de troca de contexto é dependente do suporte de
" Processos podem ser classificados em:
hardware
I/O−bound processes − delimitados pelo tempo de I/O,
gasta mais tempo fazendo I/O do que computações, muitas
pequenas rajadas (bursts) de CPU
CPU−bound processes − delimitados pelo tempo de CPU,
gastam a maior parte do tempo fazendo computações;
Poucas RAJADAS LONGAS de CPU
4.14 4.13
" Possibilidades para o espaço de endereçamento " Processo pai cria “filhos” (ou clones), que por sua vez criam
Filho é duplicata do pai (espaço separado) outros formando uma árvore de processos
Filho tem programa carregado no espaço do pai " Compartilhamento de recursos possíveis:
(substituição) Pai e filhos compartilham todos os recursos
" Exemplos do UNIX Filhos compartilham subconjunto de recursos do pai
Chamada a fork cria novo processo Pai e filhos não compartilham recursos
Chamada execve usada depois do fork (no código do " Execuções possíveis:
clone) para substituir programa no espaço do “clone”
Pai e filhos executam concorrentemente
Pai espera até filhos terminarem
4.16 4.15
Sistemas Operacionais Sistemas Operacionais
4.18 4.17
" Paradigma (padrão de comportamento) para certos processos " Processos Independentes não podem afetar ou serem afetados
cooperantes pela execução de outros processos
Processo produtor produz informação que é “consumida” " Processos Cooperantes podem afetar a execução de outros
por outro processo (consumidor) processos cooperantes (ou ter execução afetada)
" Comunicação entre os processos cooperantes utiliza um " Vantagens da cooperação entre processos:
“buffer”:
Compartilhamento de informações
Bounded−buffer: tem tamanho fixo
Aumento da velocidade de computação (speed−up)
Unbounded−buffer: assume−se que o buffer não tem limite
Modularidade
de tamanho.
Conveniência
4.20 4.19
Sistemas Operacionais
Solução para probl. Bounded−Buffer Sistemas Operacionais
Shared data
Consumer process var n;
type item =
;
repeat var buffer. array [0..n1] of item;
while in = out do no−op; in, out: 0..n1;
nextc := buffer [out];
out := out+1 mod n; Producer process
repeat
consume the item in nextc
produce an item in nextp
until false;
while in+1 mod n = out do no−op;
Solution is correct, but can only fill up n1 buffer. buffer [in] :=nextp;
in :=in+1 mod n;
until false;
4.22 4.21
Questões de Implementação
4.29