Buscar

Sistemas Operacionais - Processos - VI

Prévia do material em texto

Instituto Educacional Santo Agostinho – IESA
Faculdade de Ciências Exatas e Tecnológicas Santo Agostinho – FACET
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
Mar / 2016
Rafael Antonio Gonçalves Lima
Sistemas Operacionais
2 – Processos e Threads
(continuação)
Sumário
2.1. Programas, processos e threads;
2.2. Estados de um processo.Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Ambiente Monothread
• Um programa é uma sequencia de instruções, composta por
desvios, repetições e chamadas a procedimentos e funções.
• Em um ambiente monothread, um processo suporta apenas
um programa no seu espaço de endereçamento.
• Neste ambiente, aplicações concorrentes são implementadas
apenas com o uso de múltiplos processos independentes ou
subprocessos.
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Ambiente Monothread
• A utilização de processos independentes e subprocessos
permite dividir uma aplicação em partes que podem trabalhar
de forma concorrente.
• No entanto, demanda consumo de diversos recursos do
sistema. Sempre que um novo processo é criado, o sistema
deve alocar recursos para cada processo, consumindo tempo
de processador neste trabalho.
• A comunicação entre processos também é mais difícil e lenta,
pois utiliza mecanismos como pipes, sinais, semáforos,
memória compartilhada ou troca de mensagens.
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Ambiente Monothread
• 3 processos monothread
• Cada um com seu próprio contexto de hardware, 
contexto de software e espaço de endereçamento.
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Processo Multithread
• O processo, neste ambiente, tem pelo menos um thread de
execução, mas pode compartilhar o seu espaço de
endereçamento com inúmeros outros threads.
• Um thread pode ser definido como uma sub-rotina de um
programa que pode ser executada de forma assíncrona, ou
seja, executada paralelamente ao programa chamador.
• Assim, um ambiente multithread possibilita a execução
concorrente de sub-rotinas dentro de um mesmo processo.
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Processo Multithread
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Aplicação Multithread Multithread
• Inicialmente, o processo é criado apenas com o Thread_1 para
a execução do programa principal.
• Quando o programa principal chama as sub-rotinas Sub_1 e
Sub_2 são criados os Thread_2 e Thread_3, respectivamente, e
executado independentemente do programa principal.
• A grande vantagem no uso de threads é a possibilidade de
minimizar a alocação de reursos do sistema, além de diminuir o
overhead na criação, troca e eliminação de processo.
• Veja a figura a seguir.
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Aplicação Multihread
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Aplicação Multithread
• Threads compartilham o processador da mesma maneira que os
processos e passam pelas mesmas mudanças de estado.
• Dentro de um mesmo processo, threads compartilham o mesmo
contexto de software e espaço de endereçamento com os demais
threads, porém cada thread possui seu próprio contexto de
hardware individual.
• Threads são implementados internamente através de uma estrutura
de dados denominada bloco de controle de thread (Thread Control
Block – TCB). O TCB armazena, além do contexto de hardware, mais
algumas informações exclusivas ao thread, como prioridade e estado
de execução.
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Aplicação Multithread
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Aplicação Multithread
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Threads em Modo Usuário (TMU)
• TMU são implementados pela aplicação e não pelo sistema
operacional. Para isso, deve existir uma biblioteca de rotinas
que possibilite à aplicação realizar tarefas como
criação/eliminação de threads, troca de mensagens entre
threads e uma política de escalonamento.
• Vantagem deste modelo é a possibilidade de implementar
aplicações multithreads mesmo em sistemas operacionais que
não suportam threads, no entanto possuem a limitação pois o
S.O. gerencia cada processo como se existisse apenas um único
thread.
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Threads em Modo Usuário (TMU)
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Threads em Modo Kernel (TMK)
• TMK são implementados diretamente pelo núcleo do S.O.,
através de chamadas a rotinas do sistema que oferecem todas
as funções de gerenciamento e sincronização.
• O S.O. sabe da existência de cada thread e pode escaloná-los
individualmente.
• No caso de múltiplos processadores, os threads de um mesmo
processo podem ser executados simultaneamente.
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Threads em Modo Kernel (TMK)
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Threads em Modo Kernel (TMK)
• O grande problema para pacotes em modo kernel é o baixo 
desempenho devido a mudança dos modos de acesso (usuário-
kernel-usuário).
• Veja a tabela abaixo de comparação de desempenho de duas
operações distintas envolvendo a criação, escalonamento,
execução e eliminação de um processo/thread.
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Threads em Modo Híbrido
• Combina as vantagens de threads implementados em TMU e 
TMK.
• O programador desenvolve a aplicação em termos de TMU e
especifica quantos TMK estão associados aos processo. Os
TMU são mapeados em TMK enquanto o processo está sendo
executado. O programador pode utilizar apenas TMK, TMU ou
uma combinação de ambos.
• O modo híbrido, apesar da maior flexibilidade, apresenta
problemas herdados de ambas as implementações. Por
exemplo, quando um TMK realiza uma chamada bloqueante,
todos os TMU são colocados no estado de espera.
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Threads em Modo Híbrido
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Scheduler Activations
• Os problemas apresentados no pacote de threads em modo
híbrido existem devido à falta de comunicação entre os threads
em modo usuário e em modo kernel.
• O modelo ideal deveria utilizar as facilidades do pacote em
modo kernel como o desempenho e flexibilidade do modo
usuário.
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Scheduler Activations
• Introduzido no início de 1990, este pacote combina o melhor das
duas arquiteturas.
• O núcleo do sistema troca informações com a biblioteca de
threads utilizando uma estrutura de dados chamada scheduler
activations.
• A maneira de alcançar um melhor desempenho é evitar as
mudanças de modos de acesso desnecessárias. Caso um thread
utilize uma chamada ao sistema que o coloque no estado de
espera, não é necessário que o kernel seja ativado, bastando que
a própria biblioteca em modo usuário escalone outro thread.Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
2.1. Programas, processos e threads.
 Scheduler Activations
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
Exercícios de Fixação
1. Como uma aplicação pode implementar concorrência em um ambiente
monothread?
2. Quais os problemas de aplicações concorrentes desenvolvidas em
ambientes monothread?
3. O que é um ambiente multithread e quais as vantagens de sua utilização?
4. Qual a vantagem do scheduler activations comparado ao pacote hibrido?
5. Dê exemplos do uso de threads no desenvolvimento de aplicativos como
editores de textos e planilhas eletrônicas.
6. Como o uso de threads pode melhorar o desempenho de aplicações
paralelas em ambientes com múltiplos processadores?
7. Quais os benefícios do uso de threads em ambientes cliente-servidor?
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
7. Bibliografia
1. MACHADO, Francis B. Arquitetura de Sistemas Operacionais. 4 ed.
Rio de Janeiro: LTC, 2007.
2. TANENBAUM, Andrew S. Sistemas operacionais modernos. 2 Ed.
Rio de Janeiro: Prentice-Hall, 2005.
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA
Conteúdo da Próxima Aula
• Operações sobre processos.
Obrigado ! 
Rafael A. G. Lima (rafaelg@fasa.edu.br)
Siste
m
as d
e
 In
fo
rm
ação
 -
FA
SA

Continue navegando