Gerenciamento de processos Linux
Durante a inicialização do Linux a função “start_kernel” é responsável por criar um thread, processo de número zero. Após iniciar toda a estrutura de dados esta mesma função é responsável por chamar a função “init” que utiliza a chamada de sistema “execve” para rodar o executável init. Os processos Linux são preemptivos, quendo um processo entra no estado TASK_RUNNING p kernel vai checar se existe alguma proiridade maior do que o processo corrente. Caso exista, o processo corrente é interrompido e o que tem prioridade maior começa a rodar.
A prioridade de um processo está em constante alteração, o escalonador se mantém informado sobre o que os processos estão fazendo e assim ajustar a prioridade. Dessa forma os processos que ficam proibidos de utilizar o CPU por um intervalo de tempo, tem sua prioridade incrementada automaticamente. Os processos são classificados como da Forma E/S e Forma CPU.
Gerenciamento de memória Linux
No Linux os processos que estão em execução têm prioridade na memória, quando termina um processo e se tiver espaço na memória, ficam resíduos desse processo na memória para uma futura volta desse processo ser mais rápida. Caso essa memória RAM esteja lotada com processos que estão em execução, aí começa a utilização da memória SWAP. A memória virtual do Linux é paginada, ou seja, é possível que sejam executados programas que tenham tamanho maior que a própria memória física do computador. Quanto mais memória requisitada, o Linux passa a transferir arquivos não usados há algum tempo, da memória RAM à memória virtual, liberando assim memória física para os aplicativos.
O que acontece é que o Linux utiliza a energia ociosa para cachê, a fim de agilizar os processos solicitados pelo usuário. Durante esse período de ociosidade da energia, o sistema toma para si essa memória, mas logo que o usuário necessite do recurso, o Linux libera imediatamente. Então, é possível afirmar que o Linux gerencia sua energia e a