Os objetivos desta apresentação são:
* Fazer um tour pelos principais conceitos relacionados a sistemas operacionais
* Fazer uma revisão rápida sobre conceitos de organização de computadores
Os objetivos desta apresentação são:
* Fazer um tour pelos principais conceitos relacionados a sistemas operacionais
* Fazer uma revisão rápida sobre conceitos de organização de computadores
2. Ementa da disciplina
Estruturas de Sistemas operacionais;
Sistemas multiprogramáveis;
Gerência de processos;
Gerência de memória física;
Gerência de memória virtual;
Gerência de sistemas de arquivos;
Gerenciamento de dispositivos;
Segurança e proteção;
Introdução aos sistemas operacionais distribuídos.
2
3. Bibliografia básica
Sistemas operacionais: Projeto e
implementação. Andrew S. Tanenbaum; Albert
S. Woodhull;
Sistemas operacionais: Conceitos e aplicações.
Abraham Sílberschatz; Peter Galvin; Greg
Gagne;
Arquitetura de sistemas operacionais. Francis B.
Machado, Luiz Paulo Maia.
3
4. Gerência de memória 4
Sistema
operacional
Gerência do
processador
Gerência de
memória
Gerência de
dispositivos
Gerência de
arquivos
Interface
gráfica
Gerência de
proteção
Outros
suportes
Suporte de
rede
5. Gerência de memória
Historicamente a memória principal sempre foi
vista como um recurso escasso e caro;
Preocupação dos projetistas: desenvolver
sistemas operacionais que não ocupassem
muito espaço na memória e ao mesmo tempo
otimizassem a utilização dos recursos;
Mesmo com o barateamento do hardware, o
gerenciamento de memória constitui um dos
principais módulos do sistema operacional.
5
6. Gerência de memória
Principais funções do módulo de
gerenciamento de memória:
Alocar memória para os processos;
Desalocar memória dos processos;
Gerenciar troca entre memória
principal e secundária.
6
10. Gerência de memória
Gerenciamento da memória é a
ferramenta utilizada para permitir aos
programas em execução utilizarem a
memória do computador para
armazenar
Instruções;
Dados que serão manipulados.
10
11. Gerência de memória
Principais objetivos a serem alcançados na gerência de
memória
Disponibilizar área de armazenamento para processos
executarem;
Proteger execução dos processos contra possíveis falhas;
Criar ambiente de execução com desempenho satisfatório;
Compartilhamento de memória entre processos
(comunicação);
Acesso transparente de memória por desenvolvedores.
11
12. Gerência de memória
Gerenciamento básico de memória
Primeiros sistemas operacionais;
Monoprogramáveis;
ALOCAÇÃO CONTÍGUA;
Memória principal dividia entre o
sistema operacional e o programa em
execução.
12
14. Gerência de memória
Maioria dos sistemas operacionais são
multiprogramáveis – mais de 1 processo;
Forma mais simples:
Divisão da memória principal em partições estáticas;
Tamanhos definidos;
Tamanhos estabelecidos na inicialização do sistema
operacional;
ALOCAÇÃO PARTICIONADA ESTÁTICA ou
ALOCAÇÃO FIXA.
14
15. Alocação fixa
Processo é colocado em uma fila na
entrada de cada partição;
Escolha da partição: menor partição
capaz de armazená-lo;
Caso o processo não ocupe o
espaço total de sua partição, o
restante é inutilizado.
15
17. Alocação fixa
Problemas:
Filas com grande quantidade de processos
enquanto outras filas vazias ou com poucos
processos;
Espaço desperdiçado nas partições.
Exemplo: Partição 4 com 3 processos e
partição 2 vazia (imagem anterior).
Como resolver?
Implementar o método com uma fila única.
17
18. Alocação fixa com fila única 18
• Quando determinada
partição está livre, o
mais próximo do início
da fila que melhor se
ajusta à essa partição
é carregado.
19. Alocação fixa com fila única
Problemas
Grande desperdício de memória;
Processo pode ocupar somente um
pequeno pedaço de uma partição;
Restante da partição fica inutilizado.
Como resolver?
Alocação com partições variáveis.
19
20. Alocação com partes variáveis
Tamanho das partições ajustado
dinamicamente quando os processos chegam
na memória;
O processo utilizará um espaço de memória
necessário, tornando sua partição;
Não há mais problemas de fragmentação
interna na partição, pois serão definidas a partir
da quantidade total alocada pelo processo.
20
22. Alocação com partições variáveis
Processos definem o tamanho de sua partição
ao chegarem na memória;
Quando não há mais espaço disponível, o
processo mais “antigo” na memória é retirado
para dar espaço para o próximo.
O processo de retirar um processo de memória,
atualizar em disco e colocar outro processo no
lugar é chamado de TROCA.
22
23. Alocação com partições variáveis
A TROCA consiste em trazer um processo inteiro,
executá-lo temporariamente e então devolve-lo ao
disco;
Isso acontece quando a memória principal
disponível é insuficiente para manter todos os
processos carregados
Todos os processos na memória principal seria a solução
ótima.
Outra estratégia que permite que apenas parte do
programa fique em memória principal: Memória virtual.
23
24. Alocação com partições variáveis
Mais flexível que o método com partição estática;
Flexibilidade complica a tarefa de alocar e desalocar a
memória;
Complica o monitoramento da memória utilizada;
Os espaços alocados não são mais fixos, por isso não há como
saber antecipadamente a quantidade de memória utilizada.
Há 2 formas de monitorar a memória utilizada
Mapa de bits;
Lista encadeada.
24
25. Mapa de bits
Memória é dividia em unidades
de alocação;
Para cada unidade é associado
um bit no mapa;
Valor 0: livre, valor 1: ocupado.
25
27. Mapa de bits
Ponto crucial: definição do tamanho da
unidade de alocação.
Unidade muito pequena: mapa de bits muito
grande;
Unidade muito grande: mapa de bits menor,
porém uma quantia de memória poderá ser
desperdiçada na última unidade se o tamanho
do processo não for um múltiplo exato da
unidade de alocação.
27
28. Lista encadeada
Lista encadeada dos segmentos de memória
alocados e livres;
Um segmento pode ser um processo ou uma
lacuna entre dois processos;
Cada nó da lista é formado por uma entrada
especificando se é um P (processo) ou L
(lacuna), o endereço onde se inicia a
quantidade de unidades de alocação e um
ponteiro para a próxima entrada.
28
30. Memória virtual
Estender a memória principal através
da memória secundária;
Dá a impressão ao usuário de uma
maior quantidade de memória
principal disponível;
Também chamado de memória de
swap.
30
36. Paginação
Esquema de gerenciamento de memória em que o
espaço de endereçamento físico de um processo não é
contíguo;
A paginação evita a fragmentação gerada pela
alocação dinâmica;
Programas são capazes de gerar endereços virtuais;
Conjunto de endereços virtuais formam o espaço de
endereçamento virtual.
36
37. Paginação
Os endereços virtuais não vão diretamente para o
barramento da memória;
Passam antes por uma unidade chamada MMU
(Memory Management Unit – Unidade de
gerenciamento de memória);
A MMU mapeia um endereço virtual para um endereço
lógico;
O endereçamento virtual é dividido em unidades
chamadas de páginas.
37