Variáveis condicionais e Semáforos Aula de Concorrência.

Slides:



Advertisements
Apresentações semelhantes
|Introdução a Java para programadores Telis. Jogo de Dados simples O jogo é jogado por dois jogadores. Cada jogador faz sua jogada (lança um dado), e.
Advertisements

Sistemas Operacionais
IC - UFF Sistemas Operacionais Threads. IC - UFF Processos e threads Vimos o conceito de processo englobando duas características básicas: propriedade.
Sistemas Operacionais Sincronismo e Comunicação entre processos
Introdução à Threads para Windows na linguagem C
Sistemas Operacionais
Funções em C.
OpenMP.
Threads (Linha de execução )
Sincronização com Posix Threads
Threads no Multiplus/Mulplix Adriano Cruz ©2003 NCE e IM/UFRJ
Conceitos de Programação Paralela - 2
OpenMP MO801/MC972. Visão geral Biblioteca de mais alto nível para programação paralela Prevê memória compartilhada Requer suporte do compilador Exige.
PThreads MO801/MC972.
Chapter 4: Threads.
Sistemas Operacionais
SSC SISTEMAS OPERACIONAIS I
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.
SSC SISTEMAS OPERACIONAIS I
Walfredo Cirne Threads Walfredo Cirne
Programação Concorrente
Threads.
Sincronização de Processos (3)
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo II Confecção de Tabelas.
Threads sem Sincronização
Prof. André Leon S. Gradvohl, Dr.
Concorrência em Java Threads em Java.
Threads: Introdução e Implementação
Monitores.
Concorrência em Java Threads em Java.
Concorrência em Java Threads em Java.
Programação concorrente:
Linguagem de Programação IV
Introdução à linguagem C
IC - UFF Sistemas Operacionais 4. Threads Texto base: capítulo 4 Operating Systems: Internals and Design Principles W. Stallings.
Algoritmo e Programação
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Aula 9 Regiane Kawasaki
Programação Paralela.
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Programação de Sistemas Distribuídos e Concorrentes
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 4: Threads.
Introdução às Java Threads
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo VII Variáveis Indexadas Numéricas.
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Multiprocessamento Sérgio Cavalcante CIn GRECO - CIn / UFPE.
Video Capítulo 7: Sincronização de Processos. Silberschatz, Galvin and Gagne  Video Operating System Concepts Assuntos n Cenário n O problema.
Engenharia de Sistemas Embarcados Aula 9: Salvo RTOS.
1 Design Pattern Double Checked Locking. 2 Design Pattern Apresenta soluções para problemas que ocorrem repetidamente em nosso ambiente computacional.
©André Santos, Concorrência: Sincronização de fina granularidade André Santos CIn-UFPE.
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.
Memória Compartilhada
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Threads Bauke A. Dijkstra Lucas Alves Allan F. Furukita.
Implementação Distribuída Escalonamento de Tempo-Real Prof. Dr. Norian Marranghello Grupo 8 Daniela Gonçalves Strozi – Sayuri Watanabe
Sistemas Operacionais Distribuídos
Linguagem de Programação
ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
ProgramaçãoConcorrente Glêdson Elias
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Programação em Java Threads Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
OO – Engenharia Eletrônica
OO – Engenharia Eletrônica
Aluno- monitor: Vagner Vengue
Pthreads – parte II Guilherme Galante.
OO – Engenharia Eletrônica
Pthreads – POSIX Threads
Transcrição da apresentação:

Variáveis condicionais e Semáforos Aula de Concorrência

Variáveis condicionais Concorrência em C ~if113/C Variáveis condicionais ~if113/C/Praticas/exemplo1.c Semáforos ~if113/C/Praticas/cook.c Aula de Concorrência

Portabilidade X Re-codificar conj. de padrões de interfaces do S.O. UNIX (fabricante neutro) POSIX Portable Operating System Interface Institue of Electrical and Eletronic Engineers (IEEE) POSIX.1 -> Linguagem C POSIX.2 -> shell e utilitários POSIX.4 -> thread Motivação

SO Desenho Task 1 (Programa 1) Motivação Task N (Programa N) thread11 . Task N (Programa N) thread11 thread11 thread11 thread N1

Introdução prefixo "pthread" e "sem" Criação Saída Cancelamento Sinal phthread_create() phthread_attr_init() Saída phthread_exit() phthread_join() Cancelamento phthread_cancel() Sinal phthread_kill() POSIX.4

Sincronização Mutex Semáforo Variável de condição pthread_mutex_init() pthread_mutexattr_init() pthread_mutex_lock() pthread_mutex_unlock() Semáforo sem_init() sem_open() Variável de condição pthread_cond_init() pthread_cond_cond() POSIX.4

Introdução e Criação attr = objeto com os atributos deve se setado antes da criação possui valores padrões mutexes e variáveis de condição compartilhamento de dados globais herda a máscara de sinal e a prioridade de execução do thread que o chamou #include <pthread.h> int pthread_create(pthread_t *new_thread_ID, const pthread_attr_t *attr, void * (*start_func)(void *), void *arg); POSIX.4 -> Thread

Implementação #include <pthread.h> pthread_t tid; void *start_func(void *), *arg; pthread_create(&tid, NULL, start_func, arg); pthread_attr_t attr; pthread_attr_init(&attr); /* initialize attr with default attributes */ pthread_create(&tid, &attr, start_func, arg); POSIX.4 -> Thread

Desafios Problema: main() pode acabar antes do final da thread Solução: pthread_join() especifica o thread final para a main() poder terminar POSIX.4 -> Thread

Introdução e Criação Previne que múltiplos threads executem regiões críticas simultaneamente São globais Intra-processos X Inter-processos Atributos: pthread_mutexattr_init() Passos: inicializar e destrancar pthread_mutex_init() pthread_mutex_lock() pthread_mutex_unlock() #include <pthread.h> int pthread_mutex_init(pthread_mutex_t *mp, const pthread_mutexattr_t *attr); POSIX.4 -> Mutex

Implementação #include <pthread.h> pthread_mutex_t mp; pthread_mutexattr_t mattr; pthread_mutex_init(&mp, NULL); /*OU pthread_mutexattr_init(&mattr); pthread_mutex_init(&mp, &mattr); */ POSIX.4 -> Mutex