Ger Proc Linux 1
Marcelo Toledo <http://www.marcelotoledo.org>
26 de abril de 2005
Resumo
O modelo de gerenciamento de processos do Linux teve uma evolu¸c˜ao not´avel desde o seu inicio, auxiliado pelo modelo Bazaar1 de desenvolvimento, esses algoritmos foram enumeras vezes criticados e melhorados por eruditos ao redor do mundo, isso faz com que o Linux tenha hoje um dos melhores conjuntos de algoritmos para gerenciamento de processos j´a visto.
1
Introdu¸c˜ ao Um processo pode ser descrito como parte de um programa que est´a aparentemente rodando. Este aparente existe somente pelo fato de que determinado processo pode entrar e sair diversas vezes do processador em um u
´nico segundo, e em um determinado momento ele pode n˜ao estar no processador e mesmo assim aparentemente estar rodando.
Como qualquer sistema de compartilhamento de tempo o Linux consegue dar a impress˜ao de execu¸c˜ao simultˆanea dos processos, separando um espa¸co bastante curto de tempo para cada um deles. Para ter sucesso nesta tarefa ele segue uma serie de regras que n˜ao desperdi¸ca tempo de hardware com opera¸c˜oes desnecess´arias e consegue escolher qual processo deve ser executado naquele exato momento.
O que decide essa escolha no kernel ´e o escalonador de processos, que em grande parte ´e respons´avel pela produtividade e eficiˆencia do sistema. Mais do que um simples mecanismo de divis˜ao de tempo, ele ´e respons´avel por uma pol´ıtica de tratamento dos processos que permite os melhores resultados poss´ıveis.
2
Primeiros Processos
Durante a fase de inicializa¸c˜ao do Linux a fun¸c˜ao “start kernel” ´e respons´avel por criar um thread, este ´e o processo de n´ umero zero, o primeiro e o ascendente de todos os outros processos. Ap´os inicializar toda a estrutura de dados para este processo esta mesma fun¸c˜ao ´e respons´avel por chamar a fun¸c˜ao “init” que por sua vez utiliza a chamada de sistema “execve” para rodar o execut´avel init, que ser´a o processo n´