Show
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:
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 hardwareEssa 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 softwareAqui 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çãoCada 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). QuotasAqui temos a informação dos limites de recurso que o processo pode alocar. PrivilégiosOs 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 Espaço de endereçamentoEsta 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 processoUm 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: 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. O Contexto de hardware O contexto de hardware armazena o conteúdo dos registradores gerais da UCP, além dos registradores de uso específicos ( CI ou PC, stack pointer ). Quando um processo está em execução, o seu conteúdo de hardware está armazenado nos registradores do processador. O Contexto de software O Contexto de software armazena informações sobre limites e características dos recursos que podem ser alocados pelo processo, como o número máximo de arquivos abertos simultaneamente, prioridade de execução e tamanho do buffer para operações de E/S. Estas características são determinadas no momento da criação do processo e durante sua execução. O Contexto de software é composto por três grupos de informações sobre o processo: Identificação - Cada processo possui um identificador ( PID - process identification ) que é representado por um número. O processo é identificado pelo sistema operacional através do PID. O processo também possui a identificação do usuário ou processo que o criou ( owner ). Cada usuário possui uma identificação no sistema ( UID - User identification ), atribuida ao processo no momento de sua criação. Quotas - As quotas são o limite de cada recurso do sistema que um processo pode alocar. Caso uma quota seja o insuficiente o processo pode ser executado lentamente, ser interrompido ou até não ser executado. São exemplos de
quotas:
Privilégios - Os privilégios ou direitos definem as ações que um processo pode fazer em relação a ele mesmo, aos demais processos e ao sistema operacional. Espaço de Endereçamento O espaço de endereçamento é a área de memória pertencente ao processo onde instruções e dados do programa são armazenados para execução. Cada processo possui seu próprio espaço de endereçamento que é protegido pelo sistema operacional para que não haja acesso pelos demais processos em execução. Bloco de Controle de Processo O processo é implementado pelo sistema operacional através de uma estrutura de dados chamada bloco de controle do processo ( PCB - Process Control Block ). O sistema operacional, através do PCB, mantém todas as informações sobre o contexto de hardware, contexto de software e espaço de endereçamento. Cada processo possui seu PCB que mantêm todas as suas informações. OS PCBS de todos os processos são mantidos na memória principal em uma área exclusiva do sistema operacional. O tamanho desta área de memória é controlado por parâmetro no sistema operacional de acordo com o número máximo de processos que podem ser suportados pelo sistema operacional. A figura abaixo mostra algumas das informações do BCP de um processo: Estados de um Processo Em umsistema multi programado, os processos passam por vários estados durante a sua execução, em função de eventos gerados pelo sistema operacional ou pelo próprio processo. Um processo ativo pode encontrar-se em um de três diferentes estados:
Mudanças de Estado de um Processo Um processo muda de estado durante seu processamento em virtude de eventos gerados pelo sistema operacional ou pelo próprio processo. Existem quatro mudanças de estado que podem ocorrer a um processo:
Swapping de Processos Um processo em estado pronto ou de espera pode nao estar na memória principal. Esta condição ocorre quando não há espaço suficiente na memória principal para todos os processos. Neste caso, o contexto do processo é saldo em memória secundária. Este mecanismo é chamado swapping e consiste em retirar processos da memória principal e os trazer de volta à memória principal de acordo com critérios de cada sistema operacional. Criação e Eliminação de Processos Processos são criados e eliminados o tempo todo pelo sistema operacional. A criação de um processo ocorre quando o sistema operacional adiciona um novo PCB a sua estrutura e aloca um espaço de endereçamento na memória para uso. A partir da criação do PCB o sistema operacional já reconhece a existência do processo. A partir desse momento é possível gerenciar o processo e associar ao seu contexto um programa para ser executado. A eliminação de um processo desaloca todos os recursos associados ao processo e remove o PCB criado para o processo. Existem dois estados adicionais para representar a criação e eliminação de processos. Criação ( new ) - Um processo é dito no estado e criação quando o sistema operacional já criou um novo PCB, porem ainda não pode coloca-lo na lista de processos do estado pronto. Alguns sistemas operacionais limitam o número de processos ativos em função de recursos disponíveis ou de desempenho. Por isso, os processos criados permanecem no estado de criação até que possam ser colocados no estado pronto quando ficam ativos e aguardando para serem executados. Terminado ( exit ) - Um processo no estado de terminado não poderá mais ter nenhum programa executado no seu contexto nem ter nenhum recurso alocado. Porém o sistema operacional ainda mantém informações do processo em memória. O processo no estado terminado não é mais considerado ativo. Um processo pode passar para o estado terminado por razões como:
A figura abaixo mostra um diagrama de estados de um processo: Processos CPU-Bound e I/O Bound Os processos podem ser classificados de acordo com o uso do processador ou dos dispositivos de E/S. Um processo é definido como CPU-Bound quando passa a maior parte do tempo no estado de execução, utilizando o processador, ou pronto. Este tipo de processo faz muito pouco uso de leitura e escrita em dispositivos de E/S. Um processo é definido como I/O Bound quando passa a maior parte do tempo no estado de espera, pois realiza muitas operações de leitura e escrita. A maioria das aplicações comerciais constitui este tipo de processo que faz consultas e atualizações em um banco de dados, por exemplo, durante o uso pelos usuários. Processos foreground e background Os processos também podem ser classificados pela forma de comunicação com o usuário ou com outros processos. A comunicação dos processos é feita por canais de entrada e saída que podem estar associados a terminais, impressoras, arquivos ou a outros processos. Um processo é dito Foreground quando permite a comunicação direta do usuario com o processo durante o seu processamento. Os canais de entrada e saida são geralmente o teclado e o terminal, respectivamente. Desta forma, existe interação entre o usuário e o processo durante a execução do processo. Um processo é dito Background quando não permite a comunicação direta do usuário com o processo durante a sua execução. O processamento batch é geralmente associado a processos background. Quais os principais estados de um processo?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.. Quais são os 5 estados de um processo?Estados de Processos. Ao executar, processo muda de “estados” New: processo está sendo criado.. Running: instruções do processo estão executando. Waiting: processo está esperando ocorrência de algum.. evento. Terminated: processo terminou a execução.. Quantos são os estados de um processo?Um processo passa por diferentes estados desde sua criação até seu término. Enquanto ele é criado, seu estado é considerado "Novo"; em ação, muda para "Executando"; quando depende da ocorrência de algum evento, vira "Esperando"; quando não mais necessário, o processo é "Terminado".
Quais os estados de um processo quais as possíveis transições?Em resumo: – 5 estados (criado, pronto, executando, bloqueado, encerrado) – Transições possíveis.
|