Na unidade anterior verificamos que o sistema operacional trabalha com um mecanismo de multiprogramação, atendendo diversos processos “quase que simultaneamente” dando para o usuário a sensação que tudo está acontecendo em paralelo – isto é denominado pseudoparalelismo. Na figura F.1 vemos um diagrama (mesmo mostrado na unidade anterior) que apresenta os estados e as transições entre estes estados. Neste ponto podemos nos perguntar como o sistema operacional consegue “fazer” a multiprogramação.
Um processador possui diversos registradores internos que são utilizados no processamento; estes registradores são contadores, acumuladores, registradores de deslocamento e outros mais. Quando um processo está sendo processado, está fazendo uso destes registradores que vão sofrendo modificações “em tempo de execução”, ou seja, seus valores são atualizados e modificados.
O estado em que se encontram estes registradores, em determinado momento do processamento de um processo é chamado de contexto de execução, ou seja, contexto de execução é o nome dado para o conjunto de informações de um processo em um determinado momento de sua execução entre o início e o fim de sua atividade.
Vale destacar que o contexto de execução NÃO é o resultado final do processamento e sim estados intermediários do processamento.
O contexto da execução pode ser comparado a uma fotografia do processador.
A multiprogramação consiste em trocar o processo que está executando a cada período, de forma que todos os processo que estão carregados na fila de prontos “ganhem” o processador por um pequeno intervalo de tempo, tenham uma fatia de processamento garantida e retornem para a fila de prontos. Este procedimento, que alterna processos na execução, acontece constantemente enquanto houver processos na fila. O chaveamento de contexto é o nome dado a esta troca entre os processos que estão na fila de processos prontos e o que está em execução.
O tempo1 de troca entre os processos é definido pelo sistema operacional em conjunto com o hardware e a título de exemplo, vamos utilizar uma media de 20ms2. Ou seja, a cada 20ms, o hardware envia uma requisição de interrupção para o processador, avisando que é hora de trocar de processo em execução.
Dinâmica do chaveamento do contexto entre pronto e execução
Dinâmica do chaveamento do contexto entre execução e bloqueado
Este ciclo repete-se enquanto houver processos na fila de execução. Sempre ocorrendo a cópia do contexto de execução que está armazenado no bloco descritor de processo e o processador ou do processador para o bloco descritor de processos.
A organização da fila de processos prontos e a escolha do próximo processo a “ganhar” o processador, é definido pelo algoritmo escalonador.