Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Gerenciamento de memria
Captulos 7 Operating Systems: Internals and Design Principles W. Stallings
IC - UFF
O problema
subdividir a memria para acomodar mltiplos processos mas se poucos processos esto na memria, em boa parte do tempo estaro esperando por E/S UCP sub-utilizada
ento, deve-se alocar memria de forma eficiente ao maior nmero de processos Gerenciador de Memria
IC - UFF
Alguns requisitos do GM
Relocao
o programador no deve se preocupar com o local onde o programa (processo) ser carregado para execuo durante a execuo, o processo poder sair da memria e retornar para um local diferente
IC - UFF
Alguns requisitos do GM
Proteo
processos no devem poder referenciar posies de memria em outros processos sem permisso em virtude da relocao, no possvel testar endereos em programas com suporte de h/w, o teste dever ser em tempo de execuo
IC - UFF
Alguns requisitos do GM
Compartilhamento
deve-se permitir que vrios processos possam acessar a mesma poro de memria
o mecanismo de proteo deve ter flexibilidade caso por exemplo, excluso mtua
IC - UFF
Alguns requisitos do GM
Organizao lgica
programas so normalmente separados em mdulos, que podem ser escritos e compilados separadamente graus diferentes de proteo podem ser atribudos aos mdulos compartilhamento de mdulos manipulao de diferentes mdulos de um mesmo executvel pode ser melhor realizada atravs de segmentao
IC - UFF
Alguns requisitos do GM
Organizao fsica
memria organizada como uma hierarquia se um programa precisa de mais memria do que o disponvel na MP, a MS dever ser utilizada uso de memria cache este gerenciamento dever ser feito de forma transparente pelo SO
IC - UFF
Particionamento fixo
Particionamento da memria em regies fixas
Se parties idnticas
processos menores que o tamanho da partio podem ser carregados diretamente. Processos maiores exigiro overlay. Se processos menores fragmentao interna desperdcio de MP
IC - UFF
Particionamento fixo
Parties de tamanhos distintos diminuem a ineficincia (no a elimina) associa o processo partio menor possvel aumenta a sobrecarga do gerenciamento (e.g., uma fila por partio ou fila nica?)
De qualquer forma: o nmero de parties determina o nmero de processos no sistema processos pequenos utilizam de maneira ineficiente a memria relocao
IC - UFF
IC - UFF
IC - UFF
Particionamento dinmico
Nmero e tamanho das parties varivel Cada processo recebe a quantidade de memria que necessita Gerenciando buracos e processos
SO P1 SO P1 P2 SO P1 P2 P3
P4 128k - sem espao - SO faz swap out - SO escolhe P1
SO
P1 320k
P2 224k
P3 288k
IC - UFF
Particionamento dinmico
SO P4 P2
buracos comeam a ser formados tamanhos tentem a ser pequenos necessidade de rearrumar os espaos
P3
IC - UFF
Particionamento dinmico
IC - UFF
Particionamento dinmico
Polticas de alocao primeiro encaixe (o melhor) - first fit
seleciona o primeiro que encaixa, a partir do incio mais simples, mais rpido e melhor na maioria das vezes seleciona o primeiro que encaixa, a partir da ltima partio selecionada usualmente seleciona para o final da MP de todas as parties, seleciona aquela imediatamente maior mais custoso, maior grau de fragmentao externa
IC - UFF
Particionamento dinmico
Buracos na memria: fragmentao externa Compactao: tempo perdido e relocao dinmica (melhoria com swapping)
IC - UFF
Buddy System
IC - UFF
Realocao
Mapeamento de endereos virtuais em reais necessrio, pois processos so alocados em espao de MP dinamicamente
novo pronto
P1 em end. de MP 500
Ex.: processo P1
P1:
executando
bloqueado
IC - UFF
Realocao
Mapeamento eficiente
Registradores:
IC - UFF
Relocao
endereo relativo registrador de base
PCB
somador programa registrador limite imagem do processo na memria dados
comparador int
endereo absoluto
pilha
IC - UFF
Paginao
fixo fragmentao interna dinmico fragmentao externa e realocao dinmica Processo dividido em pginas (blocos de processos)
Soluo:
IC - UFF
Paginao
Processos A, B, C esto prontos
A1
A2 A3 A4 B1 B2 B3 C1 C2 C3 C4
IC - UFF
Paginao
B termina
A1 A2 A3 A4
D submetido
A1 A2 A3 A4 D1 D2 D3 C1 C2 C3 C4 C1 C2 C3 C4
D4
D5
IC - UFF
Paginao
IC - UFF
Cada processo tem sua tabela de pginas (TP) TP: mapeamento pgina x quadro
Bit de presena
Bit de modificao Como funciona?
IC - UFF
0 1 2 3 4 5 6 7
pg. 2
IC - UFF
Ex.: endereo lgico (16 bits) 1502 tamanho da pgina 1K bytes (cada endereo armazena 1 byte) 1502 0000010111011110
Tabela de Pginas
0 1 2 3 4 5 y w z
210 endereos/pgina 10 bits para especificar o offset (478) dentro de uma pgina 000001 0111011110 Logo, restam 6 bits do end. lgico para especificar a pgina pgina 1
Endereo real = 1K * w + 478 frame tem 1K
IC - UFF
Segmentao
Programas so normalmente separados em mdulos: unidade lgica Segmentos de um programa no precisam ser do mesmo tamanho Existe um tamanho mximo para o segmento Usurio tem controle elimina fragmentao interna (mas pode haver, externa)
IC - UFF
Segmentao
Tabela de Segmentos
IC - UFF
Exerccio
1)
Considere um espao de endereamento lgico de oito pginas de 1024 palavras cada, mapeado em um memria fsica de 32 quadros. Quantos bits existem no endereo lgico? E no endereo fsico? Considere um sistema em que a memria gerenciada por uma lista encadeada de blocos disponveis, de diferentes tamanhos. Essa lista definida por uma estrutura de dados contendo o endereo base do bloco, o tamanho de cada bloco e um apontador para o prximo elemento da lista. Existem dois apontadores, um para o primeiro elemento da lista, e outro para o ltimo. Escreva o procedimento addr = allocmem (n), onde n o tamanho do bloco que deve ser alocado e addr contm, no retorno da chamada, o endereo base do bloco alocado. A tcnica de alocao a ser utilizada First-Fit. Escreva tambm o procedimento free(addr).
2)
IC - UFF