Sistemas
Operacionais
Capítulo 6
Processo
6.1
– Introdução
-
De forma simples, o processo é um programa em execução.
-
Extensão do conceito: Estrutura responsável pela manutenção
de todas as informações necessárias à
execução de um programa, como conteúdo de registradores
e espaço na memória
6.2 – Modelo de Processo
-
Processo = ambiente onde se executa um programa
-
Um mesmo programa pode produzir resultados diferentes, dependendo
do processo no qual ele é executado.
-
Bloco de controle do processo (Process Control Block – PCB) – Estrutura
onde o SO guarda todas as informações do processo,
contendo sua identificação, prioridade, estado corrente,
recursos alocados por ele e informações sobre o programa
em execução
-
O Sistema Operacional gerencia os processos através de System
Calls.
-
Processo : contexto de hardware, software e espaço de endereçamento.
6.2.1
– Contexto de Hardware
-
Constitui-se do conteúdo de registradores
-
A troca de um processo por outro na CPU, pelo sistema operacional,
é denominada mudança de contexto.
-
Mudança de Contexto - salva o conteúdo dos registradores
da CPU e carregá-los com os valores referente ao do processo
que está ganhando a utilização do processador.
6.2.2 – Contexto de Software
-
Características do processo incluídas na execução
de um programa, divididas em:
-
Identificação – Principalmente número (PID)
de identificação e identificação do
processo ou usuário (UID) que o criou.
-
Quotas – Limites de cada recurso do sistema que um processo pode
alocar
-
Privilégios – o que o processo pode ou não fazer
em relação ao sistema e aos outros processos.
6.2.3 – Espaço de Endereçamento
- Área
da memória do processo onde o programa será executado
e para dados utilizados por ele.
-
Deve ser protegido do espaço de endereçamento dos
demais processos
6.3 – Estado do Processo
-
Em sistemas Multitarefas o processo não é executado
todo o tempo pelo processador
-
3 tipos de estados:
-
Execução (running) – O processo está
sendo executado pela CPU.
-
Pronto (ready) – O processo está pronto e esperando para
ser executado pela CPU.
-
Espera (wait) – O processo está esperando algum evento
externo ou por algum recurso para poder prosseguir seu processamento.
-
Bloqueado – O processo está esperando por algum recurso
do sistema que não se encontra disponível.
6.4 – Mudança de Estado do Processo
-
Mudança de estado por eventos do próprio processo
(eventos voluntários) ou causados pelo sistema operacional
(eventos involuntários). Dividido em 4 mudanças:
-
Pronto -> Execução = Quando um processo é
criado, é colocado em uma lista de processos no estado
pronto. Então é escolhido pelo sistema para ser
executado.
-
Execução -> Espera = O processo passa para espera
quando aguarda a conclusão de um evento solicitado.
-
Espera -> Pronto = O processo passa para pronto quando a operação
solicitada é atendida ou o recurso esperado é concedido.
-
Execução -> Pronto = O processo passa de execução
para pronto por eventos gerados pelo sistema.
6.5 – Subprocesso e Thread
-
Subprocesso ou processo filho
-
processos criados por um outro processo, de maneira hierárquica.
-
O subprocessos são eliminados quando o processo pai deixa
de existir.
-
Permite dividir a aplicação para trabalhar de forma
concorrente.
-
Cada processo e subprocesso possui seu ambiente e recursos alocados.
-
Thread ou Linha de Controle
-
No ambiente multthread cada processo pode responder a várias
solicitações concorrentes ou mesmo simultaneamente,
se houver mais de um processador.
-
Threads compartilham o processador da mesma forma que um processo.
-
Cada Thread possui seu próprio conjunto de registradores,
porém compartilha o mesmo espaço de endereçamento
com as demais threads do processo.
-
Uma Thread pode alterar os dados de outra Thread.
6.6 – Processos do Sistema
-
Grande parte do núcleo do sistema é executada no contexto
de processos, inclusive no contexto de processos de usuários,
como:
-
auditoria e segurança:
-
serviços de rede;
-
contabilização do uso de recursos;
-
contabilização de erros;
-
gerência de impressão;
-
gerência de jobs batch;
-
temporização;
-
comunicação de eventos;
-
inteface de comando (shell).
6.7 – Tipos de processos
-
CPU-bound (Ligado à CPU)
-
O processo passa a maior parte do tempo no estado de execução.
-
Realiza poucas operações de I/O
-
Encontrado em aplicações que efetuam muitos cálculos.
-
I/O-bound (Ligado à E/S)
-
O processo passa a maior parte do tempo no estado de espera
-
Encontrado em aplicações comerciais com bastante
leitura, processamento e gravação.
-
Encontrado também em aplicações interativas.
|