|
Trabalho
prático 1 de SO
|
||
|
|
||
|
Processos - Gestão de processos |
||
|
Unidades de computação - Processos e Threads
Do ponto de vista de um programador um processo é um programa em execução. Um processo é composto por : - O programa
objecto a ser executado
Fig. 1 - Representação esquemática do funcionamento de um processo
O sistema operativo cria um descritivo do processo por cada processo gerado. Um descritivo de processo pode, por exemplo, conter o ID do processo, os recursos alocados e o conteúdo dos registos do processador, caso não esteja a ser executado. Quando é necessário referenciar um processo, referencia-se o seu descritivo. Basicamente, um processo é a actuação de um processador sobre um progama. É uma unidade de computação fundamental escalonável, a sua complexidade e comportamento é definida pelo sistema operativo. Nos sistemas operativos clássicos a unidade fundamental de computação é o processo mas nos sistemas modernos existem ainda mais duas unidades, threads e objectos.
Fig. 2 - Representação gráfica dos threads
Recursos Um recurso é uma entidade que pode ser requerida por um processo. Todos os processos "vivos" competem por recursos e compete ao gestor de recursos identificar, preparar e alocar os recursos necessários a um processo respeitando todas as políticas de gestão do sistema operativo enquanto o gestor de processos actualiza os estados dos processos identificando e ordenando, por prioridades, os processos que concorrem pelos mesmos recursos. É importante entender que cada entidade no computador tem um certo "estado" durante a execução de um processo que pode, ou não, ser diferente de outro processo, logo é imperativo manter todas essas informações associadas ao processo e disponibiliza-las assim que o processo for seleccionado para execução.
Gestão de processos Gestão de processos é um conceito que engloba todos os serviços que auxiliam o sistema operativo a fazer uma administração eficiente de um conjunto de processos, tem mecanismos e políticas dependentes dos SO. O processador é o componente que executa um programa assim que o código e os dados estejam disponíveis na memória, o processo requer diferentes recursos conforme o comportamento definido pelo programa. Um sistema operativo multiprogramado permite coexistirem ao mesmo tempo vários processos, enquanto apenas um usa o processador os outros efectuam operações E/S ou esperam por recursos. A esta capacidade do SO chama-se pseudoparalelismo (multiplexagem temporal do cpu). O gestor de processos implementa um modelo que permite múltiplos processos partilharem recursos. Um gestor de processo deve permitir criar e eliminar processos, suspender e activar processos, sicronizar processos e garantir a comunicação entre processos. Como cada processo requer dados e recursos diferentes é importantíssimo que o sistema operativo saiba quais as posições de memória onde estão os dados, em que linha do código vai a execução e quais os recursos necessários para a execução assim que o processo entrar no processador. Para isso foi criado o process block control que é constituído por : - Estado do processo
Os estados de um processo são facilmente reconhecidos e percebidos através do diagrama de estados (Fig. 3).
Figura 3 - Diagrama de estados de um processo
A movimentação
entre estados depende das políticas de escalonamento explicadas
noutro capítulo.
|