Buscar

11_-_Aula_09_-_Threads

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

17/05/2010
1
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
1/24Prof. Carlos Maurício de B. Mello
ARQUITETURA DE SISTEMAS OPERACIONAIS
CAPÍTULO 6
THREADS
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
2/24Prof. Carlos Maurício de B. Mello
– O uso de processo independentes, subprocessos ou threads
são maneiras diferentes de implementar a concorrência numa
determinada aplicação.
– É a divisão do código em partes para que estas possam
trabalhar de forma cooperativa.
PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
3/24Prof. Carlos Maurício de B. Mello
– O uso de processos independentes é a maneira mais simples de
implementar a concorrência em sistemas multiprogramáveis;
– Neste caso, não existe vínculo entre o processo criado com o seu
criador.
– O processo criado exige a alocação de um PCB próprio.
PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
4/24Prof. Carlos Maurício de B. Mello
– Subprocessos são processos criados dentro de uma estrutura
hierárquica.
– O processo criador é chamado de processo-pai, enquanto o novo
processo é chamado de subprocesso ou processo-filho;
– Caso o processo-pai deixe de existir, o subprocesso é
automaticamente eliminado;
– O subprocesso também tem seu próprio PCB;
PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
5/24Prof. Carlos Maurício de B. Mello
– Estrutura de processos e subprocessos
Processo A
Processo C
Processo B
Processo E
Processo D
PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
6/24Prof. Carlos Maurício de B. Mello
– O uso de processos independentes ou de subprocessos demanda
consumo de recursos do sistema (alocação do contexto de HW, SW
e do espaço de endereçamento) e exige tempo para este processo.
– No término dos processos, também há um overhead para
desalocar os recursos.
– Outro problema é na comunicação entre processos, visto que os
espaços de endereçamento são diferentes para cada processo.
PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS
17/05/2010
2
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
7/24Prof. Carlos Maurício de B. Mello
– Conceito criado na tentativa de reduzir o tempo gasto em
criação, eliminação e troca de contexto de processos nas
aplicações concorrentes;
– Threads compartilham o processador da mesma maneira que um
processo – enquanto uma está fazendo E/S, outra thread pode
ser executada.
THREADS
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
8/24Prof. Carlos Maurício de B. Mello
– É uma forma de um processo dividir a si mesmo em duas ou mais
tarefas que podem ser executadas simultaneamente;
– Em um ambiente multithread, um único processo pode suportar
múltiplos threads, cada um associado a parte do código da
aplicação.
THREADS
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
9/24Prof. Carlos Maurício de B. Mello
– Como as Threads são semelhantes aos processos...
– Responda:
– Possui Contexto de Hardware?
– E Contexto de Software?
– E Espaço de Endereçamento?
THREADS
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
10/24Prof. Carlos Maurício de B. Mello
● Processo monothread
– Um processo suporta apenas um programa no seu espaço de
endereçamento. Aplicações concorrentes são implementadas
apenas com o uso de múltiplos processos independentes.
– O problema é que seu uso demanda consumo de diversos
recursos do sistema, pois sempre que um novo processo é
criado, o sistema deve alocar recursos para ele.
THREADS
Thread ThreadThread
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
11/24Prof. Carlos Maurício de B. Mello
● Processo multithread
Contexto
de hardware
Contexto
de hardware
Contexto
de hardware
Espaço de
endereçamento
C
o
n
te
x
to
 d
e
so
ft
w
a
re
Thread 3Thread 2Thread 1
– Como as threads usam o
mesmo espaço de
endereçamento, a
comunicação entre elas pode
ser feita de forma simples e
rápida.
THREADS
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
12/24Prof. Carlos Maurício de B. Mello
● Processo multithread
Contexto
de hardware
Contexto
de hardware
Contexto
de hardware
Espaço de
endereçamento
C
o
n
te
x
to
 d
e
so
ft
w
a
re
Thread 3Thread 2Thread 1
– Os threads possuem seu próprio
contexto de HW, porém
compartilham o mesmo contexto
de SW e espaço de
endereçamento com os demais
threads do processo.
THREADS
17/05/2010
3
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
13/24Prof. Carlos Maurício de B. Mello
EXERCÍCIOS DE FIXAÇÃO
– Como pode ser feita a comunicação entre threads?
– Qual a vantagem do uso de threads ao invés de
subprocessos?
– Para que serve o PCB?
– Dê exemplos de informações armazenadas no PCB?
– Defina processo.
– Quais partes compõem um processo?
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
14/24Prof. Carlos Maurício de B. Mello
PROCESSOS FOREGROUND E BACKGROUND
– Um processo possui, pelo menos, dois canais de comunicação
associados a sua estrutura, pelos quais são realizadas todas
as operações de entrada e saída de dados;
– Estes canais podem estar associadas a terminais, arquivos,
impressoras ou até mesmo a outros processos.
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
15/24Prof. Carlos Maurício de B. Mello
– Um Processo foregroung é aquele que permite a
comunicação direta do usuário com o processo durante o seu
processamento.
– Um Processo background onde não existe a comunicação
com o usuário durante o seu processamento. Neste caso, os
canais de comunicação não estão associados a nenhum
dispositivo de I/O interativo. (Processamento Batch, por exemplo)
PROCESSOS FOREGROUND E BACKGROUND
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
16/24Prof. Carlos Maurício de B. Mello
PROCESSOS FOREGROUND E BACKGROUND
– Processos foreground e background
(a) Processo Foreground
(b) Processo Background
saída
saída
arquivo
de saída
terminalterminal
entrada
entrada
arquivo
de entrada
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
17/24Prof. Carlos Maurício de B. Mello
– É possível associar o canal de saída de um processo ao canal
de entrada de outro processo.
– A esta associação, atribui-se o nome de PIPE.
– Em geral utiliza-se a terminologia de que há um pipe ligando
os dois processos.
PROCESSOS FOREGROUND E BACKGROUND
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
18/24Prof. Carlos Maurício de B. Mello
– Pipeentrada do
Processo A
saída do
Processo B
saída do
Processo A
entrada do
Processo B
Processo A Processo B
PROCESSOS FOREGROUND E BACKGROUND
17/05/2010
4
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
19/24Prof. Carlos Maurício de B. Mello
PROCESSOS DO SISTEMA
– Quando processos são utilizados para implementação de
serviços dos sistema, diz-se que foram retirados códigos de seu
núcleo, tornando-o menor e mais estável. A seguir alguns
serviços que podem ser implementados por processos:
 Auditoria e segurança;
 Serviços de rede;
 Contabilização do uso de recursos;
 Contabilização de erros;
 Gerência de impressão;
 Gerência de jobs batch;
 Temporização;
 Comunicação de eventos;
 Interface de comandos (shell).
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
20/24Prof. Carlos Maurício de B. Mello
– Processos podem ser classificados como CPU-BOUND e I/O-
BOUND, de acordo com a utilização do processador e dos
dispositivosde E/S;
– CPU-BOUND (Ligado à CPU): Quando passa a maior parte do
tempo no estado de execução, utilizando o processador, ou
pronto;
● Realiza poucas operações de leitura e gravação e é facilmente
encontrado em aplicações científicas que efetuam muitos cálculos.
PROCESSOS CPU E IO BOUND
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
21/24Prof. Carlos Maurício de B. Mello
– I/O-BOUND (Ligado à E/S): Quando passa a maior parte do
tempo no estado de espera, pois realiza elevado número de
operações de E/S;
● Este tipo de processo é encontrado em aplicações comerciais que se
baseiam em leitura, processamento e gravação.
PROCESSOS CPU E IO BOUND
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
22/24Prof. Carlos Maurício de B. Mello
– Processos CPU x IO Bound
(a) CPU-bound
tempo tempo
E/ S E/ S
UCP UCP
(b) I/ O-bound
PROCESSOS CPU E IO BOUND
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
23/24Prof. Carlos Maurício de B. Mello
– Mecanismo que permite notificar processos de eventos
gerados pelo sistema operacional ou por outros processos.
– Exemplo:
[ctrl-C]
Processo
interrupção sinal
Sistema Operacional
– Um outro exemplo seria um processo que precise ser
notificado periodicamente para realizar uma tarefa. Ex: A
cada 1s atualizar o relógio na tela.
SINAIS
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
24/24Prof. Carlos Maurício de B. Mello
– Sinais, interrupções e exceções
Hardware
Sistema Operacional
Interrupções
Exceções
Sinais
Processo Processo
SINAIS
17/05/2010
5
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
25/24Prof. Carlos Maurício de B. Mello
EXERCÍCIOS DE FIXAÇÃO
– Por que não pode-se utilizar o teclado como uma entrada para
um processo background?
– Para que serve um pipe?
– Quais as vantagens de se utilizar serviços dos sistema como
processos ao invés de implementados no núcleo?
SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010
26/24Prof. Carlos Maurício de B. Mello
EXERCÍCIOS DE FIXAÇÃO
– Dê exemplos de aplicações onde os programas são
tipicamente CPU-BOUND
– Dê exemplos de aplicações onde os programas são
tipicamente I/O-BOUND

Continue navegando