Cursos / Informática para Internet / Sistemas Operacionais / Aula
Assim como o ser humano tem um ciclo de vida – o homem nasce, cresce, reproduz e morre – os processos também têm seu ciclo de vida. Para gerenciar os processos e seus estados, o sistema operacional mantém guardados dados sobre todos os processos presentes na memória. Dessa forma, o agendador de processos pode obter informações úteis na hora de decidir qual processo terá acesso ao processador. Lembre-se do exemplo dos amigos que estão jogando videogame; é necessário guardar os nomes e horários de cada jogador em uma tabela de forma a distribuir o game de forma justa.
De forma análoga, o sistema operacional usa uma tabela de processos, na qual mantém dados, como o estado atual de cada processo, um marcador que indica qual a próxima instrução deve ser executada e tudo mais que for relevante para o gerenciamento do processo.
Mas por que guardar tanta informação sobre os processos? Não seriam suficientes os dados presentes na área de memória reservada para cada processo e uma tabela que indicasse o endereçamento de cada processo memória?
Para entender melhor a importância da tabela de processos e do agendador de processos, vamos comparar o agendador com o trabalho de um continuísta num set de filmagens onde várias cenas serão rodadas.
Num filme, devido a questões de agendas e compromissos dos atores e profissionais envolvidos, as cenas podem ser filmadas em diferentes ordens e em dias diferentes. Para que a cena possa prosseguir normalmente, é papel do continuísta saber dos detalhes entre as filmagens de uma cena, evitando as falhas de continuidade quando o filme estiver pronto. Já imaginou como seria estranho se surgissem objetos do nada no meio de uma cena! A Figura 7 mostra um erro de continuidade em uma cena do filme “Amor a Segunda Vista” (de título original em inglês Two Weeks Notice).
De forma análoga ao trabalho do continuísta, é também responsabilidade do sistema operacional, através do agendador de processos, manter as informações dos processos consistentes com os respectivos estados (na tabela de processos), de modo que, quando eles forem se alternando no uso do processador, não ocorra descontinuidade.
Deve-se destacar que a função do sistema operacional não se limita apenas ao agendamento dos processos. Em muitos casos, apesar de os processos competirem entre si pelo uso do processador e de cada um ter o seu próprio espaço de memória protegido pelo sistema operacional, existe a necessidade de estabelecer cooperações entre processos quando se deseja executar tarefas muito complexas, de forma a evitar interferências de outros processos.
Nesse caso, a colaboração e a comunicação entre eles, seja para troca de informação ou simplesmente por uma sequência de ações dos processos cooperantes, precisam ser executadas com um certo cuidado, sob pena de gerar situações inconsistentes. Essa cooperação entre os processos deve também ser coordenada pelo sistema operacional.
Versão 5.3 - Todos os Direitos reservados