Você está na página 1de 29

Sistemas Operacionais

Processos e Theads – Parte I

Prof. Tiago Wirtti


PhD Eng. Elétrica

1
Introdução aos Sistemas
Operacionais
Este material tem como base as
seguintes fontes:
– TANENBAUM. Sistemas Operacionais Modernos,
2ª Edição – Capítulo 2;
– OLIVEIRA; CARISSIMI; TOSCANI. Sistemas
Operacionais. 2ª Edição – Capítulo 2;
– Deitel, Deitel e Choffnes. Sistemas Operacionais –
Capítulos 3, 4, 5, 6 e 8.
– www.prenhall.com/tanenbaum_br
– pt.wikipedia.org/wiki/Sistemas_operacionais
2
Capítulo 2
Processos e Threads

2.1.a Introdução aos Processos


2.1.b Estados de um Processo

3
Estados de um processo

• O processo recém criado está pronto para


ser EXECUTADO!
• O processador (CPU) está disponível?
– Pode estar disponível ou ocupado com outro
processo!
• O que fazer???
– Executar ou esperar a vez.

Fonte bibliográfica OLIVEIRA; CARISSIMI; TOSCANI. Sistemas Operacionais. 2ª Edição – Capítulo 2 4


Modelo simplificado a DOIS
estados (1)
• Um processo no estado “executando”;
• Os demais processos esperam em uma fila
de “aptos”;
• O escalonador decide quem será o
próximo processo a executar...

Fonte bibliográfica OLIVEIRA; CARISSIMI; TOSCANI. Sistemas Operacionais. 2ª Edição – Capítulo 2 5


Modelo simplificado a DOIS
estados (2)
• Diagrama de estados:

Fonte bibliográfica OLIVEIRA; CARISSIMI; TOSCANI. Sistemas Operacionais. 2ª Edição – Capítulo 2 6


Limitações do modelo
simplificado
• Dois estados são suficientes?
• Causas para um processo não
executar:
– Esperando CPU (apto)
– Esperando pela ocorrência de eventos
externos (bloqueado)
• O modelo de dois estados não
contempla processos bloqueados!
Fonte bibliográfica OLIVEIRA; CARISSIMI; TOSCANI. Sistemas Operacionais. 2ª Edição – Capítulo 2 7
Modelo a CINCO estados (1)

• Executando (Running)
• Apto (Ready)
• Bloqueado (Blocked)
• Criação (New)
• Destruição (Exit)

Fonte bibliográfica OLIVEIRA; CARISSIMI; TOSCANI. Sistemas Operacionais. 2ª Edição – Capítulo 2 8


Modelo a CINCO estados (2)

• Diagrama de blocos

Fonte bibliográfica OLIVEIRA; CARISSIMI; TOSCANI. Sistemas Operacionais. 2ª Edição – Capítulo 2 9


Transições de estados (1)

• Criação ►Apto:
– O processo criado é colocado na fila de
aptos quando o SO está pronto para lidar
com um novo processo
– Existe um limite para o número de
processos aptos (tamanho máximo da fila
de aptos)

Fonte bibliográfica Própria 10


Transições de estados (2)

• Apto ►Executando:
– O escalonador de processos seleciona um
processo na fila de aptos para execução
na CPU
– O escalonador de processos gerencia a
fila de aptos e define qual será o próximo
processo a executar

Fonte bibliográfica Própria 11


Transições de estados (3)

• Executando ► Apto:
– Por expiração do tempo de execução
(sistema colaborativo)
– Para ceder a CPU a um processo de mais
alta prioridade (sistema preemptivo)
– Voluntariamente

Fonte bibliográfica Própria 12


Transições de estados (4)

• Executando ► Bloqueado:
– Quando um processo em execução solicita
algum serviço pelo qual precisa esperar
– A solicitação ocorre através de uma
chamada de sistema

Fonte bibliográfica Própria 13


Transições de estados (5)

• Bloqueado ►Apto:
– Quando o resultado da chamada de
sistema (evento concluído) está disponível
para o processo
– Acontece através de uma interrupção à
CPU

Fonte bibliográfica Própria 14


Transições de estados (6)

• Bloqueado ►Destruição:
– Quando ocorre algum erro na execução da
chamada de sistema obrigando o SO a
abortar o processo
– Exemplo: erro de leitura em disco

Fonte bibliográfica Própria 15


Considerações: memória (1)
• Pontos a ponderar:
– Memória principal é um recurso caro e
finito
– A CPU é muito mais rápida do que E/S
• Conseqüências:
– A fila de processos bloqueados cresce
muito!!! (SATURANDO A MEMÓRIA)
– A fila de processos aptos tende a zero!!!

Fonte bibliográfica OLIVEIRA; CARISSIMI; TOSCANI. Sistemas Operacionais. 2ª Edição – Capítulo 2 16


Considerações: memória (2)
• Conseqüências:
– A memória cheia de processos bloqueados!
– Precisamos de espaço na memória primária
para processos aptos (a prioridade é deles!)
• Correção do problema:
– Necessidade de memória virtual e swap para
processos bloqueados

Fonte bibliográfica OLIVEIRA; CARISSIMI; TOSCANI. Sistemas Operacionais. 2ª Edição – Capítulo 2 17


Considerações: memória (3)
• Correção do problema:
– Precisamos de um novo estado!
– Um processo é suspenso quando está
bloqueado na memória primária e é
movido para o disco (memória virtual)
• Surge então estado suspenso

Fonte bibliográfica OLIVEIRA; CARISSIMI; TOSCANI. Sistemas Operacionais. 2ª Edição – Capítulo 2 18


Modelo de SEIS estados

• Contempla o estado suspenso

Fonte bibliográfica OLIVEIRA; CARISSIMI; TOSCANI. Sistemas Operacionais. 2ª Edição – Capítulo 2 19


Tipos de suspensão
• Bloqueado/Suspenso
– O processo está em disco (sofreu swap) e
esperando um evento (está bloqueado)
• Apto/Suspenso
– O processo está em disco mas a situação
que causou o seu bloqueio já está
resolvida

Fonte bibliográfica OLIVEIRA; CARISSIMI; TOSCANI. Sistemas Operacionais. 2ª Edição – Capítulo 2 20


Modelo de SETE estados
• Evolução: contemplando os estados
suspensos

Fonte bibliográfica OLIVEIRA; CARISSIMI; TOSCANI. Sistemas Operacionais. 2ª Edição – Capítulo 2 21


Implementação do Processo

• Necessidade:
– Manter várias informações do processo
(prioridades, localização, estados, direitos de
acesso, etc)
• Bloco Descritor do Processo (PCB)
– Estrutura de dados que representa o processo
na memória

Fonte bibliográfica TANENBAUM. Sistemas Operacionais Modernos, 2ª Edição – Capítulo 2 22


Bloco Descritor do Processo

• Informações no PCB:
– Fica na memória kernel do sistema
– Cada PCB corresponde a uma entrada na
tabela de processos gerenciada pelo kernel
Fonte bibliográfica TANENBAUM. Sistemas Operacionais Modernos, 2ª Edição – Capítulo 2 23
PCB, Processo e Fila

• Importante:
– O PCB representa o processo
– As filas (do escalonador) contém o
identificador do PCB, não a sua estrutura de
dados
– Todo processo tem um PCB, mas nem todo
PCB possui um processo
– Alguns sistemas alocam PCBs vazios na
memória no momento do boot do sistema
Fonte bibliográfica TANENBAUM. Sistemas Operacionais Modernos, 2ª Edição – Capítulo 2 24
Tipos de Filas de Descritores

• Livres:
– Descritores sem processos
• Aptos:
– Descritores com processos em ciclo de
CPU
• Bloqueados:
– Descritores com processos bloqueados

Fonte bibliográfica TANENBAUM. Sistemas Operacionais Modernos, 2ª Edição – Capítulo 2 25


Tarefas Típicas no PCB durante
a CRIAÇÃO do Processo
• Iniciação do PCB:
– Alocação de áreas de memória, dados e pilha e
de estruturas de dados pelo SO
– A alocação pode ocorrer no boot ou quando o
processo é criado
• Inserção do PCB:
– O endereço PCB (ponteiro) é inserido na fila de
aptos (ou apto/suspenso)

Fonte bibliográfica TANENBAUM. Sistemas Operacionais Modernos, 2ª Edição – Capítulo 2 26


Tarefas Típicas no PCB durante
a EXECUÇÃO do Processo
• Execução do processo:
– Realização das instruções da área de código do
processo pela CPU
– Repare que quem executa é o processo de
usuário, não o sistema operacional
• Atualização do PCB:
– Os valores do PCB são salvos pelo SISTEMA
OPERACIONAL sempre que ocorre
chaveamento de contexto
Fonte bibliográfica TANENBAUM. Sistemas Operacionais Modernos, 2ª Edição – Capítulo 2 27
Tarefas Típicas no PCB durante
o TÉRMINO do Processo
• Destruição do processo:
– Limpeza do PCB (retirada dos recursos e
estruturas de dados do processo)
– O PCB (estrutura de dados) é reciclado
para outro processo
– Enquanto espera por outro processo, o
PCB fica em uma fila de “livres”

Fonte bibliográfica TANENBAUM. Sistemas Operacionais Modernos, 2ª Edição – Capítulo 2 28


Orientações e dúvidas

Material disponível na plataforma de aprendizagem.

Fonte bibliográfica Sistemas Operacionais Modernos – Capítulo 1 – 2ª Edição 29