Buscar

Sistemas operacionais slides

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 682 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 682 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 682 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
* Conceitos básicos de SO
▪ Tipos de SO
▪ Concorrência-Multip
▪ Estrurura dos SOs
▪ Gerência de Proces.
▪ Gerência de Memória
▪ Gerência de Dados 
(sistema de arquivos
TEMA 6
Parte 1
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
SINCRONIZAÇÃO DE PROCESSOS
S U M Á R I O
MODELO DE PROCESSO (e Threads)
ESTADOS DE UM PROCESSO
ESCALONAMENTO (GERÊNCIA DO 
PROCESSADOR)
CONTEXTO DE UM PROCESSO (e Threads)
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
➢ Multiprogramação – múltiplos programas em
execução, compartilham uma única memória. 
Concorrência. 
➢ Conceito de Processo.
➢ Programa em execução.
➢ Ambiente de um processo (CONTEXTO)
MODELO DE PROCESSO
MODELO DE PROCESSO (e Threads)
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Exemplo de Multiprogramação
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSOExemplo de Multiprogramação
Memória
CI
Progr 1
CI
Progr 1
CI
Progr 1
CI
Progr 1
Contadores de 
Instrução – CI PC) Dados
Progr 1
Dados
Progr 2
Dados
Progr 3
Dados
Progr 4
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
Processo
A
8000
8001
8002
8003
Processo 
B
12000
12001
12002
12003
12004
12005
12006
12007
12008
12009
12010
12011
Processo 
C
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
Exemplo de execução de 3 processos
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
5000
CI MP
0
100
5000
8000
12000
Processo A
Processo B
Processo C
Despachante
Exemplo de execução de 3 processos
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
5000
5001
5002
5003
5004
5005
100
101
102
103
104
105
8000
8001
8002
8003
100
101
102
103
104
105
12000
12001
12002
12003
12004
12005
100
101
102
103
104
105
5006
5007
5008
5009
5010
5011
100
101
102
103
104
105
12006
12007
12008
12009
12010
12011
GERÊNCIA DO PROCESSADOR
MODELO DE PROCESSO
Exemplo de execução de 3 processos
Time out 
(interrupção por 
limite tempo)
Solicitação de E/S
Time out 
(interrupção por 
limite tempo)
Time out 
(interrupção por 
limite tempo)
Time out 
(interrupção por 
limite tempo)
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
CONCEITO DE PROCESSOS
▪ Processador apenas executa instruções. Ele não sabe qual 
programa está em execução.
▪ Gerência de um ambiente multiprogramável é função do SO
▪ SO controla a execução de diversos programas e o uso 
concorrente do processador.
▪ Todo programa deve estar associado a um processo
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
MODELO DE PROCESSO
CONCEITO DE PROCESSOS
Processo pode ser definido como o ambiente onde um 
programa é executado.
GERÊNCIA DO PROCESSADOR
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
➢ A área em disco utilizada pelo programa.
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
CONCEITO DE PROCESSOS
Ambiente consiste:
➢ Informações sobre a execução do código.
➢ Quanto de recursos do sistema cada programa pode utilizar.
➢ O espaço de endereçamento necessário.
➢ O tempo de processador
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
➢ Porém processador executa o processo de um usuário 
apenas durante um pequeno intervalo de tempo e alterna 
para outro processo.
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
CONCEITO DE PROCESSOS
Inicialmente, pode se associar que um processo é um programa 
em execução, porém o conceito é mais abrangente.
➢ • Em sistemas multiusuário, cada usuário está associado a 
um processo.
➢ O usuário tem a sensação de “possuir” exclusivamente os 
recursos da máquina.
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
CONCEITO DE PROCESSOS
Contexto de um Processo
❖ Todas as informações importantes e necessárias à sua execução 
fazem parte do processo.
❖ Para que a troca de processos ocorra sem problema, todas as 
informações do processo interrompido devem ser guardadas.
Essas informações são denominadas
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
* Conceitos básicos de SO
▪ Tipos de SO
▪ Concorrência-Multip
▪ Estrurura dos SOs
▪ Gerência de Proces.
▪ Gerência de Memória
▪ Gerência de Dados 
(sistema de arquivos
Parte 2
TEMA 6
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
SINCRONIZAÇÃO DE PROCESSOS
S U M Á R I O
MODELO DE PROCESSO (e Threads)
ESTADOS DE UM PROCESSO
ESCALONAMENTO (GERÊNCIA DO 
PROCESSADOR)
CONTEXTO DE UM PROCESSO (e Threads)
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
CONTEXTO DE UM PROCESSO
(ambiente do processo)
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
❖ Espaço de ENDEREÇAMENTO
GERÊNCIA DO PROCESSADOR
CONTEXTO DE UM PROCESSO 
Para efeitos de administração pelo SO, cada 
processo (seu contexto) é constituido por 3 partes:
❖Contexto de HARDWARE
❖Contexto de SOFTWARE
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
CONTEXTO DE UM PROCESSO 
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Programa
Contexto de
Software
prioridade de
execução
registrador PC
data/ hora
de criação
tempo de
processador
registrador SP
quotas
privilégios
endereços de memória
principal alocados
registrador
de status
owner (UID)
PID
nome
registradores
gerais
Contexto de
Hardware
Espaço de
Endereçamento
GERÊNCIA DO PROCESSADOR
CONTEXTO DE UM PROCESSO 
MODELO DE PROCESSO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
CONTEXTO DE HARDWARE
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
▪ outros….
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
CONTEXTO DE HARDWARE
▪ Registradores de Dados
▪ Registrador de instrução –RI
▪ Contador de Instrução – CI
▪ Registrador de Controle (Flags)
▪ Registrador de estado (PSW-program status word)
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
10111100100
11000100100
11010110101
10000100111
01000100100
CONTEXTO DE HARDWARE
ULA
RI CI
Registradores 
de dados
Registrador de controle
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR Salvamento de Contexto de Hardware
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
CONTEXTO DE SOFTWARE
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
➢ São especificadas as características e limites dos recursos 
alocados pelo processo
▪ A maioria delas é determinada no momento da criação do 
processo 
▪ Algumas podem ser alteradas posteriormente
➢ Arquivo de contas
▪ Provê parte das informações do contexto de software
▪ Limites e recursos disponíveis para alocação
➢ Três grupos de informações
▪ Identificação
▪ Quotas 
▪ Privilégios
CONTEXTO DE SOFTWARE
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
IDENTIFICAÇÃO
➢ Identificação do usuário ou processo que criou (owner ou 
proprietário)
▪ Identificação única do sistema (UID – User ID)
▪ Essencial para permitir a implementação de modelo segurança
▪ Acesso a arquivos,áreas de memória, etc
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
➢ Cada processo recebe um identificador PID (Process Identification)
• Através do PID os processos podem ser referenciados.
Operações de consulta, alteração, etc
• Normalmente o PID é numérico, mas pode ser associado a um 
nome.
CONTEXTO DE SOFTWARE
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
IDENTIFICAÇÃO
Exemplo:
Processos em 
sistema 
operacional
Windows 7
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSOCONTEXTO DE SOFTWARE
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Exemplo: Processos em sistema operacional Linux
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSOCONTEXTO DE SOFTWARE
IDENTIFICAÇÃO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
• Número máximo de arquivos abertos simultaneamente
• Tamanho máximo alocado na MP e MS
• Número máximo de operações de E/S pendentes
• Tamanho máximo do buffer para operações de E/S
• Número máximo de processos, subprocessos e threads que podem ser criados
QUOTAS
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
CONTEXTO DE SOFTWARE
– Limites de cada recurso
– Caso uma quota seja insuficiente o processo pode:
• Ser executado lentamente
• Interrompido
• Não ser executado
– Exemplos de quotas
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
PRIVILÉGIOS
❑ Ao sistema operacional:
- Poderes mais amplos, relacionados à questões de 
operação e gerência do sistema. 
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
CONTEXTO DE SOFTWARE
➢ Definem as ações que um processo pode fazer:
❑ Em relação a ele mesmo:
- Alteração de características, como prioridade de 
execução, limites de memória (principal e secundária)
❑ Aos demais processos
- Alteração de características próprias e de outros 
processos
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
MODELO DE PROCESSO
• Conta Privilegiada
• Acesso a todas as operações do sistema
• Para tarefas de gerenciamento
• UNIX → root
• Windows → Administrator 
GERÊNCIA DO PROCESSADOR
CONTEXTO DE SOFTWARE
PRIVILÉGIOS
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
ESPAÇO DE ENDEREÇAMENTO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
• Cada processo possui seu próprio espaço de endereçamento
que deve ser devidamente protegido
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
• Área de memória pertencente ao processo onde as instruções
e os dados do programa são armazenados para execução
ESPAÇO DE ENDEREÇAMENTO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
BLOCO DE CONTROLE DE PROCESSO (TABELA DO PROCESSO)
➢ Base para a implementação de processos
▪ Estrutura de dados onde são mantidas todas as 
informações sobre cada processo:
✓ Contexto de hardware
✓ Contexto de software
✓ Espaço de endereçamento
➢ Cada processo possui seu PCB próprio
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
• A quantidade de processos é limitada pelo tamanho
da área onde os PCB´s são armazenados→
geralmente, pode ser alterado.
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
BLOCO DE CONTROLE DE PROCESSO (TABELA DO PROCESSO)
▪ O conjunto de PCB´s fica armazenado em área de 
memória do sistema operacional
Não necessariamente uma única área contínua. Linux e 
Windows separam essas informações em duas áreas de 
memória.
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
.
.
.
.
..
.
.
ponteiros
Estado do processo
Registradores
Nome do processo
Prioridade do processo
Limites de memória
Lista de arquivos abertos
GERÊNCIA DO PROCESSADOR MODELO DE PROCESSO
BLOCO DE CONTROLE DE PROCESSO (TABELA DO PROCESSO)
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
* Conceitos básicos de SO
▪ Tipos de SO
▪ Concorrência-Multip
▪ Estrurura dos SOs
▪ Gerência de Proces.
▪ Gerência de Memória
▪ Gerência de Dados 
(sistema de arquivos
TEMA 6
Parte 3
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
SINCRONIZAÇÃO DE PROCESSOS
S U M Á R I O
MODELO DE PROCESSO (e Threads)
ESTADOS DE UM PROCESSO
ESCALONAMENTO (GERÊNCIA DO PROCESSADOR)
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
ESTADOS DE UM PROCESSO
GERÊNCIA DO PROCESSADOR
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
ESTADOS DE UM PROCESSO
➢ INÍCIO (Start)
➢ PRONTO (Ready)
➢ ESPERA (Wait ou Blocked)
➢ EXECUTANDO (Running)
➢ TÉRMINO (End)
GERÊNCIA DO PROCESSADOR
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
ESTADOS DE UM PROCESSO
GERÊNCIA DO PROCESSADOR
➢ INÍCIO (Start) – Também pode ser CRIAÇÃO (New)
▪ O processo pode ser criado pelo usuário:
- Quando clica em um ícone ou
- Digita o commando na tela
▪ O SO realiza algumas atividades como criar o PCB do 
processo (atribui nome, número, prioridade, etc) 
▪ Mas o processo ainda não vai para fila de Pronto. Isso
acontece quando os recursos necessários se tornam
disponíveis (memória, etc) 
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
ESTADOS DE UM PROCESSO
GERÊNCIA DO PROCESSADOR
➢ PRONTO (Ready) 
▪ Aguardando para ser executado
▪ Em geral, há diversos processos em estado Pronto
▪ A rotina do SO chamada escalonador (scheduler) gerencia
a(s) fila(s) de processos no estado Pronto
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
ESTADOS DE UM PROCESSO
➢ EXECUTANDO
✓ Processo está sendo executado pela CPU naquele
instante
✓ Em sistemas com apenas uma CPU, somente um processo
executando em um dado instante
✓ Em sistemas com mais de uma CPU, pode haver mais de um 
processo sendo executado ao mesmo tempo
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
ESTADOS DE UM PROCESSO
GERÊNCIA DO PROCESSADOR
➢ ESPERA 
▪ Não pode ser executado imediatamente
▪ Aguardando por algum evento externo ou recurso para 
poder prosseguir o processamento
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
ESTADOS DE UM PROCESSO
GERÊNCIA DO PROCESSADOR
Exemplos do estado de Espera: 
✓ Aguardando término de operação de E/S
✓ Aguardando um horário pré-determinado
✓ Pode acontecer que um comando de um 
programa solicite uma ou mais ações que 
demandam tempo. E o programa não pode
prosseguir enquanto elas não terminam:
- Ler um bloco do arquivo
- Enviar pela rede
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
ESTADOS DE UM PROCESSO
GERÊNCIA DO PROCESSADOR
➢ TÉRMINO (End) 
▪ Quando concluiu-se a última linha de commando.
▪ Podem acontecer outras circunstâncias para término (ou
eliminação do processo): 
-- Erro fatal (tentativa de acesso a área protegida) 
-- eliminação forçada por falta de recursos
(memória, p.ex.)
▪ O SO fecha os arquivos abertos, registra informações de 
log.
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
MUDANÇAS DE ESTADO DE UM PROCESSO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
o Após a criação de um processo, ele é classificado como PRONTO e vai 
para um fila onde aguardará ser executado, segundo os critérios de 
escalonamento do sistema operacional
GERÊNCIA DO PROCESSADOR
MUDANÇAS DE ESTADO DE UM PROCESSO
➢ Pronto → Execução
➢ Criação → Pronto
o Quando o SO é acionado para criar um processo e realiza as 
atividades de criação e pode prosseguir (recursos disponíveis) para 
ser processado.
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
MUDANÇAS DE ESTADO DE UM PROCESSO
Execução → Espera
Execução → Pronto
• Quando ocorre um evento (próprio ou externo) que exija a 
suspensão temporária da execução de um processo.
• Exemplo: Operação de E/S iniciada. O processo não voltará a ser 
executado até que a operação esteja concluída• Para que um processo não monopolize o processador, prejudicando 
outros, ele pode ser interrompido para prosseguir mais adiante. Neste 
caso ele volta para a fila de pronto.
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
MUDANÇAS DE ESTADO DE UM PROCESSO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
MUDANÇAS DE ESTADO DE UM PROCESSO
Transições de estado do processo podem ser: 
➢ Voluntárias
• Eventos originados pelo próprio processo)
➢ Involuntárias
• Eventos do Sistema Operacional
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
SWAPPING
▪ Quando não há espaço
disponível na memória
principal para todos os
processos, parte dos
contextos é transferida para
memória secundária
(swapping).
▪ Os processos cujos dados 
estão em memória 
secundária, são chamados de 
▪ Não-Residentes.
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
SWAPPING
Swap out
Transferência da memória 
principal para a 
secundária
Swap in
Transferência da memória 
secundária para a 
principal
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
MUDANÇAS DE ESTADO DE UM PROCESSO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
MUDANÇAS DE ESTADO DE UM PROCESSO
Cada mudança de estado implica na realização de um 
conjunto de etapas pelo SO, especialmente nas mudanças 
do estado de Execução para Pronto ou Espera e de Pronto 
para Execução.
Já sabemos que este conjunto de atividades é conhecido 
como TROCA DE CONTEXTO.
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
✓ 2. Selecionar outro 
processo para execução.
GERÊNCIA DO PROCESSADOR
ATIVIDADES PARA TROCA DE CONTEXTO
✓ 1. Salvar contexto de 
hardware do processo
que está em execução; 
✓ Atualizar o BCP do 
processo em execução;
✓ Mover o BCP para a fila 
apropriada: espera ou pronto.
Carrega registradores do
Processo B
Carrega registradores do
Processo A
Sistema Operacional
Salva registradores do
Processo A
executando
executando
executando
Salva registradores do
Processo B
Processo A Processo B
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
* Conceitos básicos de SO
▪ Tipos de SO
▪ Concorrência-Multip
▪ Estrurura dos SOs
▪ Gerência de Proces.
▪ Gerência de Memória
▪ Gerência de Dados 
(sistema de arquivos
TEMA 6
Parte 4
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
SINCRONIZAÇÃO DE PROCESSOS
S U M Á R I O
MODELO DE PROCESSO (e Threads)
ESTADOS DE UM PROCESSO
ESCALONAMENTO (GERÊNCIA DO PROCESSADOR)
Threads
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
THREADS
GERÊNCIA DO PROCESSADOR
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
➢ Um processo não pode acessar a área de 
armazenamento de outro.
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
Ambiente Monothread
➢ Até agora foi visto apenas o caso de
processos com somente um programa
associado.
➢ Cada processo possui seus recursos
próprios, não compartilhados com outros 
processos.
➢ Sistemas mais complexos podem exigir
vários processos simultâneos, e o
procedimento para troca de informações
entre eles não é trivial.
GERÊNCIA DO PROCESSADOR
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
GERÊNCIA DO PROCESSADOR
Ambiente Monothread
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Ambiente MULTITHREAD
• Estrutura de processos independentes e subprocessos consomem muitos
recursos durante a criação, eliminação e troca de contexto
• Problema de comunicação e sincronização entre processos
GERÊNCIA DO PROCESSADOR
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
• Em um ambiente multithread, um único processo pode suportar múltiplos
threads, cada qual associado a uma parte do código da aplicação
Ambiente MULTITHREAD
Para reduzir o tempo gasto na criação,
eliminação e troca de contexto foram
criados threads
GERÊNCIA DO PROCESSADOR
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Ambiente MULTITHREAD
GERÊNCIA DO PROCESSADOR
✓ O conceito de THREADS estabelece que um programa não está
associado a um processo. 
✓ Um programa está associado a um THREAD. 
✓ Um processo pode possuir um ou mais THREADS.
✓ Comunicação rápida entre os THREADS
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
▪ Compartilhamento do espaço de endereçamento permite que a 
comunicação de threads intra-processo seja simples e rápida
Processo MULTITHREAD
GERÊNCIA DO PROCESSADOR
▪ Threads compartilham CPU da mesma maneira que os 
processos
▪ Cada thread possui seu próprio contexto de hardware, porém 
compartilham o mesmo contexto de software e espaço de 
endereçamento
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Contexto
de hardware
Contexto
de hardware
Contexto
de hardware
Espaço de
endereçamento
C
o
n
te
xt
o
 d
e
so
ft
w
a
re
Thread 3Thread 2Thread 1
Ambiente MULTITHREAD
GERÊNCIA DO PROCESSADOR
➢ Cada THREAD possui seu
próprio CONTEXTO DE 
HARDWARE
o Registradores
próprios – PC, SP, 
PSW, etc
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
❑ Os THREADS são escalonados pelo processador e 
alternam de estado (PRONTO, ESPERA, EXECUÇÂO)
Ambiente MULTITHREAD
GERÊNCIA DO PROCESSADOR
❑ Cada THREAD é independente em termos de 
execução.
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Ambiente MULTITHREAD
GERÊNCIA DO PROCESSADOR
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Escalonamento em ambiente MULTITHREAD
Proc 15
Thread #1
• O escalonador escolhe threads e não processos para executar.
Proc 15
Thread #2
Proc 25
Thread #3
Proc 15
Thread #3
Proc 25
Thread #1
Proc 15
Thread #1
Proc 25
Thread #2
Tempo
- Serviço do escalonamento em ambiente multithread:
GERÊNCIA DO PROCESSADOR
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
➢ Desempenho
➢ Os tempos gastos na manipulação de threads são
inferiores em relação aos processos.
➢ A troca de contexto é mais rápida.
➢ A criação de threads é mais rápida.
Criação (µs) Sincronização 
(µs)
User Thread 52 66
Processo 1700 200
> 3100%
Uresh Vahalia. Unix Internals: The New 
Frontiers. Prentice-Hall, first edition, 1995. 
GERÊNCIA DO PROCESSADOR
Ambiente MULTITHREAD
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
O espaço de endereçamento
é compartilhado entre os
THREADS
Ambiente MULTITHREAD
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Vantagens do uso da unidade de 
processamento THREAD sobre PROCESSO
➢Economia
✓ Processos consomem muito mais recursos se 
comparados a Threads.
✓ Se dois processos forem usados para tarefas 
complementares, poderá haver redundância de 
informações nas áreas de memória dos processos.
GERÊNCIA DO PROCESSADOR
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
✓ Possibilidade de desenvolver aplicativos mais 
eficientes e com tarefas em paralelo.
Vantagens do uso da unidade de 
processamento THREAD sobre PROCESSO
Escalabilidade
✓ Em ambientes com vários processadores, threads 
podem ser executados simultaneamente, em paralelo.
✓ Se o processo só possui um thread só será executado 
por um processador.
GERÊNCIA DO PROCESSADOR
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
o O THREAD é implementado através do 
TCB – Thread Control Block. .
.
.
.
..
.
.
ponteiros
Estado do processo
Registradores
Nome do processo
Prioridade do processo
Limites de memória
Listade arquivos abertos
PCB
GERÊNCIA DO PROCESSADOR
Ambiente MULTITHREAD
➢ Processos possuem PCB (Process Control 
Block)
❖ Onde os contextos ficam armazenados
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
Ambiente MULTITHREAD
➢ O Thread Control Block (TCB) armazena:
➢ Contexto de Hardware do THREAD
➢ Informações exclusivas do THREAD
➢ Prioridade
➢ Estado de execução (Espera, Pronto, 
Execução …)
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
Ambiente MULTITHREAD
o Como os THREADS compartilham a mesma área de memória, o 
desenvolvedor deve garantir que um THREAD não prejudicará o 
funcionamento de outro.
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
✓ THREAD #1 – Interface principal - janelas, paineis de leitura
✓ THREAD #2 – Envio/recebimento automático de mensagens
✓ THREAD #3 – Janela para composição de nova mensagem
✓ THREAD #4 – Rotina de limpeza (remove mensagens antigas)
GERÊNCIA DO PROCESSADOR
Ambiente MULTITHREAD
➢ Exemplo: Cliente de correio eletrônico
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
• Um processador de textos pode ter:
- um thread para exibir elemntos gráficos ou figuras
- um thread para responder ao uso do teclado pelo usuário
- um thread para executar verificação ortográfica e gramatical em 
segundo plano.
Exemplos de Ambiente MULTITHREAD
GERÊNCIA DO PROCESSADOR
• Um navegador WEB pode ter:
- um thread para exibir imagens 
- um thread para exibir textos
- um thread para recuperar dados da rede
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
 
CURSO: CIÊNCIA DA COMPUTAÇÃO 
DISCIPLINA: SISTEMAS OPERACIONAIS 
TEMA 6: GERÊNCIA DE PROCESSADOR- p1 
 
TEXTO PARA APOIO AO ESTUDO (estudo antes da atividade em sala) 
Gerência de Processador-p1-Processos-Conceito-Modelo 
 
I – INTRODUÇÃO 
 
A descrição das características, parâmetros e funcionalidade dos diversos elementos do módulo que gerência as 
atividades relacionadas ao processador e ao processamento dos programas pode ser estruturada em 3 partes: 
 
• Conceito de Processo e suas características- texto do Tema 6 
• Escalonamento de processos – Texto do Tema 7 
• Sincronização de processos – Texto do Tema 8 
 
Também deve ser mencionado que essas partes estão relacionadas a duas atividades interrelacionadas: 
- a gerência do elemento a ser processado (os programas---e que, neste contexto, passarão a ser chamados de 
processos) – gerência de processos; neste caso, trata-se do conceito de processos e threads e eventualmente 
alguma coisa relativa a sincronização, concorrência entre processos. 
- e a gerência do dispositivo processador (a Unidade Central de Processamento-UCP ou simplesmente 
processador); nesse caso, trata-se do escalonamento do processador e seus algoritmos, para se alternar os 
processos. 
 
II – PROCESSOS E THREADS 
 
II.1 – Conceito de Processo 
 
Como se sabe, dos textos anteriores, SO antigos processavam apenas um programa de cada vez e, gerenciavam 
todos os recursos disponíveis (processador, memória, periféricos, etc) para aquele único programa. Esse fato 
tornava os SO muito simples e havia pouco ou nenhum conflito de uso dos tais recursos. 
 
Com o surgimento da multiprogramação e, consequentemente, da possibilidade de gerenciamento de múltiplos 
programas em execução, o problema de gerenciamento dos diversos recursos se tornou mais complexo, 
acarretando, como resultado das pesquisas de solução, o conceito de processo. 
Não se trata de apenas trocar o nome de programa para processo. Com este novo nome do programa em 
execução, todo um conjunto de elementos precisaram ser criados, para que a administração dos programas (agora 
processos) e do processador fosse completa e segura. 
Em um ambiente de multiprogramação, mesmo com um único processador (ou UCP), parece que o sistema 
trabalha com múltiplos processadores virtuais, cada um “processando” um programa (agora processo). 
 
De forma simplista, então, pode-se definir Processo como um programa quando em atividade de execução; na 
realidade é muito mais que isso. Pode-se ampliar essa definição para processo ser o conjunto formado pelo código 
do programa MAIS o seu ambiente de execução (o espaço de memória, os dados dos registradores para ele, os 
dispositivos em uso, os privilégios, etc. Desse modo, inicialmente se tem o código executável de um programa, 
armazenado na memória secundária. É um elemento “sem vida”, pois não está sendo executado. 
De repente, deseja-se que este código seja executado e, nesse momento, o SO cria um processo com todos os 
elementos necessários para execução desse programa. 
 
Processo, é pois, uma das concepções mais importantes no desenvolvimento dos SO e que viabiliza o 
funcionamento dos sistemas em ambiente de multiprogramação. 
 
A figura 1 mostra um exemplo do uso de multiprogramação e o conceito de processadores virtuais que a 
concepção de processo permite viabilizar. 
 
 
Figura 1- Exemplo de múltiplas execuções de programas (multiprogramação) 
 
A figura mostra a execução concorrente de 4 programas, A, B, C e D, nestas circunstâncias chamados de processo A, 
B, C e D. 
 
Observe-se que havendo um único processador, somente haverá fisicamente um único CI-registrador contador de 
instrução, que armazena o endereço da próxima instrução a ser executada, seja de que programa for. Mas nesse 
contexto, haverá 4 CI virtuais, um para cada processo; o código de cada um está armazenado em áreas separadas 
da memória e assim por diante. 
 
A figura mostra instantes diferentes (veja cada ponta da seta em locais diferentes do código) de execução de cada 
processo e, portanto, os Cis estão com valores diferentes de endereços de cada processo. 
 
Mostrando uma prévia do que acontece em ambiente multiprogramável, observa-se na figura estes 4 programas 
em estado de execução, embora SOMENTE uma instrução de um deles seja física e efetivamente executada (já que 
só há um CI). 
Pode-se imaginar de forma simples (essa descrição será ampliada e detalhada mais adiante) que o SO decidiu 
executar o processo A, o qual fica usando o processador por alguns instantes, executando algumas linhas de código 
(algumas instruções de máquina). 
Por uma razão (entre diversas possibilidades, que serão apresentadas também mais adiante), o SO decide 
suspender a execução do código A e coloca o código B em execução. Para fazer isso e não perder nenhuma das 
informações existentes para o código A, ele precisa salvar toas essas informações (o endereço da próxima instrução 
a ser executada do código A, o conteúdo dos registradores de dados e outros itens pertinentes ao código 
(processo) A. Chama-se a isso de contexto do processo A, cujas descrições constam do item seguinte deste texto. 
O SO, então, coloca o código (processo) B em execução, primeiramente colocando no CI o endereço da próxima 
instrução de B a ser executada e o seu contexto. E assim por diante, ele passará para o C, poderá voltar ao A, 
depois o D e até terminar cada um, como será visto mais adiante. 
 
A figura 1 (c) mostra a distribuição de uso da UCP no tempo, podendo-se observar de importante é que não há 
duas execuções simultâneas; elas são executadas em instantes diferentes, mas como esses instantes são muito 
pequenos, muito menores que nosso cérebro pode entender (miliseg ou micro seg ou ainda nanoseg), não se 
percebe essa transição entre códigos e “parece” que todos estão sendo executados simultaneamente. 
 
As figuras 2, 3 e 4 seguintes, mostram um exemplo semelhante ao da figura 1, apenas com 3 programas e os 
endereços de memória de seu armazenamento, bem como com a alteração do CI a medida que os programas vão 
se revezando no uso do processador. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 2- Exemplo de endereços de armazenamento de de 3 processos 
 
Para compreender o assunto vamos abstrair do tamanho dos códigos e considerar que os endereços 5000 a 5011 
do processo A sejam em muitomaior quantidade (um espaço grande de memória). Da mesma forma, para os 
processos B e C. 
 
 
Figura 3 – Exemplo de execução de 3 processos 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5000 
5001 
5002 
5003 
5004 
5005 
5006 
5007 
5008 
5009 
5010 
5011 
Processo A 
8000 
8001 
8002 
8003 
Processo B 
12000 
12001 
12002 
12003 
12004 
12005 
12006 
12007 
12008 
12009 
12010 
12011 
Processo C 
 
Na figura 3 observa-se a distribuição espacial dos processos na memória, juntamente com alguns espaços livres (em 
azul) e o espaço para o código do SO (módulo chamada despachante, que será apresentado e descrito no texto do 
Tema 7, seguinte. 
 
 
Figura 4- Exemplo da evolução de execução dos 3 programas das figuras anteriores. 
 
A simples observação da figura (cuja compreensão será melhor assimilada pelas explicações do texto do Tema 7) 
serve para se entender o conceito de multiprogramação e o ambiente de um processo. 
 
Inicialmente o SO coloca o endereço 5000 no CI e o processo A inicia sua execução, linha por linha de código (na 
figura mostra-se apenas o endereço da instrução de máquina e não a própria instrução, considerando-se que cada 
uma ocupa apenas um endereço); quando se passam alguns instantes, o SO suspende o processo A e coloca o B em 
execução (endereço 8000). Para executar essa atividade o SO executa um código próprio que se localiza no 
endereço 100 e seguintes. 
Depois de alguns instantes de execução o processo B solicita um dado no HD (uma operação de E/S) e o processo B 
é suspenso, dando lugar ao processo C (endereço 12000) e novamente o processo do SO (endereço 100) é acionado 
para executar essa troca do B para o C. 
E assim por diante. 
 
Todo programa deve estar associado a um processo e, por isso, chamamos A, B e C de processos nesse ambiente 
do exemplo. Conforme já mencionado anteriormente, um processo, é mais que um código em execução, mas 
também o ambiente em que este código se situa. 
 
Este ambiente consiste: 
 
• Informações sobre a execução do código 
• Quanto de recursos do sistema cada programa pode utilizar 
• O espaço de endereçamento necessário 
• O tempo de processador 
• A área em disco utilizada pelo programa 
 
Nesses casos, o usuário tem a sensação de que todos os recursos são apenas seus e não como na realidade 
acontece, em que eles são compartilhados de forma concorrente por todos os processos. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ime out 
 interrupção por 
limite tempo 
 olicitação de 
 ime out 
 interrupção por 
limite tempo 
 ime out 
 interrupção por 
limite tempo 
 ime out 
 interrupção por 
limite tempo 
Todas as informações importantes e necessárias à sua execução fazem parte do processo. 
Para que a troca de processos ocorra sem problema, todas as informações do processo interrompido devem ser 
guardadas. 
Essas informações são denominadas 
 
 CONTEXTO DE UM PROCESSO ou (ambiente do processo) 
II.2 – Contexto de um Processo 
 
Mencionou-se já diversas vezes que um programa sozinho (código executável, em linguagem binária da máquina) 
não é suficiente para o SO administração as sucessivas alternâncias de programas em execução. Isso porque, o cada 
programa requer um determinado espaço de memória, o qual precisa ser compartilhado com outros. Como 
também os demais recursos (espaço em HD, uso da impressora, etc. 
 
Assim, quando o SO vai trocar um programa por outro, ele precisa considerar os elementos que o programa a ser 
substituído tem, guardá-los para quando o programa interrompido voltar e, assim por diante. 
Esta substituição foi mostrada, em primeira mão, quando se descreveu o conceito e funcionamento da interrupção. 
 
E ai, devido a se juntar diversos itens (dados, etc) ao código executável (programa) que se tem o chamado 
Contexto. E Processo é o programa mais seu contexto. 
 
Neste item vão ser mostrados os elementos que constituem o contexto de um processo e no item seguinte, 
mostra-se como esse Processo alterna sua situação durante o ciclo completo de sua execução. 
 
Do ponto de vista conceitual, os processos podem ser organizados em 3 grupos de informações: 
• Contexto de Hardware 
• Contexto de Software 
• Espaço de endereçamento. 
Cada processo criado pelo SO contém informações específicas de cada uma dessas partes; quando um processo é 
interrompido, todo seu contexto (as 3 partes) devem ser guardados em uma área de armazenamento administrada 
pelo SO, de modo que ele possa recuperar esses dados no momento em que desejar retornar o processo 
interrompido. 
A figura 5 mostra um esquema conceitual simples das 3 partes do Contexto de um Processo, enquanto a figura 6 
mostra o mesmo esquema, porém de forma mais detalhada, indicando-se itens de cada tipo de contexto. 
 
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
 
Figura 5- Esquema das 3 partes do Contexto de um Processo 
Programa
Contexto de
Software
prioridade de
execução
registrador PC
data/ hora
de criação
tempo de
processador
registrador SP
quotas
privilégios
endereços de memória
principal alocados
registrador
de status
owner (UID)
PID
nome
registradores
gerais
Contexto de
Hardware
Espaço de
Endereçamento
 
 
Figura 6- Detalhamento de itens do contexto de um Processo, distribuídos pelas partes básicas. 
 
Contexto de Hardware 
 
O contexto de hardware de cada processo contém as informações básicas dos dados que estão sendo processados 
por aquele código, sendo vital para a manutenção correta do processamento. 
Esses dados usualmente estão armazenados em registradores, cuja organização e outros parâmetros dependem da 
arquitetura do sistema de computação e que o SO precisa conhecer. Entre esses registradores pode-se relacionar: 
 
• Registradores de dados, os quais armazenam os valores a serem manipulados pelas ULA-Unidade Lógica e 
Aritmética, bem como os resultados temporários de processamento. 
• Registrador (es) Flag (ou de controle ou estado) 
• Registradores usados pela UC-unidade de controle: RI-registrador de instrução e CI-contador de instrução. 
 
Desse modo, quando um programa é interrompido (suspenso ou efetivamente interrompido), o SO efetua a troca 
de todos os valores armazenados nesses registradores e que pertencem ao processo sendo substituído – 
salvamento do contexto de hardware pelo contexto de hardware do programa a ser executado. 
Qualquer que seja o modo de administrar a multiprogramação em um computador, o contexto de hardware é 
fundamental para concretiza-se as atividades frequentes (em micro ou milisegs) de multiprogramação (alternância 
de processos). 
A figura 7 mostra um exemplo dos elementos do contexto de hardware de um sistema. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 7 – Exemplo de elementos de Contexto de Hardware 
 
10111100100 
11000100100 
11010110101 
10000100111 
01000100100 
ULA 
RI CI 
Registradores 
de dados 
Registrador de controle 
Embora todas as partes do contexto de um processo (hardware, software e espaço de armazenamento) sejam 
envolvidas quando se alterna um processo com outro, a troca de contexto fisicamente ocorre na parte de 
hardware, a qual é imprescindível para o correto funcionamento global do sistema de computação. 
 
 
Contexto de Software 
 
No contexto de software são encontrados todos os elementos que estabelecem as características de um processo, 
bem como seus limites e privilégios. Com isso, a utilizaçãodos recursos do sistema computacional é indicada nesta 
parte, sujos elementos controlam o funcionamento ou até suspensão de execução do processo (quando, por 
exemplo, se deseja um espaço em HD não disponível). 
 
Embora cada SO possua sua própria forma de expressar as informações do contexto de software, é comum cada 
processo possuir um arquivo de conta ou arquivo de usuário. 
 
A maioria dos itens deste contexto é determinada no momento da criação do processo, enquanto que outras são 
incluídas dinamicamente durante a fase de execução. Algumas são fixas, determinadas no projeto do SO e outras 
podem ser alteradas pelo administrador do SO. 
 
Conceitualmente pode-se grupar as informações do contexto de software em 3 partes: 
 
✓ Identificação 
✓ Quotas 
✓ Privilégios 
 
Identificação 
 
Como o próprio nome indica, todo processo, ao ser criado, recebe um número de identificação (PID-process 
identification), o qual serve para diversos propósitos: distinguir processos, permitir seu relacionamento para 
registro e localização, para efeitos de segurança e outros. 
O PID é único, estabelecendo uma identificação única e sem ambiguidade entre processos. Ao usar o PID, ele 
permite se verificar diferentes parâmetros de um processo em execução (tempo de UCP, hora início, nome do 
usuário proprietário (owner) do processo, etc) 
 
 Quotas 
 
A cada processo, o SO estabelece limites do uso de recursos, de modo a proporcionar um equilíbrio de seu uso, 
sendo conhecidos por quotas. 
 
– Caso uma quota seja insuficiente o processo pode: 
o Ser executado lentamente 
o Interrompido 
o Ou até mesmo não ser executado 
 
Exemplos de quotas 
▪ Número máximo de arquivos abertos simultaneamente 
▪ Tamanho máximo alocado na MP e MS 
▪ Número máximo de operações de E/S pendentes 
▪ Tamanho máximo do buffer para operações de E/S 
▪ Número máximo de processos, subprocessos e threads que podem ser criados 
 
 Privilégios 
 
O SO também estabelece, para cada processo, ações que ele pode executar durante seu ciclo de vida, sejam ações 
em relação a ele mesmo, como, por exemplo: 
• Alteração de características, como prioridade de execução, limites de memória (principal e secundária) 
Também pode definir privilégios de um processo em relação a outros (processo de tempo real tem mais privilégios 
que um processo de registro de atividades, por exemplo. 
E até mesmo, privilégios para o próprio SO, em que o Administrador tem ingerência sobre alguns dos parâmetros. 
 
Conta Privilegiada 
• Acesso a todas as operações do sistema 
• Para tarefas de gerenciamento 
• UNIX → root 
o Windows → Administrator 
 
Espaço de endereçamento 
 
Uma das características básicas da multiprogramação é a possibilidade de diversos processos compartilharem a 
mesma memória, cabendo ao SO a administração da alocação e desalocação do espaço de armazenamento para 
cada processo e distribui-lo equilibradamente. 
Área de memória pertencente ao processo onde as instruções e os dados do programa são armazenados para 
execução 
Cada processo possui seu próprio espaço de endereçamento que deve ser devidamente protegido. 
No Texto do tema 9 serão apresentados diversos modos de proteção e uso do espaço de endereçamento para cada 
processo, bem como tema 10, o emprego de uma técnica de uso das memórias, conhecido como Memória Virtual. 
 
Bloco de Controle de Processo (BCP) ou PCB-process control block 
 
Para o SO controlar e administrar as diversas fases do ciclo de vida dos processo, assim como permitir ao usuário 
conhecer a posição e a relação de processo em uso em dado instante, definiu-se uma estrutura de dados, 
conhecida como Bloco de Controle de Processo. Trata-se, de forma simples, de uma tabela com todos os elementos 
dos diversos tipos de contexto do processo. Cada processo possui seu próprio BCP, o qual é identificado e 
manipulado pelo SO pelo PID-identificação do processo. 
 
O conjunto de PCB´s fica armazenado em área de memória do sistema operacional. A figura 8 mostra um exemplo 
de PCB. 
.
.
.
.
..
.
.
ponteiros
Estado do processo
Registradores
Nome do processo
Prioridade do processo
Limites de memória
Lista de arquivos abertos
 
Figura8- Exemplo de PCB 
Toda atividade a ser realizada sobre os processos se faz por meio de chamadas a rotinas do núcleo/kernel do 
sistema, como criação, exclusão alteração de características e outras. 
 
II.3 – Estados de um Processo 
 
O ciclo de vida de um processo é o período computado desde sua criação até seu término. Como se trata de 
processo que compartilha o processador e outros recursos com outros processos, ele passa por diferentes fases 
durante este ciclo de vida. 
Para caracterizar estas fases ou estado de um processo, considere um exemplo da vida prática, como o acesso de 
pessoas a um caixa de um banco, por meio de fila única. Imagine cada cliente como um processo, o caixa como o 
processador e uma área de espera para clientes (processos), que aguardam o término de alguma atividade pedida 
pelo caixa. 
 
Assim, uma pessoa entrando no banco para ser tendido pelo caixa pode ser considerada um processo iniciando seu 
ciclo de vida (estado de INÌCIO) e entra na fila para ser atendido pelo caixa (processador) (estado de PRONTO). 
Quando chega sua vez no caixa ele passa de Pronto para EXECUTANDO); ele entrega um boleto para pagamento e o 
caixa vai trabalhando para atender o pagamento do boleto (assim como o processador vai executando uma linha 
de comando em seguida a outra do código executável). Pode acontecer que, um dos boletos requeira uma cópia de 
documento que o cliente trouxe; o caixa não pode prosseguir com aquele cliente enquanto a cópia não chegar (o 
caixa pede a um funcionário para tirar a cópia). Ele, então, pede ao cliente para aguardar em uma sala de espera 
(estado de ESPERA) até a cópia chegar e chama outro cliente (outro processo) para atendimento (execução). 
Quando a cópia chega o cliente é avisado para voltar a fila (a posição que ocupará na fila depende de diversos 
fatores (o Tema 7 tratará desses aspectos- escalonamento de processos). Ele volta ao estado de pronto para depois 
Executando quando chegar ao caixa. E assim por diante. 
 
 Entendido este exemplo, pode-se relacionar as fases ou estados que um processo realiza entre o momento de sua 
criação até seu término, depois do processador executar a última linha de código. 
 
Estados de um processo: 
INÍCIO (Start) 
 PRONTO (Ready) 
 EXECUTANDO (Running or Processing)) 
 ESPERA (Wait ou Blocked) 
TÉRMINO (End) 
 
A etapa de PRONTO significa que o processo possui todos os recursos necessários para usar o processador e 
processar (executar) sua tarefa, linha de código por linha de código, porém há outro processo sendo executado e 
pode até ter outros, prontos, na frente. É o caso da pessoa na fila do caixa do banco aguardando sua vez. 
 
A etapa de EXECUTANDO (processando) é caracterizada pela ação do processador executando (processando) o 
código binário do processo, instrução por instrução de máquina e até que o processo seja suspenso ou 
interrompido. 
 
A etapa de ESPERA ocorre sempre que o processo está executando é requer um recurso (em geral de E/S); ele é 
suspenso e permanece neste estado até que o recurso esteja disponível. 
 
 
À vista do que acabou-se de mostrar, com o exemplo do banco, pode-se definir os tipos de transição de estados 
que um processo realiza durante seu ciclo de vida. Essas transições podem ser classificadas como: 
 
• De uma única ocorrência: 
- CRIAÇÃO para PRONTO (Ready) 
-EXECUTANDO (Processando) para TÉRMINO (End) 
 
• De diversas ocorrências: 
- PRONTO para EXECUTANDO (processando) (Running) 
 - EXECUTANDO (processando) para ESPERA (Wait) 
 - ESPERA para PRONTO 
 - EXECUTANDO (processando) para PRONTO 
 
Também, esses 4 tipos podem ocorrer de forma VOLUNTÁRIA, quando o próprio processo suspende sua execução, 
conforme será descrito adiante e de forma INVOLUNTÁRIA, quando o SO é que interrompe o processo, também 
pelas razões a serem mostradasadiante. 
 
 
Criação e Término de Processos 
Uma das fases básicas do funcionamento dos SO é a criação de processos, já que estes (execução de processos) são 
o elemento de trabalho dos SO. A mesma coisa ocorre no término. Durante o tempo em que um sistema de 
computação está funcionando, milhares de processos são criados e terminados, alguns de forma frequente. 
Somente sistemas muito simples, com uma única atividade (por exemplo, para processamento de tarefas do freio 
de um automóvel) costumam criar de início todos os processos necessários. No entanto, sistemas de emprego geral 
criam, manipulam e terminam processos ininterruptamente o tempo inteiro. 
 
Normalmente, um processo é criado por uma chamada de sistema (o próprio SO pode criar) ou usuário (quando 
acionamos um ícone no desktop, e assim por diante. Assim como a ação de término, com fechamento de arquivos 
temporários, registros no log do SO e outras atividades. 
 
Um processo pode criar outro(s), sendo o criador chamado processo-pai e o que foi criado por ele, chamado de 
processo-filho; este pode criar outros e assim se formar uma árvore de processos em execução. 
 
Fases que um processo pode alternar durante sua execução (ver figura 9) 
 
 
 
Figura 9 – mudanças de estado de um processo 
 
 
 
 
 
PRONTO para EXECUTANDO (processando) 
 
Assim que os recursos necessários ao processo estejam disponíveis, o SO coloca o processo no estado de PRONTO, 
usualmente em uma fila (já que sempre há mais processos prontos do que o processador consegue processá-los, 
mesmo sendo extraordinariamente rápido). 
 
A administração da fila de Pronto é uma das atividades mais importantes dos SO, por meio de programas como o 
Escalonador (Scheduler) e o Despachante (dispatcher).O assunto e os diversos algoritmos e características de 
escalonamento de processos é tratado no texto correspondente ao Tema 7, a seguir. 
 
Quando o processo chega ao topo da fila e o atual processo em execução sai, ele é colocado em Execução. 
 
OBS: na literatura de SO usa- t “ nning” a a ó ig n f tiva nt cutado pelo 
 a t a t a zi a a av a “ tan ”. N ntant , q an é 
criado e enquanto dura seu ciclo de vida (até o término) diz-se também que ele está sendo executado, 
o que pode confundir algumas pessoas. Eu prefir a a a av a “ an ” b tit i a 
“ tan ” (q an t a a a a ). a a a av a “ tan ” 
para todo o período do ciclo de vida do processo (entre criação e término). 
 
EXECUTANDO (processando) para ESPERA 
 
• Quando ocorre um evento (próprio ou externo) que exija a suspensão temporária da execução de um 
processo (lembre do exemplo do banco quando a pessoa vai para sala de espera aguardar término da 
solicitação de cópia). 
• Exemplo: Operação de E/S iniciada. O processo não voltará a ser executado até que a operação esteja 
concluída 
 
ESPERA para PRONTO 
 
• Quando o recurso solicitado ou outro requisito de espera esteja concluído (processamento com tempo 
marcado), então o SO transfere o processo para a fila de Pronto (onde se posiciona o retorno do processo 
na fila depende da política do SO e será mostrado no texto seguinte (Tema 7). 
 
EXECUTANDO (processando) para PRONTO 
 
• Para que um processo não monopolize o processador, prejudicando outros, ele pode ser interrompido para 
prosseguir mais adiante. Neste caso ele volta para a fila de pronto. 
 
Em resumo, há diversas alternâncias de estado de um processo: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 10 – Exemplo de mudança de estado de processo com swapping 
 
Quando não há espaço na MP para tanto códigos de processos, eles são transferidos temporaiamente para uma 
área em disco administrada pelo SO (podem ser processo em estado de espera (mais comum) ou até mesmo fila de 
prontos (mais raro, pois perde-se muito tempo na transferência quando se precisa de rapidez (processo prontos). 
 
Este movimento de vai e vem da MP para a HD chama-se swapp (sendo swapp in (do HD para a MP) e swapp out 
(da MP para o HD). De qualquer forma, esta atividade de swapp é ruim em termos de produtividade e velocidade 
do sistema. 
 
Transições de estado do processo também podem ser: 
➢ Voluntárias - Eventos originados pelo próprio processo 
 
➢ Involuntárias - Eventos do Sistema Operacional 
 
Em resumo (ver figura 11) 
 
Figura 11 – Exemplo de mudanças de estado de um processo 
 
 
SWAPPING 
▪ Quando não há espaço 
disponível na memória 
principal para todos os 
processos, parte dos 
contextos é transferida para 
memória secundária 
 swapping . 
▪ Os processos cujos dados estão em 
memória secundária, são chamados 
de 
▪ Não-Residentes. 
Naturalmente, cada mudança de estado implica na realização de um conjunto de etapas pelo SO, especialmente 
nas mudanças do estado de Execução para Pronto ou Espera e de Pronto para Execução, conforme mostrado na 
figura 12. 
Já sabemos que este conjunto de atividades é conhecido como 
TROCA DE CONTEXTO. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 12 – Exemplo de troca de contexto 
 
 
II.4 – Conceito de Thread 
 
Conforme mostrado e explicado nos textos anteriores, os elementos (informações) que caracterizam um 
processo são estruturados em um PCB, sendo as partes do contexto de hardware (registradores de dados e 
outros), de software (identificação, quotas e privilégios do processo) e o espaço de armazenamento. O PCB é 
armazenado na memória em área exclusiva do SO e são reordenados no sistema conforme seu estado vai 
evoluindo durante o ciclo de vida do processo. 
 
Embora seja uma forma simples de controlar a situação dos processos, ele requer uma sucessão muito grande e 
frequente de troca de contextos, o que pode acarretar tempos maiores de processamento global do sistema 
computacional. Além disso, há um consumo maior de recursos como a memória, pois cada processo tem seu 
próprio espaço de endereçamento. 
 
Uma das soluções encontradas pelos projetistas e desenvolvedores de SO, consiste na criação de um conceito de 
divisão do código do programa em um Processo com múltiplas rotinas menores, chamadas Threads. A utilização 
de múltiplos Threads de um processo, facilita consideravelmente a concorrência em sistemas multiprogramados, 
pois os Threads de um processo compartilham espaço de endereçamento e outros recursos. Só não é possível 
compartilhar o contexto de hardware, mas de qualquer modo há uma enorme economia de armazenamento de 
de gerenciamento, reduzindo tempo de troca de contexto e, assim, fazendo mais rápidos o processamento global 
do sistema computacional. 
 
Atualmente, há uma grande quantidade de SO que utilizam o conceito de multithread e até fabricantes de 
hardware, como Intel se aproveitaram dessa facilidade criando processadores capazes de dividir o hardware em 
duas partes concorrentes no tempo, os conhecidos sistemas hyper-threading. 
 
A figura 13 mostra a forma conceitual e comparativa entre processos mono e multithreading. 
2. Selecionar outro 
processo para 
execução. 
1. Salvar contexto de 
hardware do processo 
que está em execução; 
Atualizar o BCP do 
processo em 
execução; 
Mover o BCP para a 
fila apropriada: espera 
ou pronto. 
Carrega registradores do
Processo B
Carrega registradores do
Processo A
Sistema Operacional
Salva registradores do
Processo A
executando
executando
executando
Salva registradores do
Processo B
Processo A Processo B
 
 
Figura 13-Exemplo de sistemas mono e multithreading (imagem do Sylberschatz e al) 
 
Características de sistemas multithread: 
 
O conceito de THREADS estabelece que um programa não está associado a um processo. 
Um programa está associado a um THREAD 
Um processo pode possuir um ou mais THREADS 
 Comunicação rápida entre os THREADS 
▪ Threads compartilham CPU da mesma maneira que os processos 
▪ Cada thread possui seu próprio contexto de hardware, porém compartilham o mesmo contexto de 
software e espaço deendereçamento 
▪ Compartilhamento do espaço de endereçamento permite que a comunicação de threads intra-processo 
seja simples e rápida 
Cada THREAD é independente em termos de execução. 
Os THREADS são escalonados pelo processador e alternam de estado (PRONTO, ESPERA, EXECUÇÂO) 
 
Outras informações sobre threads e seu uso nos SO atuais encontram-se nos vídeos da aula sobre o Tema 6 e 
também no livro texto. 
 
 
 
 
 
 
 
 
AS INFORMAÇÕES CONTIDAS NESTE MATERIAL DE APOIO AO ESTUDO FORAM EXTRAÍDAS DAS SEGUINTES 
PUBLICAÇÕES: 
- Arquitetura de Sistemas Operacionais – Francis Machado e Luiz P. Maia 
- Sistemas Operacionais- Andrew Tanembaum 
- Fundamentos de Sistemas Operacionais – Abraham Silberschatz e al 
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
TEMA 7-p4
GERÊNCIA DO PROCESSADOR
* Conceitos básicos de SO
▪Tipos de SO
▪Concorrência-Multip
▪Estrurura dos SOs
▪ Gerência de Proces.
▪ Gerência de Memória
▪ Gerência de Dados 
(sistema de arquivos
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
SINCRONIZAÇÃO DE PROCESSOS
S U M Á R I O
MODELO DE PROCESSO (e Threads)
ESTADOS DE UM PROCESSO
ESCALONAMENTO (GERÊNCIA DO PROCESSADOR) cont.
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
ESCALONAMENTO DE PROCESSOS
(Scheduling)
▪ ALGORITMOS DE ESCALONAMENTO
▪ O QUE É ESCALONAMENTO 
▪ REQUISITOS PARA ESCALONAMENTO
▪ PREEMPÇÃO 
GERÊNCIA DO PROCESSADOR
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
- ESCALONAMENTO CIRCULAR (Round Robin)
- ESCALONAMENTO POR PRIORIDADES
- ESCALONAMENTO CIRCULAR COM PRIORIDADES
- ESCALONAMENTO POR MÚLTIPLAS FILAS
GERÊNCIA DO PROCESSADOR
ALGORITMOS DE ESCALONAMENTO 
ESCALONAMENTO COM PREEMPÇÃO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Preempção por tempo
UCP
Estado de
Criação
Estado de
Espera
Fila dos processos no estado de Pronto
Estado de
Término
➢ Semelhante ao FIFO, porém o tempo de uso do processador é limitado.
▪ O tempo limite é chamado de fatia-de-tempo, ou quantum.
▪ Quando o quantum expira, o processo volta ao estado de Pronto (fila de pronto).
GERÊNCIA DO PROCESSADOR ESCALONAMENTO COM PREEMPÇÃO
Com preempção.
ESCALONAMENTO CIRCULAR (PREEMPÇÃO)
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
Processo A
Processo B
Processo C
2 4 17 u.t.6 8 10 11
GERÊNCIA DO PROCESSADOR
ESCALONAMENTO CIRCULAR (PREEMPÇÃO)
ESCALONAMENTO COM PREEMPÇÃO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
▪ Se o quantum for pequeno demais:
-- Ocorrência de preempção em grande quantidade. A cada
uma, tempo é perdido durante a operação de escalonamento, 
ou seja, muito tempo perdido com operações administrativas
do SO. 
GERÊNCIA DO PROCESSADOR ESCALONAMENTO COM PREEMPÇÃO
ESCALONAMENTO CIRCULAR (PREEMPÇÃO) - (round-robin)
▪ Ideal para sistemas de tempo compartilhado
▪ Tempo típico de quantum: 10 a 100 ms
▪ Se o quantum for grande demais:
-- Multitarefa prejudicada. Funcionamento aproximado ao FIFO.
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
ESCALONAMENTO COM PREEMPÇÃO
ESCALONAMENTO CIRCULAR (PREEMPÇÃO) - (round-robin)
➢Vantagem:
➢ Conclusão: Uso desigual do processador entre os processos.
✓ Um processo não poderá monopolizar o processador, como na FIFO.
➢Desvantagem:
✓ Processos de uso intensivo de CPU são beneficiados em relação aos processos
com uso elevado de E/S. 
✓ No primeiro caso há maior chance de uso da fatia de tempo por completo.
No segundo caso há maior chance do processo passar para Espera antes do término
da fatia de tempo.
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
➢Semelhanate ao FIFO, porém cada processo possui uma prioridade
associada.
➢ O processo de maior prioridade (em estado de Pronto) é sempre o 
escolhido para execução.
➢ A escolha de processos com a mesma prioridade é feita pela ordem de 
entrada na fila de pronto.
➢ A perda do uso do processador ocorre quando:
➢ Processo passa ao estado de Espera.
➢ Um processo com maior prioridade passa ao estado de Pronto →
Preempção por prioridade (opcional).
GERÊNCIA DO PROCESSADOR
ESCALONAMENTO COM PREEMPÇÃO
➢ Escalonamento FIFO – Por prioridades
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
ESCALONAMENTO COM PREEMPÇÃO
➢ Escalonamento FIFO – Por prioridades
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
➢ Prioridade estática
➢ É definida na criação do processo. Não pode ser alterada. 
➢ Prioridade dinâmica
➢ Pode ser alterada durante a execução do processo. Permite ajuste
em função do comportamento do processo durante sua execução.
➢ Vantagem:
➢ Permite priorizar a execução de determinados processos.
➢ Desvantagem:
➢ Risco de starvation em processos com baixa prioridade.
GERÊNCIA DO PROCESSADOR
ESCALONAMENTO COM PREEMPÇÃO
➢ Escalonamento FIFO – Por prioridades
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
➢Semelhante ao escalonamento circular.
➢ O processo com maior prioridade é escolhido.
➢ Muito utilizado em sistemas de tempo compartilhado.
➢ Vantagem:
➢ Permite melhor balanceamento no uso do processador.
➢ Escalonamento Circular por prioridades
GERÊNCIA DO PROCESSADOR
ESCALONAMENTO COM PREEMPÇÃO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
GERÊNCIA DO PROCESSADOR
ESCALONAMENTO COM PREEMPÇÃO
➢ Escalonamento Circular por prioridades
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
➢ Para evitar que um processo com maior prioridade monopolize o 
servidor:
➢ A prioridade do processo pode ser gradativamente reduzida
durante sua execução, até que fique inferior à de outros 
processos, que serão executados.
➢ O processo pode ter um intervalo máximo de tempo que 
pode ser executado (maior do que a fatia de tempo “quantum” 
normal). Ao término desse prazo, outros processos, de menor
prioridade, são selecionados. 
GERÊNCIA DO PROCESSADOR
ESCALONAMENTO COM PREEMPÇÃO
➢ Escalonamento Circular por prioridades
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
➢As diferentes características entre processos podem tornar o uso de um 
único mecanismo de escalonamento ineficiente.
➢ Uma alternativa é o uso de diferentes filas, cada uma com:
➢ Prioridade própria.
➢ Mecanismo próprio (ex. Uma fila FIFO e outras circular).
➢ A distribuição dos processos pelas filas pode seguir critérios
específicos:
➢ Uso típico de CPU.
➢ Uso típico de E/S.
➢ Uso de memória.
➢ Importância da aplicação. 
➢ Escalonamento com Múltiplas filas
GERÊNCIA DO PROCESSADOR
ESCALONAMENTO COM PREEMPÇÃO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
✓ Se um processo alterar seu comportamento ao longo da 
execução, não será possível alternar a fila à qual está associado.
GERÊNCIA DO PROCESSADOR
ESCALONAMENTO COM PREEMPÇÃO
➢ Escalonamento com Múltiplas filas
✓ Cada fila tem sua prioridade. 
✓ O escalonador escolhe a fila com maior prioridade e que 
tenha processos aguardando (estado de Pronto).
✓ Dentro dessa fila, o processo é 
escolhido seguindo o critério da fila.
✓ Um processo sofre preempção caso um outro processo entre em uma fila 
de maior prioridade.
➢ Desvantagem:
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
UCP
Fila de processos do sistema
Fila de processos interativos
Fila de processos batch
Maior
prioridade
Menor
prioridade
GERÊNCIA DO PROCESSADOR
➢ Escalonamento com Múltiplas filas e com prioridades
ESCALONAMENTO COM PREEMPÇÃO
Mario A. Monteiro
SISTEMAS OPERACIONAIS
MARIO A. MONTEIRO
 
CURSO: CIÊNCIA DA COMPUTAÇÃO 
DISCIPLINA: SISTEMAS OPERACIONAIS 
TEMA 7: GERÊNCIA DE PROCESSADOR- p2 
 
TEXTO PARA APOIO AO ESTUDO (estudo antes da atividade em sala) 
Gerência de Processador-p2-Escalonamento de processos-Preempção 
 
I – INTRODUÇÃO 
 
No texto anterior iniciou-se a descrição dos principais elementos do módulo dos Sistemas Operacionais que 
gerência as atividades relacionadasao processador e ao processamento dos programas. A gerência de 
processamento de programas foi organizada em duas partes: tema 6 para descrever os aspectos relacionados ao 
conceito de Processo e o Tema 8 para tratar de concorrência entre processos e sincronização. 
 
Neste tema será abordada a outra parte, relativa a gerência do processador em si, isto é, como o SO alterna o uso 
do processador pelos diversos processos, de modo a manter o processador ocupado e obter o máximo de 
desempenho do sistema de computação para atender a maior quantidade de tarefas no menor tempo possível. 
Essa alternância é conhecida como escalonamento e no texto serão mostrados formas de escalonamento e 
algoritmos diferentes para cada uma delas. 
 
O texto é estruturado como se segue: 
 
 II – Escalonamento 
 III – Preempção 
 IV – Algoritmos de escalonamento 
 - escalonamento não preemptivo 
 - escalonamento com preempção 
 
II – ESCALONAMENTO 
 
Em sistemas multitarefas, o processador é compartilhado por diversos processos, criando a sensação de 
paralelismo de execução. Considerando sistemas monoprocessador, sabe-se que o processador executa um 
processo por vez. 
A figura 1 mostra exemplo do emprego do escalonador para alternar o uso do processador para processos em 
execução. A alternância do processo em execução é chamada ESCALONAMENTO (scheduling). 
 
 
Figura 1 – exemplo de escalonamento 
Basicamente, o Escalonador gerencia o funcionamento da fila de processos no estado de PRONTO, decidindo qual 
processo nesta fila terá vez no processador para executar seu código. 
 
Em sistemas multitarefas, é comum que existam diversos processos em estado de PRONTO, ou seja, aguardando a 
execução. Os critérios para a escolha do próximo processo a ser executado compõem a Política de Escalonamento. 
 
 
Figura 2- Exemplo de alternância de estados de um processo durante seu ciclo de vida 
 
Na figura 2, relembra-se a alternância de processos entre os estados de Pronto (ready), Espera (wait) e Execução 
(processamento-running). O escalonador atua basicamente na administração da fila de pronto, já que não há fila no 
estado de espera e muito menos quando se está em execução (processando). 
 
Apesar de já ter sido mencionado, deve-se enfatizar que rotina responsável pelo escalonamento é chamada 
ESCALONADOR, a qual, naturalmente, deve estar armazenada no núcleo/kernell dos SO. Trata-se da parte mais 
importante dos SO, visto que gerência o recurso Processador dos sistemas de computação. 
O escalonador determina o próximo processo que fará uso do processador, bem como realiza passagem eventual 
de um processo para ser armazenado na memória secundária e retorno à memória principal (operação chamada de 
Swapping). Isso acontece quando há muitos processos em execução (não em processamento, mas sendo 
executados) e não há espaço na memória principal para todos. 
Um outro componente bem importante neste momento e que opera junto com o escalonador é o chamado 
DESPACHANTE (dispatcher). Ele que entra em funcionamento depois que o escalonador decidiu qual processo 
receberá controle do processador para ser executado (processado). Ele realiza as seguintes atividades: 
• Mudança de contexto entre os processos que sai e que entra 
• Mudança para o modo usuário 
• Colocação do programa do usuário a ser processado na posição correta de ser reiniciado (conteúdo do 
CI). 
O despachante deve ter um bom código para atuar de forma mais rápida possível, já que opera a cada alternância 
de processos. O tempo gasto pelo despachante (dispatcher) é conhecido como latência do dispatcher. 
Em ambientes que trabalham apenas com processos, o escalonamento é realizado por processos, com troca de 
contexto, etc feito por processos que estão na fila de estado de prontos. Sistemas mais modernos atuam muito 
com múltiplos threads e, nesse caso, o escalonamento é realizado por thread, sem muita preocupação com o 
processo que contém os threads. A administração, nesse caso, é de fila de threads no estado de pronto (ver figura 
3). 
 
Figura 3- Processamento de múltiplos threads 
Em resumo: 
Ambiente Mono-thread 
 O escalonador seleciona um processo para fazer uso do processador 
Ambiente Multi-thread 
O escalonador seleciona um thread, de algum processo, para fazer uso do processador 
Funções de uma política de escalonamento 
Manter a UCP ocupada maior parte do tempo; 
Balancear o uso da UCP entre processos; 
Privilegiar a execução de aplicações críticas; 
Oferecer tempos de resposta razoáveis para os usuários. 
 
Requisitos e outras observações para realização de escalonamentos 
Uso justo 
 Garantir que processos com mesma prioridade recebam um serviço semelhante. 
Uso de recursos 
 Manter os recursos ocupados o máximo de tempo possível 
 Balanceamento CPU e E/S 
 Maior uso → maior quantidade de processamento em comparação com um sistema ocioso 
➢ Throughput 
➢ Quantidade de processos executados em um determinado intervalo de tempo 
 
 
 
Em geral se deseja que: 
 
➢ Uso da CPU 
➢ Throuhgput 
 
 
➢ Tempo de turnaround 
➢ Tempo de espera 
➢ Tempo de resposta 
 
 
Outros tempos 
 
Tempo de processador 
 
Tempo em que um processo permaneceu em estado de execução 
▪ Dependente do código das aplicações 
▪ A política de escalonamento não interfere nesse parâmetro 
Tempo de espera 
▪ Tempo que um processo espera na fila de Pronto, aguardando o seu processamento 
▪ A redução desse tempo é um dos objetivos de uma política de escalonamento 
Tempo de turnaround 
▪ Tempo total entre a criação e o término de um processo 
Inclui: 
❖ Overhead na criação do processo 
✓ Tempo em uso de processador 
✓ Tempo de espera (em estado de pronto) 
✓ Tempo em estado de espera (operações de E/S) 
 
 
Tempo de resposta 
 
 É o tempo entre o envio de uma requisição e a chegada da resposta. 
 
❖ Muito importante em aplicações interativas 
❖ Um tempo elevado proporciona uma experência ruim ao usuário 
❖ Ex: o tempo entre o pressionar de uma tecla e a correspondente exibição na tela 
Ele é influenciado por alguns fatores: 
 
➢ Velocidade dos dispositivos de E/S → Principal limitador 
➢ Capacidade de processamento 
Maximizar 
Minimizar 
 A redução desse tempo é um dos objetivos de uma política de escalonamento 
▪ A redução desse tempo é um dos objetivos de uma política de escalonamento 
▪ Processos em primeiro plano (foreground) devem ter prioridade em relação a processos em 
segundo plano (background) 
 
Comportamento dos processos 
 
De acordo com a lógica da criação do programa (que se torna processo ao ser posto em execução) e sua utilização 
pelo processador, pode-se observar dois tipos de comportamento diferentes dos processo e que acarretam 
impacto no funcionamento do sistema e nas escolhas: 
 
▪ Processos orientados pela CPU (CPU-Bound): passam a maior parte do tempo computando (programas 
científicos e que realizam intensa quantidade de operações matemáticas) 
▪ Processos orientados pela E/S (I/O-Bound): passam a maior parte do tempo esperando E/S (programas 
comerciais como os da área bancária e que usam muito banco de dados 
 
(a) CPU-bound
tempo tempo
E/ S E/ S
UCP UCP
(b) I/ O-bound 
Figura 4- Exemplo de uso do tempo em diferentes tipos de processo 
 
 
III – PREEMPÇÃO 
 
Preempção, em uso na vida cotidiana, é uma ação de direito de preferência em uma compra ou venda de produtos. 
Isto é, direito de preferência. Em Sistemas Operacionais o significado é semelhante: direito de preferência a um 
processo que possua, no momento, prioridade em relação a outro (ocorre na fila de processos prontos). 
Ou seja, um processo com determinada prioridade entra na fila de pronto e, tendo prioridade maior, se sobrepõe 
aos demais (passa a frente na fila). 
 
Deve ser lembrado que, um processo ao ser criado, o SO define um conjunto de informações sobre ele (contexto de 
software), entre as quais a sua prioridade (inserida no BCP-bloco de controle de processo).O Windows, de forma 
geral possui 32 níveis de prioridade, sendo número mais baixo de maior prioridade (processo do SO tem sempre 
maior prioridade. No sistema Unix, por exemplo, há mais prioridades (usualmente 127, embora variando em 
quantidade e forma de uso conforme a versão e no Linux pode divergir também. 
 
Há dois tipo de preempção: 
• Por prioridade 
• Por tempo 
 
Preempção por prioridade refere-se, como mencionado acima, que um processo com nível de prioridade maior que 
outro (número de prioridade menor) preempta (passa a frente na fila de pronto) outro de menor prioridade, 
conforme será mostrado com a descrição de alguns algoritmos de escalonamento com preempção a seguir. 
 
Preempção por tempo refere-se a ação de suspenção de um processo que atingiu o limite de tempo de uso do 
processador e seu retorno à fila de pronto, enquanto o SO coloca outro processo em execução (que estava no topo 
da fila). Nesse caso, a prioridade maior do processo no topo da fila é casual, de momento. Naquele instante (que o 
processo em execução atingiu limite de tempo) o do topo da fila terá maior prioridade e é colocado em execução. 
Naturalmente, isso só ocorre em SO que se utilizam de fatias de tempo no escalonamento. 
 
Deve ser observado também que há SO que podem usar algoritmos de escalonamento SEM preempção, como será 
mostrado a seguir. Nesse caso, um processo não é preemptado (não sai de execução nem por priorodade nem por 
tempo). Ele deixa o processador apenas quando é suspenso (pede uma operação de E/S e precisa aguardar seu 
término) ou quando ocorre uma interrupção (eventos extraordinários externos) ou exceção (erros na execução) ou, 
naturalmente, quando termina. 
 
 
IV – ALGORITMOS DE ESCALONAMENTO 
 
Ao longo do tempo, foram sendo desenvolvidos e eventualmente implementados diversos algoritmos de 
escalonamento, conforme o interesse do desenvolvedor e do uso da aplicação para o SO. SOs de emprego geral, 
como Windows, Unix/Linux e outros semelhantes, podem empregar mais de um algoritmo conforme versão do SO 
ou sua atualização. 
 
Esses algoritmos se classificam em dois grupos: os que não usam preempção e aqueles que usam preempção. 
Atualmente, praticamente todos os SO modernos e de emprego geral usam algoritmos de escalonamento com 
preempção. 
 
Algoritmos não preemptivos 
Escolhe um processo para executar (topo da fila de pronto), e o deixa até que: 
✓ Seja suspenso (à espera de E/S ou de outro processo), ou 
✓ Até que ele voluntariamente libere a CPU ou 
✓ Que seja interrompido (eventos externos) ou 
✓ Termine a execução da última linha de código. 
 
Algoritmo preemptivo 
É o que permite parar a execução de um processo e iniciar outro 
Ex.: escalonador escolhe um processo e o deixa por um tempo máximo fixado 
Se ainda estiver executando ao final desse intervalo de tempo, o processo será suspenso, e o escalonador 
escolherá outro processo para executar 
Ou, o SO suspende um processo em execução para colocar um processo com maior prioridade 
A figura 5 mostra um exemplo de uso de preempção. 
 
 
Figura 5-Preempção 
 
 
 m m r rama m n iz 
a m ina 
 i ma ra i na in rr m m 
 r ara r a 
 x a 
 riar a 
 a nam n a a i am 
 m xim a r i am n a 
m ina 
 
 
 
 
 scalonamento reemp vo
IV.1 - Escalonamento não preemptivo 
 
Exemplos de algoritmos que não empregam preempção: 
 
* FILA SIMPLES (FIFO- first in, first out) 
 
 * PROCESSOS CURTOS (SJF) – shortest job first 
 
* ESCALONAMENTO COOPERATIVO 
 
Fila Simples (FIFO)-ver figuras 6 e 7 
 
➢ Todo processo que passa ao estado de Pronto entra em uma fila 
➢ Quando o processo em execução termina sua tarefa, ou entra em estado de Espera, o PRIMEIRO processo 
da fila é escalonado 
➢ Quando o processo em Espera volta ao estado Pronto vai para o fim da fila 
 
UCP
Estado de
Criação
Estado de
Espera
Fila dos processos no estado de Pronto
Estado de
Término
 
Figura 6- Exemplo de algoritmo de Fila simples (FIFO) 
 
É um algoritmo simples de ser implementado e usado, porém possui diversas desvantagens, especialmente em 
sistemas interativos ou que exigem rapidez. Foi (e é em alguns sistemas) usado em sistemas que usam 
preferencialmente processos que são executados no modo Batch (em lotes), sem interatividade. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 7 – Escalonamento FIFO-diagrama de tempo 
Desvantagens 
▪ Não é possível prever quando um processo será executado 
▪ Processos com uso intensivo de E/S são prejudicados, em relação aos 
processos com maior uso do processador 
Processo A
Processo B
Processo C
10 14 17
Processo A
Processo B
Processo C
4 7 17
u.t.
u.t.
Processo
Tempo de
processador
(u.t.)
A
B
C
10
4
3
Te p Medi (TM) 
TM = (0+ 0+ 4)/3 = 8 
TM = (7+0+4)/3 = 3,6 
A figura 7 mostra um exemplo de distribuição no tempo de processos com algoritmo de fila simples (processos A, B 
e C). Na figura se observa duas situações: a primeira (parte superior da figura) os processos são escalonados em 
ordem, primeiro o processo A (10 ut), depois o B (4 ut) e por último o C (3 ut), sem preocupação com o tempo de 
cada um. 
O tempo médio TM do uso dos 3 processos é 8 ut, seno 0 para o primeiro (no início), o B entra na ut 10 e o C entra 
4ut depois, 14. TM = (0 + 10 + 14) = 24 /3 =8 
 
No segundo caso (parte inferior), alterou-se a sequência, colocando em primeiro lugar o processo B (ut =0, de 
início). Em seguida, 4 ut depois (duração do B) inicia o processo C e em seguida, 7 ut depois (as 4 do B mais 3 do C) 
inicia o processo maior, o A. Nesse caso, o TM será (0 + 4 + 7)/3= 3,7 
 
Em todos os casos, o TM calculado é o do início dos processos. 
 
Um terceiro caso seria iniciar pelo processo mais curto (C), seguido do processo B (4 ut) e depois o A.O TM seria 
calculado por (0 + 3 + 7)/3 = 3,3 ut. Este seria o caso do algoritmo seguinte (SJF) 
 
Prioridade para processos curtos (SJF)-(short job first) - ver figura 8 
 
Nesse algoritmo, o escalonador seleciona o processo com menor tempo de processador ainda por executar e aloca 
processador para ele. 
No ato da criação do processo, o sistema operacional estima o tempo necessário de processador com base em 
estatísticas de execuções passadas. 
 
É daquele tipo de operação cuja concepção é simples e visa um determinado objetivo, mas cuja implementação é 
complexa ou difícil de executar, por não considerar todas as possibilidades. 
 
Desenvolvido para sistemas do tipo batch. O uso em processos interativos é problemático, devido à dificuldade na 
estimação dos tempos. 
Além disso pode acarretar “starvation” quando existem processos com uso intensivo do processador. 
 
OBS: Starvation – refere-se a situação em que um processo nunca (ou quase nunca) consegue ser alocado ao 
processador, pois sempre aparece um processo com maior prioridade. 
 
O exemplo mostrado na figura 8 refere-se ao terceiro caso mencionado no item anterior. 
 
Processo A
Processo B
Processo C
3 7 17 u.t. 
Figura 8- Diagrama de tempo do uso do algoritmo SJF 
 
Como mostrado anteriormente, o TM = (0 + 3 + 7) /3 = 3,3 ut 
 
A favor deste algoritmo pode-se citar a ocorrência d emenores tempos totais de execução ou tempo do ciclo de 
vida do processo ou tempo de “turnaroud”, como se observa no exemplo da figura 9. 
 
 
 
Figura 9- Tempos de turnaround (tempo total de execução do ciclo de vida do processo) 
 
Na figura se observa dois casos, o do algoritmo FIFO e o do SJF 
 
➢ No primeiro caso (ordem FIFO), o turnaround médio é 
 (8 + 12 + 16 + 20)/4 = 14 
➢ No segundo caso (ordem SJF), o turnaround médio é: 
 (4 + 8+ 12 + 20)/4 = 11 
 
Menor tempo médio de turnaround dos processos em relação ao FIFO. 
(supondo todos os processos criados no in an ‘z r ’) 
 
Algoritmo do tipo Cooperativo 
 
➢ Não-preemptivo 
➢ O processo interrompe

Outros materiais