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

3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

Embed Size (px)

Citation preview

Page 1: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.1 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Interrupções

Interrupção por hardware ou interrupção assíncrona Ocorrência de evento externo Não existe troca de parâmetros ou retorno com programa interrompido Ex.: interrupção de relógio, término de E/S

Interrupções síncronas ou traps Interrupção por software

Execução de instrução específica– Chamada de sistema

Interrupção por exceção (hardware ou software) Síncrona Erros de execução

Proteção, underflow, overflow (hardware) Indicados pelo software

Quando se fala em interrupção, em geral, se

refere apenas à interrupção assíncrona

Alguns autores não citam o termo interrupção

A maioria dos autores não classifica como interrupção

Page 2: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.2 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Interrupções

Chaveamento de modos: Interrupção por software

modo usuário →modo protegido Instrução de retorno

modo protegido →modo usuário

Processo do usuário

Sistema operacional

Modo usuário

Modo protegido

oumodo kernel

Interrupção por software

(Trap)

Instrução de retorno

OBS: O trap é uma instrução.

Page 3: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.3 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Exceção

Exemplos em python:

try-catch.py a try-catchv4.py

Page 4: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.4 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Exercícios

Capítulo 1 8,10,22,24,25,26,27

Capítulo 2 1,7,9,13,18,21,23

Page 5: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Capítulo 3: Processos

Page 6: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.6 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Capítulo 3: Processos

Conceito de processos Escalonamento de processos Comunicação interprocessos Exemplos de sistemas IPC Comunicação em sistemas cliente-servidor

Page 7: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.7 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Objetivos

Introduzir a noção de processo

Descrever as várias características de um processo, incluindo escalonamento, criação, término e comunicação

Descrever a comunicação em sistemas cliente-servidor

Page 8: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.8 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Conceito de processo

Alguém saberia definir o que é um processo?

Page 9: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.9 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Conceito de processo

Um sistema operacional executa uma variedade de programas: Sistemas em lote

Jobs Sistemas de tempo compartilhado

Tarefas ou programas de usuário

Processo Programa em execução

Execução sequencial Inclui:

Contador de programa Pilha Seção de dados

job ~ processo

Page 10: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.10 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

O processo

Contém múltiplas partes

Código, também chamado de seção de texto

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

Mem

óri

a

Pilha com dados temporários• Parâmetros de funções,

endereço de retorno, variáveis locais

Seção de dadosContém variáveis globais

Heap • Memória alocada dinamicamente

?

Page 11: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.11 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

O processo

Programa x processo Programa é passivo Processo é ativo

O programa se torna um processo quando é carregado na memória

Sistema Operacional

Execute A

A

Busca programa no disco

Carrega programa na memória

Processo é criado!Disco

Memória

Usuário

A

Page 12: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.12 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

O processo

Execução de um programa Iniciada por clicks de mouse na interface gráfica (GUI), pela linha de

comando etc.

Um programa pode ser vários processos Exemplo: Múltiplos usuários executando o mesmo programa.

Page 13: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.13 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Estado do processo

Um processo tem estado Modificado enquanto o processo executa

Novo

Processo que está sendo criado

• Alocação de recursos

Page 14: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.14 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Estado do processo

Um processo tem estado Modificado enquanto o processo executa

NovoProcesso que está

esperando para ser atribuído ao processador

Pronto

Sistema operacional admite um novo processo

• Fila de processos que querem usar a CPU

• Apenas um processo por vez na CPU

Page 15: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.15 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Estado do processo

Um processo tem estado Modificado enquanto o processo executa

Novo

Instruções do processo sendo executadas na CPU

Pronto Em execução

Interrupção de clock definindo o fim do período de uso de CPU do processo

Escalonador do sistema operacional define que o

processo pode utilizar a CPU

Page 16: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.16 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Estado do processo

Um processo tem estado Modificado enquanto o processo executa

Novo

Processo esperando a ocorrência de algum evento (fim de operação

de I/O ou recebimento de sinal)

Pronto

Em espera

Processo espera por um evento e libera a CPU

Conclusão de evento

Em execução

Page 17: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.17 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Estado do processo

Um processo tem estado Modificado enquanto o processo executa

Novo

Processo que terminou a sua execução

Pronto

Em espera

Encerrado

Em execução

• Liberação de recursos

Processo é finalizado e sai da memória

Page 18: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.18 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Recursos do processo

Estado novo Alocação de recursos

Quais recursos?

memória + bloco de controle de processo

???

Page 19: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.19 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Bloco de controle de processo (Process Control Block - PCB)

Informação associada a cada processo Estado do processo Novo, pronto, em

execução, em espera ou terminado

Page 20: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.20 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Bloco de controle de processo (Process Control Block - PCB)

Informação associada a cada processo Estado do processo Contador de programa Número que indica a

próxima instrução a ser executada

Page 21: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.21 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Bloco de controle de processo (Process Control Block - PCB)

Informação associada a cada processo Estado do processo Contador de programa Registradores de CPU Informações usadas

durante a execução do processo

Page 22: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.22 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Bloco de controle de processo (Process Control Block - PCB)

Informação associada a cada processo Estado do processo Contador de programa Registradores de CPU Informação de escalonamento de CPU

Dados para escolher o próximo processo a ser

executado

Page 23: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.23 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Bloco de controle de processo (Process Control Block - PCB)

Informação associada a cada processo Estado do processo Contador de programa Registradores de CPU Informação de escalonamento de CPU Informação de gerenciamento de memória

Controle da memória alocada ao processo

Page 24: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.24 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Bloco de controle de processo (Process Control Block - PCB)

Informação associada a cada processo Estado do processo Contador de programa Registradores de CPU Informação de escalonamento de CPU Informação de gerenciamento de memória Informação de uso (contabilização) Informação de estado de I/O

Page 25: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.25 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Process Control Block (PCB)

Page 26: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.26 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Troca de contexto

Processo P0 Sistema Operacional Processo P1

Interrupção ou chamada de sistema

Salva estado em PCB0

Salva estado em PCB1

Interrupção ou chamada de sistema

Recarrega estado de PCB1

Recarrega estado de PCB0

Em execução

Em execução

Em execução

Em espera

Em espera

Em espera

......

Page 27: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.27 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Escalonamento de processos

Objetivos Maximar o uso de CPU Trocar rapidamente os processos na CPU para fazer

compartilhamento de tempo

Page 28: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.28 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Escalonamento de processos

Escalonador de processos Escolher entre os processos qual será o próximo a ser

executado pela CPU 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

Processos são movidos entre as diversas filas

Page 29: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.29 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Fila de prontos e filas de dispositivos

Page 30: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.30 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Representação do escalonamento de processos

CPUFila de prontos

Pedido de I/OFila de I/OI/O

Fim da fatia de tempo

Cria processo filho

Espera por interrupção

Filho executa

Interrupção ocorre

Page 31: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.31 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Escalonadores

Escalonador de longo prazo (ou escalonador de jobs) Seleciona quais processos devem ser trazidos a fila de

prontos Não é chamado com grande frequência

Pode ser lento

Escalonador de curto prazo (ou escalonador de CPU) Seleciona qual o próximo processo a ser executado e aloca

a CPU Muitas vezes, é o único escalonador no sistema Chamado com alta frequência (ms)

Precisa ser rápido

Define o grau de multiprogramação

Page 32: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.32 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Escalonadores

Processos podem ser descritos como: Processos limitados por I/O

Gastam mais tempo com I/O do que com uso de CPU Diversas rajadas de uso de CPU curtas

Processos limitados por CPU Gastam mais tempo com uso de CPU Poucas rajadas longas de uso de CPU

Page 33: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.33 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Troca de Contexto

Processo de troca de processos na CPU Salva o estado atual do processo em execução Carrega estado de novo processo

O contexto de um processo é representado pelo seu PCB

Page 34: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.34 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Troca de Contexto

Tempo de troca de contexto é sobrecarga Tempo de troca de processos não é considerado tempo útil do

sistema Quanto mais complexo o sistema operacional e o PCB, maior

o tempo de troca Tempo de troca depende de suporte de hardware

Alguns hardwares provêem múltiplos conjuntos de registradores por CPU– Possibilidade de fazer várias carregamentos de

contexto simultaneamente

Page 35: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.35 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Criação de processos

Processo pai cria processos filhos, os quais, por sua vez, podem criar outros processos, criando uma árvore de processos Cada processo é identificado por um identificador de processo

(pid) Compartilhamento de recursos

Possibilidades Pai e filhos compartilham todos os recursos Filhos compartilham parte dos recursos do pai Pai e filhos não compartilham recursos

Execução Possibilidades

Pai e filhos executam concorrentemente Pai espera até o fim da execução dos filhos

Page 36: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.36 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Criação de processos

Espaço de endereçamento Possibilidades

Filhos são cópias do pai Filhos tem um programa diferente carregado na sua área de

código Exemplos no UNIX

Chamada de sistema fork cria novos processos A chamada de sistema exec é chamada após o fork para

sobrescrever o espaço de memória com um novo programa

Page 37: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.37 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Criação de processos

Page 38: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.38 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

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;

}

Exemplos em Python:

teste_fork3.py até teste_fork7.py

Atenção!!!!!O fork só funciona em Linux para Python

Page 39: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.39 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Árvore de processos no Solaris

Page 40: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.40 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Finalização de processos

Processo executa a sua última linha e pede ao sistema operacional para deletá-lo (exit) Recursos do processos são desalocados pelo sistema

operacional Processo pai pode terminar a execução de um processo filho

(abort) Exemplos de motivação

Processo filho excedeu os recursos alocados Tarefa passada ao filho não é mais necessária 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

Page 41: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.41 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Comunicação interprocessos

Processos em um sistema podem ser independentes ou cooperativos Processos cooperativos podem afetar ou serem afetados por

outros processos Processos independentes não podem afetar ou serem

afetados pela execução de outro processo Razões para cooperação interprocessos

Compartilhamento de dados Aumento da velocidade de computação Modularidade Conveniência

Page 42: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.42 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Comunicação interprocessos

Cooperação entre processos depende da interprocess communication (IPC)

Dois modelos de IPC Memória compartilhada Troca de mensagens

Page 43: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.43 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Modelos de comunicação

Envio de mensagens Memória compartilhada

Page 44: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.44 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Problema do produtor-consumidor

Paradigma para processos cooperativos O processo produtor produz informação que é

consumida pelo processo consumidor

Variações Buffer não limitado Buffer limitado

Page 45: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.45 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Solução com buffer limitado e memória compartilhada

Dados compartilhados

#define BUFFER_SIZE 10

typedef struct {

. . .

} item;

item buffer[BUFFER_SIZE];

int in = 0;

int out = 0;

Solução a seguir é correta, mas permite apenas que se use BUFFER_SIZE-1 elementos

Solução em C

Page 46: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.46 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Produtor com buffer limitado

while (true) { /* Produce an item */

while (((in = (in + 1) % BUFFER SIZE count) == out)

; /* do nothing -- no free buffers */

buffer[in] = item;

in = (in + 1) % BUFFER SIZE;

}

Page 47: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.47 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Consumidor com buffer limitado

while (true) {

while (in == out)

; // do nothing -- nothing to consume

// remove an item from the buffer

item = buffer[out];

out = (out + 1) % BUFFER SIZE;

return item;

}

Page 48: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.48 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Entendendo o problema e a solução

Quadro!

Page 49: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.49 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Comunicação interprocessos – troca de mensagens

Mecanismo para processos se comunicarem e sincronizarem suas ações Não usa memória compartilhada

Operações básicas: send(mensagem) receive(mensagem)

Se P e Q desejam se comunicar, eles precisam: Estabelecer um enlace de comunicação entre eles Trocar mensagens via send e receive

Implementação do enlace de comunicação físico (ex., memória compartilhada, barramento de hardware) lógico (ex., propriedades lógicas)

Page 50: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.50 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Questões de implementação

Como os enlaces são estabelecidos? Um mesmo enlace pode ser associado com mais de 2 processos? Quantos enlaces podem existir entre cada par de processos

comunicantes? Qual a capacidade de um enlace? O tamanho da mensagem deve ser fixo ou variável? O enlace deve ser uni ou bidirecional?

Page 51: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.51 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Comunicação direta

Processos precisam nomear uns aos outros explicitamente: send (P, mensagem) – enviar a mensagem para o processo P receive(Q, mensagem) – receber a mensagem do processo Q

Propriedades do enlace de comunicação Enlaces são estabelecidos automaticamente Um enlace é associado com exatamente um par de processos

comunicantes Entre cada par existe exatamente um enlace O enlace pode ser unidirecional, mas usualmente é bidirecional

Page 52: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.52 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Comunicação indireta

Mensagens são direcionadas e recebidas por meio de mailboxes (mais comumente chamadas de portas) Cada porta tem um identificador único Processos podem se comunicar apenas se eles compartilham

uma mailbox

Propriedades de um enlace de comunicação Enlace estabelecido apenas se processos compartilham uma

mailbox comum Um enlace pode ser associado a diversos processos Cada par de processos pode compartilhar diversos enlaces de

comunicação Enlaces podem ser uni ou bidirecionais

Page 53: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.53 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Sincronização

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

Operação blocante é considerada síncrona O send blocante bloqueia o emissor até que a mensagem

seja recebida O receive blocante bloqueia o receptor até que a mensagem

esteja disponível Operação não-blocante é considerada assíncrona

O emissor envia a mensagem e continua O receptor recebe uma mensagem válida ou nulo

Page 54: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.54 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Buffering

Fila de mensagens associadas a um enlace Implementações

1. Capacidade 0 Emissor espera pelo receptor

2. Capacidade limitada Capacidade finita de n mensagens Emissor precisa esperar apenas se o enlace está cheio

3. Capacidade não limitada Enlace com capacidade infinita

– Emissor nunca espera

Page 55: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.59 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Exemplos em Python

Compartilhamento de variáveis shared_mem.py a shared_memv3.py OBS:

Lista – Estrutura de dados de python– Funciona como um vetor

Multiprocessing – API para processos cooperativos– Queue() – Cria fila compartilhada

» put(), get()– Process(codigo do novo processo, argumentos)

» start(), is_alive() Compartilhamento de variáveis

shared_memv4.py

Page 56: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.60 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Exemplos em Python

Compartilhamento de variáveis shared_memv4.py

Multiprocessing– Value(tipo, valor) --- compartilhando um número– Array(tipo,lista)– Join() – Bloqueia o pai até o filho terminar

» Shared_memv4b.py

Page 57: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.61 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Comunicação em sistemas cliente-servidor

Sockets

Remote Procedure Calls

Pipes

Page 58: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.62 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Sockets

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

Concatenação de IP e porta Exemplo:

O socket 161.25.19.8:1625 se refere a porta 1625 no host 161.25.19.8

A comunicação consiste de um par de sockets

Page 59: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.63 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Comunicação por socket

Page 60: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.64 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Remote Procedure Calls

Remote procedure call (RPC) abstraem chamadas de procedimento entre processos em sistemas em rede

Stubs – Proxy no lado do cliente/servidor O stub do lado cliente localiza o servidor e encaminha os

parâmetros O stub no lado servidor recebe essa mensagem, desempacota

os parâmetros recebidos e desempenha o procedimento no servidor

Page 61: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.65 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Execução do RPC

Page 62: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.66 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Pipes

Atua como um condutor permitindo que dois processos se comuniquem

Questões A comunicação é uni ou bidirecional? No caso da comunicação bidirecional, ela é half ou full-duplex? É necessário existir uma relação (pai-filho) entre os processos

comunicantes? O pipe pode funcionar através da rede?

Page 63: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.67 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Pipes comuns

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

Funcionamento O produtor escreve em uma ponta do pipe O consumidor lê a saída na outra ponta

Portanto, pipes comuns são unidirecionais Requerem relação de pai-filho entre processos comunicantes

Page 64: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.69 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Pipes nomeados

Pipes nomeados são mais potentes que pipes comuns Comunicação bidirecional Não há necessidade de relação pai-filho Pode ser usado por diversos processos Disponível tanto em UNIX quanto em Windows

Page 65: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.70 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Exemplos em Python

Pipe Ex-pipe.py

Socket Socket-client.py e socket-server.py

Page 66: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

3.71 Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Exercícios

Livro: Capítulo 3

6,7,9,10,11,12,13

Page 67: 3.1 Prof. Natalia Castro Fernandes Adaptado dos slides do livro Operating System Concepts – 8 th Edition Interrupções Interrupção por hardware ou interrupção

Prof. Natalia Castro FernandesAdaptado dos slides do livro Operating System Concepts – 8th Edition

Fim do capítulo 3