Você está na página 1de 17

Curso de Ciência da Computação

Pontifícia Universidade Católica de Minas Gerais

Sistemas Operacionais

Capítulo IV - Processos
Conceito de Processo

 Um S.O. executa uma variedade de programas:


 Sistemas em batch – jobs
 Sistemas de tempo compartilhado – programas de usuário ou
tarefas

 Os termos job e processo são usados como sinônimos.


 Processo – um programa em execução; a execução deve ser
seqüencial.
 Um processo inclui:
 contador de programa
 pilha
 seção de dados

1.2
Conceitos Básicos

 Pseudoparalelismo (paralelismo aparente): chaveamento rápido


de um mesmo processador entre vários programas;
 Paralelismo: processador trabalha ao mesmo tempo em que um
ou mais dispositivos de E/S processam informações;
 Processo: programa em execução, incluindo os valores
correntes de todos os registradores do hardware e das variáveis
por ele manipuladas no curso de sua execução;
 Multiprogramação: chaveamento do processador entre diversos
processos.

1.3
Processos em Execução

 Cada processo tem seu próprio processador virtual 


chaveamento do processador entre processos concorrentes;

1.4
Diagrama de Estados de um Processo

 A medida em que o programa executa, seu estado muda:


 novo: O processo está sendo criado.
 Em execução: Instruções estão sendo executadas.
 Em espera: O processo espera por um evento.
 pronto: O processo está esperando para ser atribuído a um
processador.
 encerrado: O processo terminou sua execução.

1.5
Bloco de Controle de Processos (PCB)

Informação associada com cada processo.


 Estado do processo
 Contador de Programa
 Registradores da CPU
 Informações de escalonamento de CPU
 Informações de gerência de memória
 Informações de contabilidade
 Informações de status de I/O

1.6
CPU Alternando entre Processos

1.7
Filas de Escalonamento de Processos

 Fila de Jobs – conjunto de todos os processos do sistema.

 Fila de processos prontos – conjunto de todos os processos


residindo em memória, prontos e esperando para serem
executados.

 Filas de dispositivos – processos esperando por um dispositivo de


I/O

 O processo migra entre as diversas filas.

1.8
Filas de Processos

1.9
Escalonamento de Processos

1.10
Escalonadores

 Esc. de longo prazo (escalonador de jobs) – seleciona quais processos


devem ser levados para a memória, na filla de proc. prontos.

 Esc.de longo prazo são invocados menos freqüentemente (segundos,


minutos)  (podem ser mais lentos).

 O Esc. de longo prazo controla o grau de multiprogramação.

1.11
Escalonadores

 Esc. de curto prazo (Escalonador de CPU) – seleciona qual processo


deve ser executado e alocado à CPU.

 Escalonadores de curto prazo são invocados freqüentemente


(milissegundos)  (devem ser rápidos).

 Processos podem ser descritos como:


 Limitados por I/O – gastam mais tempo fazendo I/O que computação.
 Limitados por CPU – gastam mais tempo fazendo computação.

 Pode ser introduzido um nível intermediário de escalonador,


responsável por reduzir o grau de multiprogramação (inserção e
remoção do processo na memória - swapping)

1.12
Troca de Contexto

 O tempo necessário para a troca de contexto é um gasto extra de


tempo (overhead), já que nenhum trabalho útil é realizado.

 Quando a CPU recebe novo processo, o estado do processo


anterior deve ser salvo e o estado do novo processo carregado

 O tempo despendido depende de suporte do hardware.

1.13
Criação de Processos
 Processos pais podem criar processos filhos, formando uma árvore de
processos
 Compartilhamento de recursos
 Pais e filhos compartilham todos os recursos.
 Filhos compartilham parte dos recursos do pai.
 Pais e filhos não compartilham recursos
 Execução
 Pais e filhos executam concorrentemente
 Pais esperam até que os filhos terminem
 Espaço de endereçamento
 Filho é uma duplicata do pai.
 Filho tem um programa carregado nele.
 Exemplo no UNIX
 cada processo é identificado por um identificador de processo (pid)
 um novo processo é criado pela chamada ao sistema fork
 a chamada de sistema exec pode ser usada em seguida para a execução de
um novo programa.

1.14
Uma Árvore de Processos em um Sistema UNIX

1.15
Término do Processo

 O processo executa a última instrução e pede ao S.O. que o


exclua (exit).
 O processo filho pode retornar dados ao pai (via wait).
 Os recursos do processo são liberados pelo S.O.

 O processo pai pode terminar a execução do filho (abort).


 O filho excedeu o uso dos recursos alocados.
 A tarefa atribuída ao filho não é mais exigida.
 O pai está saindo (terminação em cascata)

1.16
Processos Cooperativos

 Um processo é independente se não puder afetar ou ser afetado


por outros processos.
 Processos cooperativos podem afetar ou serem afetados por
outros processos.
 Vantagens de processos cooperativos:
 Compartilhamento de informações
 Maior velocidade de execução
 Modularidade
 Praticidade - execução de várias tarefas em paralelo

 Problema do Produtor-Consumidor: Paradigma para processos


cooperativo: o processo produtor produz informação que é
consumida por um processo consumidor.

1.17

Você também pode gostar