Escolar Documentos
Profissional Documentos
Cultura Documentos
Caracteristicas SOD PDF
Caracteristicas SOD PDF
Distribudos
Tpicos Abordados
2
Sistemas Operacionais Distribudos UNESP/IBILCE
Os sistema operacionais podem ser classificados de acordo com seu grau de acoplamento, a
saber:
9 Redes
9 Autmatos
9 Centralizados
9 Distribudos
9 Interoperabilidade
9 Transparncia
9 Autonomia
Apenas citaremos as funcionalidades de alguns sistemas referenciados acima, uma vez que
a nfase ser dada aos Sistemas Distribudos.
Caractersticas:
Caractersticas:
3
Sistemas Operacionais Distribudos UNESP/IBILCE
Eficincia
4
Sistemas Operacionais Distribudos UNESP/IBILCE
Flexibilidade
Fatores associados:
9 Interoperabilidade
9 Modularidade
9 Portabilidade
9 Escalabilidade
Consistncia
Robustez
Para ser robusto um Sistema Distribudo tem que estar disponvel a maior parte do tempo,
apresentando dados confiveis.
A confiabilidade deste sistema tambm est associado aos mecanismos de proteo
existentes.
Transparncia
2. O que so Threads?
5
Sistemas Operacionais Distribudos UNESP/IBILCE
Threads permitem que um programa simples possa executar vrias tarefas diferentes ao
mesmo tempo, independentemente umas das outras.
Quando executado, um programa pode gerar ramificaes no seu fluxo de controle. Tais
ramificaes (threads) tem seus estados locais individuais, mas permanecem associados ao
processo que as gerou.
Cada um desse processos possui um TCB (Thread Control Blocks), semelhante ao PCB dos
processos. Como os threads so processos leves, associados aos processos que os gerou,
esses TCB possuem informaes locais reduzidas (contador de programa, apontadores de
pilha e conjunto de registradores).
A mudana de contexto de um thread em relao a um processo mais rpida pois os
threads alm possuem informaes locais, compartilham o restante das informaes com os
processos que os gerou.
Os processos funcionam como mquinas virtuais, pois compartilham seu espao de
endereamento com os threads.
6
Sistemas Operacionais Distribudos UNESP/IBILCE
Vantagens
9 agilidade
9 o gerenciamento menos complicado
Desvantagens
9 no preempo
9 impedidos de utilizar interrupes do sistema operacional
Eficincia
Se o objetivo eficincia, ento os threads podem ser implementados no ncleo do sistema
operacional, podendo serem vistos pelo SO e usufruindo de seu sistema de interrupes.
Portanto passam a serem preemptveis.
Nesse sentido os threads passam a ser tratados como processos, possibilitando o bloqueio
de outros threads e tambm eficincia no escalonamento.
O leitor deve notar que agora no h necessidade de interromper o processo que o gerou
(processo pai), uma vez que o thread um processo.
Com isso o Sistema Operacional pode interromper um thread sem interromper o processo
pai, e tambm outras ramificaes em execuo. O thread tambm ir competir igualmente
com os processos os ciclos do processador.
Vantagens de implementao no ncleo
Desvantagens
9 sistema perde em portabilidade, as mudanas de contexto dos threads tem agora a
mesma complexidade dos processos e a concorrncia fica reduzida a dois nveis
(threads e processos).
7
Sistemas Operacionais Distribudos UNESP/IBILCE
Exemplos:
Programao Interativa: uma tarefa para fazer alguma interao com o usurio, outra para
exibir mensagens, outra para fazer animao, etc..
Ramificaes Estticas:
8
Sistemas Operacionais Distribudos UNESP/IBILCE
Essas ramificaes compartilham o mesmo espao de endereo (dos processos pais), ento
quando precisam acessar algum recurso compartilhado, a exclusividade do acesso feita
via mecanismos de sincronizao como os monitores e semforos.
Como a ramificao fica no sistema enquanto o usurio estiver conectado, ela ocupa o
espao de memria mesmo que o cliente no requisite nenhuma operao do servidor.
Ramificaes Dinmicas:
Por exemplo, se forem feitas vrias operaes de leitura, sero geradas vrias ramificaes
do processo responsvel pela operao de leitura.
O mesmo acontece com a operao de escrita.
Obs: importante ressaltar novamente que essas ramificaes (threads) sero executadas
independentes uma das outras, e sero extintas assim que o servio para qual foram
criadas, tambm termine.
9 Aumenta a flexibilidade
9 Agrupamento de threads no mesmo espao de endereamento
Desvantagens
2.6. Concluso
9
Sistemas Operacionais Distribudos UNESP/IBILCE
3. Ramificaes em Multiprocessadores
Vantagens
Portanto a definio para cliente/servidor seria a existncia de uma plataforma base para
que as aplicaes, onde um ou mais clientes e um ou mais servidores, juntamente com o
sistema operacional de rede, executem processamento distribudo.
O modelo poderia ser entendido como a interao entre software e hardware em diferentes
nveis, implicando na composio de diferentes computadores e aplicaes.
Cliente e servidor pode ou no existir na mesma mquina, porm um ponto importante para
uma real abordagem cliente/servidor a necessidade de que a arquitetura definida
represente uma computao distribuda.
Caracterscas
Cliente
10
Sistemas Operacionais Distribudos UNESP/IBILCE
Servidor
Tipos de servidores
9 Servidores de arquivos
9 Servidores de impresso
9 Servidores de Banco de Dados
9 Servidor de Redes
Vantagens do modelo
Confiabilidade: Se uma mquina apresenta algum problema, ainda que seja um dos
servidores,parte do sitema continua ativo.
11
Sistemas Operacionais Distribudos UNESP/IBILCE
Desvantagens do modelo
Manuteno: As diversas partes envolvidas nem sempre funcionam bem juntas. Quando
algum erro ocorre, existe uma extensa lista de itens a serem investigados.
Pedido
Resposta
12
Sistemas Operacionais Distribudos UNESP/IBILCE
5. Processos Concorrentes
PROC 1
PROC 3
13
Sistemas Operacionais Distribudos UNESP/IBILCE
Para evitar estas situaes de corrida, implementamos mecanismos para assegurar que
quando um processo atua sobre uma varivel compartilhada os demais sero impedidos de
faze-lo (excluso mtua).
6.2. Semforos
Dijkstra introduziu a noo de semforo para impor a excluso mtua entre processos.
uma construo tambm usada para sincronizar processos concorrentes. Um semforo S
uma varivel inteira positiva sobre a qual os processos podem fazer duas operaes
primitivas (indivisveis): P(S) e V(S). P e V tm sua origem das palavras parsen (passar) e
e vrygeren (liberar). As operaes P e V so assim definidas:
14
Sistemas Operacionais Distribudos UNESP/IBILCE
seno S:=S+1
Os semforos so classificados de acordo com o valor com que so inicializados como:
6.3. Monitores
Deve-se tomar muito cuidado ao trabalhar com semforos. Para facilitar a escrita de
programas paralelos, Hoare e Brinch Hansen propuseram uma primitiva de alto nvel para
sincronizao de processos, denominada monitor. Um monitor um conjunto de
procedimentos, variveis e estruturas de dados, todas agrupadas em um mdulo especial.
Os processos no podem acessar diretamente as estruturas de dados e variveis internas do
monitor a partir de procedimentos declarados fora do monitor. Os monitores tm uma
propriedade muito importante: somente um processo pode estar ativo dentro do monitor em
um dado instante. tarefa do compilador implementar a excluso mtua de execuo sobre
o monitor, sendo o caminho mais usual utilizar semforos binrios.
Os monitores oferecem uma forma simples de se obter a excluso mtua, mas ainda no o
suficiente, preciso que haja uma forma de bloqueio de processos quando no houver
condies lgicas para eles continuarem o processamento. Isto feito com as variveis de
condio e duas operaes sobre elas, WAIT e SIGNAL. Essas variveis de condio
permitem a sincronizao entre processos.
monitor exemplo
integer i;
condition c;
procedure produtor(x);
.
.
.
end;
15
Sistemas Operacionais Distribudos UNESP/IBILCE
procedure consumidor(x);
.
.
.
end;
end monitor;
Para usar monitores, necessrio uma linguagem especfica que suporte este conceito.
Hoje, existem poucas linguagens com esta caracterstica.
Uma regio crtica condicional (RCC) uma verso estruturada da abordagem com
semforos. Cdigos da regio crtica so explicitamente nomeados e expressados por
region-begin-end. Uma vez na regio crtica uma condio pode ser testada pelo atributo
when. Se a condio no for satisfeita, o processo suspenso e outros processos podero
entrar em suas regies crticas.
processo leitor
region db begin rc:= rc + 1 end;
<l base de dados>
region db begin rc := rc 1 end;
processo escritor
region db when rc = 0
begin
<escreve na base de dados>
end;
uma especificao de linguagem de alto nvel que descreve como operaes definidas por
um objeto compartilhado podem ser invocadas de forma a satisfazer os requisitos de
sincronizao. Por esta razo, ns nos referimos a ela como uma estrutura de programa
desde que ela lembra a descrio formal de um programa.
Ex:
16
Sistemas Operacionais Distribudos UNESP/IBILCE
17
Sistemas Operacionais Distribudos UNESP/IBILCE
18
Sistemas Operacionais Distribudos UNESP/IBILCE
no existe nenhum meio fsico central. A linguagem de programao Ada surge com a
tcnica de encontros (Rendez-Vous) para tratar estes casos.
Existem dois tipos de processos aos quais nos referiremos durante a explicao do
funcionamento da tcnica de encontros na linguagem ADA:
O bloqueio de tarefas atuantes, pode ser evitado pr meio de chamadas condicionais, que
realiza o CALL somente se o encontro for possvel imediatamente. Em tarefas servidoras, o
bloqueio evitado verificando, antes do ACCEPT, se existem tarefas aguardando para
serem atendidas pr aquela entrada.
19
Sistemas Operacionais Distribudos UNESP/IBILCE
Bibliografia
Links
Cliente/Servidor: http://www.whatis.com/clientse.htm
RPC: http://www.whatis.com/rpc.htm
Thread: http://www.whatis.com/thread.htm
20