Sei sulla pagina 1di 53

Processos

Prof. Antonio Luiz Cavalcanti - Tj


antonio.cavalcanti@gmail.com http://www.cin.ufpe.br/~alocj/aoc/ ltima Atualizao: Agosto de 2012

2.1 Processos 2.2 Threads 2.3 Comunicao interprocesso 2.4 Problemas clssicos de IPC 2.5 Escalonamento

Multiprogramao de quatro programas Modelo conceitual de 4 processos sequenciais, independentes Somente um programa est ativo a cada momento

Principais eventos que levam criao de processos

1. Incio do sistema 2. Execuo de chamada ao sistema

de criao de processos 3. Solicitao do usurio para criar um novo processo 4. Incio de um job em lote
4

Condies que levam ao trmino de processos 1. Sada normal (voluntria) 2. Sada por erro (voluntria) 3. Erro fatal (involuntrio) 4. Cancelamento por um outro processo (involuntrio)

Pai cria um processo filho, processo filho pode criar seu prprio processo Formam uma hierarquia
UNIX chama isso de grupo de processos

Windows no possui o conceito de hierarquia de processos


Todos os processos so criados iguais

Possveis estados de processos


em execuo bloqueado

pronto

Mostradas as transies entre os estados

Camada mais inferior de um SO estruturado por processos


trata interrupes, escalonamento

Acima daquela camada esto os processos sequenciais

Campos da entrada de uma tabela de processos


9

Esqueleto do que o nvel mais baixo do SO faz quando ocorre uma interrupo
10

Implementar uma estrutura de dados adequada que represente um processo em memria como no Slide 9.
o Utilizar uma struct C o Criar os arquivos proc_man.h e proc_man.c

Criar uma segunda estrutura que represente uma coleo de processos em memria.
o Pode ser alocada esttica ou dinamicamente o Deve existir uma constante que defina o nmero mximo de

processos que seu SO pode gerenciar. o Na inicializao do Kernel voc deve chamar um procedimento que inicializa o ambiente do gerenciador de processos e chamar o escalonador dentro de um loop infinito (o loop principal do SO).
11

Trs processos cada um com um thread (b) Um processo com trs threads
(a)
12


13

Items compartilhados por todos os threads em um processo Itens privativos de cada thread

Cada thread tem sua prpria pilha


14

Um processador de texto com trs threads


15

Um servidor web com mltiplos threads


16

Cdigo simplificado do slide anterior


(a) (b)

Thread despachante Thread operrio

17

Trs maneiras de construir um servidor

18

Um pacote de threads de usurio


19

Um pacote de threads gerenciado pelo ncleo


20

Multiplexao de threads de usurio sobre threads de ncleo


21

Objetivo imitar a funcionalidade dos threads de ncleo


ganha desempenho de threads de usurio

Evita transies usurio/ncleo desnecessrias Ncleo atribui processadores virtuais para cada processo
deixa o sistema supervisor alocar threads para

processadores

Problema: Baseia-se fundamentalmente nos upcalls - o ncleo (camada inferior) chamando procedimentos no espao do usurio (camada superior)

22

Criao de um novo thread quando chega uma mensagem


(a) antes da mensagem chegar (b) depois da mensagem chegar

23

Condies de Disputa

Dois processos querem ter acesso simultaneamente memria compartilhada


24

Quatro condies necessrias para prover excluso mtua:

1. Nunca dois processos simultaneamente em uma regio crtica 2. Nenhuma afirmao sobre velocidades ou nmeros de CPUs 3. Nenhum processo executando fora de sua regio crtica pode bloquear outros processos 4. Nenhum processo deve esperar eternamente para entrar em sua regio crtica

25

Excluso mtua usando regies crticas


26

Soluo proposta para o problema da regio crtica


(a) Processo 0.
27

(b) Processo 1.

28

Soluo de Peterson para implementar excluso mtua

Entrando e saindo de uma regio crtica usando a instruo TSL ou XCHG


29

Problema do produtor-consumidor com uma condio de disputa fatal


30

O problema do produtor-consumidor usando semforos


31

Implementao de mutex_lock e mutex_unlock


32

Exemplo de um monitor
33

Delineamento do problema do produtor-consumidor com monitores somente um procedimento est ativo por vez no monitor o buffer tem N lugares

34

Soluo para o problema do produtor-consumidor em Java


35

Soluo para o problema do produtor-consumidor em Java (parte 2)


36

Uso de uma barreira


processos se aproximando de uma barreira b) todos os processos, exceto um, bloqueados pela barreira c) ltimo processo chega, todos passam
a)

37

Filsofos comem/pensam Cada um precisa de 2 garfos para comer Pega um garfo por vez Como prevenir deadlock

38

Uma soluo errada para o problema do jantar dos filsofos

39

Uma soluo para o problema do jantar dos filsofos (parte 1)


40

Uma soluo para o problema do jantar dos filsofos (parte 2)


41

Uma soluo para o problema dos leitores e escritores


42

43

Soluo para o problema do barbeiro sonolento


44

Surtos de uso da CPU alternam-se com perodos de espera por E/S


um processo orientado CPU b) um processo orientado E/S
a)

45

Objetivos do algoritmo de escalonamento


46

Um exemplo de escalonamento job mais curto primeiro

47

Escalonamento em trs nveis


48

Escalonamento por alternncia circular (roundrobin)


lista de processos executveis b) lista de processos executveis depois que B usou todo o seu quantum
a)

49

Escalonamento em Sistemas Interativos (2)

50

Sistema de tempo-real escalonvel

Dados
m eventos peridicos
evento i ocorre dentro do perodo Pi e requer Ci segundos

Ento a carga poder ser tratada somente se

Ci 1 i1 P i
51

Separa o que permitido ser feito do como feito


um processo sabe quais de seus threads filhos

so importantes e precisam de prioridade

Algoritmo de escalonamento parametrizado


mecanismo no ncleo

Parmetros preenchidos pelos processos do usurio


poltica estabelecida pelo processo do usurio

52

Possvel escalonamento de threads de usurio

53

processo com quantum de 50-mseg threads executam 5 mseg por surto de CPU

Potrebbero piacerti anche