25
1 Thread Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Thread - Blog do Prof. PC · Stallings (2011) O que é? 8 Capítulo 06 ... Capítulo 06 Thread Variantes do Unix (antigas versões) MS-DOS Processo Único Thread Único Múltiplos

  • Upload
    vuphuc

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

1

Thread

Prof. Paulo Cesar F. de Oliveira, BSc, PhD

2

Capítulo 06 Thread

14/05/14 © P C F de Oliveira 2014

Seção 1.1 Introdução

3 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

Ingredientes: dados de entrada

§ Receita do Bolo Programa (Algoritmo)

Quem prepara (confeiteiro): CPU

Processo – atividade de: § Ler a receita § Buscar ingredientes § Assar o bolo

4 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

§ Quando picada tiver sido tratada, confeiteiro volta ao bolo

§ Continua do ponto onde parou

§ Confeiteiro registra onde estava na receita (processo é salvo)

§ Busca Livro Primeiros Socorros § Segue instruções do livro § Confeiteiro (CPU) passa de um processo

(Assar o bolo) para um de prioridade mais alta (fornecer cuidados médicos)

5 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

Processo 1 Processo 2 Processo 3

§ Mistura o ovo §  Ovo misturado com a farinha

§  Calda é colocada na massa misturada com ovo

Ingredientes: dados de entrada

Receita (Algoritmo)

6 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

Processo 1 Thread

Processo 2 Thread

Processo 3 Thread

§ Mistura o ovo §  Ovo misturado com a farinha

§  Calda é colocada na massa misturada com ovo

Ingredientes: dados de entrada

Receita (Algoritmo)

7 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

§ Unidade básica de utilização de CPU Silberchatz, Galvin, Gagne (2005) § Processo dentro de um processo,

ou um miniprocesso Tanenbaum (2010) § Unidade de execução ou um

processo leve (lightweight process) Stallings (2011)

O que é?

8

Capítulo 06 Thread

14/05/14 © P C F de Oliveira 2014

Seção 1.2 Ambiente Monothread

9 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

S ubp rocessos Proce ssos   In dep enden te s

§ Processo independente: não existe vínculo entre processo criado e seu criador

§ Subprocessos: processos criados dentro de uma estrutura hierárquica

§ Ambiente monothread: um processo suporta apenas um programa no seu espaço de endereçamento

10 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

Th rea d Th rea dTh rea d

§ Cada processo possui seu próprio contexto de software, hardware e espaço de endereçamento

§ Ambiente monothread: um processo suporta apenas um programa no seu espaço de endereçamento

11 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

Variantes do Unix (antigas versões)

MS-DOS

Processo Único Thread Único

Múltiplos Processos Um Thread por processo

Fonte: Stalings, W. Operating Systems: Internals and Design Principles, 6.ed., (2011)

Thread

12

Capítulo 06 Thread

14/05/14 © P C F de Oliveira 2014

Seção 1.3 Ambiente Multithread

C on textod e  h a rdwa re

C on textod e  h a rdwa re

C on textod e  h a rdwa re

Esp a ço  d eendereça men to

Con

texto  de

softwar

e

Th rea d  3Th rea d  2Th rea d  1

13 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

§ Um processo com 3 threads

§ Compartilham mesmo espaço de endereçamento

§ Não existe a ideia de programas associados a processos, mas sim a threads

14 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

Um Processo Múltiplos Threads

Múltiplos Processos Múltiplos Threads por processo

Fonte: Stallings, W. Operating Systems: Internals and Design Principles, 6.ed., (2011)

Windows, Solaris e novas versões do Unix/

Linux

Java Run-time Thread

Esp a ço  d eendereça men to

Processo

Prog ram a  Pr in cipa l

Con

texto  de

Har

dware

Con

texto  de

Har

dwar

eCon

texto  de

Har

dware

C a l l   Su b_1

C a l l   Su b_2

Th rea d_1

Th rea d_2

Th rea d_3

PCSP

PCSP

PCSP

F im

Sub_2

Va riá ve is

Ret

S ub_1

Ret...

...

15 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

§  Threads executados concorrentemente

§ Vantagem § Minimizar alocação

de recursos do SO §  Diminuir overhead

(sobrecarga) na criação, troca e eliminação de processos

`

Aplicação Multithread

S o l icita ções

Processo  se rvido r

Th rea dTh rea d

Processo  clienteProcesso  cliente Processo  cliente

Th rea d

16 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

§ Permite que diversos pedidos sejam atendidos simultaneamente

§  Thread pode solicitar serviço remoto enquanto a aplicação pode continuar realizando outras tarefas

`

Aplicação Multithread

17

Capítulo 06 Thread

14/05/14 © P C F de Oliveira 2014

Seção 1.4 Programação Multithread

18 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

19

Capítulo 06 Thread

14/05/14 © P C F de Oliveira 2014

Seção 1.5 Arquitetura e Implementação

20 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

Ambientes Arquitetura Distributed Computing Environment (DCE) Modo Usuário

Compaq Open MVS v.6 Modo Usuário

Windows 2000 Modo Kernel

Compaq Unix Modo Kernel

Compaq Open MVS v.7 Modo Kernel

Solaris v.7 Modo Híbrido

University of Washington FastThreads Scheduler Activations

§ Bibliotecas de rotinas thread § Fora do núcleo SO: usuário § Pelo núcleo: kernel § Combinação: híbrido

21 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

§  Implementados pela aplicação e não SO

§  Existe uma biblioteca para criação/eliminação de threads, e escalonamento

§  Aplicação gerencia e sincroniza os threads

§  Rápidos e eficientes por não acessar kernel

Modou suá rio

Modok erne l

K erne l

Bib lio teca

Thre

ad  0

Thre

ad  4

Thre

ad  3

Thre

ad  2

Thre

ad  1

Threads em Modo Usuário (TMU)

22 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

§  Implementados pelo SO

§  SO sabe da existência dos threads e pode escaloná-los um a um

§  Problema de baixo desempenho porque utilizam kernel para chamadas ao sistema

Threads em Modo Kernel (TMK)

Modou suá rio

Modok erne lK erne l

Thre

ad  0

Thre

ad  4

Thre

ad  3

Thre

ad  2

Thre

ad  1

23 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

§  Combina as vantagens de threads em TMU e TMK

§  Programador desenvolve aplicação em termos de TMU e especifica quantos TMK estão associados ao processo

§  TMU são mapeados em TMK quando processo está sendo executado

§  Apresenta problemas herdados das duas implementações

Threads em Modo Híbrido (TMH)

Modou suá rio

Modok erne l

K erne l

TMK  0 TMK  3TMK  2TMK  1

Bib lio teca

TMU  0

TMU  4

TMU  5

TMU  3

TMU  2

TMU  1

24 14/05/14 © P C F de Oliveira 2014

Capítulo 06 Thread

§  Combina o melhor das duas arquiteturas

§  Kernel troca informações com a biblioteca de threads usando a estrutura de dados SA

§ Melhor desempenho é alcançado porque evita mudanças de modos de acesso desnecessárias (e.g. Usuário-kernel-usuário)

Scheduler Activations (SA)

Modou suá rio

Modok erne lK erne l

Bib lio teca

Thre

ad  0

Thre

ad  4

Thre

ad  3

Thre

ad  2

Thre

ad  1

Texto – Fonte Arial Normal – Máx.14pt / Mín.12pt – Preto – Centralizado

25