Escolar Documentos
Profissional Documentos
Cultura Documentos
Arquitetura de Sistemas
Operacionais
Capítulo 6
Thread
Cap. 6 – Thread 1
Sumário
Arquitetura de Sistemas Operacionais – Machado/Maia
• Introdução
• Ambiente monothread
• Ambiente multithread
• Arquitetura e implementação
• Modelos de programação
Cap. 6 – Thread 2
Introdução
• Até o final da década de 1970, S.O.
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 4
Introdução
• A presença de paralelismo gera
Arquitetura de Sistemas Operacionais – Machado/Maia
problemas de comunicação e
sincronização entre os threads, assim o
desenvolvimento de aplicações não é
trivial;
• Existem vários modelos para a
implementação de threads no S.O.;
• Deve-se considerar:
– Desempenho;
– Flexibilidade;
– Custo.
Cap. 6 – Thread 5
Introdução
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 6
Ambiente Monothread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 7
Ambiente Monothread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 8
Ambiente Monothread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 9
Ambiente Monothread
Arquitetura de Sistemas Operacionais – Machado/Maia
• O compartilhamento de recursos
comuns (arquivos abertos, memória)
não é simples;
• Exemplos de S.O. monothread:
– MS-DOS;
– Primeiras versões do Windows;
– Mesmo em S.O. multiprogramavéis e
multiusuários: VAX/VMS e Unix;
Cap. 6 – Thread 11
Ambiente Monothread
Arquitetura de Sistemas Operacionais – Machado/Maia
• Ambiente monothread
• Três threads necessitam de três
processos;
Th re a d Th re a d Th re a d
Cap. 6 – Thread 12
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 13
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
• Ambiente multithread
• 3 threads
• 1 processo
C o n te xto C o n te xto Co n te xto
d e h a rd w a re d e h a rd w a re d e h a rd w a re
C o n te xto d e
so ftw a r e
Th re a d 1 Th re a d 2 Th re a d 3
Esp a ço d e
e n d e r e ça m e n to
Cap. 6 – Thread 14
Ambiente Multithread
• Simplificando, um thread pode ser
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 15
Ambiente MultithreadPr o ce ss o
Arquitetura de Sistemas Operacionais – Machado/Maia
Aplicação
Esp a ço d e
e n d e r e ça m e n to
...
multithread Va riá ve is
Th re a d _1
C o n te xto d e
H a r d w a re
Pr o g r a m a Pr in cip a l PC
SP
C a ll Su b _1
C a ll Su b _2
Fim Th re a d _2
C o n te xto d e
H a r d w a re
PC
Su b _1
SP
Re t Th re a d _3
C o n te xto d e
H a r d w a re
Su b _2 PC
SP
Re t
...
Cap. 6 – Thread 16
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 17
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 18
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 19
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 20
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 21
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 22
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 23
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 24
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 25
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
• Aplicação
multithread (a)
Th re a d d e
e n tr a d a
Bu ffe r
Th re a d d e Th re a d d e
e xib içã o g ra va çã o
Cap. 6 – Thread 26
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 27
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 28
Ambiente Multithread
Arquitetura de Sistemas Operacionais – Machado/Maia
• Aplicação Pr o ce ss o se rvid o r
multithread (b)
So licita çõ e s
Th re a d Th re a d Th re a d
Cap. 6 – Thread 29
Arquitetura e Implementação
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 30
Arquitetura e Implementação
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 31
Arquitetura e Implementação
Arquitetura de Sistemas Operacionais – Machado/Maia
Ambiente Arquitetura
Cap. 6 – Thread 32
Arquitetura e Implementação
• Uma das dificuldades foi a ausência de
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 33
Modo Usuário
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 34
Modo Usuário
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 35
Modo Usuário
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 36
Modo Usuário
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 39
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread
Th r e a d 0
Th r e a d 1
Th re a d 2
Ke r n e l
Bib lio te ca
Th r e a d 3
Th r e a d 4
• Threads em modo usuário
Mo d o
Mo d o
ke rn e l
u su á rio
Modo Usuário
40
Modo kernel
• Threads em modo kernel (TMK) são
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 41
Modo kernel
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 42
Modo kernel
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 43
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread
Th r e a d 0
Th r e a d 1
Th re a d 2
Ke r n e l
Th re a d 3
• Threads em modo kernel
Th re a d 4
Mo d o
Mo d o
ke rne l
u su á rio
Modo kernel
44
Modo híbrido
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 45
Modo híbrido
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 46
Modo híbrido
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 47
Modo híbrido
Arquitetura de Sistemas Operacionais – Machado/Maia
TMU 1
TMU 0
TMU 2
TMU 3
TMU 4
TMU 5
Mo d o
u su á rio
Bib lio te ca
Cap. 6 – Thread 48
Scheduler Activations
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 49
Scheduler Activations
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 50
Scheduler Activations
Arquitetura de Sistemas Operacionais – Machado/Maia
• Scheduler Activations
Th re a d 1
Th r e a d 0
Th re a d 2
Th r e a d 3
Th r e a d 4
Mo d o
u su á rio
Bib lio te ca
Mo d o
Ke r n e l ke r n e l
Cap. 6 – Thread 51
Scheduler Activations
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 52
Scheduler Activations
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 53
Modelos de programação
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 54
Modelos de programação
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 55
Modelos de programação
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 56
Modelos de programação
Arquitetura de Sistemas Operacionais – Machado/Maia
Cap. 6 – Thread 57