Tecnologia em Alta
Estrutura de Dados: Escalonamento de Processos
O escalonamento de processos é uma das principais funções do sistema operacional, que consiste em decidir qual processo deve ser executado em cada momento na CPU. O objetivo do escalonamento de processos é otimizar o uso dos recursos do sistema, garantindo a eficiência, a justiça e a satisfação dos usuários.
O que é um processo?
Um processo é uma entidade que representa um programa em execução, que possui um estado, uma identidade, um contexto e recursos associados. Um processo pode ser criado, destruído, suspenso, retomado, bloqueado ou desbloqueado, dependendo das ações que realiza e dos eventos que ocorrem no sistema.
Como os processos são organizados?
Os processos são organizados em uma estrutura de dados chamada fila de prontos, que armazena os processos que estão aptos a serem executados, mas que estão aguardando a disponibilidade da CPU. A fila de prontos é gerenciada pelo escalonador de curto prazo, que seleciona o próximo processo a ser executado de acordo com um determinado critério.
Quais são os critérios de escalonamento de processos?
Utilização da CPU: indica a porcentagem de tempo que a CPU está ocupada executando processos, em vez de ficar ociosa.
Throughput: indica o número de processos que são completados por unidade de tempo.
Tempo de resposta: indica o intervalo de tempo entre a submissão de um processo e o início de sua execução.
Tempo de espera: indica o intervalo de tempo que um processo permanece na fila de prontos, aguardando pela CPU.
Tempo de turnaround: indica o intervalo de tempo entre a submissão de um processo e o seu término.
Quais são os tipos de escalonamento de processos?
Os tipos de escalonamento de processos são as formas como o escalonador de curto prazo pode selecionar o próximo processo a ser executado. Alguns exemplos de tipos são:
Escalonamento preemptivo: permite que o escalonador interrompa a execução de um processo e substitua-o por outro, caso ocorra algum evento de maior prioridade, como a chegada de um novo processo, o término de uma operação de entrada/saída ou o vencimento de um quantum de tempo.
Escalonamento por prioridade: seleciona o processo que possui a maior prioridade na fila de prontos, sendo que a prioridade pode ser estática ou dinâmica, dependendo de fatores como o tempo de espera, o tipo de processo ou a urgência do usuário.
Escalonamento por tempo compartilhado: divide o tempo da CPU em fatias iguais, chamadas de quantum, e atribui uma fatia para cada processo na fila de prontos, de forma circular. Se o processo não terminar dentro do seu quantum, ele é interrompido e volta para o final da fila, dando a vez ao próximo processo.
Escalonamento por loteria: atribui um número de bilhetes para cada processo na fila de prontos, de acordo com algum critério, como a prioridade, o tamanho ou o tempo de execução. Em seguida, sorteia um bilhete aleatoriamente e seleciona o processo que o possui, concedendo-lhe a CPU.
Conclusão
O escalonamento de processos é uma tarefa essencial para o funcionamento adequado de um sistema operacional, pois determina como os processos serão executados na CPU, buscando maximizar o desempenho e a satisfação dos usuários. Existem diversos algoritmos e critérios de escalonamento de processos, que devem ser escolhidos de acordo com as características e as necessidades de cada sistema.
Se você quer saber mais sobre esse assunto, clique aqui e conheça agora os nossos cursos da FASPEC, ou matricule-se agora e descubra um mundo de oportunidades