Interrupes n Interrupo por hardware ou interrupo assncrona

  • Slides: 62
Download presentation
Interrupções n Interrupção por hardware ou interrupção assíncrona l Ocorrência de evento externo l

Interrupções n Interrupção por hardware ou interrupção assíncrona l Ocorrência de evento externo l Não existe troca de parâmetros ou retorno com programa interrompido l Ex. : interrupção de relógio, término de E/S Quando se fala em interrupção, em geral, se refere apenas à interrupção assíncrona n Interrupções síncronas ou traps l Interrupção por software l Tipos 4 Execução de instrução específica – 4 Chamada de sistema Alguns autores não citam o termo interrupção Interrupção por exceção (hardware ou software) – Erros de execução – Proteção, underflow, overflow (hardware) A maioria dos autores não classifica como interrupção Indicados pelo software » Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 1 Prof. Natalia Castro Fernandes

Interrupções n Chaveamento de modos: l Interrupção por software 4 l Processo do usuário

Interrupções n Chaveamento de modos: l Interrupção por software 4 l Processo do usuário modo usuário →modo protegido Instrução de retorno 4 Modo usuário modo protegido →modo usuário Interrupção por software (Trap) Sistema operacional OBS: O trap é uma instrução. Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 2 Modo protegido ou modo kernel Prof. Natalia Castro Fernandes

Exceção n Exemplos em python: l try-catch. py a try-catchv 4. py Adaptado dos

Exceção n Exemplos em python: l try-catch. py a try-catchv 4. py Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 3 Prof. Natalia Castro Fernandes

Exercício n Gere uma função que escolhe um número inteiro entre 0 e 10

Exercício n Gere uma função que escolhe um número inteiro entre 0 e 10 aleatoriamente. O usuário poderá entrar com números até acertar o valor escolhido. Nesse caso, o programa termina com uma mensagem de sucesso. Caso o usuário acerte de primeira, o programa deve gerar uma exceção com a mensagem “Você tem poderes psíquicos”, gerar um novo número e continuar o processo. Nenhuma outra exceção deve terminar o programa ou escrever uma mensagem na tela. (Use try, except e raise) Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 4 Prof. Natalia Castro Fernandes

Capítulo 3: Processos Adaptado dos slides do livro Operating System Concepts – 8 th

Capítulo 3: Processos Adaptado dos slides do livro Operating System Concepts – 8 th Edition Prof. Natalia Castro Fernandes

Capítulo 3: Processos n Conceito de processos n Escalonamento de processos n Comunicação interprocessos

Capítulo 3: Processos n Conceito de processos n Escalonamento de processos n Comunicação interprocessos n Exemplos de sistemas IPC n Comunicação em sistemas cliente-servidor Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 7 Prof. Natalia Castro Fernandes

Objetivos n Introduzir a noção de processo n Descrever as várias características de um

Objetivos n Introduzir a noção de processo n Descrever as várias características de um processo, incluindo escalonamento, criação, término e comunicação n Descrever a comunicação em sistemas cliente-servidor Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 8 Prof. Natalia Castro Fernandes

Conceito de processo n Alguém saberia definir o que é um processo? Adaptado dos

Conceito de processo n Alguém saberia definir o que é um processo? Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 9 Prof. Natalia Castro Fernandes

Conceito de processo n Um sistema operacional executa uma variedade de programas: l Sistemas

Conceito de processo n Um sistema operacional executa uma variedade de programas: l Sistemas em lote 4 Jobs l job ~ processo Sistemas de tempo compartilhado 4 Tarefas ou programas de usuário n Processo Programa em execução 4 Execução sequencial l Inclui: 4 Contador de programa 4 Pilha l 4 Seção de dados Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 10 Prof. Natalia Castro Fernandes

O processo Atividade atual, incluindo o contador de programa e os registradores de processo

O processo Atividade atual, incluindo o contador de programa e os registradores de processo Memória n Contém múltiplas partes ? Pilha com dados temporários • Parâmetros de funções, endereço de retorno, variáveis locais Heap • Memória alocada dinamicamente Seção de dados Contém variáveis globais Código, também chamado de seção de texto Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 11 Prof. Natalia Castro Fernandes

O processo n Programa x processo l Programa é passivo l Processo é ativo

O processo n Programa x processo l Programa é passivo l Processo é ativo 4 O programa se torna um processo quando é carregado na memória Usuário Sistema Operacional Busca programa no disco Execute A Processo é criado! Disco A Carrega programa na memória Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 12 Memória Prof. Natalia Castro Fernandes

O processo n Execução de um programa l Iniciada por clicks de mouse na

O processo n Execução de um programa l Iniciada por clicks de mouse na interface gráfica (GUI), pela linha de comando etc. n Um programa pode ser vários processos l Exemplo: Múltiplos usuários executando o mesmo programa. Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 13 Prof. Natalia Castro Fernandes

Estado do processo n Um processo tem estado l Modificado enquanto o processo executa

Estado do processo n Um processo tem estado l Modificado enquanto o processo executa Processo que está sendo criado Novo • Alocação de recursos Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 14 Prof. Natalia Castro Fernandes

Estado do processo n Um processo tem estado l Modificado enquanto o processo executa

Estado do processo n Um processo tem estado l Modificado enquanto o processo executa Novo Sistema operacional admite um novo processo Processo que está esperando para ser atribuído ao processador Pronto • Fila de processos querem usar a CPU • Apenas um processo por vez na CPU Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 15 Prof. Natalia Castro Fernandes

Estado do processo n Um processo tem estado l Modificado enquanto o processo executa

Estado do processo n Um processo tem estado l Modificado enquanto o processo executa Novo Interrupção de clock definindo o fim do período de uso de CPU do processo Pronto Em execução Instruções do processo sendo executadas na CPU Escalonador do sistema operacional define que o processo pode utilizar a CPU Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 16 Prof. Natalia Castro Fernandes

Estado do processo n Um processo tem estado l Modificado enquanto o processo executa

Estado do processo n Um processo tem estado l Modificado enquanto o processo executa Novo Em execução Pronto Conclusão de evento Em espera Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 17 Processo espera por um evento e libera a CPU Processo esperando a ocorrência de algum evento (fim de operação de I/O ou recebimento de sinal) Prof. Natalia Castro Fernandes

Estado do processo n Um processo tem estado l Modificado enquanto o processo executa

Estado do processo n Um processo tem estado l Modificado enquanto o processo executa Processo que terminou a sua execução Processo é finalizado e sai da memória Novo Encerrado • Liberação de recursos Em execução Pronto Em espera Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 18 Prof. Natalia Castro Fernandes

Recursos do processo n Estado novo l Alocação de recursos Quais recursos? memória +

Recursos do processo n Estado novo l Alocação de recursos Quais recursos? memória + bloco de controle de processo ? ? ? Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 19 Prof. Natalia Castro Fernandes

Bloco de controle de processo (Process Control Block - PCB) n Informação associada a

Bloco de controle de processo (Process Control Block - PCB) n Informação associada a cada processo l Estado do processo Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 20 Novo, pronto, em execução, em espera ou terminado Prof. Natalia Castro Fernandes

Bloco de controle de processo (Process Control Block - PCB) n Informação associada a

Bloco de controle de processo (Process Control Block - PCB) n Informação associada a cada processo l Estado do processo l Contador de programa Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 21 Número que indica a próxima instrução a ser executada Prof. Natalia Castro Fernandes

Bloco de controle de processo (Process Control Block - PCB) n Informação associada a

Bloco de controle de processo (Process Control Block - PCB) n Informação associada a cada processo l Estado do processo l Contador de programa l Registradores de CPU Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 22 Informações usadas durante a execução do processo Prof. Natalia Castro Fernandes

Bloco de controle de processo (Process Control Block - PCB) n Informação associada a

Bloco de controle de processo (Process Control Block - PCB) n Informação associada a cada processo l Estado do processo l Contador de programa l Registradores de CPU l Informação de escalonamento de CPU Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 23 Dados para escolher o próximo processo a ser executado Prof. Natalia Castro Fernandes

Bloco de controle de processo (Process Control Block - PCB) n Informação associada a

Bloco de controle de processo (Process Control Block - PCB) n Informação associada a cada processo l Estado do processo l Contador de programa l Registradores de CPU l Informação de escalonamento de CPU l Informação de gerenciamento de memória Controle da memória alocada ao processo Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 24 Prof. Natalia Castro Fernandes

Bloco de controle de processo (Process Control Block - PCB) n Informação associada a

Bloco de controle de processo (Process Control Block - PCB) n Informação associada a cada processo l Estado do processo l Contador de programa l Registradores de CPU l Informação de escalonamento de CPU l Informação de gerenciamento de memória l Informação de uso (contabilização) l Informação de estado de I/O Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 25 Prof. Natalia Castro Fernandes

Process Control Block (PCB) Adaptado dos slides do livro Operating System Concepts – 8

Process Control Block (PCB) Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 26 Prof. Natalia Castro Fernandes

Troca de contexto Processo P 0 Em execução Sistema Operacional Processo P 1 Interrupção

Troca de contexto Processo P 0 Em execução Sistema Operacional Processo P 1 Interrupção ou chamada de sistema Salva estado em PCB 0 Em espera . . . Recarrega estado de PCB 1 Em espera Em execução Interrupção ou chamada de sistema Salva estado em PCB 1. . . Recarrega estado de PCB 0 Em espera Em execução Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 27 Prof. Natalia Castro Fernandes

Escalonamento de processos n Objetivos l Maximar o uso de CPU l Trocar rapidamente

Escalonamento de processos n Objetivos l Maximar o uso de CPU l Trocar rapidamente os processos na CPU para fazer compartilhamento de tempo Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 28 Prof. Natalia Castro Fernandes

Escalonamento de processos n Escalonador de processos l Escolher entre os processos qual será

Escalonamento de processos n Escalonador de processos l Escolher entre os processos qual será o próximo a ser executado pela CPU 4 Manutenção de filas de escalonamento – Fila de jobs – conjunto de todos os processos no sistema – Fila de prontos – conjunto de todos os processos que estão prontos para serem executados e esperando o acesso à CPU – Filas de dispositivos – conjunto de processos esperando pelo dispositivo de I/O 4 Processos são movidos entre as diversas filas Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 29 Prof. Natalia Castro Fernandes

Fila de prontos e filas de dispositivos Adaptado dos slides do livro Operating System

Fila de prontos e filas de dispositivos Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 30 Prof. Natalia Castro Fernandes

Representação do escalonamento de processos Fila de prontos I/O Fila de I/O CPU Pedido

Representação do escalonamento de processos Fila de prontos I/O Fila de I/O CPU Pedido de I/O Fim da fatia de tempo Filho executa Cria processo filho Interrupção ocorre Espera por interrupção Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 31 Prof. Natalia Castro Fernandes

Escalonadores n Escalonador de longo prazo (ou escalonador de jobs) l Seleciona quais processos

Escalonadores n Escalonador de longo prazo (ou escalonador de jobs) l Seleciona quais processos devem ser trazidos a fila de prontos l Não é chamado com grande frequência 4 Pode ser lento Define o grau de multiprogramação n Escalonador de curto prazo (ou escalonador de CPU) l Seleciona qual o próximo processo a ser executado e aloca a CPU l Muitas vezes, é o único escalonador no sistema l Chamado com alta frequência (ms) 4 Precisa ser rápido Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 32 Prof. Natalia Castro Fernandes

Escalonadores n Processos podem ser descritos como: l Processos limitados por I/O 4 Gastam

Escalonadores n Processos podem ser descritos como: l Processos limitados por I/O 4 Gastam mais tempo com I/O do que com uso de CPU 4 Diversas l rajadas de uso de CPU curtas Processos limitados por CPU 4 Gastam mais tempo com uso de CPU 4 Poucas rajadas longas de uso de CPU Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 33 Prof. Natalia Castro Fernandes

Troca de Contexto n Processo de troca de processos na CPU l Salva o

Troca de Contexto n Processo de troca de processos na CPU l Salva o estado atual do processo em execução l Carrega estado de novo processo n O contexto de um processo é representado pelo seu PCB Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 34 Prof. Natalia Castro Fernandes

Troca de Contexto n Tempo de troca de contexto é sobrecarga l Tempo de

Troca de Contexto n Tempo de troca de contexto é sobrecarga l Tempo de troca de processos não é considerado tempo útil do sistema l Quanto mais complexo o sistema operacional e o PCB, maior o tempo de troca l Tempo de troca depende de suporte de hardware 4 Alguns hardwares provêem múltiplos conjuntos de registradores por CPU – Possibilidade de fazer várias carregamentos de contexto simultaneamente Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 35 Prof. Natalia Castro Fernandes

Criação de processos n Processo pai cria processos filhos, os quais, por sua vez,

Criação de processos n Processo pai cria processos filhos, os quais, por sua vez, podem criar outros processos, criando uma árvore de processos l Cada processo é identificado por um identificador de processo (pid) n Compartilhamento de recursos l Possibilidades 4 Pai e filhos compartilham todos os recursos 4 Filhos 4 Pai compartilham parte dos recursos do pai e filhos não compartilham recursos n Execução l Possibilidades 4 Pai e filhos executam concorrentemente 4 Pai espera até o fim da execução dos filhos Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 36 Prof. Natalia Castro Fernandes

Criação de processos n Espaço de endereçamento l Possibilidades 4 Filhos são cópias do

Criação de processos n Espaço de endereçamento l Possibilidades 4 Filhos são cópias do pai 4 Filhos tem um programa diferente carregado na sua área de código n Exemplos no UNIX l Chamada de sistema fork cria novos processos l A chamada de sistema exec é chamada após o fork para sobrescrever o espaço de memória com um novo programa Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 37 Prof. Natalia Castro Fernandes

Criação de processos Adaptado dos slides do livro Operating System Concepts – 8 th

Criação de processos Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 38 Prof. Natalia Castro Fernandes

Criando processos com o fork #include <sys/types. h> #include <studio. h> #include <unistd. h>

Criando processos com o fork #include <sys/types. h> #include <studio. h> #include <unistd. h> int main() { pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); return 1; } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child */ wait (NULL); printf ("Child Complete"); } return 0; Adaptado dos } slides do livro Operating System Concepts – 8 th Edition Exemplos em Python: teste_fork 3. py até teste_fork 7. py Atenção!!!!! O fork só funciona em Linux para Python 3. 39 Prof. Natalia Castro Fernandes

Árvore de processos no Solaris Adaptado dos slides do livro Operating System Concepts –

Árvore de processos no Solaris Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 40 Prof. Natalia Castro Fernandes

Finalização de processos n Processo executa a sua última linha e pede ao sistema

Finalização de processos n Processo executa a sua última linha e pede ao sistema operacional para deletá-lo (exit) l Recursos do processos são desalocados pelo sistema operacional n Processo pai pode terminar a execução de um processo filho (abort) l Exemplos de motivação 4 Processo 4 Tarefa filho excedeu os recursos alocados passada ao filho não é mais necessária 4 Processo pai está sendo finalizado, e alguns sistemas operacionais não permitem que o filho continue executando após o pai ter sido finalizado – Finalização em cascata Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 41 Prof. Natalia Castro Fernandes

Comunicação interprocessos n Processos em um sistema podem ser independentes ou cooperativos l Processos

Comunicação interprocessos n Processos em um sistema podem ser independentes ou cooperativos l Processos cooperativos podem afetar ou serem afetados por outros processos l Processos independentes não podem afetar ou serem afetados pela execução de outro processo n Razões para cooperação interprocessos l Compartilhamento de dados l Aumento da velocidade de computação l Modularidade l Conveniência Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 42 Prof. Natalia Castro Fernandes

Comunicação interprocessos n Cooperação entre processos depende da interprocess communication (IPC) n Dois modelos

Comunicação interprocessos n Cooperação entre processos depende da interprocess communication (IPC) n Dois modelos de IPC l Memória compartilhada l Troca de mensagens Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 43 Prof. Natalia Castro Fernandes

Modelos de comunicação Envio de mensagens Adaptado dos slides do livro Operating System Concepts

Modelos de comunicação Envio de mensagens Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 44 Memória compartilhada Prof. Natalia Castro Fernandes

Comunicação interprocessos – troca de mensagens n Mecanismo para processos se comunicarem e sincronizarem

Comunicação interprocessos – troca de mensagens n Mecanismo para processos se comunicarem e sincronizarem suas ações l Não usa memória compartilhada n Operações básicas: l send(mensagem) l receive(mensagem) n Se P e Q desejam se comunicar, eles precisam: Estabelecer um enlace de comunicação entre eles l Trocar mensagens via send e receive n Implementação do enlace de comunicação l físico (ex. , memória compartilhada, barramento de hardware) l lógico (ex. , propriedades lógicas) l Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 50 Prof. Natalia Castro Fernandes

Questões de implementação n Como os enlaces são estabelecidos? n Um mesmo enlace pode

Questões de implementação n Como os enlaces são estabelecidos? n Um mesmo enlace pode ser associado com mais de 2 processos? n Quantos enlaces podem existir entre cada par de processos comunicantes? n Qual a capacidade de um enlace? n O tamanho da mensagem deve ser fixo ou variável? n O enlace deve ser uni ou bidirecional? Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 51 Prof. Natalia Castro Fernandes

Comunicação direta n Processos precisam nomear uns aos outros explicitamente: l send (P, mensagem)

Comunicação direta n Processos precisam nomear uns aos outros explicitamente: l send (P, mensagem) – enviar a mensagem para o processo P l receive(Q, mensagem) – receber a mensagem do processo Q n Propriedades do enlace de comunicação l Enlaces são estabelecidos automaticamente l Um enlace é associado com exatamente um par de processos comunicantes l Entre cada par existe exatamente um enlace l O enlace pode ser unidirecional, mas usualmente é bidirecional Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 52 Prof. Natalia Castro Fernandes

Comunicação indireta n Mensagens são direcionadas e recebidas por meio de mailboxes (mais comumente

Comunicação indireta n Mensagens são direcionadas e recebidas por meio de mailboxes (mais comumente chamadas de portas) l Cada porta tem um identificador único l Processos podem se comunicar apenas se eles compartilham uma mailbox n Propriedades de um enlace de comunicação l Enlace estabelecido apenas se processos compartilham uma mailbox comum l Um enlace pode ser associado a diversos processos l Cada par de processos pode compartilhar diversos enlaces de comunicação l Enlaces podem ser uni ou bidirecionais Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 53 Prof. Natalia Castro Fernandes

Sincronização n Envio de mensagens pode ser tanto blocante quanto não- blocante n Operação

Sincronização n Envio de mensagens pode ser tanto blocante quanto não- blocante n Operação blocante é considerada síncrona l O send blocante bloqueia o emissor até que a mensagem seja recebida l O receive blocante bloqueia o receptor até que a mensagem esteja disponível n Operação não-blocante é considerada assíncrona l O emissor envia a mensagem e continua l O receptor recebe uma mensagem válida ou nulo Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 54 Prof. Natalia Castro Fernandes

Buffering n Fila de mensagens associadas a um enlace l Implementações 1. Capacidade 0

Buffering n Fila de mensagens associadas a um enlace l Implementações 1. Capacidade 0 4 Emissor 2. espera pelo receptor Capacidade limitada 4 Capacidade 4 Emissor 3. finita de n mensagens precisa esperar apenas se o enlace está cheio Capacidade não limitada 4 Enlace – com capacidade infinita Emissor nunca espera Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 55 Prof. Natalia Castro Fernandes

Exemplos em Python n Compartilhamento de variáveis l shared_mem. py a shared_memv 3. py

Exemplos em Python n Compartilhamento de variáveis l shared_mem. py a shared_memv 3. py l OBS: 4 Lista – – Estrutura de dados de python Funciona como um vetor 4 Multiprocessing – Queue() – Cria fila compartilhada » – – API para processos cooperativos put(), get() Process(codigo do novo processo, argumentos) » start(), is_alive() n Compartilhamento de variáveis l shared_memv 4. py Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 60 Prof. Natalia Castro Fernandes

Exemplos em Python n Compartilhamento de variáveis l shared_memv 4. py 4 Multiprocessing –

Exemplos em Python n Compartilhamento de variáveis l shared_memv 4. py 4 Multiprocessing – Value(tipo, valor) --- compartilhando um número – Array(tipo, lista) – Join() – Bloqueia o pai até o filho terminar » Shared_memv 4 b. py Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 61 Prof. Natalia Castro Fernandes

Comunicação em sistemas cliente-servidor n Sockets n Remote Procedure Calls n Pipes Adaptado dos

Comunicação em sistemas cliente-servidor n Sockets n Remote Procedure Calls n Pipes Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 62 Prof. Natalia Castro Fernandes

Sockets n Um socket é definido como um ponto de extremidade para a comunicação

Sockets n Um socket é definido como um ponto de extremidade para a comunicação n Concatenação de IP e porta l Exemplo: 4 O socket 161. 25. 19. 8: 1625 se refere a porta 1625 no host 161. 25. 19. 8 n A comunicação consiste de um par de sockets Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 63 Prof. Natalia Castro Fernandes

Comunicação por socket Adaptado dos slides do livro Operating System Concepts – 8 th

Comunicação por socket Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 64 Prof. Natalia Castro Fernandes

Remote Procedure Calls n Remote procedure call (RPC) abstraem chamadas de procedimento entre processos

Remote Procedure Calls n Remote procedure call (RPC) abstraem chamadas de procedimento entre processos em sistemas em rede n Stubs – Proxy no lado do cliente/servidor l O stub do lado cliente localiza o servidor e encaminha os parâmetros l O stub no lado servidor recebe essa mensagem, desempacota os parâmetros recebidos e desempenha o procedimento no servidor Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 65 Prof. Natalia Castro Fernandes

Execução do RPC Adaptado dos slides do livro Operating System Concepts – 8 th

Execução do RPC Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 66 Prof. Natalia Castro Fernandes

Pipes n Atua como um condutor permitindo que dois processos se comuniquem n Questões

Pipes n Atua como um condutor permitindo que dois processos se comuniquem n Questões l A comunicação é uni ou bidirecional? l No caso da comunicação bidirecional, ela é half ou full-duplex? l É necessário existir uma relação (pai-filho) entre os processos comunicantes? l O pipe pode funcionar através da rede? Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 67 Prof. Natalia Castro Fernandes

Pipes comuns n Pipes comuns permitem a comunicação em um estilo produtor- consumidor padrão

Pipes comuns n Pipes comuns permitem a comunicação em um estilo produtor- consumidor padrão n Funcionamento l O produtor escreve em uma ponta do pipe l O consumidor lê a saída na outra ponta 4 Portanto, l pipes comuns são unidirecionais Requerem relação de pai-filho entre processos comunicantes Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 68 Prof. Natalia Castro Fernandes

Pipes nomeados n Pipes nomeados são mais potentes que pipes comuns l Comunicação bidirecional

Pipes nomeados n Pipes nomeados são mais potentes que pipes comuns l Comunicação bidirecional l Não há necessidade de relação pai-filho l Pode ser usado por diversos processos l Disponível tanto em UNIX quanto em Windows Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 70 Prof. Natalia Castro Fernandes

Exemplos em Python n Pipe l Ex-pipe. py n Socket l Socket-client. py e

Exemplos em Python n Pipe l Ex-pipe. py n Socket l Socket-client. py e socket-server. py Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 71 Prof. Natalia Castro Fernandes

Exercícios n Livro: l Capítulo 3 4 6, 7, 9, 10, 11, 12, 13

Exercícios n Livro: l Capítulo 3 4 6, 7, 9, 10, 11, 12, 13 Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 72 Prof. Natalia Castro Fernandes

Fim do capítulo 3 Adaptado dos slides do livro Operating System Concepts – 8

Fim do capítulo 3 Adaptado dos slides do livro Operating System Concepts – 8 th Edition Prof. Natalia Castro Fernandes