Académique Documents
Professionnel Documents
Culture Documents
Processos e Threads
Contedo
Processos Threads InterProcess Communication Algoritmos de escalonamento
PROCESSOS
Processo nome que se d a um programa em execuo Um processo controla os valores atuais dos registradores da CPU, bem como variveis em memria Cada processo possui sua prpria CPU virtual Em sistemas multiprogramveis, os processos dividem a ateno da CPU Processos so comutados (chaveados) a fim de criar a iluso de que cada usurio tem a CPU exclusivamente para si
Processos (cont.)
Exemplo de 4 processos competindo pela CPU Somente um processo por vez, pois s h uma CPU e assim s um registrador PC real
Cada processo possui seu prprio registrador PC lgico Chavemento de contexto Iluso de que os 4 processos esto em paralelo
Criao de um Processo
Processos so criados por 4 eventos principais: Inicializao do sistema
Processos foreground e background (daemons)
Processos em execuo que usam uma system call para criar outros processos
Ex.: leitura de grandes quantidades de dados via um buffer
System call:
No unix fork No windows CreateProcess
p1
Destruio de um Processo
H 4 situaes em que um processo terminado Finalizao normal ao trmino da sua tarefa (voluntrio)
O prprio processo fecha seus arquivos abertos, e termina
Estados de um Processo
Tabela de processos
Todas as informaes relevantes aos processos esto nos seus PCBs. Ex.: o registrador PC, o registrador de pilha, os arquivos abertos, o usurio dono do processo, etc
THREADS
As threads otimizam o desempenho dos processos
Vrias tarefas podem ser executadas em paralelo dentro do processo Chaveamento entre processos muito dispendioso quando desnecessrio Nesse contexto, os processos agrupam recursos e as threads executam as tarefas junto CPU Uma thread representa um fluxo de execuo dentro do processo
Multithreading
info compartilhada por todas as threads
O S Proc ess
D ata Code
D escriptor
PROCESSO
Stack
Stack D escriptor
Stack D escriptor
D escriptor
Thread 1
Thread 2
Thread n
Uma thread pode criar outras threads, mas o espao de endereamento comum a todas Todas as threads de um processo podem acessar/alterar um arquivo ou alocar memria Cada thread tem a sua prpria pilha para que o chaveamento entre threads ocorra eficientemente Como as threads so cooperativas, elas podem ceder a CPU umas s outras voluntariamente
Implementao de Threads
Threads podem ser implementadas como: Biblioteca de pacotes em espao de usurio Pacote gerenciado pelo kernel Pacote hbrido
Threads tambm se comunicam entre si, e as solues so similares s apresentadas aqui p/ processos
Processo A Processo B
Desabilitando interrupes
Quando um processo entra na sua seo crtica, o mesmo desabilita todas a interrupes Fica assim garantido a esse processo acesso exclusivo seo crtica Ao sair da seo crtica, as interrupes so habilitadas Problemas
H que se permitir que processos de usurios desabilitem interrupes Em sistemas multiprocessados (mais de uma CPU), somente uma CPU ter as interrupes suspensas, os processos nas demais CPU podem acessar a seo crtica normalmente
Semforo (S)
Possui um contador (cont) e uma fila Somente duas operaes: UP e DOWN
DOWN(S){ s.count-- ; if(s.count<0){ coloque o processo na s.fila; entre em estado de bloqueio; } else {entra na seo crtica} } UP(S){ s.count++ ; if(s.count<=0){ remove um processo P da s.fila; coloque o processo P na lista de pronto; } }
semforo
fila cont
* Incialmente s.cont=1, a cada nova solicitao pela seo crtica o seu valor decrementado * O valor int. do contador representa qtidade de acessos pendentes Ex.: aps 3 solicitaes simultneas s.fila: 2 processos s.count: -2
Passagem de Mensagens
Mais appropriado sistemas distribudos e multiprocessados com memria compartilhada Mensagens
Send(destino,mensagem) Receive(origem,mensagem)
Algoritmos de Escalonamento
Na multiprogramao, o escalonador decide qual processo deve obter a CPU Aspectos importantes Um bom escalonador !
Tempo de resposta Throughput Eficincia do processador
pronto bloqueado
pronto execuo
Categorias de Escalonadores
Escalonadores especficos para os sistemas
Batch preempo no necessria Interativo preempo necessria Tempo real processos so normalmente limitados por definio
Preempo: possibilidade de um processo ser retirado de execuo pelo escalonador por limite de tempo
O Escalonador de 3 nveis
Possui trs escalonadores distintos:
de admisso, de memria e de CPU
periodicamete verifica os processos - Durao no disco - Tempo de uso da CPU - Tamanho do processo - Importncia do processo
Leitura Complementar
Sistemas Operacionais Modernos, 2a Andrew Tanenbaum, Editora Pearson, 2003. Operating Systems (4th edition), William Stallings, Prentice Hall, 2001 Sistemas Operacionais - Conceitos e Aplicaes, A, Silberschatz, P. Galvin, e G. Gane, Editora Campus, 2001. edio