Um processo pode ser considerado como um programa em execução, também um conjunto de informações necessárias para a concorrência de programas no sistema operacional. Além disso, também pode ser entendido como o ambiente onde um programa é executado.
Essas definições você irá encontrar no Arquitetura de Sistemas Operacionais, livro dos mestres Francis Machado e Luiz Maia.
Frisando Tanenbaum e Austin:
(..) um processo pode ser pensado como um programa em execução juntamente com toda informação do seu estado (memória, registradores, contador de programa, status de E/S, etc
Quando ocorre uma troca de um processo por outro temos a chamada mudança de contexto, e cada processo possui três partes:
- Contexto de hardware
- Contexto de software
- Espaço de endereçamento
Contexto de hardware
Essa parte do processo é a que armazena o conteúdo dos registradores gerais da CPU e dos registradores específicos. O contexto de hardware de um processo em execução fica armazenado nos registradores do processador.
Contexto de software
Aqui temos as especificidades dos recursos disponíveis para serem alocados em um processo, como limite de arquivos abertos ao mesmo tempo, tamanho do buffer para operações de E/S e prioridade de execução de processos.
O contexto possui três tipos de informação sobre o processo: identificação, quotas e privilégios.
Identificação
Cada processo do sistema operacional possui um número identificador, chamado de PID (process identification), juntamente com a identificação do usuário que o criou, o UID (user identificação).
Quotas
Aqui temos a informação dos limites de recurso que o processo pode alocar.
Privilégios
Os privilégios definem quais ações um processo pode tomar com relação a ele mesmo, a outros processo e ao sistema operacional. Pense, por exemplo, num processo iniciado pelo root
no linux, que tem privilégios de administrador.
Espaço de endereçamento
Esta parte do processo refere-se a àrea da memória que pertence ao processo, que ele possui para armazenar instruções e dados para sua execução.
Estados de um processo
Um processo pode ter basicamente três estados: em execução, pronto ou em espera.
Execução (running)
Dizemos que um processo está em execução quando ele está sendo processado pela CPU.
Pronto (ready)
Estar em estado de pronto significa que o processo aguarda para ser executado. A ordem de execução dos processos em estado de pronto é determinada pelo mecanismo de escalonamento.
Espera (wait)
O processo encontra-se em estado de espera quando aguarda por algum evento externo ou algum recurso para prosseguir sua execução.
Para maiores informações sobre processos vale dar uma lida no livro Arquitetura de Sistemas Operacionais do Francis Machado e do Luiz Maia.
Fontes:
MACHADO, Francis Berenger; MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais: Incluindo Exercícios com o Simulador SOSIM e Questões do ENADE. Rio de Janeiro: LTC, 2013.
TANENBAUM, Andrew S; AUSTIN, Todd. Organização estruturada de computadores. Tradução Daniel Vieira; revisão técnica Wagner Luiz Zucchi. São Paulo: Pearson Prentice Hall, 2013.
Esse texto não tem intenção de esgotar o tema. Acrescente nos comentários, e também aponte erros quando os identificar.
Top comments (2)
Obrigada pelo texto, me ajudou bastante no desenvolvimento de um trabalho da faculdade :D
Conteúdo importante para formação acadêmica