Finite State Process 1° Exercício Comentários sobre a primeira prática (para os monitores): Inicialmente expliquem os três slides seguintes, após isto.

Slides:



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

Diagrama de Atividades
Sistemas Operacionais
Sistemas Operacionais Sincronismo e Comunicação entre processos
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Data: 10 a 12 de fevereiro de 2009 e
Sistemas operacionais
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INSTRUÇÕES DE CONTROLE – PARTE I Prof. Thiago Pereira Rique
Sincronismo e Comunicação entre Processos
Programação Concorrente
Arquitetura de Sistemas Operacionais
Monitores.
Conceitos de Programação Paralela - 2
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 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 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 Aulas.
Walfredo Cirne Threads Walfredo Cirne
Sistemas Distribuídos
Sistemas Distribuídos
Curso de PHP O comando // serve para comentário linear no php
Sincronização de Processos (4)
Sincronização de Processos (3) Exercícios - Semáforos
Sincronização de Processos (3)
Sincronização de Processos (5) - Monitores -
Sincronização e Comunicação entre Processos
e comunicação entre Processos
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,
Threads sem Sincronização
Monitores.
Unidade 3 Controle de Concorrência
Programação Avançada Processos, Threads e IPC
Arquitetura de Sistemas Operacionais
Prof. Ricardo Santos PONTEIROS
Conjuntos (continuação)
Sistemas Distribuídos
Concorrência STRD.
Alexandre Mota/Augusto Sampaio {acm,
Escalonamento de Tempo Real
Linguagem de Programação JAVA
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Hardware Description Language Aula 4 -VHDL
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Sistemas operacionais
Hardware Description Language Aula 8 –Verilog HDL
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Aula Prática 2 Monitoria IP/CC (~if669).
Recursividade Profs. De Prog2 e Lab2.
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.
Introdução a Programação
©André Santos, Concorrência: Sincronização de fina granularidade André Santos CIn-UFPE.
Exclusão Mútua com Espera Ociosa (1)
Capítulo 8 Threads.
Programação estruturada unidade 2
Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Sistemas Operacionais
Comunicação Interprocesso Condições de Disputa (corrida)
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
Sistemas Operacionais Sincronização e Comunicação Introdução Aplicações concorrentes (mecanismos de sincronização: variáveis compartilhadas e troca de.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner.
ProgramaçãoConcorrente Glêdson Elias
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
IF E ITERAÇÃO WHILE Dilvan Moreira (baseado no livro Big Java e T. Munzner)
Sistemas Operacionais
Transcrição da apresentação:

Finite State Process 1° Exercício Comentários sobre a primeira prática (para os monitores): Inicialmente expliquem os três slides seguintes, após isto descrevam o Problema da região crítica e peçam para que apresentem uma solução.

– Semáforos - Semáforos são usados para comunicação interprocessos em Sistemas Operacionais. Um semáforo s é uma variável inteira não negativa. down(s): if s >0 then decrement s else block execution of the calling process up(s): if processes blocked on s then awaken one of them else increment s As únicas operações permitidas sobre s são up(s) e down(s).

Modelando Semáforos const Max = 3 range Int = 0..Max SEMAPHORE(N=0) = SEMA[N], SEMA[v:Int] = (up->SEMA[v+1] |when(v>0) down->SEMA[v- 1] ), SEMA[Max+1] = ERROR. Para possibilitar a análise, modelamos os semáforos considerando um limite finito para o semáforo. Se este limite for ultrapassado gera-se um ERROR. N é o valor inicial.

Modelando Semáforos A ação down é aceita apenas quando os valores v of do semáforo for maior que 0. A ação up não é guardada. Trace para violação: up  up  up  up

Região Crítica Valor atual do semáforo thread 1 está executando a região crítica. thread 2 está bloqueado esperando. thread 3 está executando uma região não-crítica.

Região Crítica LOOP = (mutex.down->critical->mutex.up- >LOOP). ||SEMADEMO = (p[1..3]:LOOP ||{p[1..3]}::mutex:SEMAPHORE(1)). Três processos p[1..3] usam um semáforos mutex para garantir exclusão mútua no accesso (action critical ) a um recurso. Para obter-se exclusão mútua, o valor inicial do semáforo deve ser 1. Por quê? O estado ERROR é alcançado? É suficiente um semáforo binário (i.e. Max=1 ) ?

Região Crítica

Finite State Process 2° Exercício - Programas Multi-threaded - Comentários sobre a segunda prática (para os monitores): Descrevam o problema e como interpretar as entradas e saídas e peçam Para que apresentem uma especificação.

Programas Multi-threaded em Java Programas Multi-threaded em Java Concorrência em Java ocorre quando dois oum mais threads estão sendo executados. ThreadDemo tem dois threads que rotacionam os displays.

Modelo ThreadDemo Interprete run, pause, interrupt como entradas, rotate como saída. ROTATOR = PAUSED, PAUSED = (run->RUN | pause->PAUSED |interrupt->STOP), RUN = (pause->PAUSED |{run,rotate}->RUN |interrupt->STOP). ||THREAD_DEMO = (a:ROTATOR || b:ROTATOR) /{stop/{a,b}.interrupt}.