SlideShare uma empresa Scribd logo
1 de 26
Gerências de Processos: Threads
Sistemas Operacionais I
Prof. Alexandre Duarte : http://alexandrend.com
Centro de Informática | Universidade Federal da Paraíba
Estes slides são baseados no material que acompanha o livro Operating
Systems Concepts de Silberschatz, Galvin and Gagne
Objetivos
 Introduzir a noç ão de thread, uma unidade
fundamental de utilizaç ão de CPU e que
representa a base da maioria dos sistemas
computacionais modernos
 Questões relacionadas a criaç ão de threads
Processo com thread único e com
múltiplos threads
Benefícios
 Responsividade
 Compartilhamento de recursos
 Economia
 Escalabilidade
Programação com múltiplos núcleos
 Sistemas com múltiplos núcleos pressionam os
programadores
 Os desafios incluem
 Particionamento das atividades
 Balanç o
 Particionamento dos dados
 Dependência dos dados
 Teste e depuraç ão
Arquitetura de um servidor multi-threaded
Execução concorrente em um sistema
de núcleo único
Execução paralela em um sistema com múltiplos
núcleos
Threads do usuário
 Gerencia de threads feita por bibliotecas
carregadas no nível do usuário
 Três principais bibliotecas de threads:
 POSIX Pthreads
 Win32 threads
 Java threads
Threads do Núcleo
 Gerenciadas pelo pró prio sistema operacional
 Exemplos
 Windows XP/2000
 Solaris
 Linux
 Tru64 UNIX
 Mac OS X
Modelos de Multi-threading
 Muitos-para-um
 Um-para-um
 Muitos-para-muitos
Muitos-para-um
 Muitas threads do
usuário mapeadas
para uma única
thread do núcleo
 Exemplos:
 Solaris Green
Threads
 GNU Portable
Threads
Um-para-um
 Cada thread do usuário é mapeada uma uma thread
do núcleo
 Exemplos
 Windows NT/XP/2000
 Linux
 Solaris 9 e posterior
Muitos-para-muitos
 Permite que muitas
threads do usuário
sejam mapeadas em
muitas threads do
núcleo
 Exemplos
 Solaris antes da
versão 9
 Windows NT/2000
como o pacote
ThreadFiber
Modelo em dois níveis
 Similar ao M:M
porém também
permite que uma
thread do usuário seja
associada a uma
thread do núcleo
 Exemplos
 IRIX
 HP-UX
 Tru64 UNIX
 Solaris 8 e anteriores
Bibliotecas de threads
 Bibliotecas de threads oferecem uma API para
criaç ão e manipulaç ão de threads
 Duas formas primárias de implementaç ão
 Biblioteca localizada inteiramente no espaç o do
usuário
 Biblioteca localizada no núcleo com suporte do
SO
Pthreads
 Pode ser fornecida tanto no nível do usuário
quanto no núcleo
 API padrão POSIX (IEEE 1003.1c) para
criaç ão e sincronizaç ão de threads
 A API especifica unicamente o comportamento
da biblioteca, a implementaç ão fica a cargo
dos desenvolvedores
 Comum em sistemas operacionais UNIX
(Solaris, Linux, Mac OS X)
Java Threads
 Threads em Java são gerenciados pela JVM
 Tipicamente implementados de acordo com o
modelo de threads do sistema operacional
“hospedeiro”
 Threads em Java podem ser criados
 Estendendo a classe Thread
 Implementando a interface Runnable
Questões relacionadas a criação de
threads
 As chamadas de sistema fork() e
exec()
 Cancelamento de threads
 Assíncrono versus adiado
 Manipulaç ão de sinais
 Pools de Thread
 Dados específicos de threads
 Ativaç ões do escalonador
As chamadas de sistema fork() e exec()
 O fork() duplica apenas o thread que invocou
a chamada ou todos os threads do
programa ?
 O que acontece com o exec() ?
Cancelamento de threads
 Cancelar uma thread antes de sua
conclusão
 Duas abordagens
 Cancelamento assíncrono: termina
a thread alvo imediatamente
 Cancelamento adiado: permite que
a thread alvo verifique periodicamente
se ela deve ser cancelada
Manipulação de sinais
 Sinais são utilizados no UNIX para notificar um processo de
que um determinado evento ocorreu
 Todos os sinais seguem o mesmo padrão
 São gerados por um evento particular
 São entregues a um processo
 São manipulados pelo processo
 Opções:
 Entregar o sinal para a thread a qual ele se aplica
 Entregar o sinal para todas as threads do processo
 Entregar o sinal para certas threads do processo
 Escolher uma thread específica para receber todos os sinais do
processo
Pools de threads
 Cria um número de threads em um pool onde
elas aguardam por trabalho
 Vantagens:
 Geralmente é um pouco mais rápido requisitar
uma thread jáexistente do que criar uma nova
thread
 Permite que o número de threads na(s)
aplicaç ão(ões) seja limitado ao tamanho do pool
Dados específicos de threads
 Permite que cada thread tenha sua pró pria
có pia dos dados
 Útil quando não se tem controle sobre o
processo de criaç ão de threads (ex., quando
se usa um thread pool)
Ativações do escalonador
 Tanto o modelo M:M quanto o de
dois níveis utilizam uma estrutura de
dados intermediária (LWP) entre as
threads do núcleo e do usuário
 O LWP funciona como um
processador virtual para a aplicação
no qual a aplicação pode agendar a
execução de uma thread
 O núcleo, em seguida, atribui uma de
suas threads para executar a thread
do usuário associada a um LWP
Ativações do escalonador
 Para esse esquema funciona, o núcleo precisa
notificar a aplicaç ão sobre certos eventos de
escalonamento de threads
 Essa notificaç ão é feita através de um
procedimento chamado upcall e a esse
esquema de comunicaç ão é conhecido com
ativação do escalonador

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 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisLuciano Crecente
 
Visão geral do sistema operacional
Visão geral do sistema operacionalVisão geral do sistema operacional
Visão geral do sistema operacionalLuciano Crecente
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processosVirgínia
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisLeandro Júnior
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memóriaPAULO Moreira
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisJocelma Rios
 
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
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 
Sistema Operativos
Sistema OperativosSistema Operativos
Sistema OperativosBugui94
 

Mais procurados (20)

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
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
Visão geral do sistema operacional
Visão geral do sistema operacionalVisão geral do sistema operacional
Visão geral do sistema operacional
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processos
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas Operacionais
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
 
Aula 12 - Processador
Aula 12 - ProcessadorAula 12 - Processador
Aula 12 - Processador
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas Operacionais
 
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
 
Endereçamento de memória
Endereçamento de memóriaEndereçamento de memória
Endereçamento de memória
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 
Pseudoparalelismo
PseudoparalelismoPseudoparalelismo
Pseudoparalelismo
 
Sistema Operativos
Sistema OperativosSistema Operativos
Sistema Operativos
 
Lista de Eventos
Lista de EventosLista de Eventos
Lista de Eventos
 

Semelhante a Gerências de Processos: Threads

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
 
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...rafaelov
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoMauro Tapajós
 
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...rafaelov
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Charles Fortes
 
Multithreaded tecnologia
Multithreaded tecnologia Multithreaded tecnologia
Multithreaded tecnologia J Chaves Silva
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisCid de Andrade
 
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
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
Apresentação Trabalho
Apresentação TrabalhoApresentação Trabalho
Apresentação Trabalhojhoncv
 
Apresentação Mac OS
Apresentação Mac OSApresentação Mac OS
Apresentação Mac OSguestf2a4bc5
 

Semelhante a Gerências de Processos: Threads (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
 
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e Instalação
 
Processos+threads.2pp
Processos+threads.2ppProcessos+threads.2pp
Processos+threads.2pp
 
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
 
SO2 - Windows 7
SO2 - Windows 7SO2 - Windows 7
SO2 - Windows 7
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Multithreaded tecnologia
Multithreaded tecnologia Multithreaded tecnologia
Multithreaded tecnologia
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
F oc aula_04
F oc aula_04F oc aula_04
F oc aula_04
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
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
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Apresentação Trabalho
Apresentação TrabalhoApresentação Trabalho
Apresentação Trabalho
 
Apresentação Mac OS
Apresentação Mac OSApresentação Mac OS
Apresentação Mac OS
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
 

Mais de Alexandre Duarte

Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosAlexandre Duarte
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Alexandre Duarte
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaAlexandre Duarte
 
Ciência da Computação como Ciência
Ciência da Computação como CiênciaCiência da Computação como Ciência
Ciência da Computação como CiênciaAlexandre Duarte
 
Metodologia da Pesquisa Científica: Introdução
Metodologia da Pesquisa Científica:  IntroduçãoMetodologia da Pesquisa Científica:  Introdução
Metodologia da Pesquisa Científica: IntroduçãoAlexandre Duarte
 
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerGráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerAlexandre Duarte
 
Panorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBPanorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBAlexandre Duarte
 
Sumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisSumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisAlexandre Duarte
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e ClassificaçãoAlexandre Duarte
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2DAlexandre Duarte
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1DAlexandre Duarte
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de DadosAlexandre Duarte
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosAlexandre Duarte
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de SurveysAlexandre Duarte
 
Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Alexandre Duarte
 

Mais de Alexandre Duarte (20)

Projeto de Experimentos
Projeto de ExperimentosProjeto de Experimentos
Projeto de Experimentos
 
Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de Experimentos
 
Causalidade e Abdução
Causalidade e AbduçãoCausalidade e Abdução
Causalidade e Abdução
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!
 
Atividades Científica
Atividades CientíficaAtividades Científica
Atividades Científica
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de Pesquisa
 
Ciência da Computação como Ciência
Ciência da Computação como CiênciaCiência da Computação como Ciência
Ciência da Computação como Ciência
 
Metodologia da Pesquisa Científica: Introdução
Metodologia da Pesquisa Científica:  IntroduçãoMetodologia da Pesquisa Científica:  Introdução
Metodologia da Pesquisa Científica: Introdução
 
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerGráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
 
Panorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBPanorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPB
 
Agrupamento com K-Means
Agrupamento com K-MeansAgrupamento com K-Means
Agrupamento com K-Means
 
Sumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisSumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis Nominais
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e Classificação
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2D
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1D
 
Transformação de Dados
Transformação de DadosTransformação de Dados
Transformação de Dados
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de Dados
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de Experimentos
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de Surveys
 
Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01
 

Último

HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosAntnyoAllysson
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxBiancaNogueira42
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPanandatss1
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxDeyvidBriel
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfIedaGoethe
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...LizanSantos1
 
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 anoAdelmaTorres2
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 

Último (20)

HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteiros
 
treinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppttreinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppt
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SP
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdf
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
 
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 

Gerências de Processos: Threads

  • 1. Gerências de Processos: Threads Sistemas Operacionais I Prof. Alexandre Duarte : http://alexandrend.com Centro de Informática | Universidade Federal da Paraíba Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne
  • 2. Objetivos  Introduzir a noç ão de thread, uma unidade fundamental de utilizaç ão de CPU e que representa a base da maioria dos sistemas computacionais modernos  Questões relacionadas a criaç ão de threads
  • 3. Processo com thread único e com múltiplos threads
  • 4. Benefícios  Responsividade  Compartilhamento de recursos  Economia  Escalabilidade
  • 5. Programação com múltiplos núcleos  Sistemas com múltiplos núcleos pressionam os programadores  Os desafios incluem  Particionamento das atividades  Balanç o  Particionamento dos dados  Dependência dos dados  Teste e depuraç ão
  • 6. Arquitetura de um servidor multi-threaded
  • 7. Execução concorrente em um sistema de núcleo único
  • 8. Execução paralela em um sistema com múltiplos núcleos
  • 9. Threads do usuário  Gerencia de threads feita por bibliotecas carregadas no nível do usuário  Três principais bibliotecas de threads:  POSIX Pthreads  Win32 threads  Java threads
  • 10. Threads do Núcleo  Gerenciadas pelo pró prio sistema operacional  Exemplos  Windows XP/2000  Solaris  Linux  Tru64 UNIX  Mac OS X
  • 11. Modelos de Multi-threading  Muitos-para-um  Um-para-um  Muitos-para-muitos
  • 12. Muitos-para-um  Muitas threads do usuário mapeadas para uma única thread do núcleo  Exemplos:  Solaris Green Threads  GNU Portable Threads
  • 13. Um-para-um  Cada thread do usuário é mapeada uma uma thread do núcleo  Exemplos  Windows NT/XP/2000  Linux  Solaris 9 e posterior
  • 14. Muitos-para-muitos  Permite que muitas threads do usuário sejam mapeadas em muitas threads do núcleo  Exemplos  Solaris antes da versão 9  Windows NT/2000 como o pacote ThreadFiber
  • 15. Modelo em dois níveis  Similar ao M:M porém também permite que uma thread do usuário seja associada a uma thread do núcleo  Exemplos  IRIX  HP-UX  Tru64 UNIX  Solaris 8 e anteriores
  • 16. Bibliotecas de threads  Bibliotecas de threads oferecem uma API para criaç ão e manipulaç ão de threads  Duas formas primárias de implementaç ão  Biblioteca localizada inteiramente no espaç o do usuário  Biblioteca localizada no núcleo com suporte do SO
  • 17. Pthreads  Pode ser fornecida tanto no nível do usuário quanto no núcleo  API padrão POSIX (IEEE 1003.1c) para criaç ão e sincronizaç ão de threads  A API especifica unicamente o comportamento da biblioteca, a implementaç ão fica a cargo dos desenvolvedores  Comum em sistemas operacionais UNIX (Solaris, Linux, Mac OS X)
  • 18. Java Threads  Threads em Java são gerenciados pela JVM  Tipicamente implementados de acordo com o modelo de threads do sistema operacional “hospedeiro”  Threads em Java podem ser criados  Estendendo a classe Thread  Implementando a interface Runnable
  • 19. Questões relacionadas a criação de threads  As chamadas de sistema fork() e exec()  Cancelamento de threads  Assíncrono versus adiado  Manipulaç ão de sinais  Pools de Thread  Dados específicos de threads  Ativaç ões do escalonador
  • 20. As chamadas de sistema fork() e exec()  O fork() duplica apenas o thread que invocou a chamada ou todos os threads do programa ?  O que acontece com o exec() ?
  • 21. Cancelamento de threads  Cancelar uma thread antes de sua conclusão  Duas abordagens  Cancelamento assíncrono: termina a thread alvo imediatamente  Cancelamento adiado: permite que a thread alvo verifique periodicamente se ela deve ser cancelada
  • 22. Manipulação de sinais  Sinais são utilizados no UNIX para notificar um processo de que um determinado evento ocorreu  Todos os sinais seguem o mesmo padrão  São gerados por um evento particular  São entregues a um processo  São manipulados pelo processo  Opções:  Entregar o sinal para a thread a qual ele se aplica  Entregar o sinal para todas as threads do processo  Entregar o sinal para certas threads do processo  Escolher uma thread específica para receber todos os sinais do processo
  • 23. Pools de threads  Cria um número de threads em um pool onde elas aguardam por trabalho  Vantagens:  Geralmente é um pouco mais rápido requisitar uma thread jáexistente do que criar uma nova thread  Permite que o número de threads na(s) aplicaç ão(ões) seja limitado ao tamanho do pool
  • 24. Dados específicos de threads  Permite que cada thread tenha sua pró pria có pia dos dados  Útil quando não se tem controle sobre o processo de criaç ão de threads (ex., quando se usa um thread pool)
  • 25. Ativações do escalonador  Tanto o modelo M:M quanto o de dois níveis utilizam uma estrutura de dados intermediária (LWP) entre as threads do núcleo e do usuário  O LWP funciona como um processador virtual para a aplicação no qual a aplicação pode agendar a execução de uma thread  O núcleo, em seguida, atribui uma de suas threads para executar a thread do usuário associada a um LWP
  • 26. Ativações do escalonador  Para esse esquema funciona, o núcleo precisa notificar a aplicaç ão sobre certos eventos de escalonamento de threads  Essa notificaç ão é feita através de um procedimento chamado upcall e a esse esquema de comunicaç ão é conhecido com ativação do escalonador