INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA BAHIA
Sistemas Operacionais
Prf. Msc. Igor de Oliveira Costa
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA BAHIAConsiderações Gerais
•
Em que consiste a multiprogramação?
–
Em manter vários processos executando na
memória.
•
Para que isso seja possível a memória precisa
ser alocada da melhor forma possível para
que um maior número de processos sejam
colocados na memória.
•
Onde são armazenados os programas ?
–
São armazenados no disco rígido, e sua execução
consiste em transferí-lo do HD para a memória
principal, para assim ser executado pela CPU.
•
Tanto SO Monotarefa quanto Multitarefa tem
gerência de memória.
–
O Mono tem uma gerência simples
–
O Multi tem uma gerência complexa
3Considerações Gerais
Gerenciamento de Memória
•
“ Programas tendem a se expandir afim de ocupar
toda memória disponível ”
•
Os programadores querem memória que são:
– grandes – rápidas – não voláteis5
MMU ?
Gerenciamento de Memória
7•
Gerenciador de Memória
– Manter o controle de quais partes da memória estão em uso e quais não estão, alocando memória aos processos quando eles precisam ou liberando quando os mesmos terminam. – Além de gerenciar a troca de processos entre memória e o disco quando a memória principal não é suficiente.Gerenciamento de Memória
•
Hierarquia de memória
– Cache - pequena quantidade, rápida e cara – Memória principal - velocidade média e preço médio – Discos - preço baixo, lento e grande quantidade•
Gerenciador de memória deve utilizar racionalmente a
hierarquia de memória
Gerenciamento Básico de Memória
Sistemas Monoprogramados
9
•
Três formas de organização da memória com um SO
e um processo de usuário
Multiprogramação
com partições fixas
¤
filas separadas para cada partição
¤
fila única
Modelagem da Multiprogramação
11
• Supondo que cada processo utiliza a cpu em 20% do tempo que fica em memória
• Modelo de aproximação probabilístico: Utilização da CPU = 1 - pn
• Onde p é a fração de tempo que o processo espera por E/S e n é número de processo na memória;
•
Ex:
–
Um computador com 32 mb de memória, sendo
que destes 16 mb é dedicado ao SO, sobrando 16
mb para os programas, levando em consideração
que cada programa ocupa 4 mb na memória,
então o grau de multiprogramação é 4, e cada
programa tem uma ociosidade de 80%, sendo
assim qual será a utilização da CPU ?
Modelagem da Multiprogramação
Exercício
¨Analisando a figura abaixo qual será a ociosidade da
CPU em um sistema que tenha grau de
multiprogramação 3, e com espera de 50 % de E/S?
13 Grau de MultiprogramaçãoExercício
¨
Um computador com 500 mb de memória, sendo que
destes 100 mb é dedicado ao SO, sobrando 400 mb para
os programas, levando em consideração que cada
programa ocupa 20 mb na memória, e tem 80% de
ociosidade, qual será a utilização da CPU ?
¨Defina MMU?
¨Em se tratando de multiprogramação com partições
fixas, qual a desvantagem em utilizar filas separadas para
cada partição?
¨Em se tratando de multiprogramação com partições
fixas, qual a vantagem em utilizar filas únicas?
Relocação e Proteção
15•
Relocação e Proteção são problemas relacionados a
multiprogramação;
•
O loader (Linker) que traz o código do disco rígido para a
memória, deve conhecer o endereço a partir do qual
este será carregado;
Relocação e Proteção
Exemplo:
Suponha que a primeira instrução de um programa seja a chamada a um procedimento cujo endereço relativo é 100K dentro do executável gerado pelo compilador (linker).
Se o programa for carregado na partição 1 (figura acima), o salto para o
endereço 100 KB desviaria a execução para o código na área de memória do sistema operacional!
•
Problema de relocação:
–
Solução 01:
• Os endereços gerados pelo compilador devem ser somados ao valor inicial da partição que ele ficará;•
Porém isso não resolve o problema da Proteção;
–
Solução 02 para ambos os problemas:
• Fornecer o processador com dois registradores especiais em hardware denominados REGISTRADOR-BASE e REGISTRADOR-LIMITE; • Cada endereço gerado pelo programa é somado à base e verificado se está dentro da partição alocada ao processo. O hardware protege ambos registradores de tentativas de modificação vindas de programas de usuários 17Relocação e Proteção
Swapping
¨ Muitas vezes a memória não é suficiente para conter todos os processos ativos. Os excedentes são mantidos em disco. ¨ A alocação de memória se modifica quando: ¤processos chegam na memória ¤processos saem da memória ¨ O número e tamanho das partições variam ao longo do tempoSwapping
19 • Quando as trocas deixam muitos espaços vazios é possível realizar uma compactação de memória. • Deve ser feita alguma consideração em relação ao tamanho de memória alocado para cada processo. – Processos podem crescer – Normalmente se aloca uma quantidade extra de memória sempre que o processo for transferido para memóriaSwapping
• Espaço para crescimento do segmento de dados
Gerenciamento de memória
com listas encadeadas
21•
Algoritmos de Alocação de memória para processos
– First Fit • Aloca-se o primeiro segmento que couber o processo, quebrando-o em duas partes – Next Fit• Fuciona igual ao First Fit com a diferença de guardar a posição;
– Best Fit • Escolhe na lista o menor segmento disponível que caiba o processo; – Worst Fit • para evitar o problema de se deixar segmentos livres muito pequenos escolher o maior segmento possível
Gerenciamento de memória
com listas encadeadas
4 kb 7 kb 9 kb 10 kb 12 kb 18 kb 20 kb 12 kb First-Fit Best-Fit 17 kb Worst-Fit 5 kbMemória Virtual
23
• Tamanho dos programas maiores que o tamanho da memória.
• Adotava-se a solução denominada de overlays.
O programa era dividido em módulos (overlay). O overlay 0 era o primeiro a ser executado, em seguida o overlay 1. A tarefa de dividir o programa em módulos era do programador. • Logo esta tarefa foi atribuída ao SO através do sistema de memória virtual. • Um programa de 16MB pode ser executado em um computador com apenas 4MB de memória por meio da escolha sobre qual 4MB deve ser mantido em memória a cada instante.
Memória Virtual
• A maioria dos sistemas de memória virtual utilizam a técnica de paginação. – MOV REG, 1000 – Esse endereço virtual 1000 deve ser mapeado a um endereço físico. – Endereços virtuais não são colocados diretamente no barramento de memória. Em vez disso ele vai para uma MMU (memory management unit) que mapeia endereços virtuais em endereços físicos.Memória Virtual
Paginação
• O endereço virtual é dividido em páginas.
• As unidades correspondentes em memória física são chamadas de molduras de página.
• As páginas e molduras são do mesmo tamanho.
• Relação entre endereços virtuais e físicos é dado pela tabela de páginas. • MOV REG, 0 • MOV REG, 8192 • MOV REG, 20500 • MOV REG, 32780
Tabela de Páginas
27
Algoritmos de Substituição de Páginas
•
Quando ocorre uma falta de página o SO precisa:
– escolher uma página para ser removida – liberar espaço para a nova página
•
Páginas modificadas devem ser salvas
– páginas não modificadas são sobreescritas
•
É melhor não escolher uma página
frequentemente usada
– provavelmente esta teria que ser trazida para a memória novamente
Algoritmo de Substituição de página
Ótimo
29
• Substituir a página que será necessária no futuro mais distante • Cada página é rotulada com o número de instruções que serão
executadas antes dela ser referenciada pela primeira vez. • A página removida será a de maior rótulo.
• O algoritmo ótimo adia a ocorrência da próxima falta de página o máximo possível.
• A ideia do algoritmo é retirar da memória a página que vai demorar mais tempo para ser referenciada novamente.
•
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
Algoritmo de Substituição de página
Ótimo
Algoritmo de Substituição de página
Ótimo
31 IMPOSSÍVEL DE IMPLEMENTAR•
É utilizado como parâmetro de comparação
entre outros algoritmos.
•
O algoritmo que apresentar desempenho
próximo do algoritmo ótimo é considerado
bom.
Algoritmo Não Usada Recentemente (NUR)
• Procura por páginas que não foram referenciadas nos últimos acessos para serem substituídas.
• Cada página possui um bit referenciada (R) e um bit
modificada (M)
– O SO saberá quais páginas estão sendo usada ou não.
– O bit R assume o valor 1 sempre que a página é referenciada (lida ou escrita).
– O bit M assume o valor 1 quando a página for escrita.
– Os bits são modificados por hardware.
• Quando um processo é retirado, os dois bits, de cada
página, são colocados em 0;
Algoritmo Não Usada Recentemente (NUR)
33•
As páginas são classificadas em 4 categorias:
– 1. Não referenciada, não modificada – 2. Não referenciada, modificada – 3. Referenciada, não modificada – 4. Referenciada, modificada•
O algoritmo NUR remove as páginas
– aleatoriamente de uma categoria não vazia de ordem mais baixaAlgoritmo FIFO
• Mantém uma lista encadeada de todas as páginas seguindo a ordem que elas entram na memória • Páginas no início da lista são substituídas • Desvantagens – Páginas antigas na memória podem ser muito referenciadas•
Anomalia de Belady
– Quando o FIFO é utilizado, quanto mais page frame tiver maior vai ser a quantidade de pages fault;35
Algoritmo Menos Recentemente Usada (MRU)
•
Assume que páginas usadas frequentemente serão usadas em
breve
– Descarta as páginas que há mais tempo não foram usadas•
É preciso manter uma lista das páginas
– mais recentemente usada no início da lista, menos usadadas no fim – Atualizar a lista em cada referência a memória•
Pode ser implementada com o auxílio de hardware específico;
•
Pode conter um campo extra na tabela de páginas que
armazene o valor do contador;
•
Hardware especial que contenha uma matriz nxn onde n é a
quantidade de molduras de páginas (page frame)
37