SlideShare uma empresa Scribd logo
1 de 45
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 OliveiraWellington Oliveira
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo 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 morimotoPessoal
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreadingBianca Dantas
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: IntroduçãoAlexandre Duarte
 
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 classicosComputação Depressão
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativosFrank 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 processosComputaçã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-linuxFernando Mendes
 
Programação Paralela - Threads
Programação Paralela - ThreadsProgramação Paralela - Threads
Programação Paralela - ThreadsGlaucio 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ênciaFabio Moura Pereira
 

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ÓGICALeandro Carneiro
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosThiago Poiani
 
Concepções do Conhecimento
Concepções do ConhecimentoConcepções do Conhecimento
Concepções do Conhecimentokarinaabreu
 
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 codersRenato 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ênciaDaniel Caixeta
 
Indisciplina escolar -_acoes_e_intervencoes
Indisciplina escolar -_acoes_e_intervencoesIndisciplina escolar -_acoes_e_intervencoes
Indisciplina escolar -_acoes_e_intervencoesRafaela Freitas
 
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çõesmarilia65
 
Programação c# - banco de dados
Programação   c# - banco de dadosProgramação   c# - banco de dados
Programação c# - banco de dadosdouglasschaefler
 
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 EscolaMaristela 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.pdfFerro Gaita
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Charles Fortes
 
(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08Norton Trevisan Roman
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no WindowsFee Kosta
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoAlexandre 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ódigoFrederico Madeira
 
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-ThreadMario Guedes
 
Java recursos avançados - multithreading
Java   recursos avançados - multithreadingJava   recursos avançados - multithreading
Java recursos avançados - multithreadingArmando Daniel
 
Aula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdfAula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdfMarcondesTiburcio
 

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
 

Último

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 

Último (9)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

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.