36
Gerências de Processos: Processos Sistemas Operacionais I Prof. Alexandre Duarte : http://alexandrend.com Centro de Informática | Universidade Federal da Paraíba Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne

Gerência de Processos: Processos

Embed Size (px)

DESCRIPTION

Definir formalmente o conceito de processo Descrever as várias funcionalidades relacionadas à manipulação de processos pelo sistema operacional, incluindo escalonamento, criação, terminação e comunicação Apresentar as principais formas de comunicação utilizadas por sistemas cliente-servidor

Citation preview

Page 1: Gerência de Processos: Processos

Gerências de Processos: Processos

Sistemas Operacionais I

Prof. Alexandre Duarte : http://alexandrend.comCentro de Informática | Universidade Federal da Paraíba

Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne

Page 2: Gerência de Processos: Processos

Objetivos

Definir formalmente o conceito de processo

Descrever as várias funcionalidades relacionadas à manipulaç ão de processos pelo sistema operacional, incluindo escalonamento, criaç ão, terminaç ão e comunicaç ão

Apresentar as principais formas de comunicaç ão utilizadas por sistemas cliente-servidor

Page 3: Gerência de Processos: Processos

O conceito de processo

Um sistema operacional executa uma variedade de programas: Sistemas Batch: jobs Sistemas de compartilhamento de tempo: programas do

usuário

Usaremos os termos job e processo como sinô nimos

Processo: um programa em execuç ão Sua execuç ão avanç a de forma sequencial

Um processo inclui: Contador de programa Pilha Seç ão de dados

Page 4: Gerência de Processos: Processos

Um processo na memória

Page 5: Gerência de Processos: Processos

Estados de um processo

Durante sua execuç ão um processo muda de estado inúmeras vezes novo: O processo está sendo criado executando: Instruç ões do processo estão

sendo executadas esperando: O processo aguarda que algum

evento ocorra pronto: O processo aguarda ser escalonado

para um processador finalizado: A execuç ão do processo foi

concluída

Page 6: Gerência de Processos: Processos

Diagrama de transição entre os estados de um processo

Page 7: Gerência de Processos: Processos

Bloco de Controle de Processo (PCB)

Informaç ões associadas a cada processo Estado do processo Contador de programa Registradores da CPU Informaç ões para escalonamento da CPU Informaç ões para gerência de memó ria Informaç ão para contabilidade Estados das operaç ões de E/S

Page 8: Gerência de Processos: Processos

Alternando a CPU entre dois processos

Page 9: Gerência de Processos: Processos

Filas de escalonamento de processos

Fila de jobs: conjunto de todos os processos do sistema

Fila de prontos: fila com todos os processos aguardando apenas pelo escalonamento da CPU

Filas de dispositivo: conjunto de processos esperando por um dispositivo de E/S

Os processo migram entre as diferentes filas

Page 10: Gerência de Processos: Processos

Representação do escalonamento de processos

Page 11: Gerência de Processos: Processos

Escalonadores

Escalonador de longo prazo (ou escalonador de jobs): seleciona qual processo deve ser trazido para a fila de prontos

Escalonador de curto prazo (ou escalonador de CPU): seleciona qual processo deve ser executado e aloca a CPU

Page 12: Gerência de Processos: Processos

Escalonador de médio prazo

Page 13: Gerência de Processos: Processos

Escalonadores

O escalonador de curto prazo é invocado muito frequentemente (milissegundos) ⇒ precisa ser rápido

O escalonador de longo prazo é invocado ocasionalmente (segundos, minutos) ⇒ pode ser lento O escalonador de longo prazo controle o grau de

multiprogramação

Processos podem ser descritos como: Processos limitados por E/S: passam mais tempo

realizando operaç ões de E/S do que computaç ão – várias rajadas curtas de CPU

Processos limitados por CPU: passam mais tempo fazendo computaç ão – poucas rajadas muito longas de CPU

Page 14: Gerência de Processos: Processos

Criação de processos

Um processo Pai cria processos filho, que, por sua vez, podem criar outros processos, formando uma árvore de processos Geralmente, processos são gerenciados através de um

identificador de processo (pid)

Compartilhamento de recursos Processos pai e filho compartilham tudo O processo filho tem acesso a uma parte dos recursos do pai Pai e filho não compartilham nada

Execuç ão Pai e filho executam concorrentemente Pai aguarda até a conclusão da execuç ão do filho

Page 15: Gerência de Processos: Processos

Criação de processos

Espaç o de endereç amento O filho duplica o espaç o do pai O filho tem um outro programa carregado em seu

espaç o de endereç amento

Exemplos no UNIX a chamada de sistema fork cria um novo processo a chamada de sistema exec é utilizada apó s o fork

para substituir o espaç o de memó ria do processo com um novo programa

Page 16: Gerência de Processos: Processos

Programa em C criando um novo processo

Page 17: Gerência de Processos: Processos

Encerramento de processos

Um processo executa a sua última instruç ão e solicita ao sistema operacional que o remova (exit) Envio de dados da saída de um processo filho para o pai

(via wait) Os recursos utilizados pelo processo são desalocados

O pai pode finalizar a execuç ão de um processo filho (abort) O filho excedeu o limite de recursos alocados A tarefa atribuída ao filho não é mais necessária O pai está sendo encerrado

Alguns SOs não permitem processos ó rfãos Todos os filhos são finalizados: terminaç ão em cascata

Page 18: Gerência de Processos: Processos

Processos cooperativos

Processos independentes não podem afetar ou serem afetados pela execuç ão de outros processos

Processos cooperativos podem afetar e serem afetados pela execuç ão de outros processos

Vantagens da utilizaç ão de processos cooperativos Compartilhamento de informaç ão Velocidade de computaç ão Modularidade Conveniência

Page 19: Gerência de Processos: Processos

O problema do Produtor/Consumidor

Um paradigma para processos cooperativos Processos produtores produzem informaç ão que

é consumida por processos consumidores Buffer-ilimitado não impõem nenhum limite prático

ao tamanho do buffer Buffer-limitado assume que há um tamanho fixo

para o buffer

Page 20: Gerência de Processos: Processos

Buffer limitado: solução com memória compartilhada

Page 21: Gerência de Processos: Processos

Processo Produtor

Page 22: Gerência de Processos: Processos

Processo Consumidor

Page 23: Gerência de Processos: Processos

Comunicação entre processos

Processos cooperativos precisam de mecanismos para comunicaç ão entre processos (IPC)

Dois modelos: Troca de mensagens x Memó ria compartilhada

Page 24: Gerência de Processos: Processos

Troca de Mensagens

Processos se comunicam sem fazer uso de variáveis compartilhadas

O sistema de IPC oferece duas operaç ões: send(message) receive(message)

Se P e Q desejam se comunicar, eles precisam: estabelecer um canal de comunicaç ão entre si trocar mensagens utilizando send/receive

Os canais de comunicaç ão podem ser: físicos (ex., região de memó ria compartilhada, barramento de

hardware) ló gicos

Page 25: Gerência de Processos: Processos

Questões de implementação

Como os canais são estabelecidos? Um canal pode ser associado a mais de dois

processos? Quantos canais de comunicaç ão podem ser

estabelecidos entre todos os pares de processos em comunicaç ão?

Qual é a capacidade de um canal? O tamanho da mensagem é fixo ou variável? O canal é unidirecional ou bi-direcional?

Page 26: Gerência de Processos: Processos

Comunicação Direta

Os processos precisam ser identificados explicitamente send (P, message) receive(Q, message)

Propriedades do canal de comunicaç ão Estabelecimento automático Um único canal exclusivo para cada par de processos O canal pode ser unidirecional mas geralmente é

bidirecional

Page 27: Gerência de Processos: Processos

Comunicação Indireta

As mensagens são enviadas e recebidas de caixas de mensagens Cada caixa de mensagem tem um identificador único Processos só podem se comunicar se compartilharem

uma mailbox

Propriedades do canal de comunicaç ão Canal estabelecido se os processos compartilham uma

mailbox Um canal pode ser associado com vários processos Cada par de processo pode compartilhar diversos canais

de comunicaç ão Canais podem ser unidirecionais ou bidirecionais

Page 28: Gerência de Processos: Processos

Comunicação Indireta

Operaç ões criar uma nova mailbox enviar e receber mensagens através de uma

mailbox destruir uma mailbox

Primitivas definidas como send(A, message) receive(A, message)

Page 29: Gerência de Processos: Processos

Comunicação Indireta

Compartilhamento de mailbox P1, P2, e P3 compartilham a mailbox A P1, envia; P2 e P3 executam o receive ao mesmo tempo. Quem ficou com a mensagem?

Soluç ões Permitir que um link só possa ser associado a no máximo

dois processos Permitir que apenas um processo execute o receive em

um dado instante Permitir que o sistema escolha arbitrariamente o receptor

e notificar o emissor da escolha.

Page 30: Gerência de Processos: Processos

Sincronização

Troca de mensagens pode ser tanto bloqueante quanto não-bloqueante

Bloqueante é considerada síncrona send bloqueante faz o emissor esperar até que a

mensagem seja recebida receive bloqueante faz o receptor esperar até que uma

mensagem esteja disponível

Não-bloqueante é considerada asíncrona send não-bloqueante faz o emissor enviar a mensagem e

continuar sua execuç ão receive não-bloqueante faz o receptor receber uma

mensagem válida ou null

Page 31: Gerência de Processos: Processos

Buffering

Fila de mensagens associada ao canal

Três opç ões de implementaç ão Capacidade nula: emissor precisar aguardar pelo

receptor (rendezvous) Capacidade limitada: emissor precisar aguardar

se o canal estiver cheio Capacidade ilimitada: emissor nunca aguarda

Page 32: Gerência de Processos: Processos

Comunicação em sistemas cliente-servidor

Sockets Chamada remota de procedimentos (RPC) Chamada remota de métodos (RMI - Java)

Page 33: Gerência de Processos: Processos

Sockets

Um socket é definido como um ponto final para comunicaç ão

Concatenaç ão de endereç o IP e porta O socket 161.25.19.8:1625 se refere a

porta 1625 na máquina 161.25.19.8 A comunicaç ão se dá por meio de pares de

sockets

Page 34: Gerência de Processos: Processos

Comunicação via sockets

Page 35: Gerência de Processos: Processos

Chamada remota de procedimentos

Abstrai o conceito de chamada de procedimentos entre processos em um sistema conectado via rede

Stubs: proxies no lado cliente para o procedimento real no servidor O stub no lado cliente localiza o servidor e

empacota os parâmetros do procedimento O stub no lado servidor desempacota os

parâmetros e invoca a chamada localmente

Page 36: Gerência de Processos: Processos

Invocação remota de métodos (RMI)

RMI é a soluç ão Java para RPC Permite que um programa Java em uma JVM

invoque um método em um objeto criado em uma outra JVM