Escalonamento de Processos no Linux - Parte 1

Aula 47 · GNU/Linux para Servidores

Na aula sobre Escalonamento de Processos no Linux - Parte 1, abordou-se o conceito de Schedule como responsável por determinar qual processo será executado em seguida após uma troca de contexto. O sistema operacional Linux utiliza uma lista encadeada de prioridades para gerenciar os processos, diferentemente do modelo complexo descrito no livro de Tanenbaum. Os processos são organizados em várias filas, cada uma com sua própria prioridade, variando de 1 a 139, onde valores menores indicam maior prioridade. Processos de tempo real têm prioridades entre 0 e 99 e são sempre executados antes dos usuários normais que começam na prioridade 120.

O sistema também permite ajustar as prioridades de processos do usuário usando a função renice, mas não é possível alterar os processos de tempo real ou internos. Foi explicado o conceito de slice time (análogo ao quantum em outros sistemas) que define uma fatia temporária para um processo antes que ele seja movido para o final da fila para permitir a execução de outros processos. Além disso, foi mencionada a importância do gerenciamento eficiente de I/O e da utilização de múltiplos núcleos virtuais para melhorar a performance em servidores.

Foi demonstrado também como usar ferramentas como o HTOP para monitorar o uso dos processadores e entender a distribuição de trabalho nas linhas de processamento. Por fim, foi mencionada a possibilidade de implementar um escalonador personalizado no Linux através da importação do código em C++ presente em Schedule.C, fornecendo uma visão detalhada sobre como o sistema gerencia as trocas de contexto e prioridades entre os processos.

Entre na sua conta para perguntar sobre esta aula. Fazer login.

Voltar ao curso