Вы находитесь на странице: 1из 4

Modelo de gerenciamento de processos do Linux Desde seu incio, auxiliado pelo modelo Bazaar1 de desenvolvimento, esses algoritmos foram

por diversas vezes criticados e melhorados por cultos ao redor do mundo, com isso o Linux hoje tem um dos melhores conjuntos de algoritmos para gerenciamento de processos j visto. Como qualquer sistema de compartilhamento de tempo o Linux consegue dar a impresso de execuo simultnea dos processos, separando um espao bastante curto de tempo para cada um deles. TASK ZOMBIE O processo est terminado, mas o processo pai ainda no executou uma chamada de sistema para retornar informaes sobre o processo morto wait, as informaes no so descartadas, pois ainda podem ser utilizadas. Os processos do Linux so preemptivos (preemptivos so algoritmos que permitem que um processo seja interrompido durante sua execuo, quer seja por fora de uma interrupo de entrada/sada, quer seja em decorrncia da politica de escalonamento adotada e aplicada por parte do escalonador de processos ou simplesmente por fora do trmino da execuo do processo. Aps a interrupo deste processo, ocorre o que se chama de troca de contexto, que consiste em salvar o contedo dos registradores e a memoria utilizada pelo processo e conceder a outro processo o privilgio de executar na CPU, restaurando assim o contexto deste ultimo processo.), isso significa que quando um processo entra no estado TASK RUNNING o kernel (ncleo do sistema operacional) vai checar se existe alguma prioridade maior do que o processo corrente. A prioridade de um processo no Linux est em constante alterao, o escalonador se mantm informado sobre o que os processos esto fazendo e assim torna-se possvel ajustar a prioridade. Dessa maneira os processos que ficaram proibidos de utilizar o CPU por um longo intervalo de tempo, tem sua prioridade incrementada automaticamente, contrariamente os processos que passaram um longo perodo dentro do CPU so penalizados tendo sua prioridade decrementada. Quando o tempo de execuo de um processo termina, ele retirado do CPU e outro processo que est rodando colocado no seu lugar. Uma fatia termina quando todos os processos esgotaram seu tempo reservado de execuo, assim o escalonador responsvel por calcular o tempo de execuo para todos os processos e uma nova fatia inicia. Para o Linux escolher qual processo deve rodar ele precisar escolher qual tem a prioridade maior, existem dois tipos de prioridade: Prioridade Esttica Definido

pelo usurio para processos que necessitam de tempo real, os valores variam de 1 at 99 que nunca so modificados pelo escalonador. A prioridade dinmica dos processos convencionais sempre inferior aos processos com prioridade esttica. Escalonamento de Processos no Linux: A responsabilidade do escalonador de processos do Linux executar todas as tarefas em uma quantidade de tempo razovel, mantendo o uso correto dos recursos de hardware, ao mesmo tempo respeitando as polticas de prioridades, e execuo. A cada interrupo do sistema, o kernel atualiza vrias estruturas de dados de contabilidade e realiza operaes de escalonamento de acordo com o comportamento de um processo e ajusta dinamicamente sua prioridade, visando equalizar o uso do processador entre os processos. O escalonador caracterizado como de tempo compartilhado, ou seja, cada tarefa executada at que a sua fatia de tempo, tambm chamada de quantum, expire, e um processo de prioridade mais alta torne-se executvel ou o processo atual bloqueie. Assim que o processo aberto, no pode ser modificada pelo o escalonador, lembrando sempre que apenas usurios com prioridades especficas podem criar e definir processos em tempo real. Sua prioridade calculada baseada na prioridade padro do processo e na quantidade de tempo que ainda resta para ele ser processado. O escalonador s processa tarefas com a prioridade dinmica, apenas quando no h tarefas em tempo real, com isso os processos com prioridade esttica possuem maior prioridade que os dinmicos. Gerenciamento de processos no Windows Escalonamento de processos O escalonamento de processos ou agendador de tarefas (em ingls scheduling) uma atividade organizacional feita pelo escalonador (scheduler) da CPU ou de um sistema distribudo, possibilitando executar os processos mais viveis e concorrentes, priorizando determinados tipos de processos, como os de I/O Bound e os computacionalmente intensivos. O escalonador de processos de 2 nveis escolhe o processo que tem mais prioridade e menos tempo e coloca-o na memria principal, ficando os outros alocados em disco; com essa execuo o processador evita ficar ocioso. Definio Para que a CPU no fique muito tempo sem executar tarefa alguma, os sistemas operacionais utilizam tcnicas para escalonar os processos que esto em execuo ao mesmo tempo na maquina.

O escalonamento de processos uma tarefa complicada, pois nenhum algoritmo totalmente eficiente e a prova de falhas, principalmente em se tratando de sistemas interativos, como o Windows, pois a interao com o usurio fundamental para este sistema onde quem o utiliza procura respostas rpidas e a todo o momento processos so interrompidos pelo usurio. O escalonador do SO utiliza alguns critrios de escalonamento, como: a taxa de utilizao de CPU, que a frao de tempo durante a qual ela est sendo ocupada; throughput que so nmeros de processos terminados por unidade de tempo; turnaround que o tempo transcorrido desde o momento em que o software entra e o instante em que termina sua execuo; tempo de resposta: intervalo entre a chegada ao sistema e inicio de sua execuo; tempo de espera: soma dos perodos em que o programa estava no seu estado pronto. O tempo de permanncia, tempo de retorno ou turnaround time, um critrio simples dado pela soma do tempo de espera com o tempo de servio ou tempo de execuo. Uma outra forma de avaliar a qualidade do escalonamento utilizando-se do tempo de permanncia normalizado, ou seja, a razo entre o tempo de permanncia e o tempo de servio. Os preemptivos so algoritmos que permitem que um processo seja interrompido durante sua execuo, quer seja por fora de uma interrupo de entrada/sada, quer seja em decorrncia da politica de escalonamento adotada e aplicada por parte do escalonador de processos ou simplesmente por fora do trmino da execuo do processo. Aps a interrupo deste processo, ocorre o que se chama de troca de contexto, que consiste em salvar o contedo dos registradores e a memoria utilizada pelo processo e conceder a outro processo o privilgio de executar na CPU, restaurando assim o contexto deste ultimo processo. Exemplos de Algoritmos: FIFO (First in, first out) ou FCFS (First come first served): Onde como seu prprio nome j diz, o primeiro que chega ser o primeiro a ser executado; SJF (Shortest Job First): Onde o menor processo ganhar a CPU e atrs do mesmo formar uma fila de processos por ordem crescente de tempo de execuo; SRT (Shortest Remaining Time): Neste algoritmo escolhido o processo que possua o menor tempo restante, mesmo que esse processo chegue metade de uma operao, se o processo novo for menor ele ser executado primeiro; Algoritmo Loteria: O Sistema Operacional distribui tokens (fichas), numerados entre os processos, para o escalonamento sorteado um numero aleatrio para que o processo ganhe a vez na CPU, processos com mais tokens tm mais chance de receber antes a CPU.

Mesmo com a aplicao de prioridades e algoritmos melhor implementados, alguns processos ainda correm o risco de sofrer starvation (ficar muito tempo sem receber a CPU) por isso em determinando momento pode ocorrer o que chamamos de aging (O aging ocorre quando a prioridade de um processo vai se alterando com o tempo de vida do mesmo, controlando o starvation), que muda momentaneamente a prioridade de um processo que no executado h muito tempo e joga sua prioridade para a mais alta possvel para que ele seja atendido, logo aps as prioridades voltam ao normal. Nestes sistemas a interveno do usurio mnima, ao contrario do que ocorre em sistemas em tempo real como o Windows em que o usurio interrompe processos a todo instante por isso o sistema no garante que um processo vai ser Terminado.