quinta-feira, 19 de dezembro de 2013

Por dentro dos sistemas operacionais









A política de escalonamento dos sistemas operacionais tem diversas funções básicas,como a de manter o processador ocupado a maior parte do tempo , balancear o uso da CPU entre processos,privilegiar a execução de aplicações  críticas, maximizar  o througput (tempo decorrido desde a system call do processo ate o final da sua execução geralmente contado em nano segundos).
A principal rotina dos sistemas operacionais que tem como principal função implementar critérios de políticas  de escalonamento é denominada (o) Escalonador de processos (Scheduler).Em sitemas multiprogramáveis, o escalonador é a ferramenta mais importante de todo sistema,pois todo compartilhamento do processador e dependente desta rotina, o escalonador pode ser considerado o gerente dos recursos do hardware,disponibilizando-os via software,via sistema operacional.
Outra rotina importante na gerência do processador é conhecida como dispatcher,responsável pela troca de contexto dos processos,após o escalonador determinar qual processo deve fazer uso do processador.O período de tempo gasto na substituição de um processo em execução por outro e denominado latência do dispatcher
Critérios de Escalonamento
As características de cada sistema operacional determinam quais são os principais aspectos para implementação de uma política de escalonamento adequada,Por exemplo, sistemas de tempo compartilhado exigem que o escalonamento  trate todos os processos de forma igual evitando, assim ,a ocorrência de starvation , ou seja que um processo fique indefinidamente esperando pela utilização do processador, ja em sistemas de tempo real , o escalonamento deve priorizar a execução de processos críticos em detrimento de outros processos, sistemas de tempo real são utilizados em situações onde a vida humana corre risco,como em veículos espacias ,aeronaves  e etc,
os sistemas operacionais mais modernos escalonam threads , e não processos, os threads são como pilhas de processos, que são separados em grupos,pelo programa que gerou o thread , um thread pode ser definido como uma linha de execução de instruções.
Ex. um processador Intel core i7-950 essa  CPU pode trabalhar com quatro processos indivisíveis simultaneamente (um em cada núcleo) ou com até oito linhas de execução (threads) — as quais podem ou não ser de um mesmo processo. Saber como cada aplicativo é executado dentro do processador não é tão simples, mas o que importa é ter noção de que existem aplicativos que serão executados de uma maneira mais satisfatória,em processadores multtask ou multi trheading do que outros que foram arquitetados para processadores single core ex: jogos antigos que ainda são jogados hoje em dia,
Explicar isso é bem simples. Suponha que estamos tratando de uma CPU com quatro núcleos. Em teoria, ela é capaz de executar quatro programas ao mesmo tempo. Contudo, você está com doze programas abertos e todos respondendo em tempo real.
O processador consegue trabalhar com todos os aplicativos e apresentar resultados satisfatórios devido à velocidade de processamento,que é em nano segundos, Sendo assim, parece que os processos são executados simultaneamente.mas na verdade estão sendo escalonados por uma política de escalonamento chamada ROUND ROBIN (escalonamento circular no caso do Ms Windows)
essa política de escalonamento tem por característica determinar uma quantidade de tempo chamada ”quantum”para cada processo ou thread acabado esse quantum, os recurso do núcleo do processador será alocado a outro processo ou thread,tudo isso em nano segundos,sendo imperceptível ao usuário.
Outra politica de escalonamento interessante é a de escalonamento por prioridades, é do tipo preemptivo com base em um valor associado a cada processo denominado ”prioridade de execução” O processo com maior prioridade no estado de pronto é sempre escolhido para a execução,e processos com valores de prioridades iguais,neste caso são escalonados pela política First in First Out ,( Primeiro a chegar primeiro a sair ) para que não haja deadlock.
No escalonamento por prioridades a perda do uso do processador ou do núcleo em questão só ocorrerá no caso de mudança voluntária do processo para o estado de espera,por ex play ou pause em uma música,ou quando um processo de prioridade maior passa para o estado de pronto
essa politica de escalonamento é usada em um famoso console, (xbox 360)e um espertinho francês sabendo disso, descobriu que para burlar o sistema de segurança bastava colocar um pendrive  com uma musica para tocar, o que ocorre nesse caso e que o sistema operacional desse console , considera que a execução do conteúdo do pendrive tem prioridade maior do que o processo que executa o verificador de segurança que sempre se encontra em espera ocupada,até que por acaso o usuário tente burla-lo ,então o recurso que estava separado para o verificador,passa a executar o conteúdo do pendrive,mantendo o processador do console ocupado e sem recursos concorrentes simultâneos para executar o verificador de segurança,simples mas inteligente,erro crasso dos engenheiros do sistema,particularmente  no caso suspeito que um deles tenha envolvimento no vazamento dessa informação,mas é só minha opinião.
Gostou? não esqueça de comentar.

Nenhum comentário:

Postar um comentário