SlideShare uma empresa Scribd logo
Threads: O problema dos Leitores e Escritores Implementado em C# ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Threads ,[object Object],[object Object],[object Object]
Threads e Processos – Diferenças ,[object Object],[object Object],[object Object],[object Object],[object Object]
Threads:  O Universo dos modelos de processos ,[object Object],[object Object],[object Object],[object Object]
Threads:  O Universo dos modelos de processos ,[object Object],[object Object],[object Object],[object Object]
Threads e Processos – Diferenças ,[object Object],[object Object]
Threads:  O Universo dos modelos de processos ,[object Object],[object Object],[object Object]
Threads:  Sistemas monothread e multithread ,[object Object],[object Object],[object Object]
Threads:  O Universo dos modelos de processos ,[object Object],[object Object],[object Object]
Threads:  Tipos (Usuário e Núcleo) ,[object Object],[object Object],[object Object],[object Object]
Threads:  Tipos (Usuário e Núcleo) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Threads:  Tipos (Usuário e Núcleo) ,[object Object],[object Object],[object Object],[object Object]
Threads:  Tipos (Usuário e Núcleo) ,[object Object],[object Object],[object Object],[object Object]
Threads:  Comunicação entre as Threads ,[object Object],[object Object],[object Object]
Threads:  Comunicação entre as Threads ,[object Object],[object Object],[object Object]
Threads:  Comunicação entre as Threads ,[object Object],[object Object],[object Object]
Threads:  Comunicação entre as Threads ,[object Object],[object Object],[object Object],[object Object]
Threads:  Comunicação entre as Threads ,[object Object],[object Object],[object Object]
Threads:  Comunicação entre as Threads ,[object Object],[object Object],[object Object],[object Object],[object Object]
Threads:  Problemas com o uso de threads ,[object Object],[object Object],[object Object],[object Object],[object Object]
Threads:  Problemas com o uso de threads ,[object Object],[object Object],[object Object],[object Object]
O Problema dos Leitores e Escritores ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
O Problema dos Leitores e Escritores ,[object Object],Base  de  Dados PL PL PL PE PL – Processos Leitores PE – Processos Escritores Esperando Acesso a Base de Dados Acessando a Base de Dados 1 2 4 3
O Problema dos Leitores e Escritores ,[object Object],Base de Dados PL PL PL Base de Dados PL PL PL 1 2 4 PL PL PL 1 2 4 6 9 7 PL – Processos Leitores PE – Processos Escritores Esperando Acesso a Base de Dados Acessando a Base de Dados
O Problema dos Leitores e Escritores ,[object Object],Base de Dados PL PL Base de Dados PL PL PL 1 2 PL PL PE 1 2 4 6 9 7 PE 4 PL – Processos Leitores PE – Processos Escritores Esperando Acesso a Base de Dados Acessando a Base de Dados
O Problema dos Leitores e Escritores ,[object Object]
O Problema dos Leitores e Escritores ,[object Object],Base de Dados Base de Dados PE 4 PL – Processos Leitores PE – Processos Escritores Esperando Acesso a Base de Dados Acessando a Base de Dados
O Problema dos Leitores e Escritores ,[object Object],Base  de  Dados PL PL PE PE 1 2 4 3 PL – Processos Leitores PE – Processos Escritores Esperando Acesso a Base de Dados Acessando a Base de Dados
O Problema dos Leitores e Escritores ,[object Object],semaphore mutex = 1;  // controla acesso a região critica semaphore db = 1;  // controla acesso a base de dados int rc = 0;  // número de processos lendo ou querendo ler void writer(void) { while (TRUE) {   // repete para sempre think_up_data();  // região não critica down(&db);   // obtém acesso exclusivo write_data_base(); // atualiza os dados up(&db);  // libera o acesso exclusivo } } Variáveis Procedimento do Escritor
O Problema dos Leitores e Escritores void reader(void) { while(TRUE) { // repete para sempre down(&mutex);  // obtém acesso exclusivo a região critica rc = rc + 1; // um leitor a mais agora if (rc == 1) down(&db);  //se este for o primeiro leitor bloqueia a base de dados up(&mutex)   // libera o acesso a região critica  read_data_base();  //acesso aos dados down(&mutex);  // obtém acesso exclusivo a região critica rc = rc -1;   // menos um leitor if (rc == 0) up(&db); // se este for o último leitor libera a base de dados up(&mutex)  // libera o acesso a região critica use_data_read();  // utiliza o dado } } Procedimento do Leitor
O Problema dos Leitores e Escritores ,[object Object],[object Object],[object Object],[object Object],[object Object]
Threads no C# ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Threads no C#: Criando e Iniciando ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Threads no C#: Exemplo Olá Mundo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Threads no C#: Sincronização ,[object Object],[object Object],[object Object],[object Object]
Threads no C#: Método  Join class Ola_Mundo { static void Main() { Thread t = new Thread(new ThreadStart(Imprime)); t.Start(); t.Join(); Console.WriteLine("Fim do programa."); } static void Imprime() { Console.WriteLine("Ola Mundo!"); } }
Threads no C#: Bloqueio  Lock ,[object Object],[object Object],[object Object],[object Object]
Threads no C#: Bloqueio  Lock ,[object Object],[object Object],[object Object],[object Object]
Threads no C#: Classe  Mutex ,[object Object],[object Object],[object Object],[object Object]
Threads no C#: Classe  Mutex ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Threads no C#: Classe  Semaphore ,[object Object],[object Object],[object Object],[object Object]
Threads no C#: Classe  Semaphore ,[object Object],[object Object],[object Object],[object Object]
Threads no C#: Classe  Monitor ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Threads no C#: Outros recursos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Threads no C#:  Os leitores e escritores ,[object Object]

Mais conteúdo relacionado

Mais procurados

Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Wellington Oliveira
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
Devel Desenvolvimento
 
Memória Compartilhada Distribuída Conceitos e Algoritmos
Memória Compartilhada Distribuída Conceitos e AlgoritmosMemória Compartilhada Distribuída Conceitos e Algoritmos
Memória Compartilhada Distribuída Conceitos e Algoritmos
Augusto Luengo Pereira Nunes, PhD
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
eliezer
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
Paulo Fonseca
 
Linux Redes e Servidores - guia pratico
Linux  Redes e Servidores - guia pratico Linux  Redes e Servidores - guia pratico
Linux Redes e Servidores - guia pratico
SoftD Abreu
 
Redes e servidores guia pratico 2ªedição por carlos e morimoto
Redes e servidores   guia pratico 2ªedição por carlos e morimotoRedes e servidores   guia pratico 2ªedição por carlos e morimoto
Redes e servidores guia pratico 2ªedição por carlos e morimoto
Pessoal
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreading
Bianca Dantas
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
Alexandre Duarte
 
Pesl latex
Pesl latexPesl latex
Pesl latex
PeslPinguim
 
Exercício 04 alunos
Exercício 04 alunosExercício 04 alunos
Exercício 04 alunos
Heber Gutenberg
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
Computação Depressão
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativos
Frank macoo
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
Computação Depressão
 
Guia pratico-rede-e-servidores-linux
Guia pratico-rede-e-servidores-linuxGuia pratico-rede-e-servidores-linux
Guia pratico-rede-e-servidores-linux
Fernando Mendes
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
Faculdade Mater Christi
 
Programação Paralela - Threads
Programação Paralela - ThreadsProgramação Paralela - Threads
Programação Paralela - Threads
Glaucio Scheibel
 
Programação Concorrente - Objetos e Concorrência
Programação Concorrente - Objetos e ConcorrênciaProgramação Concorrente - Objetos e Concorrência
Programação Concorrente - Objetos e Concorrência
Fabio Moura Pereira
 
Computadores
ComputadoresComputadores
Computadores
redesinforma
 

Mais procurados (19)

Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
 
Memória Compartilhada Distribuída Conceitos e Algoritmos
Memória Compartilhada Distribuída Conceitos e AlgoritmosMemória Compartilhada Distribuída Conceitos e Algoritmos
Memória Compartilhada Distribuída Conceitos e Algoritmos
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Linux Redes e Servidores - guia pratico
Linux  Redes e Servidores - guia pratico Linux  Redes e Servidores - guia pratico
Linux Redes e Servidores - guia pratico
 
Redes e servidores guia pratico 2ªedição por carlos e morimoto
Redes e servidores   guia pratico 2ªedição por carlos e morimotoRedes e servidores   guia pratico 2ªedição por carlos e morimoto
Redes e servidores guia pratico 2ªedição por carlos e morimoto
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreading
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Pesl latex
Pesl latexPesl latex
Pesl latex
 
Exercício 04 alunos
Exercício 04 alunosExercício 04 alunos
Exercício 04 alunos
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativos
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
 
Guia pratico-rede-e-servidores-linux
Guia pratico-rede-e-servidores-linuxGuia pratico-rede-e-servidores-linux
Guia pratico-rede-e-servidores-linux
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Programação Paralela - Threads
Programação Paralela - ThreadsProgramação Paralela - Threads
Programação Paralela - Threads
 
Programação Concorrente - Objetos e Concorrência
Programação Concorrente - Objetos e ConcorrênciaProgramação Concorrente - Objetos e Concorrência
Programação Concorrente - Objetos e Concorrência
 
Computadores
ComputadoresComputadores
Computadores
 

Destaque

C# 6.0 - Novos Recursos (Agosto/2015)
C# 6.0 - Novos Recursos (Agosto/2015)C# 6.0 - Novos Recursos (Agosto/2015)
C# 6.0 - Novos Recursos (Agosto/2015)
Renato Groff
 
UMA PERSPECTIVA HISTÓRIA DA PRÁTICA PEDAGÓGICA
UMA PERSPECTIVA HISTÓRIA DA PRÁTICA PEDAGÓGICAUMA PERSPECTIVA HISTÓRIA DA PRÁTICA PEDAGÓGICA
UMA PERSPECTIVA HISTÓRIA DA PRÁTICA PEDAGÓGICA
Leandro Carneiro
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e Semáforos
Thiago Poiani
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
Faculdade Mater Christi
 
Concepções do Conhecimento
Concepções do ConhecimentoConcepções do Conhecimento
Concepções do Conhecimento
karinaabreu
 
A Arte De Educar Com Limites, Sem Medo De Errar.
A Arte De Educar Com Limites, Sem Medo De Errar.A Arte De Educar Com Limites, Sem Medo De Errar.
A Arte De Educar Com Limites, Sem Medo De Errar.
dilsoncatarino
 
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Rogério Moraes de Carvalho
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
Renato Groff
 
Tecnologia na Educação e Novas Tendência
Tecnologia na Educação e Novas TendênciaTecnologia na Educação e Novas Tendência
Tecnologia na Educação e Novas Tendência
Daniel Caixeta
 
Exercicios de C#
Exercicios de C#Exercicios de C#
Exercicios de C#
Jorge Abdalla
 
Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao ao C#
Andre Teixeira Lopes
 
Marketing Infantil
Marketing InfantilMarketing Infantil
Marketing Infantil
Arnaldo Rabelo
 
Indisciplina escolar -_acoes_e_intervencoes
Indisciplina escolar -_acoes_e_intervencoesIndisciplina escolar -_acoes_e_intervencoes
Indisciplina escolar -_acoes_e_intervencoes
Rafaela Freitas
 
Interacionismo E Letramento
Interacionismo E LetramentoInteracionismo E Letramento
Interacionismo E Letramento
Marta Melo de Oliveira
 
Estruturas de Dados em C#
Estruturas de Dados em C#Estruturas de Dados em C#
Estruturas de Dados em C#
Marcelo Charan
 
Sistemas de equações
 Sistemas de equações Sistemas de equações
Sistemas de equações
marilia65
 
Programação c# - banco de dados
Programação   c# - banco de dadosProgramação   c# - banco de dados
Programação c# - banco de dados
douglasschaefler
 
Estado Islâmico
Estado IslâmicoEstado Islâmico
Estado Islâmico
Positivo e Sesi
 
Direitos e garantias fundamentais (parte 1)
Direitos e garantias fundamentais (parte 1)Direitos e garantias fundamentais (parte 1)
Direitos e garantias fundamentais (parte 1)
Nilberte
 
Ler E Escrever Na Escola
Ler E Escrever Na EscolaLer E Escrever Na Escola
Ler E Escrever Na Escola
Maristela Couto
 

Destaque (20)

C# 6.0 - Novos Recursos (Agosto/2015)
C# 6.0 - Novos Recursos (Agosto/2015)C# 6.0 - Novos Recursos (Agosto/2015)
C# 6.0 - Novos Recursos (Agosto/2015)
 
UMA PERSPECTIVA HISTÓRIA DA PRÁTICA PEDAGÓGICA
UMA PERSPECTIVA HISTÓRIA DA PRÁTICA PEDAGÓGICAUMA PERSPECTIVA HISTÓRIA DA PRÁTICA PEDAGÓGICA
UMA PERSPECTIVA HISTÓRIA DA PRÁTICA PEDAGÓGICA
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e Semáforos
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Concepções do Conhecimento
Concepções do ConhecimentoConcepções do Conhecimento
Concepções do Conhecimento
 
A Arte De Educar Com Limites, Sem Medo De Errar.
A Arte De Educar Com Limites, Sem Medo De Errar.A Arte De Educar Com Limites, Sem Medo De Errar.
A Arte De Educar Com Limites, Sem Medo De Errar.
 
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
 
Tecnologia na Educação e Novas Tendência
Tecnologia na Educação e Novas TendênciaTecnologia na Educação e Novas Tendência
Tecnologia na Educação e Novas Tendência
 
Exercicios de C#
Exercicios de C#Exercicios de C#
Exercicios de C#
 
Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao ao C#
 
Marketing Infantil
Marketing InfantilMarketing Infantil
Marketing Infantil
 
Indisciplina escolar -_acoes_e_intervencoes
Indisciplina escolar -_acoes_e_intervencoesIndisciplina escolar -_acoes_e_intervencoes
Indisciplina escolar -_acoes_e_intervencoes
 
Interacionismo E Letramento
Interacionismo E LetramentoInteracionismo E Letramento
Interacionismo E Letramento
 
Estruturas de Dados em C#
Estruturas de Dados em C#Estruturas de Dados em C#
Estruturas de Dados em C#
 
Sistemas de equações
 Sistemas de equações Sistemas de equações
Sistemas de equações
 
Programação c# - banco de dados
Programação   c# - banco de dadosProgramação   c# - banco de dados
Programação c# - banco de dados
 
Estado Islâmico
Estado IslâmicoEstado Islâmico
Estado Islâmico
 
Direitos e garantias fundamentais (parte 1)
Direitos e garantias fundamentais (parte 1)Direitos e garantias fundamentais (parte 1)
Direitos e garantias fundamentais (parte 1)
 
Ler E Escrever Na Escola
Ler E Escrever Na EscolaLer E Escrever Na Escola
Ler E Escrever Na Escola
 

Semelhante a Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMENTADO EM C#

SD_Aula_04_Introdução ao SD.pdf
SD_Aula_04_Introdução ao SD.pdfSD_Aula_04_Introdução ao SD.pdf
SD_Aula_04_Introdução ao SD.pdf
Ferro Gaita
 
04 threads
04 threads04 threads
04 threads
Josyeraul Meireles
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
Portal_do_Estudante_SD
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
Bruno Sobrenome
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
Silvino Neto
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0
Charles Fortes
 
(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08
Norton Trevisan Roman
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
Alessandro Fazenda
 
Net - Threads
Net - ThreadsNet - Threads
Net - Threads
Lucas Teles
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
Fee Kosta
 
Processos+threads.2pp
Processos+threads.2ppProcessos+threads.2pp
Processos+threads.2pp
Universidade Zambeze
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
Alexandre Duarte
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
Rodrigo Rodrigues
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
Frederico Madeira
 
Sistemas operacionais - aula8
Sistemas operacionais - aula8Sistemas operacionais - aula8
Sistemas operacionais - aula8
Exército Brasileiro (Oficial)
 
Threads
ThreadsThreads
Threads
Pedro Hübner
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
Computação Depressão
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Mario Guedes
 
Java recursos avançados - multithreading
Java   recursos avançados - multithreadingJava   recursos avançados - multithreading
Java recursos avançados - multithreading
Armando Daniel
 
Aula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdfAula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdf
MarcondesTiburcio
 

Semelhante a Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMENTADO EM C# (20)

SD_Aula_04_Introdução ao SD.pdf
SD_Aula_04_Introdução ao SD.pdfSD_Aula_04_Introdução ao SD.pdf
SD_Aula_04_Introdução ao SD.pdf
 
04 threads
04 threads04 threads
04 threads
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0
 
(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Net - Threads
Net - ThreadsNet - Threads
Net - Threads
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
 
Processos+threads.2pp
Processos+threads.2ppProcessos+threads.2pp
Processos+threads.2pp
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
 
Sistemas operacionais - aula8
Sistemas operacionais - aula8Sistemas operacionais - aula8
Sistemas operacionais - aula8
 
Threads
ThreadsThreads
Threads
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
 
Java recursos avançados - multithreading
Java   recursos avançados - multithreadingJava   recursos avançados - multithreading
Java recursos avançados - multithreading
 
Aula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdfAula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdf
 

Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMENTADO EM C#

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30. O Problema dos Leitores e Escritores void reader(void) { while(TRUE) { // repete para sempre down(&mutex); // obtém acesso exclusivo a região critica rc = rc + 1; // um leitor a mais agora if (rc == 1) down(&db); //se este for o primeiro leitor bloqueia a base de dados up(&mutex) // libera o acesso a região critica read_data_base(); //acesso aos dados down(&mutex); // obtém acesso exclusivo a região critica rc = rc -1; // menos um leitor if (rc == 0) up(&db); // se este for o último leitor libera a base de dados up(&mutex) // libera o acesso a região critica use_data_read(); // utiliza o dado } } Procedimento do Leitor
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. Threads no C#: Método Join class Ola_Mundo { static void Main() { Thread t = new Thread(new ThreadStart(Imprime)); t.Start(); t.Join(); Console.WriteLine("Fim do programa."); } static void Imprime() { Console.WriteLine("Ola Mundo!"); } }
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.