Buscar

Material para Estudo SO

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

Revisão para a AV1
Definição
Classificação
Conceitos: concorrência, interrupção
Arquitetura do SO
 
Definição de SO
● Abstração e Gerenciamento
● Conceito Topdown – visão do usuário
● Conceito Bottom-up – gerenciador de recursos
 
O que um SO precisa gerenciar?
● Processos
● Hardware / dispositivos
● Memória
● Processador
● Sistemas de arquivos
 
Revisão: classificação de SO
 
Sistemas com múltiplos processadores
 
 
 
Sequência de execução e desvio
 
Interrupções 
● Programas têm suas instruções executadas pelos processador de 
forma sequencial.
● Até que algum evento externo cause um desvio na sequência de 
execução.
● Eventos externos são princ. gerados por dispositivos de hardware.
● Eventos internos são chamados de exceções. 
● Os dados são guardados em registradores para a retomada a 
interrupção.
● Rotina de tratamento de interrupção.
● Otimiza a comunicação dos dispositivos com a CPU
 
Interrupção sequencial
 
Interrupção em cascata
 
Concorrência
● É possibilitada para utilização de interrupções
● Vários programas são carregados na memória a espera 
da sua utilização do processador
● Otimização do tempo do processador
● O controle do acesso concorrente a diversos recursos é 
implementado por mecanismos de proteção do SO para 
garantir a integridade
 
Diferença entre SO e demais programas
● Programas são executados sequencialmente
– Tem início, meio e fim.
– São passíveis de interrupções
● Funciona com base em rotinas que servem:
– Os usuários
– Os programas 
– E as demais rotinas do SO
● A esse conjunto de rotinas damos o nome de kernel
 
Modos de acesso
● Servem para proteger o acesso ao kernel
– Evitando a execução de instruções indevidas
● Modo usuário
● O usuário e as aplicações não têm permissão para 
executar instruções privilegiadas.
● Modo Kernel
● O usuário e as aplicações podem executar instruções 
privilegiadas.
 
System Calls
● São chamadas às rotinas do kernel
● Mecanismos de acesso aos serviços oferecidos pelo kernel
– Por parte dos usuários ou aplicações
– Mudança do modo usuário para modo kernel
● Serve como intermediário entre as aplicações do usuário e o SO
– garantindo a segurança do sistema
● O serviço é processado com bases nos parâmetros definidos na 
System Call
– e retorna à aplicação os resultados obtidos.
 
Linguagem de comando / Shell
● Linguagem de controle
– Maneira mais simples do usuário se comunicar com o 
SO
– Ações:
● Criar, ler, organizar e deletar arquivos
● Criar, consultar e deletar diretórios
● Atualizar e instalar aplicativos
● Interpretador de comandos
– Verifica, interpreta e executa
 
Esquema de kernel monolítico
 
Esquema do kernel micro-núcleo
 
Em camadas
● A camada mais baixa realiza a interface com o hardware
● As camadas intermediárias proveem níveis mais altos de 
abstração e gerência
● A camada superior faz a interface entre núcleo e 
aplicações
 
Em camadas
● (+) Estrutura bem organizada 
● (+) Baseada no modelo de referência OSI (Open Systems 
Interconnection)
● (-) O empilhamento aumenta o tempo de comunicação 
entre camadas e dispositivos periféricos ou recursos.
● (-) Dificuldade de dividir as funcionalidades devido as suas 
interligações
 
Em camadas
● A camada mais baixa realiza a interface com o hardware
● As camadas intermediárias proveem níveis mais altos de 
abstração e gerência
● A camada superior faz a interface entre núcleo e 
aplicações
 
Em camadas
● (+) Estrutura bem organizada 
● (+) Baseada no modelo de referência OSI (Open Systems 
Interconnection)
● (-) O empilhamento aumenta o tempo de comunicação 
entre camadas e dispositivos periféricos ou recursos.
● (-) Dificuldade de dividir as funcionalidades devido as suas 
interligações
 
Núcleo do Linux
● Linus Torvalds
– Estudante de Ciência da Computação da Univ. de Helsinki – 
Finlândia
● Colaboração de vários programadores voluntários via Usenet em 1991 
(21 anos)
● Baseado em Minix
– Desenvolvido pelo prof. Andrew S. Tanenbaum baseado em UNIX, 
http://www.cs.vu.nl/~ast/, Amsterdã
● GPLv2, marca registrada, Tux
● Debate Tanenbaum – Torvalds
– 1992, micro x mono, portabilidade, segurança
 
 
Programas x Processos
● Programa é algo estático
– São formados por sequências de comandos e 
instruções 
– Não têm a possibilidade de alterar o seu estado. 
● Processo é um programa em execução
– Executam os comandos dos programas
– São dinâmicos: processos podem sofrer alterações
 
Classificação de processos
● Interativos (Foreground)
● Batch (Backgound)
● Daemons
● Processo CPU-Bound
● Processo I/O-Bound
 
Diagrama de mudança de estado
 
Estrutura do processo
 
Contexto de hardware
 
Contexto de software
1. Quotas
2. Privilégios 
3. Identificação
 
Processos x Threads
● Processos gerenciam/agrupam 
recursos associados:
– área de endereçamento
– dados e recursos, como 
arquivos abertos, processos 
filhos, sinais, variáveis 
globais, etc.
● São mais independentes entre si
● Há muita competição
– Podem pertencer a usuários 
diferentes
● Threads são responsáveis 
pela execução.
● Compartilham todos os 
recursos dos processo.
● Não há proteção entre 
threads
– Há cooperação e não 
competição.
● Otimização e paralelismo 
entre as tarefas
 
Exercício em equipes
Processos x Threads
● O uso de processos em programas concorrentes gera 
otimização de tempo de uso de CPU porque podemos 
alterná-los em processamento e separá-los das atividades 
de E/S.
– Uma vez, que esta otimização já é proposta pelos 
processos, qual são as vantagens do uso de threads 
em relação ao uso de processos?
 
Comunicação entre processos
● Necessário para que haja “cooperação” entre os 
processos concorrentes
● Situações:
1. Um processo deve passar informações para outro
2. Evitar atividades críticas nas quais um processo invade 
o outro
3. Sequência adequada em caso de dependência
• Casos 2 e 3 também se aplicam aos threads
 
Mecanismos de comunicação
● No caso de processos em memória compartilhada:
– Uso de variável compartilhada na memória principal
– Uso de arquivo compartilhado
● No caso de não haver memória compartilhada:
– Uso de mensagens
 
Sincronização
● Necessário devido ao uso de compartilhamento de 
memória, E/S pelos processos e arquivos
– Pode acarretar em inconsistências
– Servem para ordenar a execução dos processos
● Condições de corrida/disputa
● Região crítica
 
Soluções para sincronização
● Resolvem o problema da exclusão mútua ao acesso à 
região crítica
● Garantem as condições de não-disputa
– Por software
– Por hardware
– Semáforos
– Monitores 
– Troca de mensagens
 
Mecanismos para evitar condição 
de corrida
● Exclusão mútua com espera ociosa / ativa
● Exclusão mútua sem espera ociosa 
– Dormir e acordar
 
1. Exclusão Mútua com espera ociosa
1. Desabilitando interrupções
1. Sincronismo por hardware
2. Técnica que deve ser usada apenas pelo SO e não por P de usuários
2. Varáveis de impedimento (lock variables)
1. Sincronismo por software
3. Alternância obrigatória
1. Spin lock
4. Solução de Peterson
5. Instrução TSL
● Nesses 5 casos, quando um processo estiver em sua RC, nenhum outro 
processo invadirá a RC do primeiro.
 
Problemas da espera ociosa
● Starvation
● Prioridade invertida
 
2. Dormir e acordar
● Invés de entrar em loop infinito, há o bloqueio do processo 
que aguarda para entrar na RC● Um processo nessa condição chama sleep para dormir
● Até que outro processo chame 
– wakeup (processo a ser acordado)
● Uso de semáforos
● Problema da consumidor-produdor
 
Sincronização condicional utilizando 
semáforos
● Além de permitir a implementação de exclusão mútua, os 
semáforos também podem ser utilizados para 
sincronização condicional entre processos, 
– em que um processo precisa de um resultados de 
outro processo para que possa continuar sua 
execução.
– Ex: problema do produtor-consumidor
 
Condições para o Deadlock
● Para que exista o deadlock é necessário que ocorram 4 
condições simultaneamente:
– 1. Exclusão mútua
● Acesso exclusivo a um recurso
– 2. Espera por recursos
● Hardware ou informação; entre máquinas
● Só pode ser usado por um P em um instante
 
Condições para o Deadlock
● 3. Não preempção
– Recurso q não pode ser retirado do P proprietário sem 
que haja falha
– Ex: gravação de um CD
– Preemptivo
● Ex: memória
● 4. Espera circular
– Cada P espera um recurso que está com o outro P 
também em espera
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43

Outros materiais