Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Prévia do material em texto

Conceituação e gerenciamento de 
processos
Apresentação
O processo é a abstração usada pelos sistemas operacionais para representar cada uma das tarefas, 
sendo executadas em um dado instante. Cada programa executado em um sistema operacional terá 
suas informações mantidas através de processos que são gerenciados pelo sistema.
Um processo é composto por informações sobre valores dos registradores durante a sua execução; 
posições de memória relativas ao código; pilha de execução e dados do programa; seu 
relacionamento com outros processos; e o seu estado, que define se um processo está sendo 
executado, está disponível para ser executado ou se há algo que bloqueie a sua execução no 
momento. Uma das tarefas mais básicas de um sistema operacional é garantir que cada processo 
seja executado sem que haja interferência de outros. Em computadores modernos, com múltiplas 
CPUs e execução realmente paralela, o gerenciamento de processos é essencial para o correto 
funcionamento do sistema.
Nesta Unidade de Aprendizagem, você aprenderá como um sistema operacional utiliza o conceito 
de processo para permitir a execução de múltiplos programas em um computador, desde a criação, 
o gerenciamento (passando pela máquina de estados de execução), até o término dos processos.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Explicar o modelo de um processo.•
Reconhecer eventos de criação e de término de processos em um sistema operacional.•
Reconhecer eventos de criação e de término de processos em um sistema operacional.•
Desafio
Gerenciadores de tarefa são aplicações que permitem que os usuários de um sistema operacional 
visualizem o andamento dos processos em execução. Sistemas operacionais com foco em usuários 
comuns, como Windows e Ubuntu Linux, possuem gerenciadores de tarefa gráficos, com interfaces 
de uso simples e com destaque para as principais informações necessárias para o entendimento do 
funcionamento do sistema, como uso de CPU, Memória, Disco e Rede de cada processo. A análise 
destes valores é importante para profissionais de TI ao realizar análises de performance de 
sistemas, redes ou aplicações. Também são disponibilizadas ferramentas de linha de comando com 
o mesmo objetivo, como o tasklist (Windows) e o top (Linux e outras variações de Unix), que 
geralmente são preferidas por profissionais mais experientes. Muitos problemas podem ser 
indicados pelo adequado acompanhamento dos valores disponíveis nestas aplicações.
Considere a situação a seguir:
Para compreender o que está acontecendo em ambos os computadores e identificar o problema 
que está ocorrendo na aplicação, responda as questões a seguir:
a) Com base nas observações do gerenciador de tarefas e nos conhecimentos adquiridos sobre 
processos e seus estados, este problema pode ser causado por um excesso de chamadas de E/S 
realizadas pela aplicação? Justifique sua resposta. 
 
b) Por que em um dos computadores o consumo de CPU chega a 100% e inviabiliza o uso da 
interface gráfica do sistema operacional, e no outro computador a mesma aplicação aparenta usar 
menos processamento e o sistema continua usável, ainda que a aplicação em si esteja quase 
travada? 
 
c) Qual tipo de erro, a nível de código, pode estar causando este problema? Justifique sua resposta.
Infográfico
A máquina de estados de um processo define, a partir do estado atual do processo, quais mudanças 
de estado são possíveis. Sistemas operacionais como Windows e Linux usam máquinas mais 
complexas, mas de forma geral é possível resumir o número de estados em que um processo pode 
estar, que são três: 1. Em execução; 2. Pronto; e 3. Bloqueado (também chamado de Espera). Ao 
entrar em um destes estados, o processo só poderá ser alterado para outro respeitando o fluxo 
definido na máquina de estados.
No Infográfico a seguir, você vai ver a máquina de estados de um processo, compreender o que 
está acontecendo com ele em cada um dos possíveis estados e entender que eventos podem 
disparar uma mudança de estado.
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou clique no 
código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/cf5d242b-698d-449b-bc51-df1cf349c358/ec498a28-f361-4e4b-871a-3679eaf7572e.png
Conteúdo do livro
Em sistemas operacionais, quando se inicia um programa, automaticamente ele é atribuido a um 
processo. Os processos são gerenciados pelo sistema, de maneira que, durante toda a sua 
execução, são coletas informações importantes, como, por exemplo, os dados do programa que 
iniciou sua execução.
Considerando os computadores modernos e sua evolução, temos a falsa sensação de que inúmeros 
processos são executados ao mesmo tempo. No entanto, as coisas não ocorrem bem dessa forma.
No capítulo Conceituação e gerenciamento de processos, base teórica desta Unidade de 
Aprendizagem, você poderá compreender como de fato os processos se comportam, identificando 
que cada processo executado tem seu tempo de criação e finalização, bem como diferentes fases 
de execução.
Boa leitura.
SISTEMAS 
OPERACIONAIS
OBJETIVOS DE APRENDIZAGEM
 > Explicar o modelo de um processo.
 > Reconhecer eventos de criação e de término de processos em um sistema 
operacional.
 > Apontar as mudanças de estado de um processo.
Introdução
O sistema operacional é responsável por gerenciar todos os programas em um 
computador. Sempre que se inicia um programa, um novo processo é criado. Sendo 
assim, entender esse conceito é fundamental para a compreensão do funciona-
mento de sistemas e programas. Nos computadores modernos, os processos 
permitem operações simultâneas — ou dão a impressão de que isso está ocorrendo.
Neste capítulo, você poderá entender como de fato os processos se compor-
tam, incluindo os passos que ocorrem desde sua criação até sua finalização, bem 
como os estados em que os processos se encontram em cada etapa durante toda 
a sua execução.
Conceituação e 
gerenciamento 
de processos
Juliane Soares
Modelo de processo
Ao discutir sistemas operacionais, um dos conceitos mais essenciais é o de 
processo, que se refere a uma instância de programa de computador que o 
sistema operacional está executando no momento. Os processos são cruciais 
na manutenção dos recursos do sistema, permitindo a multitarefa e garantindo 
a estabilidade e a eficiência efetivas do sistema. Conforme Tanenbaum e Bos 
(2016), um processo pode ser pensado como um contêiner que armazena todas 
as informações necessárias para executar um programa.
Todo software que pode ser executado em um computador — às vezes, 
até o sistema operacional — é dividido em vários processos sequenciais ou, 
simplesmente, processos. Como dissemos, um processo é essencialmente um 
programa que está sendo executado no momento, abrangendo os valores 
atuais de variáveis, contadores de programa e registradores. Cada processo 
funciona como se tivesse sua própria CPU virtual. Embora a CPU eventualmente 
mude de um processo para outro, é muito mais simples imaginar uma cole-
ção de processos rodando concorrentemente, mesmo que seja apenas um 
pseudoparalelismo. Essa troca rápida entre processos é conhecida como 
“multiprogramação” (TANENBAUM; WOODHULL, 2008).
A Figura 1 mostra um sistema computacional multiprogramado com quatro 
programas em memória.
Figura 1. Multiprogramação com quatro programas.
Fonte: Adaptada de Tanenbaum e Woodhull (2008).
Um contador de programa
Alternância
de processos
A
B
C
D
A Figura 2 exibe quatro processos, cada um com seu próprio fluxo de 
controle distinto, juntamente com seu contador de programa exclusivo, que 
opera de forma autônoma em relação aos outros processos. Note que há 
apenas um contador de programa físico presente; portanto, quando cada 
processo é executado, seu contador de programa lógico correspondente é 
Conceituação e gerenciamento de processos2
carregado no contador de programa físico. Após a conclusão, o contador de 
programafísico é armazenado no contador de programa lógico do processo 
na memória.
Figura 2. Modelo conceitual.
Fonte: Adaptada de Tanenbaum e Woodhull (2008).
Quatro contadores de programa
A B DC
Na Figura 3, pode-se observar que, embora todos os processos tenham 
progredido por um longo período de tempo, apenas um processo está ativo 
em um determinado momento.
Figura 3. Programa em execução.
Fonte: Adaptada de Tanenbaum e Woodhull (2008).
Pr
oc
es
so D
C
B
A
Tempo
Quando uma CPU alterna entre processos, segundo Tanenbaum e Woo-
dhull (2008), é improvável que a velocidade na qual cada processo conclui 
sua computação seja consistente ou replicável se os mesmos processos 
forem executados novamente. Como resultado, os processos não devem 
ser programados com suposições de tempo pré-determinadas. Considere 
um processo de E/S (entrada/saída) que inicializa um streamer de fita para 
restaurar arquivos de backup. O processo espera em um loop por 10.000 
ciclos para permitir que o streamer atinja a velocidade correta e, em seguida, 
lê o primeiro registro com um comando. Se a CPU decidir mudar para outro 
Conceituação e gerenciamento de processos 3
processo durante o loop de espera, o processo da fita poderá não ser execu-
tado novamente até que o primeiro registro tenha passado pelo cabeçote de 
leitura. Quando um processo tem certos requisitos de tempo real que exigem 
que eventos específicos ocorram em um determinado momento, medidas 
especiais devem ser tomadas para garantir que isso seja atendido. Em geral, 
entretanto, a maioria dos processos não é afetada pela multiprogramação 
da CPU ou pelas velocidades variáveis de diferentes processos.
A diferença entre um processo e um programa é sutil, mas decisiva. 
Como analogia, considere que um padeiro habilidoso está fazendo 
um bolo de aniversário para sua filha. O padeiro tem todos os ingredientes 
necessários, como farinha, ovos, açúcar e extrato de baunilha, além de uma 
cozinha bem-equipada. Nessa analogia, a receita representa o programa, que 
é essencialmente um algoritmo escrito em uma notação específica. O padeiro 
é o processador (CPU), e os ingredientes que compõem o bolo são os dados 
de entrada. O processo em si refere-se à atividade do padeiro lendo a receita, 
selecionando os ingredientes e realizando as etapas necessárias para assar o 
bolo (TANENBAUM; WOODHULL, 2008).
Maziero (2019) explica que, dentro de um sistema operacional, todo pro-
cesso é denotado por um bloco de controle de processo (PCB, do inglês 
process control block), também chamado de “tabela de processos”. Um PCB 
é mostrado na Figura 4.
Figura 4. Bloco de controle de processo (PCB).
Fonte: Adaptada de Silberschatz, Galvin e Gagne (2015).
Estado do processo
Número do processo
Contador do programa
Registradores
Limites da memória
Lista de arquivos abertos
Conceituação e gerenciamento de processos4
A Figura 4 mostra que o PCB contém uma quantidade considerável de 
informações relacionadas a um processo específico, incluindo as apresentadas 
a seguir (SILBERSCHATZ; GALVIN; GAGNE, 2015).
 � Estado do processo: a condição da operação pode ser categorizada em 
vários estados, como novo, pronto, em execução, aguardando, parado, 
entre diversos outros.
 � Contador do programa: o contador do programa é um componente 
crucial na execução de qualquer processo. Ele serve para indicar o 
endereço da próxima instrução que será executada.
 � Registradores da CPU: o número e o tipo de registradores da CPU dife-
rem com base na arquitetura do computador. Existem acumuladores, 
registradores de uso geral, registradores de índice e ponteiros de 
pilha, bem como informações de código de condição. Quando ocorre 
uma interrupção, essas informações de estado, juntamente com o 
contador do programa, devem ser preservadas para garantir a retomada 
adequada do processo posteriormente.
 � Informações de scheduling (escalonamento) da CPU: isso envolve a 
prioridade de um processo, bem como quaisquer parâmetros de es-
calonamento e ponteiros para as filas de escalonamento relevantes.
 � Informações de gerenciamento da memória: as informações referentes 
ao gerenciamento de memória podem conter detalhes como o valor 
dos registradores limite e base, bem como tabelas de páginas ou 
tabelas de segmentos, dependendo do sistema de memória utilizado 
pelo sistema operacional.
 � Informações de contabilização: as informações referentes à contabili-
zação consistem em vários elementos, como o uso de tempo real e CPU, 
as limitações de tempo, os números de identificação de trabalhos ou 
processos, os números de contas e outros itens semelhantes.
 � Informações de status de I/O (input/output), ou E/S (entrada/saída): 
as informações de status de E/S são uma coleção de vários detalhes, 
como a lista de dispositivos de E/S que foram alocados para um de-
terminado processo. Elas abrangem também um registro de arquivos 
abertos, bem como outros dados relevantes.
A estrutura operacional de um processo de sistema operacional contém 
uma infinidade de mecanismos e componentes que são responsáveis por 
direcionar, regular e facilitar a execução e interação de processos dentro 
do ambiente do sistema operacional. Essa abordagem permite a alocação 
Conceituação e gerenciamento de processos 5
eficiente de recursos, a multitarefa e a coordenação perfeita entre aplicativos, 
resultando em uma experiência estável e consistente.
Um conceito fundamental a ser entendido é que um processo é um tipo 
específico de atividade. É composto de quatro componentes essenciais: um 
programa, entrada, saída e um estado. Um único processador pode ser alo-
cado para vários processos, com um algoritmo de agendamento apropriado 
usado para determinar quando se deve pausar um processo e iniciar outro 
(BARBOSA, 2018).
Além disso, o sistema operacional mantém uma tabela de processos, que 
guarda uma entrada para cada um deles, conforme apresenta o Quadro 1.
Quadro 1. Tabela de gerenciamento de processos
Registros Prioridade Sinais
Contador de programa Parâmetros de 
escalonamento
Momento em que um 
processo foi iniciado
Palavra de estado do 
programa
ID do processo Tempo de CPU usado
Ponteiro da pilha Processo pai Tempo de CPU do 
processo filho
Estado do processo Grupo de processo Tempo do alarme 
seguinte
Fonte: Adaptado de Tanenbaum e Bos (2016).
As informações armazenadas na tabela de processos permitem a coexis-
tência de vários processos em um único computador, mesmo que não estejam 
todos ativos simultaneamente.
As entradas em questão são uma fonte significativa de informações sobre 
o estado do processo, como seu contador de programa, ponteiro de pilha, 
alocação de memória, estado de arquivos abertos, bem como detalhes de 
contabilidade e agendamento e qualquer outra informação relevante que 
deva ser salva ao se fazer a transição do estado em execução para um es-
tado pronto ou bloqueado, permitindo reinicializações contínuas, como se 
o processo nunca tivesse parado (TANENBAUM; BOS, 2016).
O processo de uma interrupção começa com a preservação dos regis-
tradores, normalmente dentro da entrada do processo existente na tabela 
de processos. Posteriormente, os dados que foram colocados na pilha pela 
Conceituação e gerenciamento de processos6
interrupção são removidos, e o ponteiro da pilha é direcionado para uma 
pilha provisória para uso do manipulador de processos. Tarefas como a 
conservação dos registradores e o ajuste do ponteiro da pilha são realizadas 
durante esse processo (TANENBAUM; BOS, 2016).
Pequenas rotinas de linguagem são normalmente utilizadas para executar 
tarefas que não podem ser executadas por meio de linguagens de alto nível, 
como C. Essas rotinas são geralmente uniformes em todas as interrupções, 
pois têm a mesma função de preservar registros, independentemente do 
motivo da interrupção. Embora um processo possa ser interrompido várias 
vezes durante sua execução, o conceito subjacente é que o processo sem-
pre retornará exatamente ao mesmo estadoem que estava antes de ser 
interrompido (TANENBAUM; BOS, 2016). A seguir, vamos abordar os eventos 
envolvidos em um processo.
Eventos em processos
Durante o ciclo de vida de um processo em um sistema operacional, dois 
eventos significativos são a criação e o término do processo. Nesta seção, 
vamos explorar mais detalhadamente cada um desses eventos, de acordo 
com Barbosa (2018) e Tanenbaum e Bos (2016).
Criação do processo
A criação de processos é um requisito fundamental para sistemas operacionais. 
A expressão “criação de processo” denota a formação de um novo processo 
pelo sistema operacional, uma tarefa que abrange as etapas apresentadas 
a seguir.
1. Inicialização do sistema: no momento em que um sistema operacional é 
iniciado, também são iniciados alguns processos. Isso inclui processos 
de primeiro plano, que interagem com os usuários e seus aplicativos, e 
processos de segundo plano, que têm uma função especializada, como 
um processo de atualização de e-mail quando uma nova mensagem é 
recebida. Os processos que funcionam em segundo plano para gerenciar 
determinadas atividades, como páginas da web, notícias, impressão 
ou e-mail, são chamados de “daemons”.
Conceituação e gerenciamento de processos 7
É possível verificar os processos em execução no sistema operacional, 
a fim de identificar quais estão em primeiro e em segundo plano. 
No Unix, isso pode ser feito com o programa ps e, no Windows, o gerenciador 
de tarefas pode ser usado.
2. Realização de uma chamada de sistema por um processo em execu-
ção para criação de processo: normalmente, um processo que está 
em execução vai executar uma chamada de sistema para criar outro 
processo ou vários novos processos para auxiliar em sua carga de 
trabalho. A criação de novos processos é especialmente valiosa quando 
a tarefa em questão pode ser dividida em vários processos distintos 
relacionados entre si, mas que podem operar de forma independente. 
Além disso, em um sistema multiprocessador, atribuir cada processo a 
uma CPU separada pode acelerar a conclusão da tarefa. Por exemplo, 
um processo de download aciona outro processo para ajudá-lo em 
sua tarefa. À medida que um processo faz o download dos dados, o 
outro os armazena no disco.
3. Um pedido de um usuário para criar um novo processo: em sistemas 
interativos, sempre que um usuário digitar um comando ou solicitar a 
abertura de um aplicativo, um novo processo será iniciado e executará 
o programa selecionado dentro do referido processo.
Em sistemas Unix baseados em comandos que executam Window 
(interface gráfica do Unix), a janela iniciada é ocupada pelo novo 
processo. Por sua vez, no Windows, um processo inicialmente não tem uma 
janela, mas tem a capacidade de criar uma ou até várias janelas. Em ambos os 
sistemas, normalmente há várias janelas abertas a qualquer momento, e cada 
janela está executando algum tipo de processo. Com o mouse, os usuários podem 
selecionar uma janela de sua escolha e interagir com o processo correspondente, 
como fornecer as entradas necessárias.
4. Início de uma tarefa em lote: esses processos são executados em 
grandes computadores, conhecidos como mainframes. Por exemplo, 
considere o gerenciamento de estoque no final do dia em uma rede 
de lojas. Nesse caso, os usuários podem enviar tarefas em lote re-
motamente ao sistema. Assim que o sistema operacional considerar 
que dispõe de recursos suficientes para executar outra tarefa, ele 
Conceituação e gerenciamento de processos8
criará um novo processo, e a próxima tarefa na fila de entrada será 
executada dentro deste.
Em cada um desses casos, um novo processo é estabelecido por um pre-
existente, sendo utilizada uma chamada de sistema de criação de processo. 
O processo recém-criado pode ser um processo do usuário que está em 
execução no momento, um processo do sistema iniciado pela entrada do 
usuário (p. ex., por um teclado ou mouse) ou um processo de manipulação em 
lote. O objetivo do processo de criação é executar uma chamada de sistema 
que vai gerar o novo processo. Essa chamada de sistema instrui o sistema 
operacional a criar um novo processo e denota, direta ou indiretamente, o 
programa que deve ser executado dentro dele.
Término do processo
Uma vez que todas as etapas necessárias para a criação de um processo 
tenham sido executadas, o processo recém-criado entra em um estado pronto 
e começa a executar suas tarefas designadas. Depois que essas tarefas forem 
concluídas, o processo pode ser encerrado. O encerramento do processo, 
também conhecido como “saída do processo”, ocorre quando um processo 
termina a execução ou é finalizado deliberadamente pelo sistema operacional 
ou por outro processo nas condições apresentadas a seguir.
 � Saída normal (voluntária): acontece quando um processo realiza todas 
as suas tarefas. Por exemplo, quando um compilador conclui a tradução 
de um programa, ele executa uma chamada para notificar o sistema 
operacional de que terminou, que é conhecida como “exit” no Unix e 
“Exit-Process” no Windows. Os programas que dependem de uma tela 
também oferecem suporte à rescisão voluntária. Programas como 
visualizadores da web, processadores de texto e outros softwares 
semelhantes contêm um ícone ou item de menu que o usuário pode 
ativar para sinalizar o processo de remoção de arquivos temporários 
que foram abertos e, então, encerrá-los.
 � Erro fatal (involuntário): é um erro causado pelo processo, muitas vezes 
decorrente de um erro de programa, como, por exemplo, a execução 
ilegal de uma instrução ou a divisão de um número por zero. Nesse 
caso, existe um processo de maior prioridade que supervisiona os 
outros processos e interrompe processos ilegais.
Conceituação e gerenciamento de processos 9
 � Saída por erro (voluntária): os processos interativos que dependem 
da entrada do usuário com base na tela não terminam ao receber 
parâmetros inválidos. Em vez disso, eles apresentam uma caixa de 
diálogo para solicitar que o usuário insira parâmetros válidos e tente 
novamente. Em certos sistemas operacionais, como o Unix, um processo 
pode solicitar a responsabilidade por determinados erros, resultando 
na interrupção do processo, em vez de ser encerrado quando ocorre 
um erro.
 � Cancelamento por outro processo: ocorre quando um processo com 
permissão emite uma chamada ao sistema para executar o cancela-
mento de outro processo.
A chamada de sistema kill é usada para esse propósito no Unix, ao 
passo que TerminateProcess executa a mesma função no Win32. 
No entanto, é importante observar que o processo que está iniciando o can-
celamento precisa ter a autorização necessária para matar outro processo, 
independentemente do sistema operacional em uso.
A manutenção da estabilidade e da eficiência do sistema se dá pela ade-
quada liberação de recursos por meio da finalização do processo. Esses 
eventos de criação e finalização de processo são parte integrante da operação 
de um sistema operacional. Eles permitem coordenar a criação, a execução 
e a finalização de vários processos. Na próxima seção, serão apresentados 
os estados de um processo.
Mudanças de estado de um processo
Embora cada processo funcione como sua própria entidade autônoma com 
seu contador de programa exclusivo, registradores, pilha, arquivos abertos, 
alarmes e outros estados internos, é comum que os processos exijam intera-
ção, comunicação e sincronização com outros processos. Isso pode ser visto 
em situações em que um processo produz uma saída que outro processo 
requer como entrada. Nesses casos, os dados devem ser transferidos entre 
os processos (TANENBAUM; WOODHULL, 2008).
À medida que um processo avança em sua vida útil em um sistema ope-
racional, ele pode passar por vários estados, que geralmente incluem os 
apresentados a seguir (MACHADO; MAIA, 2007; TANENBAUM; BOS, 2016).
Conceituação e gerenciamento de processos10
 � Em execução: quando um processo está passando pelo processamento 
da CPU, diz-se que ele está em execução. ACPU alterna entre os pro-
cessos para otimizar o uso do processador.
 � Pronto: um processo está no estado pronto quando preencheu todas 
as condições necessárias para execução e agora aguarda iniciação. A 
sequência na qual os processos são executados é regida pelo sistema 
operacional, que dita os critérios para sua execução.
 � Em espera, ou bloqueado: quando um processo está em estado de 
espera ou bloqueado, ele não pode ser executado, mesmo que a CPU 
esteja livre e desocupada. Em vez disso, ele precisa aguardar um evento 
externo, como um comando do usuário ou um recurso, como informa-
ções do dispositivo de entrada/saída, antes de poder ser executado.
A Figura 5 mostra a transição entre esses três estados.
Figura 5. Transição entre estados do processo.
Fonte: Adaptada de Tanenbaum e Bos (2016).
23
4
1
Em execução
Bloqueado Pronto
A seguir, descrevemos a forma como ocorrem esses quatro passos, de 
acordo com Tanenbaum e Bos (2016).
1. O processo é bloqueado enquanto aguarda uma entrada: quando um 
sistema operacional detecta que um processo não pode continuar, 
este é considerado “bloqueado”. Dependendo do sistema, o processo 
pode entrar em um estado bloqueado executando uma chamada de 
sistema como pause, ou isso pode acontecer automaticamente quando 
se tenta ler de um canal ou arquivo especial (como um terminal) sem 
entrada disponível.
2. O escalonador seleciona outro processo para executar: ocorre quando 
o escalonador decide que o processo em andamento foi executado 
por tempo suficiente, e é o momento de deixar outro processo ter 
algum tempo de CPU.
Conceituação e gerenciamento de processos 11
3. O escalonador seleciona o processo em execução: quando um pro-
cesso estiver em execução por um determinado período de tempo, o 
escalonador escolherá executar um processo diferente. Essa decisão 
é tomada pelo escalonador para garantir que outros processos te-
nham a oportunidade de utilizar a CPU. Depois que todos os outros 
processos tiverem sua vez, o escalonador escolhe o próximo processo 
a ser executado. Isso acontece quando é a vez de o primeiro processo 
utilizar a CPU mais uma vez.
4. A entrada torna-se disponível: quando um processo recebe a entrada 
que estava esperando, ele passa de um estado de espera para o es-
tado de entrada disponível. Se não houver nenhum outro processo 
em execução no momento, o processo fará a transição para o estado 
em execução. No entanto, se outro processo já estiver em execução, 
o processo terá que esperar no estado pronto até que a CPU esteja 
disponível.
Dependendo da implementação e das necessidades de um sistema ope-
racional específico, pode haver versões ou estados adicionais, além dos 
mencionados. Por exemplo, certos sistemas podem apresentar um estado 
“suspenso”, em que um processo é temporariamente retirado da memória e 
colocado em um disco para liberar memória para outros processos.
Eventos como decisões de agendamento da CPU, operações de E/S, sin-
cronização de processos e interações do usuário geralmente regulam as 
transições entre os estados. Para aumentar o uso de recursos e a eficiência 
do sistema, o agendador de processos do sistema operacional determina a 
sequência na qual os processos mudam entre os estados.
Neste capítulo, vimos que um processo se refere à execução de um pro-
grama em um computador. Sendo assim, é fundamental compreender seu 
comportamento, como ele inicia e como termina, bem como os estados de 
sua vida útil no sistema. Os processos podem ser iniciados ou encerrados 
dinamicamente, e é importante entender que, quando um aplicativo está 
sendo compartilhado por vários usuários, cada usuário normalmente terá 
um processo em alguma fase de execução. Em síntese, os processos são 
essenciais para o funcionamento de um sistema operacional.
Conceituação e gerenciamento de processos12
Referências
BARBOSA, C. S. Sistemas operacionais. Londrina: Educacional, 2018.
MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 4. ed. Rio de Janeiro: 
LTC, 2007.
MAZIERO, C. A. Sistemas operacionais: conceitos e mecanismos. Curitiba: UFPR, 2019.
SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais. 9. 
ed. Rio de Janeiro: LTC, 2015.
TANEMBAUM, A. S.; BOS, H. Sistemas operacionais modernos. 4. ed. São Paulo: Pearson, 
2016.
TANENBAUM, A. S.; WOODHULL, A. S. Sistemas operacionais: projeto e implementação. 
3. ed. Porto Alegre: Bookman, 2008.
Conceituação e gerenciamento de processos 13
Dica do professor
Processos precisam ser constantemente criados e terminados pelo Sistema Operacional, que 
acontecem em determinados eventos. Desenvolvedores e administradores de sistemas que 
precisam interagir com processos criam aplicações e garantem o bom funcionamento de 
computadores, aplicando os conhecimentos destes eventos em suas atividades do dia a dia.
Nesta Dica do Professor, você vai estudar sobre a criação e o término de processos. Também verá 
que eventos podem causar o início de um processo e também o que leva um processo a ser 
encerrado.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/b5c87684690382d2c8551b95af60c045
Exercícios
1) Programas com interface de linha de comando (command line interface - CLI), apesar de não 
intuitivos para usuários normais de computadores, são populares entre programadores 
devido à sua praticidade e agilidade quando o utilizador conhece seus comandos e atalhos. 
Estes programas são muito dependentes de entrada do usuário, podendo solicitar que seu 
utilizador digite comandos para poder efetuar seu trabalho.
Assinale a alternativa correta sobre o estado no qual o processo de um programa CLI se 
encontra enquanto aguarda que seu utilizador digite um comando:
A) Executando.
B) Pronto.
C) Bloqueado ou Espera.
D) Terminado.
E) Em transição.
2) A diferença entre programa e processo é essencial para compreender como um sistema 
operacional executa suas atividades. Enquanto um programa é a implementação de um 
algoritmo para completar uma tarefa, um processo é a representação da execução deste 
algoritmo por um computador. Sabendo disso, assinale a alternativa que contém apenas 
elementos da tabela de processo:
A) Contador de programa; ponteiros para base e topo da pilha; valores dos registradores; e 
estado do processo.
B) Atributos de instância; métodos estáticos e de classe; constantes; e máquina de estados do 
processo.
C) Linhas de código; arquivo-objeto; compilador; e ambiente de execução.
D) Chamadas de sistema; escalonadores; memória; e modelo de processos.
E) Hierarquia de processos; estados de processos; código fonte; e gerenciamento de memória.
3) 
O modelo de processo é uma característica bastante importante para sistemas operacionais 
modernos. A partir deste modelo, é definido como um sistema específico irá executar os 
programas que seus usuários desejarem. O modelo de processos de um computador 
multiprogramado permite que vários programas estejam em execução em um determinado 
momento, passando para o usuário a impressão de que o computador está fazendo todas as 
atividades simultaneamente. Considerando um computador com apenas um núcleo de 
processamento e três programas sendo executados, cada um com seu processo sendo 
gerenciado pelo sistema operacional, assinale a alternativa correta.
A) Os três processos estão sendo executados pelo processador ao mesmo tempo, não havendo 
necessidade de manutenção de tabela de processos.
B) Um dos processos está sendo executado e os outros dois estão prontos ou bloqueados. 
Apenas os processos bloqueados têm registros na tabela de processos.
C) Os três processos estão sendo executados pelo processador ao mesmo tempo. Todos os três 
processos têm registros na tabela de processos
D) Um dos processos está sendo executado e os outros dois estão prontos ou bloqueados. 
Todos os três processos têm registros na tabela de processos.E) Um dos processos está sendo executado e os outros dois estão prontos ou bloqueados. 
Apenas o processo em execução tem registro na tabela de processos.
4) Frequentemente, programadores têm a necessidade de iniciar novos programas a partir do 
software que estão criando. Isto pode servir para facilitar o desenvolvimento de uma 
determinada funcionalidade, efetuar ajustes de configuração ou aproveitar um software já 
existente que não fornece APIs para acesso às suas funcionalidades na linguagem usada pelo 
programador.
Assinale a alternativa correta em relação a como um programador usando Java, C# ou 
Python deve efetuar a criação de um novo processo em um programa que será executado 
em um sistema operacional moderno.
A) Solicitar que o usuário inicie manualmente o outro programa e bloqueie o processo, devendo 
ele informar que o programa foi terminado para desbloquear e continuar a execução.
B) Incluir trechos de código assembly para mudar o contexto do processador para Kernel Mode e 
posteriormente solicitar a troca de contexto para um novo processo.
C) Efetuar chamadas de sistema explícitas utilizando código nas linguagens citadas na questão, 
para que o sistema operacional viabilize a criação dos novos processos.
D) Iniciar uma nova tarefa em lote e despachá-la para o sistema operacional para que o sistema 
possa executá-la quando houverem recursos computacionais livres.
E) Utilizar métodos, funções ou classes de bibliotecas que abstraem as chamadas de sistema e 
efetuam a criação do processo de acordo com o sistema operacional em execução.
5) Aplicações desenvolvidas para uso em servidores Web devem ser projetadas tendo em 
mente que em vários momentos este servidor receberá um grande número de requisições 
paralelas. Software de servidores Web, como o Apache, possuem configurações para que 
cada nova requisição recebida dispare a criação de um novo processo independente para 
tratá-la. Um Administrador de Sistemas está analisando um problema em que um servidor 
Web com baixo uso de processador e bastante memória disponível não está sendo capaz de 
atender todas as requisições. Ao listar os processos que estão sendo executados, há 
centenas de processos do servidor Web, mas nenhum usando recursos da CPU. Assinale 
uma alternativa que contém uma explicação possível para o problema em questão.
A) Os processos do servidor Web estão todos bloqueados, devido à escassez de banda de E/S 
com o disco rígido do servidor.
B) A tabela de processos do sistema operacional está cheia, não permitindo a criação de novos 
processos.
C) O modelo de processo do sistema operacional utilizado no servidor é inadequado para a 
execução de um servidor Web.
D) Há um erro na aplicação que está causando um término por saída involuntária dos processos.
E) O código da aplicação contém um erro em um dos laços (for ou while), causando um loop 
infinito.
Na prática
Ferramentas de Gerenciamento de Tarefas gráficas são bastante úteis, tanto para usuários comuns 
quanto para Desenvolvedores e Administradores de Sistemas. Sistemas como o Microsoft 
Windows e o Ubuntu Linux dedicam esforços contínuos para melhorar a visualização das 
informações de processos sendo executados, aumentando a quantidade de dados disponíveis para 
que o usuário entenda como está a saúde do sistema. Um bom profissional conhece as 
funcionalidades deste tipo de ferramenta e é capaz de interpretar as informações disponíveis.
Neste Na Prática, confira algumas ações que podem ser tomadas a partir do Gerenciador de 
Tarefas do Windows 10 e do Monitor do Sistema do Ubuntu Linux 18.04LTS.
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou clique no 
código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/4c338cb7-c2eb-4187-80b6-6b0e5837efbc/a4a2dc10-f739-4f6a-892e-8c63d77e54ba.png
Saiba +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Comandos Linux - Gerenciamento de Processos
Acesse este conteúdo que faz parte de uma aula explicando particularidades da máquina de estado 
de processos em Linux, incluindo guia rápido de comandos úteis para gerenciamento de processos 
neste Sistema Operacional.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Como usar o Gerenciador de Tarefas no Windows 10
Tem dúvidas sobre como usar o Gerenciador de Tarefas do Windows 10? Acesse este site e confira 
algumas dicas.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
RedHat Linux - Ferramentas de Monitoramento de Linha de 
Comando Embutida
Neste site, você verá uma sugestão de ferramentas para gerenciamento de sistemas e 
consequentemente dos seus processos no RedHat Linux. Clique para conhecer.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
http://roitier.pro.br/wp-content/uploads/2019/09/Aula10-Gerenciamento-de-Processos.pdf
https://www.techtudo.com.br/dicas-e-tutoriais/noticia/2017/02/como-usar-o-gerenciador-de-tarefas-no-windows-10.html
https://access.redhat.com/documentation/pt-br/red_hat_enterprise_linux/6/html/performance_tuning_guide/s-analyzeperf-cli-tools
Sistemas Operacionais - Processo
Neste site você terá acesso a um resumo com as principais informações sobre gerenciamento de 
processos.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Utilizando o Process Explorer
O Process Explorer é um utilitário de gerenciamento de tarefas mais completo que o Gerenciador 
de Tarefas do Windows. Este link explica como instalar e usar a ferramenta. Clique para saber mais.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://www.gsigma.ufsc.br/~popov/aulas/so1/cap6so.html
https://social.technet.microsoft.com/wiki/contents/articles/2541.utilizando-o-process-explorer-pt-br.aspx

Mais conteúdos dessa disciplina