Processo
De Aulas
Conteúdo integrante da disciplina de Sistemas Operacionais
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
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.
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.
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.
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.
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.
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.
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.
Pipes
- Usado para comunicação de processos em um mesmo dispositivo computacional
- Pode ser usado um arquivo temporário
- Usa uma fila FIFO (First In Fist Out)
- Processo A escreve na entrada do pipe e processo B lê na saída
Tipos de processos
Processos Foreground e Background
- Foreground:
- Pode ter interação com o usuário
- O processo é visível e mostra informações
- Ex: Editor de Texto, Navegador web, player de música, etc.
- Background:
- Não há interação com o usuário
- Executa o processo sem que o usuário perceba
- Ex: Servidor web, servidor sftp, alguns módulos de antivirus, etc.
CPU-bound e IO-bound
- 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.
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).
Lista de Exercícios
- O que é Processo e Modelo de Processo?
- Descreva Contexto de Hardware, Contexto de Software e Espaço de Endereçamento.
- Quais são os estados que os processos podem assumir e o que cada um significa?
- O que é Mudança de Estado do Processo e descreva essas mudanças.
- Diferencie Subprocesso de Threads.
- Cite, descreva e diferencie os principais tipos de Processos.