Академический Документы
Профессиональный Документы
Культура Документы
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
Conceito de Processo :
Ou seja: estes vrios pedaos de cdigo disputam os Logo, um processo a representao de cada pedao
Conceito de Processo :
Onde se executa um programa; Que mantem a estrutura contendo as informaes necessrias para a execuo.
Materializao do Processo :
processo
Contm
Varia
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
Os elementos da PCB podem ser divididos em 3 grupos: 1. Contexto de Hardware 2. Contexto de Software 3. Espao de Endereamento
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
Caractersticas que vo influir na execuo. Define 3 grupos de informaes : 1. Identificao 2. Cotas 3. Privilgios
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.
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
O que o processo pode ou no fazer em relao ao sistema e aos outros processos. Bsicamente associado :
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.
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
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
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.
Escalonamento :
Escalonameto de Processos
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:
Escalonamento :
Escalonamento/Escalonador
Rodando
Bloqueado
Pronto
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:
Escalonamento :
Escalonamento no Preemptivo
Geralmente
First-in-first-out
Shortest-jof-first
Cooperativo
Escalonamento :
FIFO First-in-first-out
Primeiro No
h prioridade
Processos
SJF - Shortest-jof-first:
Menor Difcil
processo
No
Escalonamento :
Cooperativo:
Fila
Sem
Processo
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
Prioridade dinmica pode ser usada para compensar os processos que ficam na fila de pronto (fila de espera pela CPU)
Escalonamento :
Por Prioridade
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;
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
Escalonamento :
Com mltiplas filas e com realimentao
Vrias filas de pronto; Cada fila possui uma prioridade Processo pode mudar de prioridade
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
Fila nica Escalonado para o primeiro processador livre cada processador usa seu prprio algoritmo
Gerncia de Processos :
Thread (PWL)
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
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
Threads
Modelo Atual:
um processo pode ser composto de uma ou vrias threads cada thread individualiza:
Threads
Curso de Sistemas Operacionais Petrpolis 22 de Setembro de 2008 Pgina: 36 de 55
Gerncia de Processos :
Dividir para conquistar Redundncia / Validao de resultados Message Passing Interface (MPI) Mecanismos de Sincronizao Mecanismos de Comunicao
Serializao / sequencializao
Condies de Corrida :
2 ou + processos tentam usar o mesmo recurso:
arquivos em disco variveis compartilhadas spool de impresso
Regies Crticas :
Regio do cdigo que leva s condies de corrida Foram definidos mecanismos que impedem a entrada
dentro da RC
Nenhum processo pode esperar indefinidamente para
entrar na RC
Excluso mtua :
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
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
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.
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 (); }
Espera Ocupada :
Soluo de Peterson:
void enterRegion (int proc) { int other; other=1-proc; interested[proc] = TRUE; turn=proc; while (turn == proc && interested[other] == TRUE ); }
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
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
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
Variveis inteiras no negativas protegidas Valor inicial = 0 no h sinal armazenado Valores positivos indicam sinais pendentes Operaes Atmicas para sincronizao de processos:
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
Tipos:
Cdigo:
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
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:
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
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;
lrodrigo@lncc.br http://lrodrigo.lncc.br