Escolar Documentos
Profissional Documentos
Cultura Documentos
APOSTILA - UNESP - Sistemas Operacionais Distribuídos
APOSTILA - UNESP - Sistemas Operacionais Distribuídos
Alunos: Wanderlei Pereira Alves Junior Jlio Cezar Estrella Orientao: Prof. Dr. Norian Marranghello
UNESP/IBILCE
UNESP/IBILCE
Para classific-los deste modo, so levados em considerao os seguintes fatores: Interoperabilidade Transparncia Autonomia Apenas citaremos as funcionalidades de alguns sistemas referenciados acima, uma vez que a nfase ser dada aos Sistemas Distribudos. 1.1. Sistemas Centralizados
Caractersticas: So fortemente acoplados, so do tipo monoltico, ou seja no h o particionamento do ncleo. Nos sistemas monolticos os servios do sistema e do ncleo fazem parte de um mesmo programa. 1.2. Sistemas em Rede
Caractersticas: um multicomputador fracamente acoplado no qual no existe nenhum tipo de controle direto de uma mquina sobre as outras e no qual a comunicao entre as outras mquinas bem mais lenta que dentro de uma dada mquina. O compatilhamento de recursos o objetivo principal dos sistemas em rede. 1.3. Sistemas Autmatos
Tais sistemas mantm as noes de transparncia e interoperabilidade que existem nos Sistemas Distribudos, mas abolem a impresso de que existe somente um usurio no sistema.
3
UNESP/IBILCE
1.4.
Sistemas Distribudos
So aqueles que gerenciam as atividades e os recursos distribudos, possibilitando um processamento descentralizado e melhorando o desempenho do sistema. Outra definio: Um conjunto de processos que so executados de forma concorrente, cada um dos quais acessando um subconjunto de receursos do sistema por meio de um mecanismo de troca de mensagens atravs de uma rede de comunicao, que nem sempre confivel. As vantagens de um Sistema Distribudo em relao aos outros sua maior disponibilidade, geralmente resultante da redundncia de seus componentes Sistema Distribudo Mais transparente que os Sistemas em Rede
Essa transparncia pode ser notada em vrios aspectos: Transparncia de acesso a arquivos Transparncia de desempenho Transparncia de localizao Transparncia de concorrncia
Aspectos importantes na construo de um sistema operacional: Eficincia Os parmetros para medir o desempenho do sistema (eficincia) so diversos, tais como: vazo, tempo de execuo de uma determinada tarefa, taxa de uso do sistema e de seus recursos. Obs: A eficincia em sistemas distribudos mais complexa em relao aos Sistemas Operacionais Convecionais, devido aos atrasos na comunicao. Obs: O tempo gasto na propagao dos dados depende fortemente do protocolo de comunicao utilizado, motivo pelo qual este deve ser bem projetado, como base em primitivas de comunicao eficientes. Fatores que afetam a eficincia: Tempo gasto na propagao dos dados Balanceamento de carga Ganulosidade das tarefas Tolerncia a faltas
UNESP/IBILCE
Consistncia Um sistema consistente se: Permite um uso uniforme E se possui um comportamento previsvel Fatores que afetam a consistncia do sistema: Ausncia de um mecanismo global Inexistncia de informaes a respeito do desempenho global 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 Capacidade que um Sistema apresenta, de esconder dos usurios, detalhes de implementao, em particular queles mais complexos, e apresentar na medida do possvel um modelo lgico da mquina como os usurios gostariam de usar e no como o sistema realmente.
2. O que so Threads?
Definio bsica: Fluxo de controle seqencial isolado dentro de um programa. Outra denominao: LightWeight Processes (Processos Peso Pena) Ou processos leves que compartilham o espao de endereos lgicos. Programas multithreaded: Mltiplos threads concorrentes de execuo num nico programa, realizando vrias tarefas ao mesmo tempo.
5
UNESP/IBILCE
Exemplo: programa do usurio + coleta de lixo Diferentes threads podem executar em diferentes processadores, se disponveis, ou compartilhar um processador nico Diferentes threads no mesmo programa compartilham um ambiente global (memria, processador, registradores, etc.) 2.1. Quais as funcionalidades dos threads?
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. 2.2. Onde so implementado os threads?
Depende!!! Agilidade Se o objetivo agilidade, deve-se implement-los no espao do usurio. Neste caso o controle de processos feito diretamente pelo sistema operacional, mas os threads so controlados por procedimentos em tempo de execuo que serve como interface entre a mquina virtual (processos) onde rodam os threads e o sistema operacional. Obs: Neste caso, o sistema operacional no enxerga os threads, pois eles so implementados no espao do usurio, sendo submissos ao processo que os criou. Os threads no podem usufruir do sistema de interrupes do sistema operacionais e portanto so no-preemptveis.
UNESP/IBILCE
Vantagens agilidade o gerenciamento menos complicado Desvantagens no preempo 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 Maior autonomia dos threads Desvantagens 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). 2.3. Quando um thread deixa de existir?