Escolar Documentos
Profissional Documentos
Cultura Documentos
Conceito de Processo Escalonamento de Processos Operaes sobre Processos Processos Cooperantes Comunicao entre Processos Comunicao em Sistemas Cliente-Servidor
Conceito de Processo
Um sistema operacional executa uma variedade de programas: Sistemas Batch tarefas Sistemas de tempo compartilhado programas de usurio ou tarefas O livro texto usa os termos tarefa e processo quase que indistintamente Processo um programa em execuo A execuo do processo precisa ocorrer de maneira seqencial Um processo inclui: contador de programa pilha seo de dados
Estado do Processo
Conforme um processo executado, ele muda de estado novo: O processo est sendo criado executando: As instrues esto sendo executadas esperando: O processo est esperando que ocorra algum evento pronto: O processo est esperando para ser atribudo a um processador terminado: O processo terminou sua execuo
Informaes associadas a cada processo Estado do processo Contador de programa Registradores da CPU Informao de escalonamento de CPU Informao de gerenciamento de memria Informao contbil Informao de status de E/S
Fila de tarefas (Job Queue) conjunto de todos os processos no sistema Fila de prontos (Ready Queue) conjunto de todos os processos residindo na memria principal que esto prontos e esperando para serem executados Fila de dispositivo (Device Queue) conjunto dos processos esperando um dispositivo de E/S Migrao de processo entre as diversas filas
10
Escalonadores
Escalonador de longo prazo (ou escalonador de tarefas) seleciona os processos que devem ser trazidos para a fila de prontos Escalonador de curto prazo (ou escalonador de CPU) seleciona os processos que devem ser executados em seguida e aloca a CPU
11
12
Escalonadores
O escalonador de curto prazo chamado freqentemente (milissegundos) precisa ser veloz O escalonador de mdio prazo chamado raramente (segundos ou minutos) pode ser lento O escalonador de longo prazo controla o grau de multiprogramao Os processos podem ser descritos como: Processos I/O-Bound gasta mais tempo realizando E/S do que clculos; muitos surtos de CPU curtos Processos CPU-Bound gasta mais tempo realizando clculos; poucos surtos de CPU muito longos
13
Troca de Contexto
Quando a CPU passa para outro processo, o sistema precisa salvar o estado do processo antigo e carregar o estado salvo do novo processo O tempo da troca de contexto custo adicional; o sistema no realiza qualquer trabalho til durante a troca O tempo depende do suporte do hardware
14
Criao de Processo
Os processos pai criam processos filhos, que, por sua vez, criam outros processos, formando uma rvore de processos Compartilhamento de recursos Pai e filhos compartilham todos os recursos Filhos compartilham um subconjunto dos recursos do pai Pai e filho no compartilham recurso algum Execuo Pai e filhos so executados concorrentemente Pai espera at que os filhos terminem
15
Criao de Processo
Espao de endereos Cpia filha do processo pai Filho contm um programa carregado Exemplos do UNIX Chamada de sistema fork cria novo processo Chamada de sistema exec usada aps um fork para substituir o espao de memria do processo por um novo programa
16
17
18
Trmino de processo
O processo executa sua instruo final e pede ao sistema operacional que o termine (exit()) Envia os dados de sada do filho para o pai (atravs do wait()) Os recursos do processo so desalocados pelo sistema operacional
19
Trmino de processo
O pai pode terminar a execuo dos processos filhos (abort()) O filho excedeu os recursos alocados A tarefa atribuda ao filho no mais necessria Se o pai est terminando Alguns sistemas operacionais no permitem que o filho continue se seu pai tiver terminado
Todos os filhos terminaram trmino em
cascata
20
Processos Cooperantes
Um processo independente no pode afetar ou ser afetado pela execuo de outro processo Um processo cooperante pode afetar ou ser afetado pela execuo de outro processo Vantagens da cooperao de processos Compartilhamento de informaes Agilidade na computao Modularidade Convenincia
21
Problema Produtor-Consumidor
Paradigma para os processos cooperativos, um processo produtor gera informaes que so consumidas por um processo consumidor O buffer ilimitado (unbounded-buffer) no coloca qualquer limite prtico no tamanho do buffer O buffer limitado (bounded-buffer) considera que existe um tamanho de buffer fixo
22
23
24
25
26
27
28
Questes de Implementao
Como os enlaces so estabelecidos? Um enlace pode ser associado a mais de dois processos? Quantos enlaces podem existir entre cada par de processos de comunicao? O que a capacidade de um enlace? O tamanho de uma mensagem que o enlace pode acomodar fixo ou varivel? Um enlace unidirecional ou bidirecional?
29
Comunicao Direta
Os processos precisam nomear explicitamente um ao outro: send (P, mensagem) envia uma mensagem ao processo P receive(Q, mensagem) recebe uma mensagem do processo Q Propriedades do enlace de comunicao Os enlaces so estabelecidos automaticamente Um enlace associado a exatamente um par de processos de comunicao Entre cada par existe exatamente um enlace O enlace pode ser unidirecional, mas normalmente bidirecional
30
Comunicao Indireta
As mensagens so enviadas e recebidas a partir de caixas de correio (tambm chamadas de portas) Cada caixa de correio possui uma identificao exclusiva Os processos s podem se comunicar se tiverem uma caixa de correio compartilhada Propriedades de um enlace de comunicao Um enlace estabelecido apenas se os processos compartilharem uma caixa de correio Um enlace pode ser associado a muitos processos Cada par de processos pode compartilhar vrios enlaces de comunicao O enlace pode ser unidirecional ou bidirecional
31
Comunicao Indireta
Operaes criar uma nova caixa de correio enviar e receber mensagens atravs da caixa de correio excluir uma caixa de correio As primitivas so definidas como: send(A, mensagem) enviar uma mensagem caixa de correio A receive(A, mensagem) receber uma mensagem da caixa de correio A
32
Comunicao Indireta
Compartilhamento de caixa de correio P1, P2 e P3 compartilham a caixa de correio A P1, envia; P2 e P3 recebem Quem ficar com a mensagem? Solues Permitir que um enlace seja associado a, no mximo, dois processos Permitir que apenas um processo por vez execute uma operao receive Permitir que o sistema selecione arbitrariamente o receptor. O emissor notificado de quem foi o receptor.
33
Sincronismo
A troca de mensagens pode ser bloqueante ou no bloqueante Bloqueante considerada sncrona No send bloqueante, o emissor bloqueado at que a mensagem seja recebida No receive bloqueante, o receptor bloqueado at que uma mensagem esteja disponvel No bloqueante considerada assncrona No send no bloqueante, o emissor envia a mensagem e continua No receive no bloqueante, o receptor recebe uma mensagem vlida ou um nulo
34
Buffers
Fila de mensagens associadas ao enlace; implementadas de trs maneiras 1. Capacidade zero 0 mensagem O emissor precisa esperar o receptor (rendezvous - encontro) 2. Capacidade limitada tamanho finito de n mensagens O emissor precisa esperar se a fila encher 3. Capacidade ilimitada tamanho infinito O emissor nunca espera
35
36
Sockets
Um socket definido como uma extremidade para comunicao Concatenao do endereo IP com a porta O soquete 161.25.19.8:1625 refere-se porta 1625 no host 161.25.19.8 A comunicao consiste necessita de um par de sockets
37
38
A Remote Procedure Call (RPC) abstrai chamadas de procedimento entre processos em sistemas em rede Stubs substituto do lado do cliente para o procedimento real no servidor O stub do lado do cliente localiza o servidor e empacota os parmetros O stub do lado do servidor recebe essa mensagem, desempacota os parmetros e chama o procedimento no servidor
39
40
Remote Method Invocation (RMI) um mecanismo Java semelhante s RPCs A RMI permite que um programa Java em uma mquina invoque um mtodo em um objeto remoto
41
Empacotando Parmetros
42
Threads
Uma Thread (ou processo leve) uma unidade bsica da utilizao da CPU; ela consiste em: contador de programa conjunto de registradores espao de pilha Uma Thread compartilha com suas Threads afins: sua seo de cdigo sua seo de dados seus recursos de sistema operacional coletivamente conhecidos como uma tarefa Um processo tradicional, ou pesado, igual a uma tarefa com uma nica Thread
43
Threads
Em uma tarefa com mltiplas threads, enquanto uma thread servidora est bloqueada e esperando, uma segunda thread da mesma tarefa pode ser executada A cooperao de mltiplas threads na mesma tarefa confere maior throughput e melhor desempenho As aplicaes que precisam compartilhar um buffer comum (ou seja, produtor-consumidor) tiram proveito da utilizao da thread As Threads fornecem um mecanismo para permitir que processos seqenciais faam chamadas de sistema bloqueantes ao mesmo tempo em que obtm paralelismo
44
45