Você está na página 1de 43

Sistemas Operacionais

2015/2

UNIFAL Bacharelado em Cincia da Computao


Prof. Leonardo Aparecido Ciscon

1
Roteiro
Introduo
Gerenciamento de Processos
Deadlocks
Gerenciamento de Memria
Gerenciamento de Sistemas de Arquivos
Gerenciamento de Dispositivos

2
Roteiro
Gerenciamento de Processos
Threads
Conceitos

Operaes

Uso dos Threads

Implementao de Threads: Nvel de Usurio vs Nvel Ncleo

3
Conceitos
O conceito de processo
define que somente o FFFF
Pilha
prprio processo tem
acesso ao seu espao de Lacuna

endereamento. Dados dinmicos Espao de


endereamento
Esta questo fundamental Dados estticos

para segurana e Texto

consistncia das aplicaes, Reservado


0000
de forma geral.

4
Conceitos
Contudo, frequentemente existem situaes em que
desejvel ter execues separadas acessando o mesmo
bloco de endereos na memria do computador.
Por questes de eficincia no compartilhamento de
informaes, ou para aproveitar melhor a ociosidade do
processador.

5
Conceitos
Assim como os processos, os threads possuem:
Um contador de programa que indica qual a prxima
instruo a ser executada;
Uma pilha de execuo especfica, que traz a histria da
execuo do thread, para indicar todas as chamadas que ainda
no obtiveram retorno;
Registradores, que indicam suas variveis atuais de trabalho.
FFFF
Pilha

Lacuna

Dados dinmicos Espao de


endereamento
Dados estticos

Texto

Reservado
0000
6
Conceitos
Processos so utilizados para agrupar recursos;
Threads so entidades escalonadas, podendo
compartilhar recursos com outros threads irmos;
As vezes, pelas caractersticas semelhantes, threads so
denominados processos leves.
Comumente, encontramos o termo multithread para
descrever um sistema que permite mltiplos threads no
mesmo processos.

7
Conceitos
(a) 3 threads,
mas habitando 3 processos distintos;
(b) 3 threads,
habitando o mesmo processo;

8
Conceitos

Threads distintos em um processo no so to independentes


quanto threads em processos distintos;
Threads compartilham as mesmas variveis globais do
processo, tendo independncia apenas em suas variveis
armazenadas na sua prpria pilha de execuo;
9
Conceitos
Alm de compartilhar o mesmo
espao de endereamento, os
threads compartilham o mesmo
conjunto de arquivos abertos,
processos filhos, etc...

10
Conceitos
Assim como um processo normal, um thread pode
assumir estados distintos:
Em execuo;
Bloqueado;
Pronto;
Finalizado;
Entra Despacho Sai
Pronto Executando
Pausa

O evento Aguardando
ocorreu evento

Bloqueado

11
Roteiro
Gerenciamento de Processos
Threads
Conceitos

Operaes

Uso dos Threads

Implementao de Threads: Nvel de Usurio vs Nvel Ncleo

12
Operaes
Pode-se criar quantos threads forem necessrios, de
acordo com a necessidade de sua aplicao;
A criao atravs de um procedimento de biblioteca:
thread_create.

13
Operaes Despacho
Entra Sai
Pronto Executando
Pausa

O evento Aguardando
ocorreu evento

Bloqueado

Quando o thread finaliza seu trabalho, ele pode invocar a chamada


thread_exit;
Depois disso ele desaparece e no mais far parte da fila dos
threads escalonveis, passando ao estado finalizado;
Neste caso libera totalmente o seu subespao no espao de
endereamento do processo.
O thread tambm pode se bloquear para esperar outro thread
terminar sua execuo, atravs da chamada thread_wait;
14
Operaes
O thread pode desistir voluntariamente da utilizao da CPU, para
deixar outro thread executar. Este procedimento feito atravs
da chamada thread_yield;
Mas o escalonador de processos que decide qual o prximo a
entrar no processador. O programador no tem como controlar isso...

Entra Despacho Sai


Pronto Executando
Pausa

O evento Aguardando
ocorreu evento

Bloqueado

Em Java, a funo que invoca esta chamada de sistema a yield da


classe Thread.
15
Operaes
O thread pode tambm entrar no estado bloqueado,
assumindo assim que aguarda um evento externo para
continuar seu processamento.
Entra Despacho Sai
Pronto Executando
Pausa

O evento Aguardando
ocorreu evento

Bloqueado

Em Java, a funo que invoca esta chamada de sistema a wait


da classe Object. (bloqueia o thread corrente que invocou o
mtodo) Apenas o prprio thread pode se bloquear!!!
16
Roteiro
Gerenciamento de Processos
Threads
Conceitos

Operaes

Uso dos Threads

Implementao de Threads: Nvel de Usurio vs Nvel Ncleo

17
Uso dos Threads
Mas afinal....
Qual (so) a(s) razo(es) de utilizarmos threads?

18
Uso dos Threads
1 razo:
Algumas vezes, a execuo em paralelo de atividades, que
poderiam ser implementadas sequencialmente, pode oferecer
um ganho considervel de performance;

Exemplos:
Navegadores. Ao carregar as imagens de um site...

Mquinas de busca requisitando diferentes sites da rede...

19
Uso dos Threads
2 razo:
muito mais rpido criar um thread do que criar um
processo;
Em alguns sistemas operacionais, este procedimento chega a
ser 100 vezes mais rpido;

20
Uso dos Threads
3 razo (talvez a principal delas):
Em muitas aplicaes, necessria a ocorrncia de mltiplas
atividades distintas, ao mesmo tempo;
O modelo de programao se torna bem mais simples quando
decompomos o processo em vrios threads para o
gerenciamento de todas as atividades;

Exemplo:
Software para troca de mensagens;

21
Uso dos Threads Um exemplo
Editor de textos simples

22
Uso dos Threads Um exemplo
Editor de textos simples

Um thread fica
responsvel por
capturar a entrada do
teclado

23
Uso dos Threads Um exemplo
Editor de textos simples

Outro fica responsvel


pela atualizao visual da
aplicao.

24
Uso dos Threads Um exemplo
Editor de textos simples
Outro pelo salvamento
automtico do documento.

25
Uso dos Threads Um exemplo
Editor de textos simples
possvel que 3 processos gerenciem este editor de textos?

Pesquisa!!!

26
Uso dos Threads Um exemplo
Editor de textos simples
possvel que 1 processo, com 1 thread gerencie este editor
de textos?

Pesquisa!!!

27
Uso dos Threads Outro Exemplo
Um servidor web utilizando o conceito de cache

Vamos imaginar um servidor web recebendo dezenas de


requisies por segundo;

28
Uso dos Threads Outro Exemplo
Um servidor web utilizando o conceito de cache

O thread despachante
recebe as requisies e
encaminha cada uma para
um thread operrio...

29
Uso dos Threads Outro Exemplo
Um servidor web utilizando o conceito de cache
O thread operrio consulta
se a requisio est na
cache das ltimas pginas
visitadas. Se no estiver, ela
efetua acesso ao disco
(mais lento).

30
Uso dos Threads Outro Exemplo
Um servidor web utilizando o conceito de cache
Faz sentido cada thread operrio invocar a chamada thread_exit
sempre que retornar uma requisio? Sim? No? Por qu?

Pesquisa!!!

31
Roteiro
Gerenciamento de Processos
Threads
Conceitos

Operaes

Uso do Threads

Implementao de Threads: Nvel de Usurio vs Nvel


Ncleo

32
Implementao de Threads
Implementao a nvel de usurio

Quais so as vantagens e
as desvantagens?

33
Implementao de Threads
Implementao a nvel de usurio:
Vantagens:
Podemos utilizar o recurso de threads,
mesmo se o S.O. no suportar;
As operaes so mais rpidas a nvel
de usurio, se comparadas com o nvel
de kernel;
Cada processo pode ter seu prprio
algoritmo de escalonamento
(customizado);
Isso pode ser bom???

34
Implementao de Threads
Implementao a nvel de usurio:
Desvantagens:
O usurio precisa garantir o
funcionamento do sistema;

Cada thread precisa avisar o


supervisor que est passando a sua
vez.

35
Implementao de Threads
Implementao a nvel de kernel (ncleo)

Quais so as vantagens e
as desvantagens?

36
Implementao de Threads
Implementao a nvel de ncleo:
Vantagens:
Uma vez validado o algoritmo dentro
do S.O., todos os processos podem
utiliz-lo;

O tempo de ocupao na CPU fica


melhor dividido se o kernel conhece
todos os threads ativos;

37
Implementao de Threads
Implementao a nvel de ncleo:
Desvantagens:
Operaes so bem mais lentas a nvel
de kernel;

Cada processo fica sujeito a poltica de


escalonamento do prprio sistema
operacional;

38
Implementao de Threads
Modelo Hbrido

39
Resumo da Aula
O conceito de processo define que somente o prprio
processo tem acesso ao seu espao de endereamento.
Contudo, frequentemente existem situaes em que
desejvel ter execues separadas acessando o mesmo
bloco de endereos na memria do computador =
Threads !!!

Threads tambm possuem estados distintos.

40
Resumo da Aula
Razes para utilizarmos threads:
execuo em paralelo de atividades;
mais rpido criar um thread

ocorrncia de mltiplas atividades distintas, ao mesmo


tempo;

41
Leitura para prxima aula...
Sistemas Operacionais Modernos
2.3 Comunicao Interprocessos
2.3.1 Condies de disputa
2.3.2 Regies Crticas
2.3.3 Excluso Mtua com Espera Ociosa

42
Referncias
Organizao e Projeto de Computadores. A interface
Hardware/Software. David A. Petterson; John L. Hennessy.
Editora Campus 2005;
Sistemas Operacionais Modernos. Tanenbaum, A. S. 2 edio.
2003.
Sistemas Operacionais Projeto e Implementao. Tanenbaum,
A. S. 2 edio. 1999.
Sistemas Operacionais. Conceitos e Aplicaes. A. Silberschatz;
P. Galvin; G. Gagne. 2000.
Aulas do Prof. Humberto

43