Académique Documents
Professionnel Documents
Culture Documents
Mdulo 4: Processos
Conceito de Processo Escalonamento de processos Operaes sobre processos Processos cooperantes Comunicao entre processos
4.1
Sistemas Operacionais
Conceito de Processo
Um Sistema Operacional executa uma variedade de programas: Sistemas de processamento em lotes (batch) processa jobs Sistemas de tempo partilhado (timeshared) roda processos de usurios ou tarefas (tasks) O livro texto usa os termos job e processo quase como sinnimos Processo: um programa em execuo Um processo inclui: Contador de programa (PC) Pilha Segmento (rea) de dados
4.2
Sistemas Operacionais
Estados de Processos
Ao executar, processo muda de estados New: processo est sendo criado Running: instrues do processo esto executando Waiting: processo est esperando ocorrncia de algum evento Terminated: processo terminou a execuo
4.3
Sistemas Operacionais
4.4
Sistemas Operacionais
4.5
Sistemas Operacionais
4.6
Sistemas Operacionais
4.7
Sistemas Operacionais
4.8
Sistemas Operacionais
4.9
Sistemas Operacionais
4.10
Sistemas Operacionais
Escalonadores
Escalonador de longo prazo (Longterm scheduler) seleciona qual processo deve ser colocado (buscado) para a fila de prontos por exemplo: de uma fila de jobs batch Escalonador de curto prazo (shortterm scheduler, CPU scheduler) seleciona, da fila de prontos, que processo deve ser executado a seguir (i.e. alocado CPU).
4.11
Sistemas Operacionais
4.12
Sistemas Operacionais
Escalonadores (Cont.)
Escalonador de curto prazo invocado muito frequentemente (milisegundos) (deve ser rpido) Escalonador de longo prazo invocado infrequentemente (segundos, minutos) (pode ser lento) Escalonador de longo prazo controla o grau de multiprogramao do sistema Processos podem ser classificados em: I/Obound processes delimitados pelo tempo de I/O, gasta mais tempo fazendo I/O do que computaes, muitas pequenas rajadas (bursts) de CPU CPUbound processes delimitados pelo tempo de CPU, gastam a maior parte do tempo fazendo computaes; Poucas RAJADAS LONGAS de CPU
4.13
Sistemas Operacionais
Quando CPU troca processo em execuo por outro, SO deve salvar o estado (contexto de execuo) do processo anterior e carregar nos regs. da mquina o estado (guardado) do prximo processo Tempo de troca de contexto overhead; a traca til mas no o objetivo do sistema, objetivo processar / computar jobs Tempo de troca de contexto dependente do suporte de hardware
4.14
Sistemas Operacionais
Criao de processos
Processo pai cria filhos (ou clones), que por sua vez criam outros formando uma rvore de processos Compartilhamento de recursos possveis: Pai e filhos compartilham todos os recursos Filhos compartilham subconjunto de recursos do pai Pai e filhos no compartilham recursos Execues possveis: Pai e filhos executam concorrentemente Pai espera at filhos terminarem
4.15
Sistemas Operacionais
Possibilidades para o espao de endereamento Filho duplicata do pai (espao separado) Filho tem programa carregado no espao do pai (substituio) Exemplos do UNIX Chamada a fork cria novo processo Chamada execve usada depois do fork (no cdigo do clone) para substituir programa no espao do clone
4.16
Sistemas Operacionais
4.17
Sistemas Operacionais
Trmino de Processos
Processo executa chamada exit pedindo ao SO que termine o processo Dado passado de filho para pai (via wait) Recursos do processo so dealocados pelo SO Pai pode terminar a execuo de processos filhos (abort) devido: Filho excedeu uso de recursos alocados Tarefa atribuda ao filho no mais necessria Pai vai terminar... possibilidades so: SO termina filho tambm Cascateamento de trminos
4.18
Sistemas Operacionais
Processos Cooperantes
Processos Independentes no podem afetar ou serem afetados pela execuo de outros processos Processos Cooperantes podem afetar a execuo de outros processos cooperantes (ou ter execuo afetada) Vantagens da cooperao entre processos: Compartilhamento de informaes Aumento da velocidade de computao (speedup) Modularidade Convenincia
4.19
Sistemas Operacionais
Problema ProdutorConsumidor
Paradigma (padro de comportamento) para certos processos cooperantes Processo produtor produz informao que consumida por outro processo (consumidor) Comunicao entre os processos cooperantes utiliza um buffer: Boundedbuffer: tem tamanho fixo Unboundedbuffer: assumese que o buffer no tem limite de tamanho.
4.20
Sistemas Operacionais
4.21
Sistemas Operacionais
BoundedBuffer (Cont.)
Consumer process repeat while in = out do noop; nextc := buffer [out]; out := out+1 mod n; consume the item in nextc until false; Solution is correct, but can only fill up n 1 buffer.
4.22
Sistemas Operacionais
Threads
Uma thread (ou lightweight process) uma unidade bsica de utilizao de CPU Uma thread consiste de: Apontador de instrues (PC) Conjunto de registradores Espao de pilha Thread = processo de peso leve ou, tambm, linha de execuo de um processo Uma thread compartilha com outras threads pares (peers): A seo de cdigo A seo de dados Os recursos do SO coletivamente tudo isso conhecido como tarefa (task) Um processo tradicional (ou heavyweight process) igual a uma tarefa com uma thread OBS: para executar com threads necessrio uma pilha por thread (uma s nao suficiente), ao contrario das reas de cdigo, vars. e heap que podem ser compartilhadas peals threads pares.
4.23
Sistemas Operacionais
Threads (Cont.)
Em uma tarefa com mltiplas threads, enquanto uma thread est bloqueada e esperando, uma segunda thread na mesma tarefa pode executar Cooperao de mltiplas threads no mesmo job confere maior vazo (throughput) e melhoria de desempenho Aplicaes que requerem compartilhamento de dados se beneficiam ao utilizar threads (ex. buffer comum em padro produtorconsumidor) Threads provm um mecanismo que possibilita a um processo sequencial fazer uma chamada bloqueante ao SO e ao memo tempo obter paralelismo no processo Threads podem ser suportadas pelo ncleo do SO (ex. Mach, OS/2, Linux). Threads podem ser suportadas em espao de endereos de usurio (User level threads); Como uma biblioteca que roda em espao de usurio (exs. Projeto Andrew da CMU, CThreads) Suportado pela linguagem e respectivo compilador (ex. Modula, Java) Abordagem hbrida implementa ambos os mtodos (ex. userlevel e kernel 4.24 level threads em Solaris 2).
Sistemas Operacionais
4.25
Sistemas Operacionais
Sistemas Operacionais
Solaris 2 Threads
4.27
Sistemas Operacionais
Sistemas Operacionais
Questes de Implementao
Como os links so estabelecidos ? Um link pode ser associado a mais de dois processos ? Quantos links podem existir entre cada par de processos comunicantes ? Qual a capacidade de um link ? O tamanho da mensagem fixo ou varivel ? O link unidirecional ou bidirecional?
4.29