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.
Qual a relação de processo com programa?
Um programa de computador é uma coleção passiva de instruções, enquanto que um processo é a execução real dessas instruções. Vários processos podem ser associados com o mesmo programa. Por exemplo, abrir várias instâncias do mesmo programa geralmente significa que mais de um processo está sendo executado.
Qual a diferença entre programa para processo?
Um programa e um processo são termos relacionados. A principal diferença entre programa e processo é que o programa é um grupo de instruções para realizar uma tarefa especificada, enquanto o processo é um programa em execução. Enquanto um processo é uma entidade ativa, um programa é considerado passivo.
Qual a rela C Ao entre programa e processo?
Processo é uma instância de um programa em execução. O programa é uma entidade passiva, pois reside na memória secundária. O processo é uma entidade ativa, pois é criado durante a execução e carregado na memória principal. O programa existe em um único lugar e continua existindo até que seja excluído.
Qual a relação entre programa processo e thread?
Um processo contém um único fluxo de controle e é composto por programa, dados e contexto. Resumindo: Um processo é um programa em execução, somado ao seu contexto. Threads: É um processo com múltiplos fluxos de controle.