Escolar Documentos
Profissional Documentos
Cultura Documentos
nessa aula
• Parte 3 – Modelos de comunicação
• Exemplos de IPC
• Modelo cliente-servidor
O que você • Sockets, pipes e RPC
vai aprender
nessa aula
• Parte 4 – Threads (fios)
• Modelos de threading
• Processos e threads
O que você • Exemplos, vantagens, desvantagens
vai aprender • Execução concorrente e paralela
• ULT (user-level threads) e KLT (kernel-level
nessa aula threads)
• Parte 5 – Bibliotecas para suporte de
threads
• Pthreads, Java Threads
O que você • Questões sobre threads
vai aprender
nessa aula
• Referência base dessa aula:
• SILBERSCHATZ, Abraham; GALVIN, Peter B.;
GAGNE, Greg. Fundamentos de Sistemas
O que você vai Operacionais. 9.ed. Rio de Janeiro: LTC, 2015.
precisar para ISBN 978-85-216-3001-2. (e-book da Minha
Biblioteca).
acompanhar • https://integrada.minhabiblioteca.com.br/books/9
essa aula 78-85-216-3001-2
• As figuras utilizadas nessa aula foram
retiradas dessa referência
Infraestrutura e Sistemas Computacionais
Aula 02 – Parte 1
• Parte 1
• Processos e escalonamento
• Parte 2
O que você • Comunicação entre processos
vai aprender • Parte 3
nessa aula • Modelos de comunicação
• Parte 4
• Threads (fios)
• Parte 5
• Bibliotecas para suporte de threads
• Processos
• Conceito de Processo
• Escalonamento de Processos
• Operações com Processos
• Processos Cooperativos
• Comunicação entre Processos
• Comunicação em sistemas Cliente-Servidor
• Conceito de processo
• Um sistema operacional executa uma variedade de programas:
• Sistema Batch – jobs
• Sistema Tempo Compartilhado (Time-shared) – programas do usuário ou tarefas
• Livros usam os termos job e processo de forma similar
• Processo – um programa em execução
• O sistema operacional carrega um programa na memória
• Entidade viva
• Execução do processo deve progredir de maneira seqüencial
• Um processo inclui:
• Contador de programa
• Pilha
• Seções de dados
• Processo na memória
• Estados de um processo
• Durante a execução de um processo, ele altera seu estado
• Novo (new): O processo está sendo criado
• Executando (running): instruções estão sendo executadas
• Esperando (waiting): O processo está esperando algum evento acontecer
• Pronto (ready): O processo está esperando ser associado a um procesador
• Terminado (terminated): O processo terminou sua execução
• Process control block (PCB)
• A PCB ou Bloco de Controle de Processos armazena informações
associadas a cada processo
• Estado do processo
• Contador de programas
• Registradores da CPU
• Informações de escalonamento da CPU
• Informação de gerenciamento de memória
• Informação para contabilidade
• Informações do status de E/S
• Troca de processos
• Filas de escalonamento de processos
• Fila de Job
• Conjunto de todos os processos no sistema
• Fila de dispositivos
• Conjunto dos processos esperando por um dispositivo de E/S
• Processo pai cria processo filho, o qual, por sua vez, pode criar outros
processos, formando uma árvore de processos.
• Problema - sincronização
• Não é possível produzir e adicionar em uma única operação
• Não é possível remover e consumir em uma única operação
• IPC – Troca de mensagens
• Mecanismo para processos se comunicarem e sincronizarem suas ações
• Soluções:
• Permitir que um link esteja associado com no máximo dois processos
• Permitir somente a um processo de cada vez executar uma operação de recebimento
• Permitir ao sistema selecionar arbitrariamente por um receptor → Remetente é
notificado de quem foi o receptor
• Sincronização
• Troca de Mensagens pode ser bloqueante ou não-bloqueante
• Sockets
• Troca de mensagens
• Pipes
• Memória compartilhada
• Chamada a Procedimento Remoto (RPC)
• Abstrai o modelo de passagem de mensagens
• Invocação Remota de Método (RMI em Java)
• Abstrai o modelo de passagem de mensagens
• Sockets
• Um socket é definido como um ponto final de comunicação
• Concatenação de um endereço IP e porta
• O socket 161.25.19.8:1625 refere a porta 1625 na máquina 161.25.19.8
• Comunicação ocorre entre um par de sockets
• Diferentes modos: datagrama (UDP) e fluxo (TCP)
• Comunicação pode ser feita entre processos na mesma máquina ou
processos em máquinas distintas
• Permite mapear processos de forma livre – os processos podem existir localmente ou
em uma máquina remota
• Não é necessário modificar a aplicação
• Sockets - aplicação acessando um servidor
• Pipes (tubos)
• Questões
• A comunicação é unidirecional ou bi-direcional?
• No caso da comunicação de duas vias, ela é half ou full-duplex?
• Existe uma relação (ex. pai-filho) entre os processos comunicantes?
• É possível usar pipes em uma rede?
• Pipes comuns