Arquitetura de Sistemas Operacionais – Fucapi/CEEF Arquitetura de Sistemas Operacionais Técnico em Informática Turmas: MBI1 Escalonamento de Tarefas Thread Cap. 6 – Thread 1 Arquitetura de Sistemas Operacionais – Fucapi/CEEF Sumário • • • • Introdução Ambiente monothread Ambiente multithread Arquitetura e implementação Cap. 6 – Thread 2 Arquitetura de Sistemas Operacionais – Fucapi/CEEF Thread • Thread, ou linha de execução em português, é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente Cap. 6 – Thread 3 Arquitetura de Sistemas Operacionais – Fucapi/CEEF Ambiente Monothread • Concorrência com processos Subprocessos Cap. 6 – Thread Processos Independentes 4 Arquitetura de Sistemas Operacionais – Fucapi/CEEF Ambiente Monothread • Ambiente monothread Thread Cap. 6 – Thread Thread Thread 5 • Ambiente multithread Contexto de hardware Contexto de hardware Contexto de hardware Thread 1 Thread 2 Thread 3 Contexto de software Arquitetura de Sistemas Operacionais – Fucapi/CEEF Ambiente Multithread Espaço de endereçamento Cap. 6 – Thread 6 • 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 ... Arquitetura de Sistemas Operacionais – Fucapi/CEEF Ambiente Multithread Cap. 6 – Thread 7 Arquitetura de Sistemas Operacionais – Fucapi/CEEF Ambiente Multithread • Aplicação multithread (a) Th r e a d d e e n tr a d a Bu f f e r Th r e a d d e e xi b i çã o Cap. 6 – Thread Th r e a d d e g r a v a çã o 8 Arquitetura de Sistemas Operacionais – Fucapi/CEEF Ambiente Multithread • Aplicação multithread (b) Processo servidor Solicitações Cap. 6 – Thread Thread Thread Thread Processo cliente Processo cliente Processo cliente 9 Arquitetura de Sistemas Operacionais – Fucapi/CEEF Arquitetura e Implementação • Threads em modo usuário • Threads em modo kernel • Threads em modo híbrido Cap. 6 – Thread 10 Arquitetura de Sistemas Operacionais – Fucapi/CEEF Arquitetura e Implementação • Modo Usuário – são implementados pela aplicação e não pelo sistema operacional. Deve existir uma biblioteca de rotinas que possibilite a aplicação realizar tarefas como eliminar/criar threads, troca de mensagens e políticas de escalonamento. É limitante pois o SO reconhece a existência de um único thread (um thread ao chamar uma rotina do sistema coloca todo o processo e seus threads aptos a executar em estado de espera ) Cap. 6 – Thread 11 Arquitetura de Sistemas Operacionais – Fucapi/CEEF Arquitetura e Implementação • Modo Kernel – são implementadas diretamente pelo núcleo do SO por meio de chamadas de sistema que oferecem todas as rotinas de sincronização e gerenciamento. • Modo Híbrido – combina as vantagens de threads implementados em modo usuário e modo kernel. Cap. 6 – Thread 12 Thread 4 Thread 3 Thread 2 Thread 1 • Threads em modo usuário Thread 0 Arquitetura de Sistemas Operacionais – Fucapi/CEEF Arquitetura e Implementação Modo usuário Biblioteca Kernel Cap. 6 – Thread Modo kernel 13 Kernel Cap. 6 – Thread Thread 4 Thread 3 Thread 2 Thread 1 • Threads em modo kernel Thread 0 Arquitetura de Sistemas Operacionais – Fucapi/CEEF Arquitetura e Implementação Modo usuário Modo kernel 14 TMU 5 TMU 4 TMU 3 TMU 2 TMU 1 • Threads em modo híbrido TMU 0 Arquitetura de Sistemas Operacionais – Fucapi/CEEF Arquitetura e Implementação Modo usuário Biblioteca TMK 0 TMK 1 TMK 2 TMK 3 Modo kernel Kernel Cap. 6 – Thread 15