Buscar

Processos


Continue navegando


Prévia do material em texto

PROCESSOS Prof. Eng. Eduardo Juliano Alberti(Adpatado de Prof. Alessandro Brawerman)
PROCESSO
• Um processo é um programa em execução acompanhado dos valores atuais do 
contador de programa, dos registradores e das variáveis.
• Um processo pode ser considerado como uma tarefa.
• Um programa é para um processo o que a partitura é para a orquestra sinfônica.
2
PROCESSO
• Um processo é uma entidade
Possui seu próprio espaço de endereço
 Região de texto: armazena o código que o processador executa
 Região de dados: armazena variáveis e memória alocada dinamicamente, que o processo usa durante a 
execução
 Região de pilha: armazena instruções e variáveis locais para chamadas ativas ao procedimento
3
PROCESSO
• Um processo é um programa em execução. Um programa é uma entidade 
inanimada; somente quando um processador lhe ‘sopra vida’ é que ele se torna a 
entidade ativa que chamamos de processo.
• Um processo possui sua própria CPU Virtual.
4
PROCESSO
5
PROCESSO
• Na visão do processo, suas instruções são executadas individualmente e de forma 
exclusiva pela CPU.
• Na visão da CPU, as instruções dos processos são executadas alternadamente. 
MULTIPROGRAMAÇÃO.
• Receita de Bolo e Cuidados Médicos.
6
CRIAÇÃO DE PROCESSOS
Principais eventos que provocam criação de processos
1. Inicialização do Sistema
2. Execução de uma chamada ao sistema de criação de processos por um processo em execução
3. Requisição de usuário para criação de um novo processo
4. Início de um programa em lotes (batch)
7
CRIAÇÃO DE PROCESSOS
1. Inicialização do Sistema
Na inicialização processos de primeiro e Segundo plano são iniciados para dar 
suporte as tarefas do SO. Em elementos microcontrolados, todos os processos 
estarão disponíveis na inicialização, o que não acontece em elementos 
microprocessados.
8
CRIAÇÃO DE PROCESSOS
2. Execução de uma chamada ao sistema de criação de processos por um processo
em execução
Processos em execução podem emitir chamadas de criação de novos processos para 
auxiliá-los em suas tarefas.
9
CRIAÇÃO DE PROCESSOS
3. Requisição de usuário para criação de um novo processo
Em sistemas interativos, usuários podem abrir quantos programas achar necessário. 
Cada programa aberto será processado como um novo processo.
10
CRIAÇÃO DE PROCESSOS
4. Início de um programa em lotes (batch)
Apenas para sistemas de grande porte. Quando novos Jobs são enviados para 
processamento, o computador irá criar um processo assim que achar que a execução 
é possível.
11
CRIAÇÃO DE PROCESSOS
Linux/Unix:
 fork (pai e filho têm mesma imagem de memória, strings no ambiente e arquivos abertos)
 Em geral filho executa execve para mudar imagem de memória e executar em novo programa
(redirecionar entrada, saída e saída de erros padrões)
Windows
CreateProcess (programa a ser executado, parâmetros de linha de comando, atributos de segurança, 
bits de controle de arquivos abertos, prioridade, janela, ponteiro para estrutura info sobre o novo 
processo)
12
FINALIZAÇÃO DE PROCESSOS
Condições que determinam fim de um processo
1. Saída Normal (voluntária)
2. Saída por Erro (voluntária)
3. Erro Fatal (involuntária)
4. Cancelado por outro processo (involuntária)
13
HIERARQUIAS DE PROCESSOS
Pai cria processo filho, filho pode criar os seus próprios processos
Forma uma hierarquia
 Em UNIX é chamado de ”grupo de processo”
Windows não possui o conceito de hierarquia de processos
 Todos os processos são criados como iguais
14
VANTAGEM DE HIERARQUIA
Por que é vantajoso criar uma hierárquia de processos em vez de uma lista
encadeada?
Hierarquia permite que o SO controle os relacionamentos pai-filho entre processos, o que simplifica
operações como localizar todos os processos-filho de um determinado processo-pai quando esse for 
extinto.
15
HIERARQUIA EM LINUX
16
CICLO DE VIDA DE UM PROCESSO
• O SO deve assegurar que cada processo receba uma quantidade suficiente de 
tempo de processador
• O número de processos é muito maior que o de processadores
• Portanto, a que dado instante, alguns processos podem ser executados e outros não
17
CICLO DE VIDA DE UM PROCESSO
• Durante seu tempo de vida um processo passa por vários estados distintos
• Vários eventos podem fazer com que um processo mude de estado
18
ESTADOS DE PROCESSO
Executando
Processo está executando em um processador
Pronto
Poderia executar em um processador se houvesse algum disponível
Bloqueado
 Esperando que algum evento aconteça (exemplo E/S)
19
ESTADOS DE PROCESSO
Executando
Processo está executando em um processador
Pronto
Poderia executar em um processador se houvesse algum disponível
Bloqueado
 Esperando que algum evento aconteça (exemplo E/S)
20
ESTADOS E TRANSIÇÕES
A única transição feita pelo próprio processo é bloqueio, outras pelo SO.
21
Em execução
ProntoBloqueado 
1- Processo bloqueado para entrada
2-Escalonador pega outro processo
3-Escalonador escolhe este processo
4-Entrada fica habilitada
SISTEMA UNIPROCESSADOR
• Somente um processo pode ser executado por vez
• Diversos outros podem estar prontos ou bloqueados
• O SO mantém uma lista de PRONTOS e BLOQUEADOS
22
SISTEMA UNIPROCESSADOR
• Lista de prontos: ordem de prioridade
• Lista de bloqueados: desordenada
23
SISTEMA MULTIPROCESSADOR
• Pode ter tantos processos em execução quantos são os processadores
• Restante do funcionamento similar ao sistema uniprocessador
24
GERENCIAMENTO DE PROCESSOS
• Como o SO intercala a execução de seus processos, deve gerenciá-los 
cuidadosamente para que não ocorra erros quando eles são interrompidos e 
retomados
• Processos que estão Prontos ou em Execução estão acordados (disputam o tempo do 
processador)
• Processos bloqueados estão adormecidos (não podem executar mesmo se houver um 
processador disponível)
25
GERENCIAMENTO DE PROCESSOS
• A mudança de um estado para outro é chamada de transição
• O SO gerencia transições de estado para melhor servir aos processos no sistema
• Quando o processador é designado a um processo, temos o despacho.
26
GERENCIAMENTO DE PROCESSOS
• Para evitar que que processo monopolize o sistema, o SO utiliza um relógio de 
interrupção em hardware
• Cada processo executa durante um tempo específico (quantum)
• Se o processo não devolver o processador voluntariamente o relógio gera um 
interrupção e o SO assume
27
DETALHAMENTO
28
BLOCOS DE CONTROLE DE PROCESSOS (PCBS)
Mantém informações que o SO necessita para gerenciar um processo
PID
 Estado
Contador de programa (valor que determina qual instrução o processo deve executar em seguida)
Prioridade de escalonamento
Credenciais (recursos que o processo pode acessar)
Ponteiro para o processo pai
29
BLOCOS DE CONTROLE DE PROCESSOS (PCBS)
Ponteiros para os processos filhos
Ponteiros para localizar os dados e instruções do processo na memória
Ponteiros para recursos alocados
• Contexto de execução: conteúdo dos registradores.
• Quando um processo transita de um estado para outro o SO deve atualizar o PCB
30
BLOCOS DE CONTROLE DE PROCESSOS (PCBS)
• SO mantém ponteiros para cada PCB em uma Tabela de Processos
• Quando um processo é encerrado o SO libera a memória, os recursos e o retira da 
tabela
31
BLOCOS DE CONTROLE DE PROCESSOS (PCBS)
32
BLOCOS DE CONTROLE DE PROCESSOS (PCBS)
33
TABELA DE PROCESSOS
34
Gerenciamento de 
processos
•Registradores
•Contador de Programa
•Palavra de estado do programa
•Ponteiro de pilha
•Estado do processo
•Prioridade
•Parâmetrosde escalonamento
•(ID)entificador do Processo
•Processo pai
•Grupo de processo
•Sinais
•Momento em que processo iniciou
•Tempo usado da CPU
•Tempo de CPU do filho
•Momento do próximo alarme
Gerenciamento de 
memória
• Ponteiro para o segmento de 
código
• Ponteiro para o segmento de 
dados
• Ponteiro para o segmento de 
pilha
Gerenciamento de 
arquivos
• Diretório-raiz
• Diretório de trabalho
• Descritores de arquivos
• ID do usuário
• ID do grupo
OPERAÇÕES DE PROCESSO
SOs devem ser capazes de executar certas operações de processo
Criar um processo
Destruir um processo
Suspender
Retomar
Alterar a prioridade
Bloquear
Acordar
Despachar (colocar o processo em execução)
Habilitar comunicação de processos
35
DESTRUIR UM PROCESSO
Envolve:
Removê-lo do sistema
Memória e outros recursos são devolvidos ao sistema
 Expurgado da lista ou tabelas 
Seu bloco de controle é apagado
Destruição é mais complicada quando o processo gera outros processos
 Em alguns sistema cada processo filho é destruído automaticamente quando o pai é destruído
 Em outros, processos gerados prosseguem independente
36
ALTERAR A PRIORIDADE
• Modificar o valor de prioridade no bloco de controle do processo
• Ponteiro para o PCB em uma fila de prioridade diferente
37
SUSPENDER E RETOMAR
• Um processo suspenso é retirado indefinidamente da disputa pelo processador até
ser destruído
• Um administrador pode suspender um processo por questões de segurança, para 
certificar-se que o processo esteja funcionando corretamente
Novos estados:
Suspenso-pronto
Suspenso-bloqueado
38
SUSPENDER E RETOMAR
39
CHAVEAMENTO DE CONTEXTO
• O SO utiliza o chaveamento para interromper um processo em execução e executar 
um processo pronto
• O núcleo deve salvar o contexto do processo em execução no PCB desse processo e, 
então, carregar o contexto de execução anterior do processo pronto
40
CHAVEAMENTO DE CONTEXTO
• Devem ser transparentes para os processos, não percebem que foram removidos do 
processador
• O tempo para realizar o chaveamento deve ser minimizado pois durante o 
chaveamento o processador não pode executar instruções em nomes de processos
41
CHAVEAMENTO DE CONTEXTO
42