Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 6 Thread Cap. 6 – Thread 1 Sumário • • • • Introdução Ambiente monothread Ambiente multithread Arquitetura e implementação Cap. 6 – Thread 2 Ambiente Monothread • Concorrência com processos Subprocessos Cap. 6 – Thread Processos Independentes 3 Ambiente Monothread • Ambiente monothread Thread Cap. 6 – Thread Thread Thread 4 Ambiente Multithread • Ambiente multithread Contexto de hardware Contexto de hardware Thread 1 Thread 2 Thread 3 Contexto de software Contexto de hardware Espaço de endereçamento Cap. 6 – Thread 5 Ambiente Multithread • Aplicação multithread Processo Variáveis Programa Principal Thread_1 PC SP Contexto de Hardware ... Espaço de endereçamento Call Sub_1 Thread_2 Sub_1 Ret PC SP Thread_3 Sub_2 PC SP Contexto de Hardware Fim Contexto de Hardware Call Sub_2 ... Ret Cap. 6 – Thread 6 Ambiente Multithread • Aplicação multithread (a) Thread de entrada Buffer Thread de exibição Cap. 6 – Thread Thread de gravação 7 Ambiente Multithread • Aplicação multithread (b) Processo servidor Solicitações Cap. 6 – Thread Thread Thread Thread Processo cliente Processo cliente Processo cliente 8 Arquitetura e Implementação • • • • Threads em modo usuário Threads em modo kernel Threads em modo híbrido Scheduler Activations Cap. 6 – Thread 9 Arquitetura e Implementação Thread 4 Thread 3 Thread 2 Thread 1 Thread 0 • Threads em modo usuário Modo usuário Biblioteca Kernel Cap. 6 – Thread Modo kernel 10 Arquitetura e Implementação Kernel Cap. 6 – Thread Thread 4 Thread 3 Thread 2 Thread 1 Thread 0 • Threads em modo kernel Modo usuário Modo kernel 11 Arquitetura e Implementação TMU 5 TMU 4 TMU 3 TMU 2 TMU 1 TMU 0 • Threads em modo híbrido Modo usuário Biblioteca TMK 0 TMK 1 TMK 2 TMK 3 Modo kernel Kernel Cap. 6 – Thread 12 Arquitetura e Implementação Thread 4 Thread 3 Thread 2 Thread 1 Thread 0 • Scheduler Activations Modo usuário Biblioteca Kernel Cap. 6 – Thread Modo kernel 13