Monitores.

Slides:



Advertisements
Apresentações semelhantes
Semáforos Eduardo Nicola F. Zagari
Advertisements

Sistemas Operacionais
Sistemas Operacionais Sincronismo e Comunicação entre processos
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Sincronização de Processos (1)
O TAD fila O TAD fila armazena objetos arbitrários
Sistemas Operacionais Programação concorrente
Sistemas operacionais
Programação Concorrente
ESTRUTURAS DO TIPO FILA
Arquitetura de Sistemas Operacionais
Linguagens de Programação Orientadas a Objetos
Sincronização com Posix Threads
Capítulo 6: Sincronização de Processos
Sistemas Operacionais II
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aula.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aulas.
Walfredo Cirne Threads Walfredo Cirne
Sincronização de Processos (5)
Sincronização de Processos (4)
Sincronização de Processos (3)
Sincronização de Processos (5) - Monitores -
Sincronização de Processos (6) - Troca de Mensagens -
Sincronização de Processos (2)
7 Abstração Genérica Unidades genéricas e instanciação.
Sincronização e Comunicação entre Processos
Robson Godoi / Sandra Siebra
O Portal do Estudante de Computação
Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso,
Monitores.
Unidade 3 Controle de Concorrência
LISTAS DUPLAMENTE ENCADEADAS
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Estruturas de Dados com Jogos
OO-SC (Meyer) - Cap 111 OO-SC (MEYER) Desenho por Contrato Construindo software confiável.
Sistemas Distribuídos
Concorrência STRD.
Tipos Abstratos de Dados
Zeque - Grad. CC1 Sistemas Operacionais l Processos Plano de Apresentação  O Modelo de Processo  Definição  Características  Hierarquia  Implementação.
Processos.
Troca de Mensagens Assíncronas n Canais de comunicação são filas ilimitadas de mensagens. n Processos inserem elementos nessa flia através de comandos.
ARQUIVOS.
Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/04/2014.
Transações Concorrentes
Vetores Bidimensionais – Debug - Ponteiros – Listas Encadeadas Simples
SISTEMAS OPERACIONAIS I
Semáforos n Variáveis compartilhadas são globais n Acesso a variáveis ocorre em procedimentos, mas podem estar espalhados pelo programa n Exige consulta.
Sistemas operacionais
Sistemas Concorrentes Capítulo 02 – Threads
Sistemas Operacionais
Professor Ulisses Vasconcelos
Sistemas Distribuídos Aula 04 – Programação Multithread/Paralela
Capítulo 4: Processos.
Remote Procedure Call (RPC) e Rendezvous
Sistemas Distribuídos Aula 05 – Programação Multithread/Paralela
Implementação de Sincronização n Protocolos que usam busy waiting:  Difíceis de projetar, compreender e provar corretos  Complexos  Variáveis usadas.
Video Capítulo 7: Sincronização de Processos. Silberschatz, Galvin and Gagne  Video Operating System Concepts Assuntos n Cenário n O problema.
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Programação concorrente:
Processos Concorrentes
Programação Concorrente
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
Comunicação Interprocesso Condições de Disputa (corrida)
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
ProgramaçãoConcorrente Glêdson Elias
SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS PROF. HORACIO RIBEIRO Sistemas operacionais.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

Monitores

Monitores Proporcionam uma primitiva de programação concorrente estruturada, que concentra a responsabilidade de correção em poucos módulos. Tipo de Dados baseado em estado.

Monitores Seções críticas para alocação de dispositivos de I/O ou alocação de memória são centralizados em um programa privilegiado.

Monitor Programas ordinários requerem serviços que são realizados pelo monitor central. Temos um programa que manipula todos as requisições de serviços envolvendo dispositivos compartilhados ou estruturas de dados.

Monitor Podemos definir um monitor separado para cada objeto ou grupo de objetos relacionados. Processos podem requisitar serviços de vários monitores.

Monitor Se um mesmo monitor é chamado por dois processos, a implementação do monitor garante que esses processos são executados serialmente para preservar exclusão mutua. Se monitores diferentes são chamados, os processos podem ser intercalados.

Monitor A sintaxe de monitores é baseada no encapsulamento de itens de dados e os procedimentos que operam sobre esses itens, colocados dentro de um único módulo. A interface para um monitor consistirá de um conjunto de procedimentos.

Monitor Esses procedimentos operam sobre dados que são ocultos dentro do módulo. Um monitor não somente protege os dados internos de acessos inrestristos, mas também sincroniza as chamadas aos procedimentos da interface.

Monitor A implementação garante que os procedimentos são executados sob exclusão mútua sob variáveis globais. Na semântica de um monitor, somente um processo é permitido executar uma operação no monitor em qualquer tempo.

Monitor Monitor define uma primitiva de sincronização que permitirá um processo suspender ele próprio. O monitor não é um processo, mas um módulo estático de dados e declarações de procedimentos (procedures).

Monitor Produtor-Consumidor Monitor Produtor_Consumidor B: array(0..N-1) of integer; In_Ptr, Out_Ptr: Integer := 0; Count:Integer := 0; Not_Full, Not_Empty: Condition;

Produtor coloca ítem no Buffer B Procedure Append (I: in Integer) Begin If Count = N then WAIT (Not_Full) ; B(In-Ptr) := I; In_Ptr := (In_Ptr) mod N; SIGNAL (Not_Empty) ; End Append;

Consumidor retira ítem do Buffer B Procedure Take (I: out Integer) Begin If Count = 0 then WAIT (Not-Empty) ; I := B(Out_Ptr); Out_Ptr := (Out_Ptr + 1) mod N; SIGNAL (Not_Full) ; End Take;

Processo Producer Process Producer I: Integer; begin loop Produce (I); Append (I); end loop; end Producer

Processo Consumidor Process Consumer I: Integer; begin loop Take (I) ; Consumer (I); end loop; end Consumer;

Operações do Monitor WAIT e SIGNAL aqui, não tem nenhuma relação com as duas primitivas usadas em operações de semáforo. Para sincronização são definidas Variáveis de Condição: Not_Empty e Not_Full.

Variáveis de Condição Not_Empty : Usada pelo consumidor para suspender ele próprio, até que o buffer seja não vazio. Not_Full : Usada pelo produtor para suspender ele próprio, quando o buffer estiver cheio.

Três Operações sobre Variáveis de Condição WAIT(C) pode ser lido: “Estou esperando para C ocorrer”. O processo que chamou a procedure do monitor contendo esta declaração, é suspenso sob uma fila FIFO associada com C. SIGNAL(C) pode ser lido: “Estou sinalizando que C ocorreu”. Se a fila para C é não vazia, então acorde o processo na cabeça da fila. NON_EMPTY(C) : Uma função booleana que retorna true se a fila para C é não vazia.