Escolar Documentos
Profissional Documentos
Cultura Documentos
05 ProcessosThreads
05 ProcessosThreads
Processos e Threads
Criao de Processos
Principais eventos que levam criao de processos Incio do sistema Execuo de chamada ao sistema de criao de processos Solicitao do usurio para criar um novo processo Incio de um job em lote
Trmino de Processos
Condies que levam ao trmino de processos Sada normal (voluntria) programado Sada por erro (voluntria) programado Erro fatal (involuntrio) Cancelamento por um outro processo (involuntrio)
Estados de Processos
Camadas de Processos
Escalonamento de processos
Qual processo executa quando Processos prontos A parte do sistema operacional responsvel por essa deciso chamada escalonador
O algoritmo usado para tal chamado de algoritmo de escalonamento
Implementao de Processos
Mltiplos processos
Implementao de Processos
Esqueleto do que o nvel mais baixo do SO faz quando ocorre uma interrupo
Utilizao de CPU
Modelada em termos do tempo bloqueado de um processo Um processo passa uma frao p de seu tempo esperando por E/S Considerando-se que h n processos na memria A utilizao mdia da CPU seria dada por: Utilizao CPU = 1 - pn
Threads
O Modelo de Thread (1)
Soluo:
Construo de computadores capazes de executar vrias tarefas simultaneamente
Dependncia de Velocidade
[[ f(); x = 1 ]] || [[ g(); x = 2 ]] O valor final de x depende de qual das funes, f() e g(), terminar primeiro
Starvation
Processo de baixa prioridade precisa de um recurso que nunca fornecido a ele...
Definio: dois ou mais processos bloqueiam sua execuo pois um precisa de um recurso bloqueado pelo outro
Dependncia circular
compartilhados
privados
Fonte: https://computing.llnl.gov/tutorials/pthreads/
+ permitem personalizao do escalonamento + exigem menos transies entre modo usurio e modo ncleo
trocas de contexto eficientes entre threads
- Page faults bloqueiam todas as threads de um processo - Exigem uma infraestrutura adicional de tempo de execuo - No se beneficiam de suporte de hardware para acelerar mltiplas threads
No apresentam vrios dos problemas das threads em modo usurio Mas so pesadssimas
Java: no mximo, poucos milhares de threads Erlang: milhes de threads (limitadas apenas pela mquina)
Overhead na criao
Implementaes Hbridas