Sistemas Operativos. Processos cooperantes e processos independentes

Documentos relacionados
Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos

Programação concorrente (processos e threads)

Vamos fazer um pequeno experimento

Fundamentos de Sistemas Operacionais

Função Fundamental do SO

Sistemas Operativos. Objetivo. Entrega do Questionário. Exercício 1. Exercício 2. Exercício 3. Exercício 4. Grupo 1 Introdução

Comunicação entre Processos

O NÍVEL DE LIGAÇÃO DE DADOS. Nível de ligação de dados Controle de Fuxo Detecção de erros Controle de Erros

Canais de Comunicação

LEIC/LERC 2011/12-1º Exame de Sistemas Operativos 16/Janeiro/2012

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

TAREFAS COMUNICAÇÃO ENTRE TAREFAS AULA 08 Sistemas Operacionais Gil Eduardo de Andrade

Só podem ser executados por uma Thread que detenha o lock do objecto

Trincos Lógicos: Implementações. Trincos lógicos: Propriedades

Sistemas Operativos. Luís Paulo Reis. Sistemas Operativos. Sumário

Sincronização e Comunicação entre Processos

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C SISTEMAS OPERATIVOS

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Sistemas Operacionais. Comunicação entre processos

Sincronização e Comunicação entre Processos. Adão de Melo Neto

SISTEMAS DISTRIBUÍDOS PROCESSOS. Slides cedidos pela professora Aline Nascimento

Problema do Produtor -Consumidor. Solução por semáforos

Sistemas Operacionais

Sockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets

Aula 09. Módulos de Entrada e Saída

Comunicação entre Processos

Sistemas Distribuídos Aula 7

Sincronização. Objectivos da aula de hoje

Processos ca 3 pítulo

Especificação, Modelação e Projecto de Sistemas Embutidos

Programação de Sistemas

Programação de Sistemas

Sistemas Operacionais: Sincronização entre processos

Anexo II Sistema BPnet. DESCRIÇÃO DO SISTEMA BPnet

LEIC/LERC 2008/09 Primeiro Teste de Sistemas Operativos

Gestão de Memória. Espaço de Endereçamento

Jornal Oficial da União Europeia L 146/7

Arquitetura de Sistemas Operativos

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Conceitos de Linguagens de Programação

Sistemas Operacionais. Prof. André Y. Kusumoto

Sincronização e Comunicação entre Processos. Adão de Melo Neto

COMUNICAÇÃO ENTRE PROCESSOS

Sistemas Distribuídos

Sistemas Distribuídos Aula 3

Exclusão Mútua (mutex)

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 6 de Janeiro de o Teste A

Sumário. Sistemas Operativos 1

IBM WebSphere MQ. Introdução

Sincronização. Cooperação entre Processos

LEIC/LERC 2008/09. Repescagem do Primeiro Teste de Sistemas Operativos

Fundamentos de Sistemas Operacionais

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Arquitetura de Computadores. Processamento Paralelo

Comunicação entre processos COMUNICAÇÃO ENTRE PROCESSOS. Comunicação entre processos - troca de mensagens

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

Comunicação entre processos (2)

Segurança em Sistemas Operativos

Sistemas Operativos I/O. Rui Maranhão

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

Ordenação. Relógios lógicos

Sincronização. Cooperação entre Processos

Transcrição:

Processos (complementos) Processos cooperantes e processos independentes! Os processos que se executam de forma concorrente podem ser: Cooperantes podem afectar ou ser afectados pela execução de outros processos Independentes não interferem com outros processo! Motivos para permitir a cooperação entre processo Partilha de informação Aumento de desempenho Etc. 2 1

Modelo de comunicação entre processos! A comunicação entre processos pode geralmente reduzir-se a uma interacção entre um produtor e um consumidor de informação O processo produtor gera informação que envia a um processo consumidor! O modelo pode ser generalizado considerando vários processos produtores de informação que comunicam com um consumidor ou com um conjunto de consumidores! Como em qualquer sistema de comunicação, a transferência de informação é suportada por um canal ou ligação 3 Comunicação entre processos! A cooperação entre processos exige mecanismos para permitir que os processos comuniquem entre si (troca de informação) e sincronizem as suas acções! A comunicação entre processos pode ser conseguida utilizando: Memória partilhada esta zona de memória faz parte simultaneamente do espaço de endereçamento de 2 ou mais processos Outro recurso de comunicação entre processos (IPC InterProcess Communication) fornecido pelo sistema 4 2

Solução com memória partilhada - buffer limitado 5 Dados partilhados #define n ; typedef item; item buffer[n-1] ; int in, out; Produtor do{ produzir um item em nextp while (((in+1) % n)==out) ; buffer[in]=nextp; in:=(in+1) % n; } while 1; Utilização de uma linguagens algorítmica (muito semelhante à linguagem C) Consumidor do{ while (in==out) do ; nextc:=buffer[out]; out=(out+1) % n; consumir o item em nextc }while 1; Memória partilhada 6! O sistema tem que permitir que 2 processos possam considerar simultaneamente uma zona de memória como pertencendo ao seu espaço de endereçamento Nalguns sistemas é impossível a partilha do espaço de endereçamento! É o mecanismo mais simples de implementar um canal de comunicação entre dois processos! A sincronização entre os processos tem que ser explicitamente programada (veremos posteriormente como a sincronização entre processos cooperativos pode ser implementada de forma eficiente em um ambiente de memória partilhada) 3

Outro recurso de comunicação entre processos (IPC) troca de mensagens! Oferecidos directamente pelo sistema (normalmente) O sistema fornece objectos que normalmente têm capacidade de armazenamento temporária de mensagens (armazenamento no espaço de endereçamento do núcleo), e que são controladas pelo sistema (que efectua a sincronização e faz as transferências de informação) O processo produtor coloca informação na caixa de correio que, por sua vez, é retirada pelo consumidor A sincronização mais habitual:! O produtor da mensagem bloqueia-se quando a caixa de correio está cheia! E o consumidor sempre que não existam mensagens para ler! Este tipo de recurso de IPC pode ser implementado de diferentes formas e a utilização, como parece obvio, apresenta diferenças de sistema para sistema! Operações básicas deste recurso de IPC enviar(mensagem) e receber(mensagem) 7 Troca de mensagens Questões de implementação! A dimensão das mensagens que a ligação pode acomodar é fixa ou variável Mensagens de dimensão variável facilitam a utilização mas dificultam a implementação! Comunicação directa ou comunicação indirecta Na comunicação directa um canal é associado implicitamente a um processo, por outro lado, na comunicação indirecta os canais são criados explicitamente (resultando em objectos do tipo caixas de correio)! Comunicação simétrica ou assimétrica (no endereçamento) Na comunicação simétrica os processos de envio e recepção precisam de se identificar mutuamente, por outro lado, na comunicação assimétrica apenas o remetente identifica o destinatário! Bufferização automática ou explícita! Envio por cópia ou por referência 8 4

Troca de mensagens Comunicação directa! Troca de mensagens Variante simétrica! enviar(p, mensagem) envia uma mensagem ao processo P! receber(q, mensagem) recebe uma mensagem do processo Q Variante assimétrica! enviar(p, mensagem) envia uma mensagem ao processo P! receber(id, mensagem) recebe uma mensagem de qualquer processo, guardando em id o seu identificador! Desvantagem necessidade de actualizações de referências a processos quando o seu nome muda! Propriedades do canal de comunicação As ligações são estabelecidas automaticamente Uma ligação é associada exactamente a um par de processos Entre cada par existe exactamente uma ligação A ligação pode ser unidireccional mas é, em geral, bidireccional 9 Troca de mensagens Comunicação indirecta! As mensagens são trocadas através de caixas de correio ou portos Enviar(A, mensagem) envia uma mensagem para a caixa de correio A Recever(A, mensagem) recebe uma mensagem da caixa de correio A! Propriedades do canal de comunicação A ligação é estabelecida apenas se os processos partilham uma caixa de correio Uma ligação pode ser associada a mais de dois processos Dois processos podem partilhar mais de uma ligação As ligações podem ser unidireccionais ou bidireccionais 10 5

Bufferização na troca de mensagens! As mensagens que são trocadas pelos processos em comunicação residem numa fila! Formas de implementar a fila Capacidade 0 o emissor tem de esperar que o receptor receba a mensagem Capacidade limitada o emissor tem de esperar se a ligação estiver cheia Capacidade não limitada o emissor nunca espera 11 Classifique com V ou F as afirmações seguintes: 12 a) Um processo executa-se dentro de um espaço de endereçamento bem delimitado b) O espaço de memória de um processo é constituído por uma zona acessível em modo utilizador e outra acessível apenas em modo supervisor c) A estrutura designada por bloco de controlo do processo contém a informação associada a um processo que é gerida em modo monitor d) A restrição do repositório de instruções e o confinamento dos processos a espaços de endereçamento limitados são a base dos mecanismos de protecção que o sistema operativo implementa e) Os mecanismos de protecção, que o sistema operativo implementa, devem garantir que um processo nunca poderá interferir com outro 6