O documento discute diferentes algoritmos e ambientes de escalonamento de processos em sistemas operacionais, incluindo escalonamento em lote, interativo e em tempo real. O escalonamento de processos é responsável por escolher qual processo será executado pela CPU de forma eficiente usando algoritmos como SJF, Round Robin e por prioridades.
O documento discute diferentes algoritmos e ambientes de escalonamento de processos em sistemas operacionais, incluindo escalonamento em lote, interativo e em tempo real. O escalonamento de processos é responsável por escolher qual processo será executado pela CPU de forma eficiente usando algoritmos como SJF, Round Robin e por prioridades.
O documento discute diferentes algoritmos e ambientes de escalonamento de processos em sistemas operacionais, incluindo escalonamento em lote, interativo e em tempo real. O escalonamento de processos é responsável por escolher qual processo será executado pela CPU de forma eficiente usando algoritmos como SJF, Round Robin e por prioridades.
O escalonador de processos é responsável por escolher, de forma eficiente, quais
processos serão executados pela CPU em um sistema operacional. Para isso, ele aplica algoritmos ou políticas de escalonamento para otimizar a utilização do processador e definir qual processo ocupará a CPU. O escalonador deve prezar por critérios, como a utilização do processador, throughput, tempo de processador, tempo de espera, tempo de turnaround e tempo de resposta, bem como por objetivos, como dar privilégios para aplicações críticas, balancear o uso da CPU entre processos, ser justo com todos os processos, maximizar a produtividade e proporcionar menores tempos de resposta para usuários interativos. Diferentes sistemas operacionais apresentam características de escalonamento distintas, como o sistema operacional em tempo real e o de tempo compartilhado. As principais situações que levam ao escalonamento são a criação de um novo processo, o término de um processo, bloqueio do processo, interrupção de entrada/saída e interrupções de relógio. Os algoritmos ou políticas de escalonamento podem ser classificados em não-preemptivo e preemptivo, sendo que no não-preemptivo um processo executa até finalizar ou até que seja bloqueado, enquanto no escalonamento preemptivo um processo é executado por um tempo pré-determinado e quando o tempo de execução dado ao processo finaliza, a CPU é alocada para outro processo.
Ambientes de escalonamento: lote
Os algoritmos de escalonamento em sistemas de processamento em lote,
onde não há usuários aguardando respostas. Os algoritmos FIFO e job mais curto primeiro (SJF) são apresentados e suas características explicadas. O SJF é um algoritmo não-preemptivo que seleciona os jobs mais curtos para serem executados primeiro. Uma versão preemptiva do SJF é o algoritmo próximo de menor tempo restante, que escolhe o job com o menor tempo restante para ser executado. A média de espera de execução dos jobs é calculada para os dois algoritmos. A figura apresenta quatro jobs com seus tempos de execução e mostra como a ordem de execução afeta a média de espera. O texto também explica que quando um novo job chega na fila de execução, seu tempo total é comparado com o tempo restante do processo que está utilizando a CPU.
Ambientes de escalonamento: interativo
Este texto discute diferentes algoritmos de escalonamento de processos
em sistemas operacionais. O primeiro é o escalonamento Round Robin, que organiza os processos em uma fila e cada um recebe um intervalo de tempo máximo (quantum) para executar. Se o processo ainda estiver executando ao final do quantum, a CPU é liberada para outro processo. O escalonamento por prioridades atribui a cada processo uma prioridade e um tempo máximo de execução, selecionando o processo com maior prioridade para executar. O escalonamento garantido garante a cada usuário um tempo igual de CPU, enquanto o escalonamento por loteria distribui bilhetes para os processos que representam o direito a um quantum de CPU. Por fim, o escalonamento fração justa garante que cada usuário receba uma fração justa da CPU.
Ambientes de escalonamento: tempo real
Nesta aula aprendemos que em sistemas de tempo real, o tempo é um fator
crítico e o escalonamento por prioridades é adequado para considerar a importância das tarefas na aplicação. No escalonamento de tempo real, a prioridade deve ser estática e não há fatia de tempo para cada processo. O escalonamento de threads depende se elas estão no espaço do usuário ou do núcleo. As threads do usuário podem utilizar um escalonador específico para uma aplicação e em Java, cada thread recebe uma prioridade que é utilizada pelo escalonador para decidir qual thread executará em determinado momento. Caso existam threads com a mesma prioridade alta, eles serão executados através de alternância circular.