Unidade F - Gerenciamento do processador
Síntese
- bloco descritor de processo funciona como uma estrutura do sistema operacional que faz o controle dos processos que podem ser criados e dos processos existentes e prontos para execução; além disso esta estrutura armazena dados vitais à execução dos processos como o contexto de execução, prioridade e outras informações;
- contexto de execução é o conjunto de informações que o processo tem, e que mostram o estado da execução do processo. Estas informações são usadas para parar/continuar a execução do processo “do ponto em que parou” no momento do chaveamento de contexto;
- chaveamento de contexto é a troca feita entre um processo que está sendo executado (e parou) por outro que está na fila de prontos (e ganhou o processador). Nesta ação, o sistema operacional salva o contexto de execução do processo em execução diretamente no bloco descritor de processo e carrega o contexto de execução do novo processo nos registradores do processador (para este continuar de onde parou). Esta ação acontece por tempo indeterminado enquanto houverem processos a serem executados.
- Escalonador é o mecanismo responsável pela organização da fila de espera de processos prontos. Há diversos tipos de algoritmos escalonadores.
- FIFO – first-in, first-out é o algoritmo de fila – a organização é por ordem de chegada; favorece processos CPU-bound e causa o aumento do tempo de espera da fila;
- SJF – Shortest job first é o algoritmo de trabalhos mais rápidos primeiro; favorece processos rápidos e causa postergação indefinida de processos considerados lentos. Além do mais, não há como antever o tempo de execução de um processo.
- Prioridade – é o algoritmo que atende primeiro processos com prioridade mais alta; pode causar postergação indefinida de processos com baixa prioridade;
- Prioridade com aging – é um algoritmo que, a cada “rodada” de execução, promove o aumento de prioridade dos processos que estão na fila – evitando assim a postergação indefinida.
- Preemptivo vs não-preemptivo – algoritmos preemptivos retiram o processo que está em execução do processador para atender a um novo processo de maior prioridade na fila; enquanto não-preemptivos não retiram o processo atualmente em execução.
- Round-robin – algoritmos de fatia de tempo, em que cada processo ganha um tempo (quantum) para execução. Além disso, este algoritmo pode ser implementado com controle de prioridade preemptivo ou não-preemptivo. Este é um algoritmo largamente utilizado em sistemas operacionais comerciais.
- Múltiplas filas – conceito em que o sistema operacional possui múltiplas filas de atendimento, separadas por tipo de processos.