Sop 02 Thread

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Sop 02 Thread as PDF for free.

More details

  • Words: 717
  • Pages: 21
Processos e Threads Sistemas Operacionais (SOPBCC) De: Andrew S. Tanenbaum Tradução: Ronaldo A.L. Gonçalves Luís A. Consulado

Responsável pela disciplina: Prof. Dr. Maurício Aronne Pillon Curso de Ciência da Computação

1 Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Threads (conceitos) • Mais de um fluxo de controle em um mesmo espaço de endereçamento (compartilhado); • Agrupamento de recursos e execução. – Recursos (código, dados do programa, etc) compartilhados; – Execução com mais de um contador de programa - controle de qual instrução será executada a seguir (pilha e variáveis atuais);

15 Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Threads (conceito) • Processos X Threads – Processos usados para agrupar recursos; – Threads são as entidades escalonadas para execução sobre a CPU.

• Permite múltiplas execuções no mesmo ambiente do processo com um grande grau de independência uma da outra. 16 Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Threads

O Modelo de Thread (1)

(a) Três processos cada um com um thread (b) Um processo com três threads 17 Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

O Modelo de Thread (2)

• Itens compartilhados por todos os threads em um  processo • Itens privativos de cada thread 18 Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

O Modelo de Thread (3)

Cada thread tem sua própria pilha 19 Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Uso de Thread (1)

Um processador de texto com três threads 20 Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Uso de Thread (2)

Um servidor web com múltiplos threads 21

Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Uso de Thread (3)



Código simplificado do slide anterior (a) Thread despachante (b) Thread operário 22

Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Uso de Thread (4)

Três maneiras de construir um servidor 23 Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Implementação de  Threads de Usuário

Um pacote de threads de usuário

24

Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Implementação de  Threads de Usuário

• Vantagens

– Não necessita de privilégios especiais;

• Desvantagens – Não explora o paralelismo em máquinas multiprocessadas; – Dificuldade de gerência preemptiva do processador – Se um thread estiver bloqueado em E/S todo o processo pára. Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Implementação de  Threads de Núcleo

Um pacote de threads gerenciado pelo núcleo 26 Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Implementação de  Threads de Núcleo • Vantagens – Facilita o recobrimento de E/S – Explora o paralelismo SMP

• Desvantagens – Implementação mais “pesada” • “Reciclagem” de threads

Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Implementações Híbridas

Multiplexação de threads de usuário sobre  threads de núcleo 28 Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Implementações Híbridas • Características: – Dispões de dois níveis de escalonamento – Multiplexação dos threads de núcleo • Vantagens – Recobrimento das E/S • Desvantagens – Difícil parametrização da multiplexação.

Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Ativações do Escalonador • Objetivo – imitar a funcionalidade dos threads de  núcleo – ganha desempenho de threads de usuário

• Evita transições usuário/núcleo desnecessárias  • Núcleo atribui processadores virtuais para cada  processo – deixa o sistema supervisor alocar threads para  processadores

• Problema: Baseia­se fundamentalmente nos upcalls ­  o núcleo (camada inferior) chamando procedimentos  no espaço do usuário (camada superior) 

30 Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Threads Pop­Up

• Criação de um novo thread quando chega  uma mensagem (a) antes da mensagem chegar (b) depois da mensagem chegar

31

Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Convertendo Código Monothread  em Código Multithread (1) • Conflito no uso de variáveis globais; – Proibir o uso de variáveis globais – Atribuir variáveis globais privadas (a cada thread) • create_global(“bufptr”); • set_global(“bufprt”,&buf) • Bufptr = read_global(“bufptr”);

• Bibliotecas não reentrantes; • Tratamento de sinais; • Gerenciamento de pilhas

32

Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Convertendo Código Monothread  em Código Multithread (2)

• Conflitos entre threads sobre o uso de uma variável global • Código de erro de th1 é sobre escrito pelo da th2. 33

Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Convertendo Código Monothread em Código Multithread (3)

Threads podem ter variáveis globais privadas

34

Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição

Related Documents

Sop 02 Thread
November 2019 10
Thread
November 2019 32
Thread
November 2019 31
Thread
June 2020 20
Thread
November 2019 25
Sop 02 Escalonamento
November 2019 15