ebooksgratis.com

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Inanição (computação) - Wikipédia, a enciclopédia livre

Inanição (computação)

Origem: Wikipédia, a enciclopédia livre.

Esta página precisa ser reciclada de acordo com o livro de estilo.
Sinta-se livre para editá-la para que esta possa atingir um nível de qualidade superior.

[editar] Processos em Starvation

Em um ambiente computacional de multiprogramação, a execução de diversos processos simultâneos deve seguir a uma regra de escalonamento destes para uso do processador. Isto se deve ao fato de que, durante a mudança de contexto pelo processador, é feita a escolha do próximo processo a ser executado a partir da prioridade deste. Isto pode gerar uma situação de starvation (do inglês, fome, inanição ) quando um processo nunca é executado (morre de fome) pois processos de prioridade maior sempre o impedem de ser executado. Uma solução para esta situação é a delegação de um tempo máximo de espera.

[editar] STARVATION

A ocorrência do starvation se dá quando os programas rodam indefinidamente (razão pela qual também se dá o nome de preterição indefinida a esta situação) e não fazem nenhum progresso em seu processamento, ao contrário do deadlock, que ocorre quando os processos permanecem bloqueados, dependendo da liberação dos recursos por eles alocados. Em um sistema dinâmico, as requisições de recursos ocorrem durante todo o tempo. Algumas políticas são necessárias para subsidiar a decisão de quem vai ficar com qual recurso e em que momento. Estas políticas, apesar de parecerem extremamente razoáveis, podem fazer com que alguns processos nunca sejam servidos, apesar de não estarem em deadlock.

Como exemplo, consideremos o caso da alocação da impressora. Imaginemos que o sistema utilize algum algoritmo que garanta que a alocação da impressora não vai levar a situações de deadlock. Agora consideremos que diversos processos desejam utilizá-la ao mesmo tempo. Qual deles deve ter o direito de usá-la?

Um algoritmo possível para implementar a alocação da impressora é o que escolhe o processo com o menor arquivo a ser impresso (assumindo que esta informação está disponível). Este algoritmo maximiza o número de usuários satisfeitos com o sistema, e parece ser um algoritmo justo. Consideremos, no entanto, o que acontece num sistema muito carregado, quando determinado processo tem um arquivo imenso a ser impresso. Cada vez que a impressora estiver disponível, o sistema vai escolher, para usar a impressora, o processo com o menor arquivo a ser impresso. Se houver um fluxo constante de processos no sistema com arquivos pequenos, aquele ou aqueles com arquivos grandes jamais poderão usar a impressora. Eles apenas “morrerão de fome” (como o próprio sentido da palavra starvation estabelece), ou seja, serão preteridos indefinidamente em favor de outros, como se estivessem bloqueados.

A preterição por tempo indeterminado pode ser evitada usando-se uma política de alocação baseada na regra do primeiro-a-chegar é o primeiro-a-ser-servido. Com esta abordagem, o processo que espera há mais tempo é o primeiro a receber serviço por parte do recurso liberado. Fica claro que qualquer dos processos será o mais antigo com o passar do tempo, recebendo, assim, o direito ao uso do recurso pelo qual estiver esperando.

Considera-se que, no grafo da figura 04, cada processo necessita dos dois recursos que estão ao seu lado para realizar a sua tarefa. Após pegar o recurso da esquerda, o processo verifica se o recurso da direita está livre. Se não estiver, ele deve liberar o recurso da esquerda, esperar algum tempo e repetir todo o processo.

É possível que todos os processos comecem simultaneamente a executar o algoritmo, pegando os recursos à esquerda. Ao observar que os da direita estão ocupados, todos devolvem ao mesmo tempo o recurso já adquirido, esperam, tornam a pegar o recurso da esquerda, constatam que os da direita não estão disponíveis, devolvem simultaneamente os recursos da esquerda, e assim sucessivamente, para sempre, caracterizando uma situação de starvation. Uma solução para este problema seria implementar o que é chamado de região crítica. Assim, quando um processo entrar na “região crítica”, ele tenta adquirir os dois recursos de que necessita e completa sua tarefa. Portanto, cada processo executa sua tarefa de cada vez, evitando o starvation.

Outra solução interessante, seria fazer com que esse processo aumente sua prioridade de acordo com o seu tempo de "vida". Essa prática é conhecida como "aging" e também sana esse tipo de problema.


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -