Buscar

Aula_TEMA06_SOP 2020_2

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 22 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

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 6, do total de 22 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

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 9, do total de 22 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

Prévia do material em texto

Sistemas Operacionais
Professor: André Sobral
e-mail: asobral@unicarioca.edu.br
Análise e Desenvolvimento de Sistemas 
Ciência da Computação
Redes de Computadores
Processos
Concorrência entre processos:
 É natural que processos da mesma aplicação 
compartilhem recursos do sistema.
 Com isso podem ocorrer problemas de recursos 
compartilhados:
 Exemplo:
• X = (800 x 3,14) + (1000 x 4,3 x 1,1) + (300 / 7,4)
• O cálculo é feito em 4 etapas:
• 1, 2 e 3: Cálculo individual de cada parcela
• 4: Cálculo final, usando os resultados de 1, 2 e 3
Sistemas Operacionais
Processos
Concorrência entre processos:
 Exemplo:
• X = (800 x 3,14) + (1000 x 4,3 x 1,1) + (300 / 7,4)
 Se fossem usados 4 processos:
 processo (4) depende da conclusão dos processos (1), 
(2) e (3). 
 Deve ser usado um recurso de comunicação entre os
processos para que o processo (4) permaneça em
espera enquanto os outros processos ainda não
estiverem concluídos.
Sistemas Operacionais
Processos
Concorrência entre processos:
Sistemas Operacionais
Processos
Concorrência entre processos:
 A solução mais simples para evitar o problema de 
compartilhamento de recursos é a Exclusão Mútua
(MUTEX).
Sistemas Operacionais
 Garante que somente um processo
concorrente terá acesso a um recurso
compartilhado.
 O trecho de um programa que faz uso
de um recurso compartilhado é 
chamado REGIÃO CRÌTICA.
 Antes de entrar na região crítica, o 
processo pede exclusividade de acesso
ao recurso.
Processos
Concorrência entre processos:
Sistemas Operacionais
Processos
Concorrência entre processos:
Sistemas Operacionais
Quando um recurso é liberado, o SO 
deve escolher qual processo
(aguardando) receberá a exclusividade.
 Dependendo do critério de seleção, um 
processo poderá nunca ser escolhido.
 Essa ocorrência pode gerar a espera
indefinida ou starvation
Processos
 O uso de processos independentes e subprocessos no 
desenvolvimento de aplicações concorrentes demanda 
consumo de diversos recursos do sistema.
 Sempre que um novo processo é criado, o sistema deve 
alocar recursos (contexto de hardware, contexto de 
software e espaço de endereçamento), consumindo 
tempo de CPU neste trabalho.
 No momento do término dos processos, o sistema 
operacional também dispensa tempo para desalocar
recursos previamente alocados.
 Outro problema é a comunicação e sincronização entre 
processos consideradas pouco eficientes, visto que cada 
processo possui seu próprio espaço de endereçamento.
Sistemas Operacionais
Processos
 O conceito de thread foi introduzido na tentativa de 
reduzir o tempo gasto em criação, eliminação e troca de 
contexto de processos nas aplicações concorrentes, bem 
como economizar recursos do sistema como um todo.
 Em um ambiente multithread, um único processo pode 
suportar múltiplos threads, cada qual associado a uma 
parte do código da aplicação.
 Neste caso, não é necessário haver diversos processos 
para a implementação da concorrência.
Sistemas Operacionais
Processos
 Threads compartilham o processador da mesma maneira 
que um processo, ou seja, enquanto um thread espera 
por uma operação de E/S, outro thread pode ser 
executado.
Sistemas Operacionais
 Cada thread possui seu próprio 
contexto de hardware, porém 
compartilha o mesmo contexto de 
software e espaço de 
endereçamento com os demais 
threads do processo.
Processos
 O compartilhamento do espaço de endereçamento 
permite que a comunicação de threads dentro do mesmo 
processo seja realizada de forma simples e rápida.
Sistemas Operacionais
Processos
A implementação de Threads:
Modo Usuário: podem ser oferecidos por uma
biblioteca de rotinas fora do núcleo do Sistema
Operacional;
 Modo Kernel: podem ser oferecidos pelo próprio
núcleo do Sistema Operacional;
Modo Híbrido: uma combinação de ambos.
Sistemas Operacionais
Processos
Thread Modo Usuário (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.
 Neste modo, o sistema operacional não sabe da 
existência de múltiplos threads, sendo responsabilidade 
exclusiva da aplicação gerenciar e sincronizar os 
diversos threads existentes.
Sistemas Operacionais
Processos
Thread Modo Usuário (TMU):
Sistemas Operacionais
T
h
re
a
d
 0
T
h
re
ad
 1
T
h
re
ad
 2
T
h
re
ad
 3
T
h
re
ad
 4
Biblioteca
Kernel
Modo 
Usuário
Modo 
Kernel
Processos
Thread Modo Usuário (TMU):
 A vantagem deste modelo é a possibilidade de 
implementar aplicações multithreads mesmo em sistemas 
operacionais que não suportam threads.
 Utilizando a biblioteca, múltiplos threads podem ser 
criados, compartilhando o mesmo espaço de 
endereçamento do processo, além de outros recursos.
 TMUs são rápidos e eficientes por dispensarem acessos 
ao kernel do sistema operacional, evitando assim a 
mudança de modo de acesso.
Sistemas Operacionais
Processos
Thread Modo Usuário (TMU):
 TMUs possuem uma grande limitação, pois o sistema 
operacional gerencia cada processo como se existisse 
apenas um único thread.
 No momento em que um thread chama uma rotina do 
sistema que o coloca em estado de espera (rotina 
bloqueante), todo o processo é colocado no estado de 
espera, mesmo havendo outros threads prontos para 
execução.
Sistemas Operacionais
Processos
Thread Modo Kernel (TMK):
 TMK são implementados diretamente pelo núcleo do 
sistema operacional.
 O sistema operacional 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.
Sistemas Operacionais
Processos
Thread Modo Kernel (TMK):
 O grande problema para pacotes em modo kernel é o seu 
baixo desempenho.
 Enquanto nos pacotes em modo usuário todo tratamento 
é feito sem a ajuda do sistema operacional, ou seja, sem 
a mudança no modo de acesso, pacotes em modo kernel
utilizam chamadas a rotinas do sistema operacional e, 
consequentemente, várias mudanças no modo de 
acesso.
Sistemas Operacionais
Processos
Thread Modo Híbrido (TMH):
 A arquitetura de threads em modo híbrido combina as 
vantagens de threads implementados em modo usuário 
(TMU) e modo kernel (TMK).
 Um processo pode ter vários TMKs e, por sua vez, um 
TMK pode ter vários TMUs.
 O núcleo do sistema reconhece os TMKs e pode 
escaloná-los individualmente.
 Um TMU pode ser executado em um TMK, em um 
determinado momento, e no instante seguinte ser 
executado outro.
Sistemas Operacionais
Processos
Thread Modo Híbrido (TMH):
 O programador desenvolve a aplicação em termos de 
TMUs e especifica quantos TMKs estão associados ao 
processo.
Sistemas Operacionais
Processos
Thread Modo Híbrido (TMH):
 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 seus TMUs são colocados no 
estado de espera.
 TMUs que desejam utilizar vários processadores devem 
utilizar diferentes TMKs, o que influenciará no 
desempenho.
Sistemas Operacionais
Próxima Aula
Gerência do Processador;

Continue navegando