Você está na página 1de 21

DCC062 Sistemas Operacionais

Cap. 2 Processos
Parte 1
Prof. Eduardo Pagani Julio
eduardo.pagani@ice.ufjf.br

Dep. Cincia da Computao

Processos - Motivao
Necessidade de gerenciamento dos programas instanciados para execuo Multiprogramao
Pseudo-paralelismo

Multiprocessamento Modelo de processo


Processos sequenciais Programa em execuo acompanhado de seus valores para contador de programa, registradores e variveis CPU troca de um processo para outro
Dep. Cincia da Computao

Multiprogramao

Dep. Cincia da Computao

Processos
Alternncia de processos
Comandada pelo escalonador de processos do sistema operacional No somente processos de usurio desejam utilizar CPU Eventos assncronos do sistema necessitam tratamento de processamento

Relao Programa x Processo


Receita de bolo x Fazer o bolo Multiprogramao?

Dep. Cincia da Computao

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

Independente do caso, chamada de sistema para criao do processo


fork(), CreateProcess() Espaos de endereamento distintos
Dep. Cincia da Computao

Trmino de Processos
Condies que levam ao trmino de processos
Sada normal (voluntria) Sada por erro (voluntria) Erro fatal (involuntrio) Cancelamento por um outro processo (involuntrio)

Dep. Cincia da Computao

Hierarquia de Processos
Pai cria um processo filho, processo filho pode criar outros processos Alguns sistemas formam uma hierarquia
UNIX chama isso de grupo de processos Windows no possui o conceito de hierarquia de processos
Todos os processos so criados em mesmo nvel

Dep. Cincia da Computao

Estados de Processos

cat chapter1 chapter2 chapter3 | grep tree

Dep. Cincia da Computao

Estados de Processos

Dep. Cincia da Computao

Implementao de Processos
Tabela de processos Estrutura processo

Dep. Cincia da Computao

Implementao de Processos
Vetor de Interrupes

Dep. Cincia da Computao

Threads
Processo agrupa recursos para uma linha de execuo (thread)
Uma thread possui um contador de programa possvel termos vrias threads compartilhando recursos de um mesmo processo?

Programao multithread Modelo de Threads


Compartilham o mesmo espao de endereamento Lightweight Processes - processos leves
Dep. Cincia da Computao

Processos x Threads

Dep. Cincia da Computao

Processos x Threads

Dep. Cincia da Computao

Modelo de Thread

Dep. Cincia da Computao

Uso de Threads

Dep. Cincia da Computao

Uso de Threads

Dep. Cincia da Computao

Uso de Threads

Dep. Cincia da Computao

Implementao - Threads de Usurio


Vantagens Trocas de contexto no espao do usurio Escalonamento procedimento local Escalonador personalizado Escalabilidade Desvantagens Chamadas ao sistema com bloqueio Thread deve liberar CPU explicitamente Threads so teis para aplicaes com bloqueio (I/O bound) Pouco desempenho para aplicaes CPU bound
Dep. Cincia da Computao

Implementao - Threads de Ncleo


Vantagens No necessrio um supervisor Tabela de processos estendida Escalonamento de threads Chamadas ao sistema com bloqueio Desvantagens Velocidade para criar/destruir uma thread Trocas de contexto Escalabilidade

Dep. Cincia da Computao

Implementao - Threads hbridas

Dep. Cincia da Computao

Você também pode gostar