Sistemas operacionais
Threads
Professor: Humberto Nigri hnigri@gmail.com Processos de único e múltiplos threads
2
Benefícios
! Responsividade ! Compartilhamento de recursos ! Economia ! Utilização de arquiteturas de MP
3
Threads de usuário e kernel
! Threads do usuário – Gerenciamento de thread feito pela biblioteca de threads em nível de usuário. ! Threads do kernel - Threads admitidos diretamente pelo kernel.
4
Threads de kernel
Exemplos
! Windows ! Solaris ! Linux ! Tru64 !
XP/2000
UNIX Mac OS X
5
Modelos de multithreading
Mapeamento entre threads do usuário e threads do kernel: ! Muitos-para-um ! Um-para-um ! Muitos-para-muitos
6
Muitos-para-um
! Muitos threads em nível de usuário mapeados para único thread do kernel ! Exemplos:
! Solaris !
Green Threads GNU Portable Threads
7
Modelo muitos-para-um
8
Um-para-um
! Cada thread em nível de usuário é mapeado para thread do kernel ! Exemplos
! Windows ! Linux ! Solaris
NT/XP/2000
9 em diante
9
Modelo um-para-um
10
Modelo muitos-para-muitos
! Permite que muitos threads em nível de usuário sejam mapeados para muitos threads do kernel ! Permite que o sistema operacional crie um número suficiente de threads do kernel ! Solaris antes da versão 9 ! Windows NT/2000 com o pacote ThreadFiber
11
Modelo muitos-para-muitos
12
Modelo de nível dois
! Semelhante a M:M, exceto por permitir que um thread do usuário sejam ligado ao thread do kernel ! Exemplos
! IRIX ! HP-UX ! Tru64 !
UNIX Solaris 8 e mais antigos
13
Modelo de nível dois
14
Threads Java
! Threads Java são gerenciados pela JVM ! Threads Java podem ser criados por:
! Implementando
a interface Runnable
15
Threads Java - Programa de exemplo
16
Threads Java - Programa de exemplo
17
Estados de threads Java
18
Threads Java – ProdutorConsumidor
19
Threads Java -