Buscar

Sistemas Operacionais

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

Kernel 
 
 
 
Vídeos salvos na pasta 
 
 
 
 
Link 
http://www.oreilly.com/openbook/opensources/book/appa.html 
 
 
 
 
 
PSW 
 
PC 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Leia o capítulo 5 de Fundamentos de Sistemas Operacionais – 6ª Edição 
Autores: Silberschatz, Galvin e Gagne. 
Leia a descrição das funções da biblioteca Pthreads utilizada para implementação de threads de usuário. 
 
 
 
 
 
Um processo que contenha threads é composto pelo seu PCB (Process Control Block) e pelos blocos específicos para 
cada thread que contém uma estrutura de contexto de software e uma estrutura de contexto de hardware. 
Cada thread possui contextos próprios de hardware e software, porém compartilham o mesmo espaço de 
endereçamento alocado ao processo. 
 
 
Vamos entender melhor. 
Pense em funções de um mesmo processo onde todas as funções são capazes, por exemplo, de ver e alterar o 
conteúdo de variáveis globais. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Nessa aula, você aprendeu: 
 
• O que é uma thread. 
• Quais os tipos de threads disponíveis e suas características. 
• As vantagens e desvantagens do uso de threads. 
Leia os artigos: 
 
Pthread Tutorial, Chapin, P., 2005. 
 
Sun Os Multithread Architecture, Sun Microsystems, USENIX Winter´91. 
 
Execute o programa contagem utilizando o sistema operacional Linux. O código fonte em C pode ser obtido em 
contagem.c e deve ser compilado com o comando g++ –o contagem contagem.c –lpthread. 
 
Execute os testes sugeridos nos roteiro de testes. 
 
 
 
Nesta aula, iremos entender como os recursos são compartilhados entre processos e threads e os problemas 
característicos desse compartilhamento. 
Serão analisadas situações problemas com a motivação para resolvê-las. 
 
Então, vamos começar?
 
 
Suponha que um Processo P1 está executando quando é interrompido pelo final da fatia de tempo. 
 
Outro Processo P2 será selecionado para execução e poderá querer utilizar o mesmo recurso que estava sendo 
utilizado por P1. 
 
E agora? 
Vamos entender o exemplo: 
Considere que as variáveis A e B, ambas iniciadas com o valor 1, são compartilhadas por duas threads de um mesmo 
processo e cada uma delas deverá executar: 
 
 
 
Podemos perceber neste exemplo muito simples que obtivemos 3 resultados diferentes em função da ordem em 
que os processos ocorrem. 
Esse efeito é denominado CONDIÇÃO DE CORRIDA. 
 
Há condição de corrida quando existem recursos compartilhados entre duas ou mais threads ou entre dois ou mais 
processos sem as devidas precauções. 
 
 
 
Mais uma informação importante: 
 
Sabe aqueles problemas de “erro intermitente” do sistema operacional? 
 
Não existe erro intermitente de software, já que não existe “mau contato” dentro de um programa. 
 
Erros intermitentes são mesmo erros de programação que ocorrem em determinadas situações. 
 
Essas situações podem se repetir ou não com frequência. Com a repetição do contexto é impraticável, torna-se 
muito mais difícil localizar um erro de execução do programa. 
 
Vamos conhecer agora um exemplo mais prático. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Exclusão Mútua 
Mecanismo de Exclusão Mútua: Solução que impede que dois ou mais processos tenham acesso a uma mesma 
região crítica, ou seja, impede acesso simultâneo a um determinado recurso. 
NOTA: acesso simultâneo a região crítica não é a mesma coisa que execução simultânea. 
 
 
 
 
 
 
 
 
 
Nesta aula, iremos aprender como implementar os principais mecanismos de exclusão mútua, baseados em 
algoritmos, características de hardware e funcionalidades do sistema operacional, comparando vantagens e 
desvantagens de cada um. 
 
Utilizaremos o problema do produtor/consumidor para entendermos a abordagem de sincronização entre processos 
através dos recursos do sistema operacional. 
 
Então, vamos começar? 
 
 
Mecanismo de Exclusão Mútua: Solução que impede que dois ou mais processos tenham acesso a uma mesma 
região crítica, ou seja, impede acesso simultâneo a um determinado recurso. 
NOTA: acesso simultâneo a região crítica não é a mesma coisa que execução simultânea. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Regras de acesso: 
• O semáforo deve ser inicializado com um valor não negativo. 
• A operação wait decrementa o semáforo; se o valor ficar negativo o processo é bloqueado. 
• A operação signal incrementa o semáforo; se o valor não ficar positivo o processo bloqueado pela operação wait é 
desbloqueado. 
 
 
 
 
 
 
 
 
 
Além de permitirem a implementação de exclusão mútua, os semáforos também podem ser utilizados para 
sincronização condicional entre processos. 
Um problema clássico que exemplifica essa função é o Problema do produtor /consumidor. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Nesta aula conheceremos as estratégias utilizadas para alocação (escalonamento) e distribuição do tempo do 
processador entre os processos ativos. 
Analisaremos cada uma destas estratégias em função de medidas como tempo de resposta e vazão. 
Então, vamos começar? 
 
 
 
 
 
 
Escalonador 
A tarefa é executada por um processo do sistema operacional denominado escalonador (scheduler). 
Escalonador: Processo do sistema operacional responsável por indicar o próximo processo que será executado dos 
que estiverem prontos para execução segundo uma estratégia pré-definida. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Considerações importantes para o cálculo do tempo de resposta: 
1) FCFS: Computar a soma dos tempos de espera considerando a ordem de chegada e de processamento . Para fins 
de simplificação pode-se considerar que a diferença do instante de criação de cada processo é nula. 
2) Prioridade: Não é utilizado sozinho. Para fins de exercício é semelhante ao FCFS porém a ordem de execução é 
dada pela prioridade e não pela ordem de chegada. 
3) SJF: Também é não-preemptivo e a ordem de execução é dada pelo tamanho estimado do processo (o menor 
primeiro). 
4) Round Robin (Circular): Os processos são atendidos na ordem de chegada mas após atingirem o tempo máximo 
permitido (fatia de tempo) são recolocados no final da fila. O retorno de uma operação de E/S pode alterar a ordem 
de execução. (Calcule do tempo de resposta para as estratégias FCFS, Round Robin e SJF. Para simplificar os cálculos 
serão desconsiderados os tempos de troca de contexto e a diferença de tempos entre as inserções de cada 
processo). 
5) Múltiplas filas com realimentação: Cada processo é inicialmente colocado na fila de maior prioridade e menor 
fatia de tempo. Ao término da fatia é recolocada na fila com prioridade menor que a primeira mas com uma fatia de 
tempo maior e assim sucessivamente (depende do numero de filas). Ao executar uma operação de E/S o processo 
retorna a fila onde estava. 
 
Soluções: 
 
 
 
 
 
 
 
 
 
Nesta aula, conheceremos as estratégias utilizadas para alocação da memória principal para os processos ativos. 
 
Analisaremos cada uma dessas estratégias em função de dinâmica utilizada e da eficácia de cada método 
principalmente quando medimos desperdício de memória em uma alocação. 
 
Então, vamoscomeçar? 
 
 
 
 
 
 
 
 
 
Partição 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Princípio da Localidade 
 
 
 
Redução de trashing 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Nesta aula aprenderemos como os sistemas operacionais gerenciam o uso dos dispositivos de entrada e saída. 
 
Em função da diversidade existente destes dispositivos está é uma das mais complexas tarefas de gerência do 
sistema operacional. Não existe uma implementação genérica que atenda a todos os dispositivos. 
 
 Para isolar as características do hardware é utilizado um modelo de camadas onde as camadas de mais baixo nível 
ficam responsáveis pela interface com o hardware enquanto as de mais alto nível com a interface com o usuário. 
 
Vamos começar? 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Disco roda em velocidade constante. 
 A cada acesso deve posicionar cabeça na trilha, no inicio do setor. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Nesta aula, aprenderemos como os sistemas gerenciam arquivos considerando aspectos de estrutura, alocação e 
segurança. 
 
Vamos começar?

Outros materiais