Você está na página 1de 45

Sistemas Operacionais

Processos

IC - UFF

O conceito de processos

No captulo 1, fizemos as seguintes afirmativas quanto aos processos: Mais geral que programa Consiste em um cdigo executvel e seus dados associados, alm de um contexto de execuo Tudo em sistemas atuais est em torno de processos

IC - UFF

Enfim, ...

Um processo uma abstrao de um programa em execuo Exemplo:


fazer um bolo ...


... primeiros socorros!

IC - UFF

O que esperar do SO?


Alternar a execuo de processos de forma a maximizar a utilizao da UCP e fornecer tempo de resposta razovel Alocar recursos a processos Suportar criao de processos pelo usurio Suportar comunicao entre processos

IC - UFF

Estados de um Processo

Processador sempre executando instrues

Definida pelo PC

PC pode apontar para diferentes processos Manipulao realizada pelo dispatcher (despachante)

Trace de um processo

Com multiprogramao, traces de vrios processos so intercalados

IC - UFF

Estados de um Processo
MP
dispatcher

x y

A
B

Cada ciclo = uma instruo quantum = 6 ciclos Trace: x, x+1, ..., x+5, y, ...y+5, x, x+1, ..., x+5, z, ..., z+5, x, x+1, ..., x+5, w, ...w+5,...

IC - UFF

Modelo simples de processo


despacho
entra noexecutando pausa sai executando

(a) diagrama de transio de estado

entra

fila

despacho

sai

UCP

pausa
IC - UFF

(b) possvel implementao

Criando de processos

O que faz o SO para criar processos? constri estruturas de dados aloca espao de endereamento

IC - UFF

Criando de processos

Quando cria?

quando usurio abre sesso;

quando gerado por outro processo (e.g., servidor de FTP); ...


Submisso de um job (batch)

Processo cria outros (spawn)


Para explorar paralelismo/concorrncia

IC - UFF

Terminando processos

Quando terminar? execuo da instruo Halt; condies de erro; ... Algumas razes para o trmino: tempo excedido; falta de memria; uso de instruo privilegiada; trmino do processo pai; ...

IC - UFF

Problema com o modelo simples

Um processo que no est executando estar sempre pronto a executar?

No: pode estar bloqueado esperando E/S! despachante no pode simplesmente pegar um processo que esteja na fila

IC - UFF

Um modelo mais elaborado 5 estados

despacho admisso novo pronto pausa espera evento executando liberao

finalizado

evento ocorre bloqueado

IC - UFF

Modelo de 5 estados

Novo

criado, mas no necessariamente admitido no sistema Trmino da execuo no mais pronto Ainda com dados para anlise de desempenho Time-slice ou por prioridade (neste caso, preempo)

Finalizado

Executando <-> Pronto

IC - UFF

Modelo de 5 estados
Preempo X no preempo Executando <-> bloqueado

Chamada ao sistema: E/S, alocao de MP, comunicao entre processos Chamada foi atendida

Bloqueado <-> pronto

IC - UFF

Implementando o modelo (1)

fila dos prontos


admisso

despacho

liberao

UCP
pausa

fila dos bloqueados


evento ocorre

espera evento

IC - UFF

Implementando o modelo (2)

fila dos prontos


admisso

despacho

liberao

UCP
pausa

fila evento 1
evento 1 ocorre

espera evento 1

fila evento 2
evento 2 ocorre
IC - UFF

espera evento 2

Implementando o modelo (3)


prioridade 2 prioridade 1
admisso pausa liberao

despacho

UCP

fila evento 1
evento 1 ocorre

espera evento 1

fila evento 2
evento 2 ocorre
IC - UFF

espera evento 2

O estado Suspenso

Vrios processos em execuo necessidade de espao em MP disponvel

Importante para implementao de memria virtual


O processador muito mais rpido que E/S: todos os processos podem estar bloqueados

Ocupao desnecessria de MP

IC - UFF

O estado Suspenso
Swapping

Necessidade de novo estado: representao de processo suspenso


Imagem do processo sai temporariamente da MP Quando nenhum processo em MP est pronto (quase todos bloqueados esperando por eventos) um operao de E/S

Swapping-out SO seleciona um dos bloqueados para sair de MP SO seleciona um processo para MP


IC - UFF

Diagrama com estado Suspenso

despacho admisso novo pronto pausa espera evento executando liberao sada

ativao

evento ocorre bloqueado

suspenso suspenso
IC - UFF

Pensando melhor ...


novo admisso prontosuspenso evento ocorre suspende admisso despacho executando

liberao sada

ativa
pronto

suspende pausa evento espera ocorre evento ativa suspensobloqueado bloqueado suspende

IC - UFF

O que o SO deve fazer?

Em um sistema multi-tarefas, o SO dever: escalonar e despachar processos para execuo alocar recursos aos processos responder a pedidos de recursos feitos pelos programas dos usurios Como fazer?

IC - UFF

Tabelas!

Tabelas de memria Info sobre alocao de MP (e MS, caso MV seja implementada) aos processos Atributos de proteo, regies compartilhadas Tabelas de E/S Para controle de dispositivos e canais do sistema estado de dispositivo de E/S

IC - UFF

Tabelas!

Tabelas de arquivos localizao de arquivos em MS Tabelas de processos lista de processos existentes As tabelas esto conectadas entre si So utilizadas por diferentes gerenciadores (mdulos do SO)

IC - UFF

Controlando processos

Para gerenciar processos o SO precisa conhecer: onde o processo est localizado os atributos do processo Como representado um processo? imagem do processo: programa + dados + pilha(s) + atributos atributos = info necessrias pelo SO imagem est na MP

IC - UFF

Atributos do processo

O conjunto dos atributos de um processo conhecido como bloco de controle do processo (PCB, em ingls) PCB pode ser dividido em trs partes: identificao do processo informao de estado do processador informao de controle do processo

IC - UFF

Identificao do processo

Feita por identificadores numricos que incluem: identificador do processo em referncia cruzada Tabelas Comunicao entre processos identificador do processo que o criou (pai) identificador do usurio (que um processo)

IC - UFF

Informao do processador (estado do processo)

Contida nos registradores do processador: registradores visveis ao usurio (aqueles referenciados por programa) registradores de controle e estado (e.g., PC, IR, SO, PSW (cdigos de condio)) apontadores de pilha

IC - UFF

Informao de controle

Estado e escalonamento, que inclue: estado do processo (e.g., pronto) nvel corrente de prioridade suporte ao escalonamento (e.g., h quanto tempo o processo est esperando) evento (e.g., identificao do evento que o processo est esperando)

IC - UFF

Informao de controle
Estruturao de dados (e.g., relao pai-filho) Comunicao entre processos (e.g., sinais) Privilgios (e.g., tipos de instrues que podem ser executadas) Gerenciamento de memria (e.g., ponteiro para tabela de pginas) Propriedade e uso de recursos (e.g., arquivos abertos)

IC - UFF

Modos de execuo de processador

O que modo dual de operao? proteo do sistema O que o ncleo (kernel) do SO? modo privilegiado/supervisor/ncleo certas funes so somente executadas em modo privilegiado Modo do usurio modo de execuo dos processos comuns

IC - UFF

Modos de execuo de processador

Especificao do modo do processador

especificado por um bit de modo do PSW do processo em questo


Ex.: quando um processo faz uma chamada ao sistema, o bit de modo modificado para privilegiado uma rotina do SO modifica o modo

IC - UFF

Funes tpicas do ncleo do SO

Vimos os dados armazenados para controle dos processos. Os dados manipulados pelo SO so necessrios para realizar:

Funes do ncleo: gerenciamento de processos gerenciamento de memria gerenciamento de E/S funes de suporte

IC - UFF

Gerenciamento de processos

Funes tpicas:

criao e trmino de processos escalonamento e despacho Chaveamento entre processos sincronizao entre processos gerenciamento de PCBs

IC - UFF

Gerenciamento de processos
Criao de processos atribuio de identificador nico ao processo adio de nova linha tabela de processos alocao de espao para a imagem cdigo+dados+pilha+bloco de controle iniciao do PCB inclui identificao nas listas apropriadas (e.g., lista de prontos para escalonamento)

IC - UFF

Gerenciamento de processos
Chaveamento entre processos interrupes relgio (mudana de estado, escalonamento) E/S falta de memria (pgina ou segmento) o processo fica bloqueado para leitura de disco traps: condies anormais chamada ao sistema (e.g., operao de E/S)

IC - UFF

Gerenciamento de processos
Tratamento de interrupo Processador fica em modo kernel/ncleo informaes de controle salvas no PCB despachante pode escalonar outro processo depois do tratamento ou, no caso de interrupo por E/S, o SO pode escolher o processo interrompido para continuar a ser executado e economizar tempo na troca de contexto

muito investido no hardware para minimizar o custo de tratamento de interrupo

IC - UFF

Mudana de Estado de Processo

Sobrecarga associada mudana de estado realizada pelo SO

salva contexto do processo atualiza bloco de controle do processo (PCB) gravao do novo estado (pronto/bloqueado/suspenso...) gravao do motivo da mudana de estado move o processo (PCB) para a fila apropriada escolhe novo processo para execuo atualiza PCB do novo processo e dados relativos a MP restaura contexto do novo processo

IC - UFF

Gerenciamento de memria

Funes tpicas: alocao de espao de endereamento aos processos


swapping

gerenciamento de pginas e segmentos

IC - UFF

Executando o SO

O SO um programa. Ele um processo?


depende de como o projetista implementa o SO funes executadas como processo de usurio: s h chaveamento de modo SO como conjunto de processos de sistema: funes principais do ncleo como processos

IC - UFF

Ncleo separado

ncleo fora dos processos, alocado em uma determinada regio da MP salva contexto, escalona e despacha processos.... o processo interrompido para o SO entrar em ao

P1

P2

Pn

Ncleo
IC - UFF

Funes em modo usurio


comum em microcomputadores: as funes chamadas no processo esto embutidas na imagem deste cdigo e dados compartilhados entre o processo e SO quando interrupo, o prprio processo colocado em modo privilegiado

troca de modo executado e no a troca de processo

P1

P2

Pn

Funes do SO

Funes do SO

Funes do SO

Funes de chaveamento de processos


IC - UFF

Como processos de sistema


SO em mdulos pequenos processos SO (e.g., servios) troca de contexto menos custosa mais vantajoso para multicomputadores

U1

Un

Funes do SO1

Funes do SOm

Funes de chaveamento de processos


IC - UFF

Exerccio I para entregar


Considere o diagrama de 7 estados. Suponha que esteja no momento do SO escalonar um processo e existem processos tanto em estado pronto, quanto pronto-suspenso. Pelo menos um processo em pronto-suspenso tem prioridade maior do que um processo pronto. Duas polticas de escalonamento so as seguintes: 1) sempre escalonar um processo da fila de prontos 2) sempre escolher processo de maior prioridade Quais as vantagens e desvantagens de cada uma das duas polticas? (d exemplos) Sugira uma poltica intermediria?

novo admisso pronto- ativa suspenso evento ocorre

suspende admisso despacho pronto

liberao fim

executando

suspende pausa evento espera ocorre evento ativa suspensobloqueado bloqueado

IC - UFF

Exerccio II para entregar


Para que serve o bloco de controle do processo (PCB)? Quais as informaes armazenadas e qual a justificativa para cada uma das informaes?

IC - UFF