domingo, 19 de agosto de 2007

1ª do Poscomp ;-)

Bem,

Vou começar meu primeiro post falando um pouco sobre sistema operacional e politicas de escalonamento de processos, lógico não cabe a mim ensinar o conteúdo de sistemas operacionais em um post neh? aliás as pessoas estudam isso durante um semestre na faculdade ^^, vamos nos basear em exemplos práticos de provas do poscomp.

Questão 54 e 55 - Tecnologia 2002 c a

Qual das seguintes condições não é necessária para a ocorrência de um deadlock?
a) Uso mutuamente exclusivo de recursos por processos.
b) Alocação parcial de recursos a processos.
c) Escalonamento preemptivo de recursos.
d) Processos em espera circular.
e) Haver compartilhamento de recursos por processos.

Starvation ocorre quando:
a) Pelo menos um processo é continuamente postergado e não executa.
b) A prioridade de um processo é ajustada de acordo com o tempo total de execução do mesmo.
c) Pelo menos um evento espera por um evento que não vai ocorrer.
d) No meu pdf realmente não da pra ler essa questão :P
e) O processo tenta mas não consegue acessar uma variável compartilhada.

Então podemos ver que temos dois conceitos correlacionados que são abordados: DeadLock e Starvation.
Antes de responder vamos buscar realmente os significados de cada um desses.

DeadLock: Definição formal - "Deixa que eu deixo.". Outros autores preferem chamar de "A galinha ou o ovo?"
Starvation: Definição formal - "Fiado só amanhã!" nós baianos também conhecemos como "Não deixe para amanhã o que vc pode fazer depois de amanhã" (risos)

Fácil não? vamos ver com uma definição um pouco mais informal... Deadlock acontece quando um primeiro processo fica a espera de um outro processo, entretanto este outro processo depende do primeiro processo. Oo então como os processos ficam um dependendo do outro, eles travam!!!é como se uma função esperasse uma galinha pra retornar um ovo, e uma outra função esperasse um ovo pra gerar uma galinha (risos) essa situação é denominada Deadlock.Já o Starvation acontece quando a política de escalonamento favorece a um tipo de processo (por exemplo) e os processos menos favorecidos nunca serão executados, por exemplo: o SO favorece aos processos menores, (executa primeiro os processos menores, pra depois executar os maiores), na lista do PCB (Process Control Block) existe processos pequenos e processos grandes, mas a todo momento o SO recebe mais processos pequenos, o que faz a política de escalonamento deixar os processos grandes para depois... para depois ...para depois ... e eles ficariam nessa até parassem de vir mais processos pequenos.

Então vamos voltar ao poscomp... Questão 54. Qual das seguintes condições não é necessária para a ocorrência de um deadlock?
Lógico que é a letra c) (falei "Lógico" porque eu conferi no gabarito =P) note que: A letra a) não poderia ser, pois, é necessário que os processos compartilhem recursos, e essa dependencia mútua é que ocasiona o deadlock. Ainda não entendi o que difere a letra e) da letra a) =P, a letra b) não poderia ser também
pois cai no caso da aquisição gradativa de recursos, ou seja, os processos têm alguns recursos e pedem outros. A letra d) também não, pois processos em espera circular (Tipo: processo P1 espera pelo recurso R1 que esta com o processo P2, que espera recurso R2 que está com o processo P3, etc, e PN espera pelo recurso RN que está com o processo P1), enfim.... deadlock.
Enfim temos a letra correta c) ^^,

Agora vamos a questão 55 Starvation ocorre quando:
Com certeza é a letra a) (o que será que me faz tão confiante hein?) Só ver a definição ^^, esse processo é continuamente postergado devido à política de escalonamento que pode privilegiar outros processos. Um exemplo é a política de filas multiplas de alimentação (dá alta prioridade a processos com muito uso de I/O e baixa prioridade a processos com uso intensivo da CPU). Vamos supor que entra um processo de uso intensivo da CPU, e varios outros processos que utilizam de entrada e saída, se sempre ficar entrando processos de I/O o primeiro processo (o de uso intensivo da CPU nunca irá rodar). A letra b) fala de outras políticas de escalonamento de processos (SJF e SRJN).a letra c) e a letra e) são o DeadLock!

Espero ser compreendido e ter ajudado!
Algumas Referencias na WEB
http://pt.wikipedia.org/wiki/Deadlock
http://pt.wikipedia.org/wiki/Starvation
http://homepages.dcc.ufmg.br/~scampos/cursos/so/aulas/aula9.html
http://www.cesur.br/downloads/rafael/Aulas/Sistemas_Operacionais_-_Aula_4.ppt