Вы находитесь на странице: 1из 55

Sistemas Operacionais

Unidade II Gerncia de Processos http://www.lncc.br/~lrodrigo

Professor: Lus Rodrigo lrodrigo@lncc.br


Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 1 de 55

Conceito de Processo :

Em um ambiente multitarefa, o que est sendo executando Dando a impresso de que a mquina est a disposio de A esses pedaos de programas/tarefas ora esto: 1. Sendo executados pela CPU 2. Fazendo acesso de E/S 3. Aguardando para execuo na CPU

no processador muda constantemente

somente aquele usurio/tarefa.

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 2 de 55

Conceito de Processo :

Ou seja: estes vrios pedaos de cdigo disputam os Logo, um processo a representao de cada pedao

recursos (CPU, E/S, memria)

de programa/tarefa que acessa concorrente aos recursos do sistema.

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 3 de 55

Conceito de Processo :

Ao deixar a CPU o estado atual do processo tem que ser

salvo, de forma a retornar sua execuo como se no tivesse sido interrompido.


O estado completo define o ambiente de execuo Um processo o ambiente:

Onde se executa um programa; Que mantem a estrutura contendo as informaes necessrias para a execuo.

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 4 de 55

Materializao do Processo :

PCB (Process Control Block) ou TCB (task control block)


Define

o ambiente completo de execuo de cada

processo

Materializam o conceito de processo todos os detalhes necessrios para definio do processo.

Contm

Varia

de S.O. para S.O.

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 5 de 55

Materializao do Processo e a PCB :

A PCB, pode ser decomposta em: 1. ponteiro para outro(s) elementos 2. endereo inicial de memria e tamanho, 3. nome e estado do processo 4. usurio que o criou, grupo de usurio 5. registradores (PC, SP, etc.) e a pilha 6. Prioridade e classe de escalonamento 7. lista de arquivos abertos 8. quando o processo foi iniciado 9. tempo acumulado de execuo, etc.
Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 6 de 55

Materializao do Processo e a PCB :

Os elementos da PCB podem ser divididos em 3 grupos: 1. Contexto de Hardware 2. Contexto de Software 3. Espao de Endereamento

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 7 de 55

Materializao do Processo e a PCB :


Contexto de Hardware:

aquele copiado para o hardware (CPU) Basicamente so os registradores: 1. PC (endereo da prxima instruo) 2. SP (stack pointer, topo da pilha) 3. Registrador de estado (PSW). Toda a pilha contendo os pontos de retorno das funes

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 8 de 55

Materializao do Processo e a PCB :


Contexto de Software:

Caractersticas que vo influir na execuo. Define 3 grupos de informaes : 1. Identificao 2. Cotas 3. Privilgios

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 9 de 55

Materializao do Processo e a PCB :


Contexto de Software - Identificao:

Todo processo recebe uma identificao unca PID (Process IDentification = identificao do processo). Redebe a identificao do usurio (UID) que o criou A identificao do grupo de usurios (GID) aos quais permitido o acesso a arquivos, processos, etc. GID e UID esto relacionado ao modelo de segurana Identificao do processo pai PPID (Parent Process IDentification), para que o filho possa retornar ao pai.

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 10 de 55

Materializao do Processo e a PCB :


Contexto de Software - Cotas:

Define os limites de utilizao dos recurso Determinados durante a criao do processo. Basicamente so: 1. Nmero mximo de arquivos abertos 2. Quantidade mxima de memria que pode alocar 3. Quantidade mxima de operaes de E/S pendentes 4. Tamanho mximo de buffers para o acesso de E/S 5. Quantidade mxima de subprocessos

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 11 de 55

Materializao do Processo e a PCB :


Contexto de Software - Privilgios:

O que o processo pode ou no fazer em relao ao sistema e aos outros processos. Bsicamente associado :

Segurana Operao do Sistema Gerncia do Sistema.

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 12 de 55

Materializao do Processo e a PCB :


Espao de Endereamento:

A rea da memria onde reside o processo. Carregados em endereos adjacentes, da seguinte forma: 1.Bloco de instrues 2.Bloco de dados que sero utilizados pelo programa. 3.Pilha de dados/execuo.

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 13 de 55

Materializao do Processo e a PCB :


Troca de contextos:

Intervalo de tempo varia, com as especificaes do hardware, basicamente:

Tamanho da memria nmero de registradores e velocidade da CPU.

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 14 de 55

Materializao do Processo e a PCB :


Troca de contextos:

Pode produzir um gargalo (bottleneck) Possvel soluo para esse problema: threads. Que visa diminuir o tempo gasto na criao/eliminao de um PCB para cada subprocesso. Threads compartilham o mesmo espao de endereamento

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 15 de 55

Materializao do Processo e a PCB :


Estado do Processo:

A quantidade e os nomes podem variar Tipos Clssicos:


1. 2. 3.

Pronto (Read) Executando (Runnig) Bloqueado (Wait)

Processos organizados em listas encadeadas As listas podem ser baseadas em prioridades O trmino do processo requer uma chamada de sistema, que o remove da lista e desaloque o seu PCB.
Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 16 de 55

Materializao do Processo e a PCB :


Mudana de Estado:

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 17 de 55

Materializao do Processo e a PCB :


Tipo de Processo:

CPU-bound (ligado CPU)

maior parte do tempo no estado de execuo realiza poucas operaes de E/S. maior parte do tempo no estado de espera elevado nmero de operaes de E/S.

I/O-bound (ligado E/S)

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 18 de 55

Escalonamento :

Escalonameto de Processos

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 19 de 55

Escalonamento :

Escalonamento (schedulling):

Conjunto de regras utilizada pelo S.O. Define ordem e o mecanismos de execuo do proc. Componente do Kernel responsvel pelo escalonamento; Deve impedir o Starvation Fatores relevantes:

Escalonador:

utilizao da CPU throughput turnaround tempo de resposta


Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 20 de 55

Escalonamento :

Escalonamento/Escalonador

Rodando

Bloqueado

Pronto

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 21 de 55

Escalonamento :
Tipos de Escalonamento

No Preemptivo:

Ocorre devido eventos voluntrios Processo solicita a sada da CPU No existe a figura de um escalonador eventos no voluntrios escalonador pode interromper os processos

Preemptivo:

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 22 de 55

Escalonamento :
Escalonamento no Preemptivo
Geralmente

usam uma nica fila de processo

Classificaes: FIFO SJF

First-in-first-out

Shortest-jof-first

Cooperativo

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 23 de 55

Escalonamento :
FIFO First-in-first-out
Primeiro No

proc a chegar o primeiro a ser atendido CPU-Bound (menor prioridade)

h prioridade

Processos

prejudicam os processos IO-Bound (maior prioridade)

SJF - Shortest-jof-first:
Menor Difcil

tempo de execuo tratado primeiro determinar o tempo para a concluso do

processo
No

priorizam os processos IO-Bound


Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 24 de 55

Escalonamento :
Cooperativo:
Fila

de mensagens interveno do S.O. pode no liberar o processador (ncleo)

Sem

Processo

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 25 de 55

Escalonamento :
Escalonamento Preemptivo
Ao de eventos voluntrios e involuntrios Circular Round Robin Fila de pronto nica Atendidos pela ordem de chegada Preempo por tempo Uso de time-slice (quantum)
Pronto A|B|C|D|E

Rodando

Preempo p/Tempo
Bloqueado Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 26 de 55

Escalonamento :
Por Prioridade

Fila de pronto nica Prioridade:

definida pelo SO esttica ou dinmica

Prioridade dinmica pode ser usada para compensar os processos que ficam na fila de pronto (fila de espera pela CPU)

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 27 de 55

Escalonamento :
Por Prioridade

Ao final do time slice / incio do escalonamento:

Arruma a lista de processos Se 1 processo da fila de pronto possui prioridade maior ou igual ao que est sendo executado Ento ocorre o escalonamento Seno processo que est sendo executado continua por mais um time-slice;

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 28 de 55

Escalonamento :
Por mltiplas filas (prioridade esttica)

Vrias filas de pronto; Cada fila possui uma prioridade Processo no pode mudar de prioridade Ganha a CPU quando no h outro de maior prioridade
A|B|C|D|E A|B|C|D|E Pronto A|B|C|D|E A|B|C|D|E A|B|C|D|E Rodando

Bloqueado

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 29 de 55

Escalonamento :
Com mltiplas filas e com realimentao

Vrias filas de pronto; Cada fila possui uma prioridade Processo pode mudar de prioridade

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 30 de 55

Escalonamento :
Com mltiplas filas e com realimentao

Mecanismo adaptativo :

Processo colocado no final da fila de > prioridade Na preempo por prioridade ou pelo S.O., o processo volta ao final da fila de origem (prioridade n) Na preempo por tempo processo vai para o final da sila de prioridade n-1 Quando volta da fila de bloqueados ganha prioridade n+1 Quanto maior a prioridade menor o time-slice
Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 31 de 55

Escalonamento :
Tempo real
Prioridade Esttica

Com multiplos processadores


Sistema fortemente acoplado (memria compartilhada)

Fila nica Escalonado para o primeiro processador livre cada processador usa seu prprio algoritmo

Sistema fracamente acoplado (memria distribuda)

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 32 de 55

Gerncia de Processos :

Thread (PWL)

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 33 de 55

Threads
Conceitos Bsicos:

Assim como os processos, so elementos ativos que podem interagir com o sistema e entre si Um processo pode ser composto por vrias threads Cada processo possui seu prprio conjunto de recursos As threads de um processo compartilham um mesmo conjunto de recursos, podem possuir recursos individualizados

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 34 de 55

Threads
Modelo Clssico:

para cada processo h uma e somente uma thread neste caso a thread e o processo so a mesma entidade
Processo 1 Processo 2 Processo 3

Thread 1

Thread 2

Thread 3

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 35 de 55

Threads
Modelo Atual:

um processo pode ser composto de uma ou vrias threads cada thread individualiza:

os registradores; o apontador de Instruo a pilha


Processo 1 Processo 2 Processo 3

Threads
Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 36 de 55

Gerncia de Processos :

Comunicao entre Processos

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 37 de 55

Comunicao entre processos :

IPC (InterProcess Comunnication) Programao Distribuda (Concorrente/Paralela)

Dividir para conquistar Redundncia / Validao de resultados Message Passing Interface (MPI) Mecanismos de Sincronizao Mecanismos de Comunicao

Recursos que o S.O. deveria fornecer:


Memria Compartilhada Troca de Mensagens


Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 38 de 55

Serializao / sequencializao

Condies de Corrida :
2 ou + processos tentam usar o mesmo recurso:
arquivos em disco variveis compartilhadas spool de impresso

Ordem no acesso pode alterar o resultado final:


obter saldo && realizar um deposito obter saldo && realizar um saque

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 39 de 55

Regies Crticas :
Regio do cdigo que leva s condies de corrida Foram definidos mecanismos que impedem a entrada

de 2 ou + processos em uma R.C. ao mesmo tempo


Os mecanismos de controle devem
Permitir a entrada de apenas um processo na RC No deve-se fazer considerao quanto a velocidade de

execuo dos processos e processadores


Processos fora da RC no podem bloquear processos

dentro da RC
Nenhum processo pode esperar indefinidamente para

entrar na RC

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 40 de 55

Excluso mtua :

Duas formas para evitar as C.C.s e proteger as R.C.s:

Excluso Mtua com espera ocupada Excluso Mtua sem espera ocupada

Deve impedir que processos concorrentes acessem ao Esperar o encerramento da operao sobre o recurso

mesmo tempo um determinado recurso (Bloqueio)

antes de utiliza-lo (Liberao)

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 41 de 55

Com espera ocupada :


Inibio de Interrupes:

desabilitar todas as interrupes ao entrar na regio crtica inclusive interrupo do clock s funciona em mquinas monoprocessadas pode causar D.O.S., caso as interrupes continuem desativadas ao finalizar a regio crtica

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 42 de 55

Espera Ocupada :
Variveis de travamento:

varivel compartilhada, que pode assumir 0 ou 1 quando 0, processo pode entrar na RC falha quando: (I) um processo obtm o valor 0 mas no tem tempo para atualiza-lo para 1 (ii) o processo no altera seu valor para 0 ao sair da R.C.

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 43 de 55

Espera Ocupada :
Escrita alternada:

TURN - Varivel inteira compartilhada O valor contido na varivel define de quem a vez de entrar na RC Realiza um teste contnuo sobre o valor da varivel
Processo B ... while (true) { while (TURN != 1 ) regiaoCritica (); TURN=0; regiaoNaoCritica (); }

Processo A ... while (true) { while (TURN != 0) regiaoCritica (); TURN++; regiaoNaoCritica (); }

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 44 de 55

Espera Ocupada :
Soluo de Peterson:

Duas Variveis: travamento e inteno Duas Funes:

enterRegion (int proc) leaveRegion (int proc)


#include prototype.h #define FALSE=0 #define TRUE=1 #define N=2 int turn; int interested (N); void leaveRegion (int proc) { interested[proc] = FALSE; }

void enterRegion (int proc) { int other; other=1-proc; interested[proc] = TRUE; turn=proc; while (turn == proc && interested[other] == TRUE ); }

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 45 de 55

Espera Ocupada :
Instrues TSL:

Test and Set Lock (instruo atmica) Transfere o contedo da memria para o contador e armazena na memria um valor no nulo Desabilita acesso a memria aos demais processadores Evita a chegada de interrupes no meio da atualizao Suportado apenas em Assembly Falha quando o processo que est na RC abortado
enter_region PROC _loop: TSL register, lock; CMP register,0; JNE _loop; RET enter_region ENDP

leave_region PROC mov lock, #0; ret; Curso de Sistemas Operacionais leav_region ENDP de Setembro de 2008 Petrpolis 22

Pgina: 46 de 55

Sem Espera Ocupada :


No h perda de ciclos no loop de espera Inverso de prioridade

processo H com alta prioridade e fora da RC, impede que o processo L com baixa prioridade rode e execute a RC

Pode gerar um Deadlock (abrao mortal) Soluo utiliza poltica de prioridade dinmica Processo na RC deve ter a maior prioridade

comparado com aqueles que est concorrendo ao sair da RC volta a prioridade normal

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 47 de 55

Sem Espera Ocupada :


Sleep e Wakeup

sleep () : coloca o processo para dormir (fila de bloqueado) wakeup (proc) : acorda o processo que estava na fila de bloqueado Falha quando um processo que ainda no foi para a fila de bloqueados recebe um sinal de wakeup Soluo: uso de n bits para contar a quantidade de wakeups que um processo recebeu

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 48 de 55

Sem Espera Ocupada :


Semforo

Variveis inteiras no negativas protegidas Valor inicial = 0 no h sinal armazenado Valores positivos indicam sinais pendentes Operaes Atmicas para sincronizao de processos:

UP : incrementa contador Down : decrementa contador

Resolve o problema de perda de sinais Quando h mais de um processador a varivel do semforo deve ser protegida por instrues TSL
Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 49 de 55

Sem Espera Ocupada :


Semforo

Tipos:

Binrios : podem assumir 0 ou 1 Contadores e/ou Genricos : valores inteiro no negativos

Cdigo:

def down (S) : if ( S > 0 ) : S=S1 else #espera no semforo

def up (S) : if ( processo esperando: ocorde_um_processo ( ) else S=S+1

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 50 de 55

Sem Espera Ocupada :


Semforo
program exemplo_semaforo var ativo : semaphore; procedure processo_um; begin while true do begin algumas_funcoes_um down (ativo) regiao_critica_um up (ativo) outras_funcoes_um end end; procedure processo_dois; begin while true do begin algumas_funcoes_dois down (ativo) regiao_critica_dois up (ativo) outras_funcoes_dois end end; begin inicializa_semaforo (ativo, 1); parbegin processo_um; processo_dois parend end.
Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 51 de 55

Sem Espera Ocupada :


Contadores de Evento

Variveis especiais, que permitem as operaes:

read (E) : obtm o valor de E advande (E) : incrementa o valor de E await (E,N) : espera at que E tenha o valor N

Valores iniciados com 0 Valores apenas podem ser incrementados

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 52 de 55

Sem Espera Ocupada :


Monitores

Simples de serem utilizados Controlados pelo S.O., ele garante que apenas um processo est dentro do monitor Devem ser suportados pelo compilador Primitivas de alto nvel implementadas como:

conjunto de procedimentos estrutura de dados e variveis

Formam mdulos especiais que podem ser chamados pelos processos No podem ser alterados
Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 53 de 55

Sem Espera Ocupada :


Monitores

Funes internas no podem ser acessadas de fora do monitor O compilador deve implementar a excluso mtua na entrada dos monitores; Assim como as demais solues funciona apenas em sistemas de memria compartilhada.
monitor exemplo; var i: integer; c: condition; procedure produtor (x: integer); begin ... end; procedure consumidor ( x : integer); begin ... end; end monitor;

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 54 de 55

lrodrigo@lncc.br http://lrodrigo.lncc.br

Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 55 de 55

Вам также может понравиться