Sítio do Piropo

B. Piropo

< Diversos >
Volte
27/03/2008

< Multitarefa >


P: Quando um SO gerencia os processos em execução numa máquina escalona os processos, uma vez que não é possível executar de fato dois processos simultaneamente (ao menos em processadores com um único núcleo). Sabendo disso, e sabendo também que o SO precisa estar “por trás” de tudo isso gerenciando este escalonamento, e sabendo também que o próprio SO é um programa, como ele roda fisicamente no processador? Ele se auto-interrompe para a execução de um processo e depois retorna à execução?

Rafael Nicodemus Ávila – Belo Horizonte/MG  

R:Sua dúvida diz respeito à “multitarefa”, ou execução “simultânea” de mais de um programa. Na verdade, em processadores de núcleo único, não há simultaneidade. Há uma distribuição de “fatias de tempo” para cada programa, cujas instruções são previamente carregadas em trechos diferentes da memória. O SO (sistema operacional) concede certo número de ciclos de máquina a um programa, depois a outro, e assim sucessivamente, e a troca se dá tão rapidamente que ao usuário parece que a execução é simultânea. Enquanto a UCP executa o código de um programa, o SO aguarda que o controle retorne para ele. Para isto precisa da colaboração da UCP, que deve suportar multitarefa, já que é ela quem “devolve” o controle ao SO. Veja mais informações em < Sistema de 32 bits; Multitarefa >.

B.Piropo -