Sistemas Operacionais - Aula 07 (Thread e Processos)

47
# Sistemas Operacionais # Aula 07 – Thread e Processos Prof. Leinylson Fontinele Pereira

Transcript of Sistemas Operacionais - Aula 07 (Thread e Processos)

# 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ção4

Sistemas Operacionais - Aula 07: Thread e Processos5

Processos

Sistemas Operacionais - Aula 07: Thread e Processos

Estrutura do Processo

6

ProgramaConjunto de instruções

Processoum programa em execução

Sistemas Operacionais - Aula 07: Thread e Processos

Programa

Contexto deSoftware

Contexto deHardware

Espaço deEndereçamento

Estrutura do Processo

7

Sistemas Operacionais - Aula 07: Thread e Processos

Contexto de Hardware

8

Mudança de contexto

Carrega registradores doProcesso B

Carrega registradores doProcesso A

Sistema Operacional

Salva registradores doProcesso A

executando

executando

executando

Salva registradores doProcesso B

Processo A Processo B

Programa

Contexto deSoftware

prioridade deexecução

registrador PC

data/ horade criação

tempo deprocessador

registrador SP

quotas

privilégios

endereços de memóriaprincipal alocados

registradorde status

owner (UID)

PID

nomeregistradores

gerais

Contexto deHardware

Espaço deEndereçamento

Sistemas Operacionais - Aula 07: Thread e Processos

Contexto de Software

9

Identificação

Quotas

PrivilégiosPrograma

Contexto deSoftware

prioridade deexecução

registrador PC

data/ horade criação

tempo deprocessador

registrador SP

quotas

privilégios

endereços de memóriaprincipal alocados

registradorde status

owner (UID)

PID

nomeregistradores

gerais

Contexto deHardware

Espaço deEndereçamento

Sistemas Operacionais - Aula 07: Thread e Processos

Espaço de Enderaçamento

10

Programa

Contexto deSoftware

prioridade deexecução

registrador PC

data/ horade criação

tempo deprocessador

registrador SP

quotas

privilégios

endereços de memóriaprincipal alocados

registradorde status

owner (UID)

PID

nomeregistradores

gerais

Contexto deHardware

Espaço deEndereç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çãoSendo executado agora

ProntoAguardando para ser executado

Em EsperaAguardando um recurso externo como I/O

Sistemas Operacionais - Aula 07: Thread e Processos

Mudanças de Estados do processo

13

.

..

..

..

.

.

..

..

..

.

.

..

..

..

.

.

..

..

..

.

.

..

..

..

.

Lista deprocessosem estadode pronto

PCB# 5

PCB# 9

PCB# 1

PCB# 2 PCB# 4

Lista deprocessosem estadode 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 EProcesso D

Sistemas Operacionais - Aula 07: Thread e Processos

Processos foreground e background

18

(a) Processo Foreground

(b) Processo Background

saída

saída

arquivode saída

terminalterminal

entrada

entrada

arquivode entrada

Sistemas Operacionais - Aula 07: Thread e Processos

Processos foreground e background

19

ForegroundComunicação direta com o usuário

BackgroundSem interação direto com o usuário

Sistemas Operacionais - Aula 07: Thread e Processos

Pipe

20

entrada doProcesso A

saída doProcesso B

saída doProcesso A

entrada doProcesso 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-boundtempo 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 Processos23

Threads

Sistemas Operacionais - Aula 07: Thread e Processos

Thread - Conceitos

24

Partes de um processo que compartilhammesmo espaço de endereçamento

Sub-rotina de um programa executadoparalelamente 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 outrasinformaçõ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 separte 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 Processos30

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 consomemuito mais recurso do que a criação de uma thread

Como cada processo possui espaço de endereçamentopró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

Contextode hardware

Contextode hardware

Contextode hardware

Espaço deendereçamento

Co

nte

xto

de

soft

wa

re

Thread 3Thread 2Thread 1

Sistemas Operacionais - Aula 07: Thread e Processos

Multithread

35

Processo fica responsável pelaalocação de recursos, mas a unidadeescalonada é a thread;

TCB: armazena contexto de hardwaree informações sobre a thread

Espaço deendereçamento

Processo

Programa Principal

Co

nte

xto

de

Ha

rdw

are

Co

nte

xto

de

Ha

rdw

are

Co

nte

xto

de

Ha

rdw

are

Call Sub_1

Call Sub_2

Thread_1

Thread_2

Thread_3

PCSP

PCSP

PCSP

Fim

Sub_2

Variáveis

Ret

Sub_1

Ret

...

...

Sistemas Operacionais - Aula 07: Thread e Processos

Multithread

36

Thread deentrada

Thread degravação

Thread deexibição

Buffer

Aplicação multithread

Sistemas Operacionais - Aula 07: Thread e Processos

Multithread

37

Threads de um mesmo processo compartilham contexto de software eespaço de endereçamento, mas não compartilham contexto de hardware

Programa

Contexto deSoftware

Contexto deHardware

Espaço deEndereçamento

Estrutura do processo

Contextode hardware

Contextode hardware

Contextode hardware

Espaço deendereçamento

Con

texto

de

soft

ware

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 oupreempção é a capacidade dealterar a ordem de (ou tirar deexecução) um processo emdetrimento de outro com umaprioridade maior.

Sistemas Operacionais - Aula 07: Thread e Processos40

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 100Missã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...

[email protected]

130