Sincronização e Comunicação

Documentos relacionados
Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 28

Comunicação entre processos

Comunicação entre Processos

Sistemas Operacionais. Comunicação entre processos

Sistemas Operacionais. Condição de corrida e Região crítica

Sistemas Operacionais

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

Inversão de prioridades

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

Sincronização de Processos (2)

Sistemas Operacionais: Sincronização entre processos

Comunicação entre processos (2)

Programação concorrente (processos e threads)

Concorrência. Condições de Corrida. 5a. Tentativa. Dificuldades: Sincronização de Processos (2) Aula 11 Profa. Patrícia Dockhorn Costa

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

Tipos de Soluções (cont.)

7 SINCRONIZAÇÃO DE PROCESSOS

Sistemas Operacionais. Concorrência

Programação Concorrente Locks

Sistemas de Entrada e Saída

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

Sistemas Operacionais

Sistemas de Entrada e Saída

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Unidade 3. Controle de Concorrência. Primitivas de Programação Concorrente Clássica

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 6. Primitivas de Sincronização

Exclusão Mútua (mutex)

Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 12 - Threads e Concorrência em Java

Solução para o Problema do Produtor-Consumidor

Programação Concorrente

Sistemas de Tempo Real e Tolerante a Falhas

Sincronização e comunicação entre processos

Sistemas Operacionais

Sincronização e comunicação entre entidades de processamento. Mutex Volnys Bernal 1. Tópicos. Exclusão Mútua (mutex) Exclusão Mútua (Mutex)

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Sistemas Operacionais

Introdução a Sistemas Operacionais. Adão de Melo Neto

Programação Concorrente. Prof. Hugo Vieira Neto

Tipos de Soluções (cont.)

Capítulo 2 Processos e Threads

Chamadas de Sistema (SYSCALL)

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Sistemas de Entrada e Saída

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

Programação Orientada a Objetos. Concorrência

Capítulo 3. Programação Concorrente. Conteúdo. Objetivos. Recordando. Recordando. Objetivos de sistema operacional. DCA-108 Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

Gerência de Memória. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 45

DinnerRace: Um simulador para técnicas de exclusão mútua através do problema do Jantar dos Filósofos

LINGUAGENS LÓGICAS E PROGRAMAÇÃO CONCORRENTE

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

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C SISTEMAS OPERATIVOS

Sistemas Operacionais

Threads e Sincronização no Linux

Introdução Aplicações Concorrentes Especificação de Concorrência em Programas Problemas de Compartilhamento de Recursos Exclusão Mútua Sincronização

Sincronização e Comunicação entre Processos. Sincronização e Comunicação Volnys Bernal 1. Agenda

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

Sistemas Distribuídos Aula 5

Sistemas Distribuídos

Transcrição:

Sincronização e Comunicação Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 28

Sumário 1 Concorrência 2 Sistemas Multiprogramáveis Troca de mensagens 2 / 28

Concorrência 1 Concorrência 2 Sistemas Multiprogramáveis Troca de mensagens 3 / 28

Concorrência Concorrência Paradigma: controlar/restringir o acesso ao recurso em determinado espaço de tempo; O controle de acesso aos recursos é realizado através de eventos; Eventos inesperados pode causar um desvio inesperado no uxo de execução. Denição [Chagas, 2016]: 1 O programa perde o uso do processador; 2 O programa retorna para continuar o processamento; 3 O estado do programa deve ser idêntico ao do momento em que foi interrompido. O programa continua a execução exatemente na instrução seguinte. 4 / 28

Concorrência Troca de Contexto Figura 1.1: Troca de Contexto [Favacho, 2009] 5 / 28

Concorrência Sincronia O modelo é dito síncrono porque as saídas do sistema podem ser vistas como sincronizadas com as suas entradas. [FARINES and MELO, 2000] Uma das características mais importantes encontrada nos modelos síncronos é a rejeição do não determinismo. [FARINES and MELO, 2000, p.105] Determinismo Para cada estado do programa, existe somente uma possibilidade para a função de transição (próximo estado); Não determinismo Podem existir várias escolhas para o próximo estado em qualquer ponto. 6 / 28

Concorrência Estados dos processos Figura 1.2: Estados dos processos [Chagas, 2016] 7 / 28

Concorrência Interrupção e Exceção Concorrência: controlar/restringir o acesso ao recurso; O controle de acesso aos recursos é realizado através de eventos; Eventos inesperados pode causar um desvio inesperado no uxo de execução. Interrupção Realizada por algum evento externo ao programa, independente da instrução. Podem ser geradas por eventos assíncronos; Até várias vezes ao mesmo tempo. Exceção Erro na instrução de algum programa. Ex.: falha de segmentação (segfault). Sempre gerada por um evento síncrono; Depende de instrução do próprio programa; Somente um evento de cada vez. 8 / 28

Concorrência Interrupção Geradas por eventos assíncronos; Diversos dispositivos podem informar ao processador que estão prontos. Figura 1.3: Tratamento de Interrupção [Chagas, 2016] 9 / 28

Concorrência Exceção Gerada por um evento síncrono; Considerando a mesma entrada, a exceção ocorrerá sempre na mesma instrução. Figura 1.4: Tratamento de Exceção [Chagas, 2016] 10 / 28

1 Concorrência 2 Sistemas Multiprogramáveis Troca de mensagens 11 / 28

Programação concorrente Na programação concorrente existe mais de uma tarefa sendo executada ao mesmo tempo. Ex.: Fatorial No caso de múltiplas tarefas é necessário haver comunicação entre elas. As tarefas compartilham área de memória; Troca de mensagens Sinais trocados entre processos. 12 / 28

Comunicação entre processos Gerência de recursos de memória compartilhada: condição de corrida Exclusão mútua; Semáforo; Monitor. Comunicação por troca de mensagens: deadlocks Leitura assíncrona; Método rendezvous. 13 / 28

1 Concorrência 2 Sistemas Multiprogramáveis Troca de mensagens 14 / 28

Condição de corrida Situações onde dois ou mais processos estão acessando dados compartilhados, e o resultado nal do processamento depende de quem roda quando. Figura 2.1: Exemplo da condição de corrida 15 / 28

Solução para condição de corrida Uma boa solução para a condição de corrida requer quatro condições [Favacho, 2009]: 1 Dois ou mais processos não podem estar simultaneamente dentro de suas regiões críticas correspondentes; 2 Nenhuma consideração pode ser feita a respeito da velocidade relativa dos processos, ou a respeito do número de processadores disponíveis no sistema; 3 Nenhum processo que esteja executando fora de sua região crítica pode bloquear a execução de outro processo; 4 Nenhum processo pode ser obrigado a esperar indenidamente para entrar em sua região crítica. 16 / 28

Exclusão mútua [Chagas, 2016] Solução: impedir que mais de um processo acesse o dado ao mesmo tempo. Deve ser executada somente quando um dos processos estiver acessando o recurso compartilhado; A parte do código onde o acesso ao recurso é feito é chamada de região crítica. Figura 2.2: Região crítica 17 / 28

Soluções para exclusão mutua I Inibição das interrupções Inibir as interrupções de cada processo logo após o ingresso na região crítica, habilitando-as novamente após deixá-las. Desabilitar interrupções deve ser uma atribuição do kernel; Interferir no kernel pode não ser uma boa ideia. Variáveis de travamento (locks) Utilização de variável única compartilhada (lock) que pode assumir 0 ou 1. Se dois processos chegam ao mesmo tempo? Condição de corrida. 18 / 28

Soluções para exclusão mutua II Chaveamento obrigatório Utiliza a variável inteira turn [Tanenbaum and Machado Filho, 1995]. A variável turn indica a vez de quem é de entrar na região crítica; Se um dos processos for mais lento que o outro requer a solução estritamente alternada; Espera ocupada: teste contínuo do valor esperando por uma mudança. Listing 1: a w h i l e (TRUE) { w h i l e ( t u r n!=0) / ç l a o / c r i t i c a l _ r e g i o n ( ) ; t u r n = 1 ; n o n _ c r i t i c a l _ r e g i o n ( ) ; } Listing 2: b w h i l e (TRUE) { w h i l e ( t u r n!=1) / ç l a o / c r i t i c a l _ r e g i o n ( ) ; t u r n = 0 ; 5 n o n _ c r i t i c a l _ r e g i o n ( ) ; } 19 / 28

Problema do produtor-consumidor Dois processos compartilham um buer de tamanho xo; Um põe a informação dentro do buer: produtor; Outro retira a informação do buer: consumidor; Problema: produtor quer colocar um item no buer, mas já está cheio; Solução: colocar o produtor para dormir (sleep) e só acordar quando o consumidor remover um ou mais itens; Grande possibilidade de gerar condição de corrida: perda do envio de sinal para acordar (wakeup) quando o processo ainda não está dormindo. 20 / 28

Semáforos [Favacho, 2009] Baseado em um tipo de variável que possui dois estados: UP e DOWN. 1 O semáforo ca associado a um recurso compartilhado; 2 Se o valor da variável semáforo for diferente de zero, nenhum processo está utilizando o recurso; caso contrário,o processo ca impedido do acesso; 3 Sempre que deseja entrar em sua região crítica, o processo executa uma instrução DOWN; 4 Se o semáforo for maior que 0, este é decrementado de 1, e o processo que solicitou a operação pode executar sua região crítica; 5 Entretanto, se uma instrução DOWN é executada em um semáforo cujo valor seja igual a 0, o processo que solicitou a operação cará no estado de espera; 21 / 28

Semáforos (cont.) [Favacho, 2009] 6 Além disso, o processo que está acessando o recurso, ao sair de sua região crítica, executa uma instrução UP, incrementando o semáforo de 1 e liberando o acesso ao recurso; 7 A vericação do valor do semáforo, a modicação do seu valor e, eventualmente a colocação do processo para dormir são operações atômicas; 8 Operações atômicas são únicas e indivisíveis; 9 Os semáforos aplicados ao problema da exclusão mútua são chamados de mutex (mutual exclusion) ou binários, por apenas assumirem os valores 0 e 1. 22 / 28

Implementação [Favacho, 2009] #d e f i n e N 100 t y p e d e f i n t semaphore semaphore mutex = 1 ; / c o n t r o l a ã r e g i o í c r t i c a / semaphore empty = N ; / c o n t r o l a çõ p o s i e s v a z i a s / semaphore f u l l = 0 ; / c o n t r o l a çõ p o s i e s o c u p a d a s / v o i d p r o d u c e r ( v o i d ) { v o i d consumer ( v o i d ) { w h i l e (TRUE) { w h i l e (TRUE) { i t e m = produce_item ( ) ; down (& f u l l ) ; down (&empty ) ; down (& mutex ) ; down (& mutex ) ; 5 i t e m = remove_item ( ) ; / R_cr í i n s e r t _ i t e m ( i t e m ) ; / R _ c r i t i c a t i c a / / up(&mutex ) ; up(&mutex ) ; up(&empty ) ; up(& f u l l ) ; consume_item ( i t e m ) ; } } } 10 } 23 / 28

Troca de mensagens 1 Concorrência 2 Sistemas Multiprogramáveis Troca de mensagens 24 / 28

Troca de mensagens Comunicação Somente entre dois processos; Os processos precisam ter a execução sincronizada. Figura 2.3: Troca de mensagens [Chagas, 2016] 25 / 28

Troca de mensagens Classicação [Chagas, 2016] Direta Comunicação entre dois processos, cujos nomes devem ser explicitados; Indireta Utiliza uma área (ou buer) onde as mensagens devem ser colocadas. Figura 2.4: Troca de mensagens [Chagas, 2016] 26 / 28

Troca de mensagens Chagas, F. (2016). Notas de aula do Prof. Fernando Chagas. FARINES, J. M. and MELO, R. (2000). Sistemas de Tempo Real, volume 1. IME-USP. Favacho, A. (2009). Notas de aula da Profa. Aletéia Favacho. Tanenbaum, A. S. and Machado Filho, N. (1995). Sistemas operacionais modernos, volume 3. Prentice-Hall. 27 / 28

Troca de mensagens OBRIGADO!!! PERGUNTAS??? 28 / 28