Você está na página 1de 7

Roteiro

• Introdução

• Modelo do Processo
• Bloco de Controle do Processo (PCB)
• Contextos
• Estado do Processo

• Escalonamento
• Filas de Escalonamento
• Escalonadores

• Questões

Processos

Introdução
• Primeiros Sistemas
• Apenas um programa podia ser executado de cada vez (esse programa
tinha controle completo do sistema e acesso a todos os recursos do sist.)
• O computador possuía controle completo do programa

Um processo é um programa em execução, é a unidade de trabalho


em um sistema moderno de tempo compartilhado

• Sistemas Multiprogramáveis
• Compartilhar diversos programas
• Conceito de Processo se tornou importante

Um processo é a estrutura responsável pela manutenção das


informações necessárias para a execução de um programa

1
Processos

Introdução
• Um sistema portanto, consiste de uma coleção de processos (processos
do S.O e processos de usuário).Todos esses processos podem executar
ao mesmo tempo sendo a CPU (ou CPU´s) multiplexadas entre eles.

• É importante enfatizar que um programa por si só não é um processo; um


programa é uma entidade passiva, como o conteúdo de um arquivo
armazenado em disco, enquanto o processo é uma entidade ativa, com o
contador de programas especificando a próxima instrução a ser executada
e um conjunto de recursos associados.

• Há um mesmo programa podem ser associados mais do que um


processo, pois são consideradas duas sequências separadas de
execução. Ex. Editor de texto (embora as seções de texto sejam
equivalentes, as seções de dados variam)

Processos

Estado dos processos


• A medida que o processo executa, ele muda de estado. Os processos
podem estar nos seguintes estados:

• NOVO – o processo está sendo criado.


• EM EXECUÇÃO – as instruções estão sendo executadas
• EM ESPERA – o processo está esperando acontecer algum evento (como
uma operação de E/S, por exemplo)
• PRONTO – O processo está esperando para ser atribuído a um
processador
• ENCERRADO – o processo terminou a execução

• Esses nomes variam de S.O. para S.O.

Apenas um processo Vários processos podem


pode estar em Execução estar em Espera ou Prontos

2
Modelo de Processo

Bloco de Controle do Processo (PCB)


• Cada processo é representado no S.O por um PCB – Process
Control Block, também chamado bloco de controle de tarefa.
• Ele contém muitas informações associadas a um processo específico,
sendo:
• Estado do processo;
• Contador de programa: indica a próxima instrução a ser executada
• Registradores de CPU: informações de todos os registradores devem ser
salvas quando ocorre uma interrupção.
• Informações de escalonamento da CPU;
• Informações de gerenciamento de memória
• Informações de Contabilização
• Informações de status de I/O

Modelo de Processo

Bloco de Controle do Processo (PCB)


• PCB – Process Control Block
• Repositório das informações dos Processos
• Podem variar de processo para processo
PCB #001
Ponteiro
Estado do Indica o estado deste Processo
Processo

Número do Processo

Contador do Programa
Indica o endereço da próxima instrução

Variam em número e tipo, dependendo


Registradores
da arquitetura do computador
Limites da Memória

Lista de arquivos
Abertos

...

3
PCB

Tabela de Processos
• Tabela que o SO mantém com ponteiros para cada PCB
• Permite acesso rápido aos PCBs
• Processo é retirado da tabela quando finalizado
PID PCB
1 .
2 . PCB #
Estado do
... ... PCB # Ponteiro
Processo

n . PCB # Ponteiro
Estado do
Processo Número do Processo

Estado do
Ponteiro Número do Processo Contador do Programa
Processo

Número do Processo Contador do Programa


Registradores

Contador do Programa
Registradores
Limites da Memória

Registradores
Limites da Memória Lista de arquivos
Abertos
Limites da Memória Lista de arquivos
Abertos ...
Lista de arquivos
Abertos ...

...

Estado do Processo

Mudança de Estado
• O processo muda de estado diversas vezes
• Eventos Voluntários – Originados pelo Processo
• Eventos Involuntários – Originados pelo S.O.

Encerrado
• Mudanças Possíveis (terminated)
• Novo – Pronto
• Pronto – em Execução Conclusão de saída
• Em Execução – Pronto
I/O ou evento em Espera
(waiting)
• Em Execução – em Espera
• Em Execução – Encerrado espera por
• Em Espera – Pronto interrupção I/O ou evento

em
Novo Pronto
Execução
(new) aceito (ready) Escolha do (running)
escalonador

4
Escalonamento de Processos
• Multiprogramação
• Processos em execução o tempo todo

• Tempo Compartilhado
• Alternar CPU entre Processos de forma freqüente

• Vários Processos
• Um processador – Apenas um Processo em execução
• Demais Processos – Aguardando

Escalonamento

Filas de Escalonamento
• Fila de Tarefas (Jobs Queue) ou Processos Novos
• Processos são colocados na Fila a medida que entram no sistema

• Fila de Processos Prontos (Ready Queue)


• Processos que estão na memória
• prontos e esperando para executar
• Lista Encadeada
• Cabeçalho com ponteiros ao primeiro e último PCB da lista

• Fila de Dispositivo (Device Queue)


• Lista de processos esperando por determinado dispositivo de I/O

5
Escalonamento

Filas de Escalonamento
Cabeçalho da Fila
Fila de Início PCB # 003 PCB # 005
processos
Fim Registradores Registradores
Prontos . .
. .
. .

Início
Dispositivo
1 Fim

Início PCB # 008 PCB # 001 PCB # 002


Dispositivo
Fim Registradores Registradores Registradores
2 .
. .
. . .
. . .

Início PCB # 009


Dispositivo
Fim Registradores
3 .
.
.

Escalonamento

Escalonadores (Scheduler)
• Um processo migra entre várias filas de escalonamento ao longo de sua vida. O
S.O deve selecionar, para fins de escalonamento, os processos dessas filas de
alguma forma.

• Processo de Seleção dos processos das filas


• Processo migra entre as várias filas ao longo de sua vida
• SO deve selecionar os processos dessas filas
• Processos são colocados em um spool para execução posterior (geralmente em disco)

• Escalonador de Longo Prazo (Escalonador de Jobs)


• Seleciona processos do spool
• Carrega o processo selecionado na memória para execução

• Escalonador de Curto Prazo (Escalonador de CPU)


• Seleciona dentre os processos que estão prontos para execução
• Aloca a CPU ao processo selecionado

6
Escalonamento

Escalonadores de Curto Prazo


• Seleciona um novo processo com grande freqüência
• Tipicamente, um processo a cada 100 ms (1/100 ms)

• Referência
• Se demorar 10 ms
• Desperdício de ~9 % do tempo da CPU

Escalonamento

Escalonadores de Longo Prazo


• Executa com menor freqüência
• Pode levar minutos para a criação de novos processos
• Pode ser chamado apenas quando um processo sair do sistema

• Controla o grau de multiprogramação


• número de processos na memória

• Combinação de Processos: Importante fazer


• Processo Limitado por CPU Uma Seleção
• Gera pedidos de I/O com pouca freqüência Cuidadosa!
• Processo Limitado por I/O
• Passa mais tempo realizando operações de I/O que cálculos

Você também pode gostar