Apresentação do PowerPoint

Propaganda
Ambientes Operacionais
Aula 04
15 – 09 - 06
Ambientes Operacionais


Gerenciamento de Processos.
Hierarquia dos Processos.
Ambientes Operacionais

Gerenciamento de Processos.

Os sistemas operacionais que suportam o conceito de processo
devem fornecer algum meio de criar todos os processos
necessários.

Em sistemas muito simples, ou naqueles projetados para rodar
somente uma única aplicação, é possível ter todos os
processos necessários criados quando o sistema é inicializado.
Na grande maioria dos sistemas, é preciso haver um
mecanismo que permita criar e destruir processos, quando
necessário, durante a operação.
Ambientes Operacionais

Gerenciamento de Processos.

No UNIX, processos são criados pela
chamada de sistema FORK, cuja execução
cria um processo idêntico àquele que a
chamou.

Após o FORK, o processo-pai continua
rodando em paralelo com o filho.
Ambientes Operacionais

Gerenciamento de Processos.

No MS-DOS existe uma chamada de sistema para
carregar um arquivo binário específico da memória, e
executá-lo como um processo-filho.

Em contraste com o UNIX, esta chamada do
MS-DOS suspende a execução do processo-pai até
que o filho venha a terminar sua execução, fazendo
com que pai e filho não possam ser executados em
paralelo.
Ambientes Operacionais


Gerenciamento de Processos.
Estados do Processo

Apesar de cada processo ser uma entidade
independente, com seu próprio fluxo de controle e
com seu próprio estado interno, eles muitas vezes
têm necessidade de interagir com outros processos.

Por exemplo, determinado processo pode gerar uma
saída que um outro processo venha a usar como
entrada.
Ambientes Operacionais



Gerenciamento de Processos.
Estados do Processo.
Dependendo da velocidade relativa entre os dois
processos, que é função tanto da complexidade de
cada um deles quanto do tempo que o processador
vier a alocar a cada um, pode ocorrer que um
processo esteja pronto para rodar, mas que não haja
ainda nenhuma entrada disponível para permitir sua
execução.
Ambientes Operacionais


Gerenciamento de Processos.
Estados do Processo.

Neste caso, ele precisa ser bloqueado até
que uma entrada esteja disponível.

Tal bloqueio pode ocorrer por força da
decisão do sistema operacional de entregar
o processador a um outro processo, durante
certo intervalo de tempo.
Ambientes Operacionais
1
RODANDO
3
BLOQUEADO
PRONTO
4
1.Rodando, ou seja, usando o processador neste instante.
2.Pronto. Está em condições de rodar, mas bloqueado
temporariamente para dar vez a um outro processo.
3.Bloqueado. Impedido de rodar até que ocorra um
determinado evento externo ao processo.
4.Entrada de dados concluída.
2
Ambientes Operacionais


Gerenciamento de Processos
Implementação de Processos

Para implementar o modelo de processo, o sistema
operacional deve manter uma tabela, chamada
tabela de processos, com uma entrada por
processo.

Esta entrada contém informações sobre o estado do
processo, sobre a memória alocada, os valores de
seu contador de programa e de seu apontador de
pilha, o estado de seus arquivos abertos, sua
contabilidade no uso de recursos, sua prioridade, e
tudo o mais que for necessário.
Ambientes Operacionais



Gerenciamento de Processos
Implementação de Processos
O próximo passo é a identificação do
processo que requisitou trabalho do disco e
que conseqüentemente gerou a interrupção.
Via de regra, este processo foi posto para
dormir após solicitar o serviço, de forma que
agora ele deve ser acordado.
Ambientes Operacionais


Gerenciamento de Processos
Implementação de Processos

O estado deste processo é trocado de bloqueado
para pronto, e o escalonador é chamado.

Sabemos, com certeza, que neste instante existem
pelo menos dois processos prontos: o processo que
solicitou serviço ao disco e o processo que foi
interrompido pelo disco.

É tarefa do escalonador escolher o mais adequado
para rodar.
Ambientes Operacionais


Gerenciamento de Processos.
Comunicação entre Processos.
Ambientes Operacionais


Gerenciamento de Processos
Comunicação entre Processos

Os processos precisam freqüentemente se
comunciar com outros processos.

Existe, portanto, a necessidade de haver
comunicação
entre
tais
processos,
preferencialmente de uma forma estruturada,
que não seja baseada em interrupções.
Ambientes Operacionais



Gerenciamento de Processos.
Comunicação entre Processos.
Condição de Corrida.
Ambientes Operacionais



Gerenciamento de Processos
Condição de Corrida.
Em alguns sistemas operacionais,
processos que estão trabalhando em
conjunto muitas vezes utilizam uma
memória comum, onde cada processo
pode ler ou escrever.
Ambientes Operacionais


Gerenciamento de Processos.
Condição de Corrida.

Para se ter idéia de como a comunicação entre processos
funciona na prática, vamos considerar um exemplo bem
simples e bastante comum, um spool de impressão.

Quando um processo deseja imprimir um arquivo, ele entra
com o nome do arquivo em um diretório especial de spool.

Outro processo, o impressor, verifica periodicamente este
diretório, para ver se há arquivos a serem impressos.
Havendo, eles são impressos e seus nomes são retirados do
diretório
Ambientes Operacionais
Condição de Corrida.
Ambientes Operacionais



Gerenciamento de Processos.
Como evitar a ocorrência de condições de
corrida?
A questão-chave para evitar problemas em casos
envolvendo qualquer tipo de compartilhamento, de
recursos (memória, arquivo, e tudo o mais) é encontrar
alguma forma de proibir que mais de um processo
acesse o dado compartilhado ao mesmo tempo
(pseudoparalelismo ou paralelismo real).
Ambientes Operacionais

Gerenciamento de Processos.

Em outras palavras, precisamos encontrar um meio
de implementar a exclusão mútua - uma forma de se
ter certeza de que se um processo estiver usando
uma variável ou um arquivo compartilhados, os
demais serão impedidos de fazer a mesma coisa.

Esta condição é denominada região crítica ou seção
crítica. Se pudermos arranjar as coisas de forma que
não seja nunca permitido que dois ou mais
processos estejam processando suas seções críticas
correspondentes ao mesmo tempo, poderemos evitar
a ocorrência das condições de corrida.
Ambientes Operacionais


Gerenciamento de Processos.
Exclusão Mútua com Espera Ocupada.
Temos que examinar várias propostas para
obtenção da exclusão mútua, de forma que
quando um processo estiver acessando a
memória compartilhada dentro de sua região
crítica, nenhum outro processo poderá entrar
em sua seção crítica correspondente.
Ambientes Operacionais


Gerenciamento de Processos.
Exclusão Mútua com Espera Ocupada.




1 - Inibição das interrupções;
2 - Primitivas SLEEP / WAKEUP;
3 – Monitores;
4 – Troca de mensagens.
Ambientes Operacionais


Gerenciamento de Processos.
Inibição das interrupções.

A solução mais simples para tal problema é obtida
fazendo com que cada processo iniba as
interrupções logo após seu ingresso em uma região
crítica, habilitando-as outra vez imediatamente antes
de deixá-la.

Com as interrupções inibidas, o processo não poderá
ser interrompido por exceder o tempo de
processamento concedido a ele.
Ambientes Operacionais


Gerenciamento de Processos.
Inibição das interrupções.

Como o processador só pode ser chaveado entre
processos através de interrupções de tempo, com
as interrupções inibidas não haverá chaveamento.
Então, uma vez inibidas as interrupções, o processo
pode examinar e atualizar a memória compartilhada,
sem se preocupar com a eventual intervenção de
outro processo em seu processamento.

DESVANTAGEM.

Sistemas em loop eternos.
Ambientes Operacionais


Gerenciamento de Processos.
Bloqueio e Desbloqueio de Processos:
Primitivas SLEEP/WAKEUP

A primitiva SLEEP é uma chamada de sistema que bloqueia o
processo que a chamou, isso é, suspende a execução de tal
processo, até que outro processo o acorde.

A primitiva WAKEUP tem um parâmetro, o processo a ser
acordado. Alternativamente, tanto SLEEP quanto WAKEUP
podem ter um outro parâmetro, um endereço de memória usado
para casar uma primitiva SLEEP com sua correspondente
WAKEUP.
Ambientes Operacionais


Gerenciamento de Processos.
Monitores.

É tarefa de o compilador implementar a exclusão
mútua de execução sobre o monitor, sendo o
caminho mais usual utilizar os semáforos binários.
Pelo fato de o compilador, e não do programador,
estar envolvido com a exclusão mútua, é muito pouco
provável que algo venha a dar errado.

Basta saber que, colocando todas as regiões críticas
dentro do monitor, não haverá a possibilidade de
mais de um processo executar sua região crítica ao
mesmo tempo.
Ambientes Operacionais


Gerenciamento de Processos.
Troca de mensagens.

Os sistemas baseados em troca de mensagens têm muitos
problemas que não ocorrem nos sistemas com semáforos ou
com monitores, especialmente se os processos que se
comunicam estiverem em máquinas diferentes, conectadas por
uma rede.

Por exemplo, as mensagens podem perder-se na rede. Para
prevenir a perda de mensagens, o transmissor e o receptor
devem ser programados de forma que, tão logo tenha recebido
uma mensagem, o receptor envie de volta ao transmissor uma
mensagem especial de reconhecimento (acknowIedgement).
Ambientes Operacionais


Gerenciamento de Processos.
Troca de mensagens.

Os sistemas baseados em troca de mensagens devem tratar também da
questão da identificação dos processos, de forma a que os processos
especificados no SEND e no RECEIVE não sejam confundidos.

Se o número de máquinas na rede for muito grande, e não houver um
esquema central de alocação de nomes de máquinas, pode ocorrer que duas
organizações venham a dar o mesmo nome às suas máquinas.

Outro problema dos sistemas com troca de mensagens é a questão
envolvendo a autenticação das mensagens: como um processo sabe que está
se comunicando com um servidor de arquivos real e não com um impostor?
Ambientes Operacionais


Gerenciamento de Processos.
Escalonamentos de Processos.
Ambientes Operacionais


Gerenciamento de Processos.
Escalonamentos de Processos.

Nos exemplos anteriores, tivemos oportunidade de observar
diversas situações nas quais dois ou mais processos estavam
logicamente em situação de rodar. Quando mais de um
processo está nesta situação, ou seja, pronto para rodar, o
sistema operacional deve decidir qual deles vai rodar primeiro.

A parte do sistema operacional a quem cabe tomar esta decisão
denominada de escalonador, e o algoritmo utilizado em sua
programação e chamado de algoritmo de escalonamento.
Ambientes Operacionais

Gerenciamento de Processos.

Escalonamentos de Processos.

Em primeiro lugar, cabe ao escalonador decidir qual processo
executar baseado numa política.





1. Justiça: garantir que todos os processos do sistema terão chances
iguais de uso do processador.
2. Eficiência: manter o processador ocupado 100% do tempo.
3. Tempo de resposta: minimizar o tempo de resposta para os usuários
interativos.
4. Turnaround: minimizar o tempo que os usuários batch devem esperar
pela saída.
5. Throughput: maximizar o número de jobs processados na unidade de
tempo, usualmente uma hora.
Ambientes Operacionais




Gerenciamento de Processos.
Escalonamentos de Processos.
Uma complicação que os escalonadores
devem enfrentar é o fato do comportamento
de cada um dos processos ser único e
imprevisível.
Alguns gastam grande quantidade de tempo
fazendo entrada/saída, enquanto outros
ocupam o processador por horas a fio, se
tiverem oportunidade.
Ambientes Operacionais


Gerenciamento de Processos.
Escalonamentos de Processos.

Quando o escalonador coloca um processo para rodar, ele
nunca tem certeza a respeito do tempo que tal processo vai
levar executando até ser bloqueado, ou por entrada/saída, ou
em um semáforo, ou por qualquer outra razão.

Para assegurar-se de que nenhum processo rode por um tempo
muito grande, todos os computadores modernos possuem um
relógio interno, que periodicamente gera um sinal de
interrupção, denominado interrupção de tempo.
Ambientes Operacionais


Gerenciamento de Processos.
Escalonamento Round Robin.

Um dos mais antigos, simples, justo, e portanto muito
usado, é o chamado round robin. A cada processo
atribui-se um intervalo de tempo durante o qual ele
poderá usar o processador. A este intervalo de
tempo dá-se o nome de quantum.

Se o processo ainda precisar rodar depois de
esgotado seu quantum, ele perde o processador,
dando lugar a um outro processo.
Ambientes Operacionais


Gerenciamento de Processos.
Escalonamento com Prioridade.

A cada processo é associada uma prioridade, e o
processo pronto com maior prioridade será aquele
que vai rodar primeiro.

Para evitar que processos com alta prioridade
monopolizem o processador, o escalonador
decrementa a prioridade do processo que está
rodando, a cada interrupção de tempo.
Ambientes Operacionais.
Escalonamento preemptivo e não-preemptivo.

Escalonamento Preemptivo: é o processamento
que ocorre sem a interrupção do escalonador,ou
seja, pode executar infinitamente.
Escalonamento não-preemptivo: é interrompido a
cada 30 cliclos de clock e o escalonador consulta
a tabela de processos se existe outro processo
em melhor condição para ser executado.
Download