# Sistemas Operacionais #
Aula 07 – Thread e Processos
Prof. Leinylson Fontinele Pereira
Sistemas Operacionais - Aula 07: Thread e Processos
Na aula anterior...
 Kernel
2
Sistemas Operacionais - Aula 07: Thread e Processos
Mundo 7 - Thread e Processos
3
Thread e Processos
Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 07: Thread e Processos
O que vamos aprender?
 Processos
# Estrutura do processo
# Estados do processo
# Mudanças de estado do processo
# Criação e eliminação de processos
# Processos independentes, subprocessos e threads
# Processos foreground e background
# Processos do sistema operacional
# Processos CPU-bound e I/O-bound
# Sinais
 Threads
# Ambiente monothread
# Ambiente multithread
# Implementação
4
Sistemas Operacionais - Aula 07: Thread e Processos
5
Processos
Sistemas Operacionais - Aula 07: Thread e Processos
Estrutura do Processo
6
Programa
Conjunto de instruções
Processo
um programa em execução
Sistemas Operacionais - Aula 07: Thread e Processos
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
Estrutura do Processo
7
Sistemas Operacionais - Aula 07: Thread e Processos
Contexto de Hardware
8
Mudança de contexto
Carrega registradores do
Processo B
Carrega registradores do
Processo A
Sistema Operacional
Salva registradores do
Processo A
executando
executando
executando
Salva registradores do
Processo B
Processo A Processo B
grama
registrador PC
registrador SP
registrador
de status
registradores
gerais
Contexto de
Hardware
aço de
çamento
Sistemas Operacionais - Aula 07: Thread e Processos
Contexto de Software
9
 Identificação
 Quotas
 Privilégios
Pro
Contexto de
Software
prioridade de
execução
data/ hora
de criação
tempo de
processador
quotas
privilégios
owner (UID)
PID
nome
Esp
Ender
Sistemas Operacionais - Aula 07: Thread e Processos
Espaço de Enderaçamento
10
Programa
Contexto de
Software
prioridade de
execução
registrador PC
data/ hora
de criação
tempo de
processador
registrador SP
quotas
privilégios
endereços de memória
principal alocados
registrador
de status
owner (UID)
PID
nome
registradores
gerais
Contexto de
Hardware
Espaço de
Endereçamento
Sistemas Operacionais - Aula 07: Thread e Processos
Bloco de Controle do Processo
11
........
ponteiros
Estado do processo
Registradores
Nome do processo
Prioridade do processo
Limites de memória
Lista de arquivos abertos
Sistemas Operacionais - Aula 07: Thread e Processos
Estados do processo
12
Em execução
Sendo executado agora
Pronto
Aguardando para ser executado
Em Espera
Aguardando um recurso externo como I/O
Sistemas Operacionais - Aula 07: Thread e Processos
Mudanças de Estados do processo
13
...
..
..
.
.......
.
...
..
..
.
.......
.
...
..
..
.
Lista de
processos
em estado
de pronto
PCB# 5
PCB# 9
PCB# 1
PCB# 2 PCB# 4
Lista de
processos
em estado
de espera
Sistemas Operacionais - Aula 07: Thread e Processos
Mudanças de Estados do processo - 1
14
Estado de Execução
Estado de Espera Estado de Pronto
a
c
db
Sistemas Operacionais - Aula 07: Thread e Processos
Mudanças de Estados do processo - 2
15
residente
não residente
Estado de Execução
Estado de Espera
Estado de Espera
Estado de Pronto
Estado de Pronto
Sistemas Operacionais - Aula 07: Thread e Processos
Mudanças de Estados do processo - 3
16
Estado de Execução Estado de Término
Estado de Espera Estado de Pronto Estado de Criação
Sistemas Operacionais - Aula 07: Thread e Processos
Processos e subprocessos
17
Processo A
Processo CProcesso B
Processo E
Processo D
Sistemas Operacionais - Aula 07: Thread e Processos
Processos foreground e background
18
(a) Processo Foreground
(b) Processo Background
saída
saída
arquivo
de saída
terminalterminal
entrada
entrada
arquivo
de entrada
Sistemas Operacionais - Aula 07: Thread e Processos
Processos foreground e background
19
Foreground
Comunicação direta com o usuário
Background
Sem interação direto com o usuário
Sistemas Operacionais - Aula 07: Thread e Processos
Pipe
20
entrada do
Processo A
saída do
Processo B
saída do
Processo A
entrada do
Processo B
Processo A Processo B
Sistemas Operacionais - Aula 07: Thread e Processos
Pipe
21
Entrada Processo A
Entrada Processo B
Saída Processo A
Sistemas Operacionais - Aula 07: Thread e Processos
CPU-bound x IO-bound
22
(a) CPU-bound
tempo tempo
E/ S E/ S
UCP UCP
(b) I/ O-bound
Qual seria I/O e qual seria CPU?
Sistemas Operacionais - Aula 07: Thread e Processos
23
Threads
Sistemas Operacionais - Aula 07: Thread e Processos
Thread - Conceitos
24
 Partes de um processo que compartilham
mesmo espaço de endereçamento
 Sub-rotina de um programa executado
paralelamente ao programa chamador
 execução concorrente de sub-rotinas
Sistemas Operacionais - Aula 07: Thread e Processos
Thread - Conceitos
25
 Às vezes chamado de processo leve (LWP).
 Existem threads de instrução ou threads de controle.
 Os threads compartilham espaço de endereço e outras
informações globais com seu próprio processo.
Sistemas Operacionais - Aula 07: Thread e Processos
Relação entre thread e processo
26
Sistemas Operacionais - Aula 07: Thread e Processos
Vantagens de threads
27
 Desempenho:
 não existe necessidade de comunicação entre processos
 utilização de multiprocessadores para um mesmo processo
 um programa pode continuar sendo executado mesmo se
parte dele estiver bloqueada
Sistemas Operacionais - Aula 07: Thread e Processos
Desvantagens de threads
28
 Desvantagem
 desenvolvimento de aplicações não é simples
Sistemas Operacionais - Aula 07: Thread e Processos
Mais exemplos...
29
 Navegador Web:
 um thread para exibir imagens
 um thread para recuperar dados da rede
 Processador de texto:
 um thread para sequência de teclas
 um thread para verificação ortográfica e gramatical
Sistemas Operacionais - Aula 07: Thread e Processos
30
Por que não dividir em vários outros processos?
Sistemas Operacionais - Aula 07: Thread e Processos
Por que não dividir em vários outros processos?
31
 A criação de um processo e a mudança de contexto consome
muito mais recurso do que a criação de uma thread
 Como cada processo possui espaço de endereçamento
próprio, a comunicação entre processos é difícil e lenta
Sistemas Operacionais - Aula 07: Thread e Processos
Monothread
32
Subprocessos Processos Independentes
Sistemas Operacionais - Aula 07: Thread e Processos
Ambiente monothread
33
Uma única execução de contexto
Thread ThreadThread
Sistemas Operacionais - Aula 07: Thread e Processos
Multithread
34
Múltiplas operações paralelas no mesmo processo
Contexto
de hardware
Contexto
de hardware
Contexto
de hardware
Espaço de
endereçamento
Contextode
software
Thread 3Thread 2Thread 1
Sistemas Operacionais - Aula 07: Thread e Processos
Multithread
35
Processo fica responsável pela
alocação de recursos, mas a unidade
escalonada é a thread;
TCB: armazena contexto de hardware
e informações sobre a thread
Espaço de
endereçamento
Processo
Programa Principal
Contextode
Hardware
Contextode
Hardware
Contextode
Hardware
Call Sub_1
Call Sub_2
Thread_1
Thread_2
Thread_3
PC
SP
PC
SP
PC
SP
Fim
Sub_2
Variáveis
Ret
Sub_1
Ret
......
Sistemas Operacionais - Aula 07: Thread e Processos
Multithread
36
Thread de
entrada
Thread de
gravação
Thread de
exibição
Buffer
Aplicação multithread
Sistemas Operacionais - Aula 07: Thread e Processos
Multithread
37
Threads de um mesmo processo compartilham contexto de software e
espaço de endereçamento, mas não compartilham contexto de hardware
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
Estrutura do processo
Contexto
de hardware
Contexto
de hardware
Contexto
de hardware
Espaço de
endereçamento
Contextode
software
Thread 3Thread 2Thread 1
Processo MULTITHREAD
Sistemas Operacionais - Aula 07: Thread e Processos
Multithread
38
Solicitações
Processo servidor
ThreadThread
Processo clienteProcesso cliente Processo cliente
Thread
Sistemas Operacionais - Aula 07: Thread e Processos
Estados de thread: ciclo de vida de um thread
39
Em S.O., preemptividade ou
preempção é a capacidade de
alterar a ordem de (ou tirar de
execução) um processo em
detrimento de outro com uma
prioridade maior.
Sistemas Operacionais - Aula 07: Thread e Processos
40
Let’s Code!
Sistemas Operacionais - Aula 07: Thread e Processos
Thread
118
Sistemas Operacionais - Aula 07: Thread e Processos
Thread
119
Sistemas Operacionais - Aula 07: Thread e Processos
Material: https://sites.google.com/site/leinylsonnassau
Aula adaptada do material de:
 Sistemas Operacionais, Anhaguera - Prof. Charles Fortes
 Arquitetura de Sistemas Operacionais, Machado e Maia
 Conceitos de thread, Faculdade PITÁGORAS - Prof. Robert Gans
 Curso de Java, Loiane Groner
126
Sistemas Operacionais - Aula 07: Thread e Processos
Nesta aula aprendemos...
127
 Processos
# Estrutura do processo
# Estados do processo
# Mudanças de estado do processo
# Criação e eliminação de processos
# Processos independentes, subprocessos e threads
# Processos foreground e background
# Processos do sistema operacional
# Processos CPU-bound e I/O-bound
# Sinais
 Threads
# Ambiente monothread
# Ambiente multithread
# Arquitetura e implementação
Sistemas Operacionais - Aula 07: Thread e Processos
𝟑ª Missão - x 100
 Missão: Implementar...
 Data da entrega: ......
 Obs.: .....
128
Sistemas Operacionais - Aula 07: Thread e Processos
Na próxima aula veremos...
 Sincronização e Comunicação entre Processos
129
Sistemas Operacionais - Aula 07: Thread e Processos
Alguma Dúvida?
Até a próxima aula...
leinylson@gmail.com
130

Sistemas Operacionais - Aula 07 (Thread e Processos)

  • 1.
    # Sistemas Operacionais# Aula 07 – Thread e Processos Prof. Leinylson Fontinele Pereira
  • 2.
    Sistemas Operacionais -Aula 07: Thread e Processos Na aula anterior...  Kernel 2
  • 3.
    Sistemas Operacionais -Aula 07: Thread e Processos Mundo 7 - Thread e Processos 3 Thread e Processos Estrutura do Sistema Operacional
  • 4.
    Sistemas Operacionais -Aula 07: Thread e Processos O que vamos aprender?  Processos # Estrutura do processo # Estados do processo # Mudanças de estado do processo # Criação e eliminação de processos # Processos independentes, subprocessos e threads # Processos foreground e background # Processos do sistema operacional # Processos CPU-bound e I/O-bound # Sinais  Threads # Ambiente monothread # Ambiente multithread # Implementação 4
  • 5.
    Sistemas Operacionais -Aula 07: Thread e Processos 5 Processos
  • 6.
    Sistemas Operacionais -Aula 07: Thread e Processos Estrutura do Processo 6 Programa Conjunto de instruções Processo um programa em execução
  • 7.
    Sistemas Operacionais -Aula 07: Thread e Processos Programa Contexto de Software Contexto de Hardware Espaço de Endereçamento Estrutura do Processo 7
  • 8.
    Sistemas Operacionais -Aula 07: Thread e Processos Contexto de Hardware 8 Mudança de contexto Carrega registradores do Processo B Carrega registradores do Processo A Sistema Operacional Salva registradores do Processo A executando executando executando Salva registradores do Processo B Processo A Processo B grama registrador PC registrador SP registrador de status registradores gerais Contexto de Hardware aço de çamento
  • 9.
    Sistemas Operacionais -Aula 07: Thread e Processos Contexto de Software 9  Identificação  Quotas  Privilégios Pro Contexto de Software prioridade de execução data/ hora de criação tempo de processador quotas privilégios owner (UID) PID nome Esp Ender
  • 10.
    Sistemas Operacionais -Aula 07: Thread e Processos Espaço de Enderaçamento 10 Programa Contexto de Software prioridade de execução registrador PC data/ hora de criação tempo de processador registrador SP quotas privilégios endereços de memória principal alocados registrador de status owner (UID) PID nome registradores gerais Contexto de Hardware Espaço de Endereçamento
  • 11.
    Sistemas Operacionais -Aula 07: Thread e Processos Bloco de Controle do Processo 11 ........ ponteiros Estado do processo Registradores Nome do processo Prioridade do processo Limites de memória Lista de arquivos abertos
  • 12.
    Sistemas Operacionais -Aula 07: Thread e Processos Estados do processo 12 Em execução Sendo executado agora Pronto Aguardando para ser executado Em Espera Aguardando um recurso externo como I/O
  • 13.
    Sistemas Operacionais -Aula 07: Thread e Processos Mudanças de Estados do processo 13 ... .. .. . ....... . ... .. .. . ....... . ... .. .. . Lista de processos em estado de pronto PCB# 5 PCB# 9 PCB# 1 PCB# 2 PCB# 4 Lista de processos em estado de espera
  • 14.
    Sistemas Operacionais -Aula 07: Thread e Processos Mudanças de Estados do processo - 1 14 Estado de Execução Estado de Espera Estado de Pronto a c db
  • 15.
    Sistemas Operacionais -Aula 07: Thread e Processos Mudanças de Estados do processo - 2 15 residente não residente Estado de Execução Estado de Espera Estado de Espera Estado de Pronto Estado de Pronto
  • 16.
    Sistemas Operacionais -Aula 07: Thread e Processos Mudanças de Estados do processo - 3 16 Estado de Execução Estado de Término Estado de Espera Estado de Pronto Estado de Criação
  • 17.
    Sistemas Operacionais -Aula 07: Thread e Processos Processos e subprocessos 17 Processo A Processo CProcesso B Processo E Processo D
  • 18.
    Sistemas Operacionais -Aula 07: Thread e Processos Processos foreground e background 18 (a) Processo Foreground (b) Processo Background saída saída arquivo de saída terminalterminal entrada entrada arquivo de entrada
  • 19.
    Sistemas Operacionais -Aula 07: Thread e Processos Processos foreground e background 19 Foreground Comunicação direta com o usuário Background Sem interação direto com o usuário
  • 20.
    Sistemas Operacionais -Aula 07: Thread e Processos Pipe 20 entrada do Processo A saída do Processo B saída do Processo A entrada do Processo B Processo A Processo B
  • 21.
    Sistemas Operacionais -Aula 07: Thread e Processos Pipe 21 Entrada Processo A Entrada Processo B Saída Processo A
  • 22.
    Sistemas Operacionais -Aula 07: Thread e Processos CPU-bound x IO-bound 22 (a) CPU-bound tempo tempo E/ S E/ S UCP UCP (b) I/ O-bound Qual seria I/O e qual seria CPU?
  • 23.
    Sistemas Operacionais -Aula 07: Thread e Processos 23 Threads
  • 24.
    Sistemas Operacionais -Aula 07: Thread e Processos Thread - Conceitos 24  Partes de um processo que compartilham mesmo espaço de endereçamento  Sub-rotina de um programa executado paralelamente ao programa chamador  execução concorrente de sub-rotinas
  • 25.
    Sistemas Operacionais -Aula 07: Thread e Processos Thread - Conceitos 25  Às vezes chamado de processo leve (LWP).  Existem threads de instrução ou threads de controle.  Os threads compartilham espaço de endereço e outras informações globais com seu próprio processo.
  • 26.
    Sistemas Operacionais -Aula 07: Thread e Processos Relação entre thread e processo 26
  • 27.
    Sistemas Operacionais -Aula 07: Thread e Processos Vantagens de threads 27  Desempenho:  não existe necessidade de comunicação entre processos  utilização de multiprocessadores para um mesmo processo  um programa pode continuar sendo executado mesmo se parte dele estiver bloqueada
  • 28.
    Sistemas Operacionais -Aula 07: Thread e Processos Desvantagens de threads 28  Desvantagem  desenvolvimento de aplicações não é simples
  • 29.
    Sistemas Operacionais -Aula 07: Thread e Processos Mais exemplos... 29  Navegador Web:  um thread para exibir imagens  um thread para recuperar dados da rede  Processador de texto:  um thread para sequência de teclas  um thread para verificação ortográfica e gramatical
  • 30.
    Sistemas Operacionais -Aula 07: Thread e Processos 30 Por que não dividir em vários outros processos?
  • 31.
    Sistemas Operacionais -Aula 07: Thread e Processos Por que não dividir em vários outros processos? 31  A criação de um processo e a mudança de contexto consome muito mais recurso do que a criação de uma thread  Como cada processo possui espaço de endereçamento próprio, a comunicação entre processos é difícil e lenta
  • 32.
    Sistemas Operacionais -Aula 07: Thread e Processos Monothread 32 Subprocessos Processos Independentes
  • 33.
    Sistemas Operacionais -Aula 07: Thread e Processos Ambiente monothread 33 Uma única execução de contexto Thread ThreadThread
  • 34.
    Sistemas Operacionais -Aula 07: Thread e Processos Multithread 34 Múltiplas operações paralelas no mesmo processo Contexto de hardware Contexto de hardware Contexto de hardware Espaço de endereçamento Contextode software Thread 3Thread 2Thread 1
  • 35.
    Sistemas Operacionais -Aula 07: Thread e Processos Multithread 35 Processo fica responsável pela alocação de recursos, mas a unidade escalonada é a thread; TCB: armazena contexto de hardware e informações sobre a thread Espaço de endereçamento Processo Programa Principal Contextode Hardware Contextode Hardware Contextode Hardware Call Sub_1 Call Sub_2 Thread_1 Thread_2 Thread_3 PC SP PC SP PC SP Fim Sub_2 Variáveis Ret Sub_1 Ret ......
  • 36.
    Sistemas Operacionais -Aula 07: Thread e Processos Multithread 36 Thread de entrada Thread de gravação Thread de exibição Buffer Aplicação multithread
  • 37.
    Sistemas Operacionais -Aula 07: Thread e Processos Multithread 37 Threads de um mesmo processo compartilham contexto de software e espaço de endereçamento, mas não compartilham contexto de hardware Programa Contexto de Software Contexto de Hardware Espaço de Endereçamento Estrutura do processo Contexto de hardware Contexto de hardware Contexto de hardware Espaço de endereçamento Contextode software Thread 3Thread 2Thread 1 Processo MULTITHREAD
  • 38.
    Sistemas Operacionais -Aula 07: Thread e Processos Multithread 38 Solicitações Processo servidor ThreadThread Processo clienteProcesso cliente Processo cliente Thread
  • 39.
    Sistemas Operacionais -Aula 07: Thread e Processos Estados de thread: ciclo de vida de um thread 39 Em S.O., preemptividade ou preempção é a capacidade de alterar a ordem de (ou tirar de execução) um processo em detrimento de outro com uma prioridade maior.
  • 40.
    Sistemas Operacionais -Aula 07: Thread e Processos 40 Let’s Code!
  • 41.
    Sistemas Operacionais -Aula 07: Thread e Processos Thread 118
  • 42.
    Sistemas Operacionais -Aula 07: Thread e Processos Thread 119
  • 43.
    Sistemas Operacionais -Aula 07: Thread e Processos Material: https://sites.google.com/site/leinylsonnassau Aula adaptada do material de:  Sistemas Operacionais, Anhaguera - Prof. Charles Fortes  Arquitetura de Sistemas Operacionais, Machado e Maia  Conceitos de thread, Faculdade PITÁGORAS - Prof. Robert Gans  Curso de Java, Loiane Groner 126
  • 44.
    Sistemas Operacionais -Aula 07: Thread e Processos Nesta aula aprendemos... 127  Processos # Estrutura do processo # Estados do processo # Mudanças de estado do processo # Criação e eliminação de processos # Processos independentes, subprocessos e threads # Processos foreground e background # Processos do sistema operacional # Processos CPU-bound e I/O-bound # Sinais  Threads # Ambiente monothread # Ambiente multithread # Arquitetura e implementação
  • 45.
    Sistemas Operacionais -Aula 07: Thread e Processos 𝟑ª Missão - x 100  Missão: Implementar...  Data da entrega: ......  Obs.: ..... 128
  • 46.
    Sistemas Operacionais -Aula 07: Thread e Processos Na próxima aula veremos...  Sincronização e Comunicação entre Processos 129
  • 47.
    Sistemas Operacionais -Aula 07: Thread e Processos Alguma Dúvida? Até a próxima aula... leinylson@gmail.com 130