SlideShare uma empresa Scribd logo
1 de 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
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
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
Um processo na memória
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
Diagrama de transição entre os estados de
um processo
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
Alternando a CPU entre dois 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
Representação do escalonamento de
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
Escalonador de médio prazo
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
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
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
Programa em C criando um novo
processo
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
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
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
Buffer limitado: solução com memória
compartilhada
Processo Produtor
Processo Consumidor
Comunicação entre processos
 Processos cooperativos precisam de mecanismos para
comunicaç ão entre processos (IPC)
 Dois modelos: Troca de mensagens x Memó ria compartilhada
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
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?
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
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
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)
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.
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
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
Comunicação em sistemas cliente-
servidor
 Sockets
 Chamada remota de procedimentos (RPC)
 Chamada remota de métodos (RMI - Java)
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
Comunicação via sockets
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
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

Mais conteúdo relacionado

Mais procurados

2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 
Inteligência Computacional Unidade 01 – Introdução
Inteligência Computacional Unidade 01 – IntroduçãoInteligência Computacional Unidade 01 – Introdução
Inteligência Computacional Unidade 01 – IntroduçãoLeonardo Goliatt
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introduçãoCleber Ramos
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Leinylson Fontinele
 
Sistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - ApresentaçãoSistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - ApresentaçãoLeinylson Fontinele
 
Arquitetura e Organização de Computadores: Introdução
Arquitetura e Organização de Computadores: IntroduçãoArquitetura e Organização de Computadores: Introdução
Arquitetura e Organização de Computadores: IntroduçãoWellington Oliveira
 
Sistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosSistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosCarlos Eduardo Teruel
 
Módulo 7 – Tratamento de ficheiros.pptx
Módulo 7 – Tratamento de ficheiros.pptxMódulo 7 – Tratamento de ficheiros.pptx
Módulo 7 – Tratamento de ficheiros.pptxBrancaSilva12
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01thomasdacosta
 
Arquitetura Interna do Computador
Arquitetura Interna do ComputadorArquitetura Interna do Computador
Arquitetura Interna do ComputadorSara Gonçalves
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Leinylson Fontinele
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaDelacyr Ferreira
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresGilvan Latreille
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoriaaudineisilva1
 

Mais procurados (20)

2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 
Inteligência Computacional Unidade 01 – Introdução
Inteligência Computacional Unidade 01 – IntroduçãoInteligência Computacional Unidade 01 – Introdução
Inteligência Computacional Unidade 01 – Introdução
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introdução
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Sistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - ApresentaçãoSistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - Apresentação
 
Arquitetura e Organização de Computadores: Introdução
Arquitetura e Organização de Computadores: IntroduçãoArquitetura e Organização de Computadores: Introdução
Arquitetura e Organização de Computadores: Introdução
 
Comunicação de dados
Comunicação de dadosComunicação de dados
Comunicação de dados
 
Sistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosSistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos Básicos
 
Módulo 7 – Tratamento de ficheiros.pptx
Módulo 7 – Tratamento de ficheiros.pptxMódulo 7 – Tratamento de ficheiros.pptx
Módulo 7 – Tratamento de ficheiros.pptx
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01
 
Arquitetura Interna do Computador
Arquitetura Interna do ComputadorArquitetura Interna do Computador
Arquitetura Interna do Computador
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise Assintótica
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoria
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 

Destaque

Visão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalVisão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalAlexandre Duarte
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: IntroduçãoAlexandre Duarte
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: ThreadsAlexandre Duarte
 
Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processosMauro Duarte
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicosComputação Depressão
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processosVirgínia
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 

Destaque (10)

Visão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalVisão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema Operacional
 
Memória virtual
Memória virtualMemória virtual
Memória virtual
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: Threads
 
Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processos
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processos
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 

Semelhante a Gerência de Processos: Processos

Semelhante a Gerência de Processos: Processos (20)

Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
Processos
ProcessosProcessos
Processos
 
ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdf
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Processos+threads.2pp
Processos+threads.2ppProcessos+threads.2pp
Processos+threads.2pp
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 
Aula 1
Aula 1Aula 1
Aula 1
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativos
 
Aula3so
Aula3soAula3so
Aula3so
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Fso parte iii
Fso parte iiiFso parte iii
Fso parte iii
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
SD_Aula_03_Introdução ao SD.pdf
SD_Aula_03_Introdução ao SD.pdfSD_Aula_03_Introdução ao SD.pdf
SD_Aula_03_Introdução ao SD.pdf
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 
S.o aula 1920
S.o aula 1920S.o aula 1920
S.o aula 1920
 
Sistemas Operativos De Grande Porte
Sistemas Operativos De Grande PorteSistemas Operativos De Grande Porte
Sistemas Operativos De Grande Porte
 
Escalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPEscalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SP
 
Conceito de processos
Conceito de processosConceito de processos
Conceito de processos
 
SO - Aula 02 - Conceitos
SO - Aula 02 - ConceitosSO - Aula 02 - Conceitos
SO - Aula 02 - Conceitos
 

Mais de Alexandre Duarte

Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosAlexandre Duarte
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Alexandre Duarte
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaAlexandre Duarte
 
Ciência da Computação como Ciência
Ciência da Computação como CiênciaCiência da Computação como Ciência
Ciência da Computação como CiênciaAlexandre Duarte
 
Metodologia da Pesquisa Científica: Introdução
Metodologia da Pesquisa Científica:  IntroduçãoMetodologia da Pesquisa Científica:  Introdução
Metodologia da Pesquisa Científica: IntroduçãoAlexandre Duarte
 
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerGráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerAlexandre Duarte
 
Panorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBPanorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBAlexandre Duarte
 
Sumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisSumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisAlexandre Duarte
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e ClassificaçãoAlexandre Duarte
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2DAlexandre Duarte
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1DAlexandre Duarte
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de DadosAlexandre Duarte
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosAlexandre Duarte
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de SurveysAlexandre Duarte
 
Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Alexandre Duarte
 

Mais de Alexandre Duarte (20)

Projeto de Experimentos
Projeto de ExperimentosProjeto de Experimentos
Projeto de Experimentos
 
Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de Experimentos
 
Causalidade e Abdução
Causalidade e AbduçãoCausalidade e Abdução
Causalidade e Abdução
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!
 
Atividades Científica
Atividades CientíficaAtividades Científica
Atividades Científica
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de Pesquisa
 
Ciência da Computação como Ciência
Ciência da Computação como CiênciaCiência da Computação como Ciência
Ciência da Computação como Ciência
 
Metodologia da Pesquisa Científica: Introdução
Metodologia da Pesquisa Científica:  IntroduçãoMetodologia da Pesquisa Científica:  Introdução
Metodologia da Pesquisa Científica: Introdução
 
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerGráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
 
Panorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBPanorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPB
 
Agrupamento com K-Means
Agrupamento com K-MeansAgrupamento com K-Means
Agrupamento com K-Means
 
Sumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisSumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis Nominais
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e Classificação
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2D
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1D
 
Transformação de Dados
Transformação de DadosTransformação de Dados
Transformação de Dados
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de Dados
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de Experimentos
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de Surveys
 
Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01
 

Último

Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
AULA DE CARIOLOGIA TSB introdução tudo sobre
AULA DE CARIOLOGIA TSB introdução tudo sobreAULA DE CARIOLOGIA TSB introdução tudo sobre
AULA DE CARIOLOGIA TSB introdução tudo sobremaryalouhannedelimao
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOAulasgravadas3
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
BNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimentoBNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimentoGentil Eronides
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 

Último (20)

Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
AULA DE CARIOLOGIA TSB introdução tudo sobre
AULA DE CARIOLOGIA TSB introdução tudo sobreAULA DE CARIOLOGIA TSB introdução tudo sobre
AULA DE CARIOLOGIA TSB introdução tudo sobre
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
BNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimentoBNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimento
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 

Gerência de Processos: Processos

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. Um processo na memória
  • 5. 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
  • 6. Diagrama de transição entre os estados de um processo
  • 7. 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
  • 8. Alternando a CPU entre dois processos
  • 9. 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
  • 11. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. Programa em C criando um novo processo
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. Buffer limitado: solução com memória compartilhada
  • 23. Comunicação entre processos  Processos cooperativos precisam de mecanismos para comunicaç ão entre processos (IPC)  Dois modelos: Troca de mensagens x Memó ria compartilhada
  • 24. 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
  • 25. 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?
  • 26. 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
  • 27. 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
  • 28. 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)
  • 29. 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.
  • 30. 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
  • 31. 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
  • 32. Comunicação em sistemas cliente- servidor  Sockets  Chamada remota de procedimentos (RPC)  Chamada remota de métodos (RMI - Java)
  • 33. 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
  • 35. 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
  • 36. 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

Notas do Editor

  1. Está solução só consegue utilizar BUFFER_SIZE -1 posições do buffer e não trata problemas de sincronização