Gerenciamento Básico de...
Transcript of Gerenciamento Básico de...
BC1518-Sistemas Operacionais
Gerenciamento Básico Gerenciamento Básico de Memóriade Memória
Prof. Marcelo Z. do [email protected]
de Memóriade MemóriaAula Aula 0707
RoteiroRoteiro� Introdução
� Espaço de Endereçamento Lógico vs. Físico
� Estratégias para escolha de uma partição
� Alocação contígua de Memória� Alocação contígua de Memória
� Swapping
� Paginação
� Segmentação
� Leituras sugeridas
� Exercícios29/03/09 2
IntroduçãoIntrodução
� Propósito geral de um sistema computacional é executar programas:
� Programa (código + dados) deve estar na
memória;
� Para garantir uso da CPU vários programas são colocados na memória (Multi-programação);
� Necessidade de uma política de gerenciamento da memória;
� Diferentes estratégias são aplicadas de acordo com requisitos, algoritmos e suporte de hardware.
29/03/09 3
IntroduçãoIntrodução� Memória:
Uma “longa matriz” de bytes => com seus
endereços:
Um processo quer ler dados deve especificar o endereço desejado.endereço desejado.
� Instruções são buscadas na memória assim como os dados;
� O processador somente executa instruções localizadas na memória principal (não há acesso direto a disco).
� http://www.youtube.com/watch?v=mYbYGFWeG_Y29/03/09 4
IntroduçãoIntrodução
� Tendência atual do software� Lei de Parkinson: “Os programas se expandem para
preencher toda a memória disponível para eles” (adaptação);
� Gerenciador de memória: � Responsável por alocar e liberar espaços na memória
para os processos em execução;
� Responsável por gerenciar o chaveamento entre a memória principal e o disco rigído;
29/03/09 5
� Instruções pegam endereços de memória como argumento, mas não endereço de disco;
� Para garantir que cada processo tenha um espaço de memória separada:� O registrador de alocação contém o endereço base para
Hardware BásicoHardware Básico
� O registrador de alocação contém o endereço base para realizar a tradução;
� Proteção ocorre quando o hardware da CPU compara os endereços gerados no modo usuário com os registradores;
� Qualquer tentativa de violar a região, uma trap é enviada para o monitor;O SO que carrega os registradores base e limite.
Hardware BásicoHardware Básico
� O SO que carrega os registradores base e limite.
Espaço de endereço Logico e Espaço de endereço Logico e FísicoFísico� Endereço Lógico
◦ Gerado pela CPU;◦ Também referenciado como endereço virtual;◦ Programas de usuário trabalham com endereço lógico, não vê o endereço físico real.
8
lógico, não vê o endereço físico real.
� Endereço Físico◦ Endereço que a unidade de memória trabalha.
Espaço de endereço Logico e Espaço de endereço Logico e FísicoFísico� Ambos são os mesmos se a criação dos endereços ocorrem em◦ Tempo de compilação ou◦ Tempo de carregamento
9
� Pode ser diferente se o endereço é criado em ◦ Tempo de execução◦ � necessidade de mapeamento de endereço lógico para físico
Unidade de Gerenciamento de Unidade de Gerenciamento de Memória (MMU)Memória (MMU)
� Dispositivo que tem a função de mapear o endereço físico para um endereço virtual;
� Numa MMU, o valor no registrador realocado é adicionado em todos os endereços gerados por um adicionado em todos os endereços gerados por um usuário e enviado para memória;
� O programa de usuário trabalha com endereço lógico, ele nunca trabalha com endereço físico;
� Registrador base é chamado de registrador de realocação.
Unidade de Gerenciamento de Unidade de Gerenciamento de Memória (MMU)Memória (MMU)
Carregamento dinâmicoCarregamento dinâmico
� Rotina não é carregada até ser chamada;
� Melhor utilização de espaço de memória, a rotina não utilizada nunca é carregada;
� Útil quando grande quantidade de código é necessário para tratar de casos que ocorrem com pouca frequência;
� Não exige suporte do sistema operacional, é responsabilidade dos usuários.
Swapping (Troca de Swapping (Troca de processos)processos)� Técnica para resolver o problema da insuficiência
de memória:
� antes: O programa ficava na memória até o fim da sua execução, enquanto os outros esperavam da sua execução, enquanto os outros esperavam por memória livre.
� swapping: O sistema retira temporariamente um programa da memória, coloca-o no disco (swapp out), para a entrada de outro.
29/03/09 13
� Exemplo: Algoritmo de alternância circular � Quando o quantum expirar, o gerenciador de memória
começará a descarregar o processo que acabou ecarregará outro processo para o espaço da memórialiberada.
Swapping (Troca de Swapping (Troca de processos)processos)
29/03/09 14
Exemplo: Escalonamento por prioridade:
•Alta prioridade aloca mémoria e baixa é eliminado dessa área
� Pode ocorrer de duas maneiras:
� Com partições fixas:
� Cada vez que um processo é bloqueado, ele é retirado dando o lugar a outro;
Swapping (Troca de Swapping (Troca de processos)processos)
� Não é interessante porque aspartições fixas tendem a desperdiçar espaços de memória;
� Com partições variáveis:
� Tamanho e número de partições variam com os processos;
� Otimiza a utilização da memória, mas é mais complicado na alocação e liberação da memória;
29/03/09 15
Alocação de MemóriaAlocação de Memória
� Tipos básicos de gerenciamento:
� Alocação não contígua: com chaveamento (Multiprogramação):
� Processos são movidos entre a memória � Processos são movidos entre a memória principal e o disco;
�artifício usado para resolver o problema da falta de memória;
�Se existe MEMÓRIA PRINCIPAL suficiente não há necessidade de se ter divisões;
� Contígua: não há chaveamento entre processos;29/03/09 16
Sem troca de Processos - Contíguo� Sem chaveamento entre processos: gerenciamento mais simples;
� Desvantagem: apenas um processo na memória;Palmtop
Alocação de MemóriaAlocação de Memória
29/03/09 17
USUÁRIO
0
0xFFF...
RAM
S.O.
S.O.ROM
USUÁRIO
DRIVERS
USUÁRIO
S.O.
ROM
RAM
(a) (b) (c)
RAM
MS-DOS
Alocação de Memória Alocação de Memória ––Partições fixasPartições fixas
� Múltiplos processos sendo executados;
� Eficiência da CPU;
� Dividir a memória em n partições;� Dividir a memória em n partições;
� N processos na memória;
� Ocorria de modo manual => quando o sistema era inicializado;
29/03/09 18
Alocação de Memória Alocação de Memória --Partições fixasPartições fixas
Memória Principal
Sistema Operacional
2 KbPartição 1Partição
Tabela de partições
Tamanho
1 2 Kb
29/03/09 19
5 Kb
8 Kb
1 2 Kb
2 5 Kb
3 8 Kb
Partição 2
Partição 3Programas a serem executados:
AE
3 Kb
D
6 Kb
C
1 Kb
B
4 Kb 2 Kb
Alocação de Memória Alocação de Memória --Partições fixasPartições fixas
Partição 4
Partição 3
800 k
700 k Partição 4
Partição 3Fila de entrada
29/03/09 20
Partição 1
S.O.
Partição 2
0
Partição 1
S.O.
Partição 2
0
Partição está cheia OS/360 (IBM)
Alocação de Memória Alocação de Memória --Partições fixasPartições fixas
� Tabela de Alocação de Partições: área livre e ocupada pelos processos.
Memória Principal
Sistema OperacionalPartição Tamanho Livre
29/03/09 21
1
2
3
Programa C
Área livre
Programa B
1 2 Kb Não
2 5 Kb Sim
3 8 Kb Não
Alocação de Memória Alocação de Memória --Partições fixasPartições fixas
� Vantagem:�Multiprogramação: Partições fixas.
� Desvantagens:� Desvantagens:�Utilização parcial das partições fixas�Concomitante criação de espaços ociosos:
� fragmentação interna – programa é carregado em uma partição um pouco maior que o necessário.
29/03/09 22
Alocação de Memória Alocação de Memória --Partições fixasPartições fixas
� Fragmentação Interna
Memória Principal
Sistema Operacional
Programa C
29/03/09 23
1 Kb
3 Kb
5 Kb
Programa C
Programa A
Programa E
BD
6 Kb 4 Kb
Alocação de Memória Alocação de Memória --Partições fixasPartições fixas
� Pergunta: Descreva os benefícios e desvantagens de tamanhos de partições grandes e pequenos.
• Partições maiores permitem que programas grandes executem, mas resultam em fragmentação interna para
29/03/09 24
executem, mas resultam em fragmentação interna para programas pequenos.
• Partições pequenas reduzem a quantidade de fragmentação interna e aumenta o nível da multiprogramação, permitindo que mais programas residam na memória ao mesmo tempo, mas limita o tamanho do programa.
� O processo recebe apenas o volume de memória que requisita quando é carregado para processamento;
Memória PrincipalMemória Principal
Alocação de Memória Alocação de Memória --PPartições Dinâmicasartições Dinâmicas
29/03/09 25
Sistema OperacionalSistema Operacional
4 Kb
1 Kb
3 Kb
5 Kb
2 Kb
15 Kb
Programa C
Programa B
Programa A
Programa EBA
2 Kb
E
3 Kb
C
1 Kb 4 Kb
� Fragmentação Externa
Memória Principal
Sistema Operacional
Alocação de Memória Alocação de Memória --PPartições Dinâmicasartições Dinâmicas
29/03/09 26
4 Kb
3 Kb
5 Kb
Programa C
Programa A
D
6 Kb
� Solução para a Fragmentação Externa
Memória PrincipalMemória Principal
Sistema OperacionalSistema Operacional Espaços livres adjacentes
Alocação de Memória Alocação de Memória --PPartições Dinâmicasartições Dinâmicas
29/03/09 27
8 Kb
4 Kb
3 Kb
5 Kb5 Kb
Programa C
Programa APrograma A
adjacentes são reunídos
� Solução para a Fragmentação Externa
Memória PrincipalMemória Principal
Sistema OperacionalSistema Operacional
Programa C
Alocação de Memória Alocação de Memória --PPartições Dinâmicasartições Dinâmicas
29/03/09 28
Relocação
4 Kb
3 Kb
12 Kb
5 Kb
Programa C
Programa C
Programa A
Programa A
Realocação dinámica
Estratégias para escolha da Estratégias para escolha da partiçãopartição
� Para evitar ou diminuir o problema da fragmentação;
� São propostos 3 técnicas na alocação dinâmica: � Best-fit:Best-fit:
�Escolhe a melhor segmento, ou seja, aquela em que o programa deixa o menor espaço sem utilização;
�A tendência é que a memória fique cada vez mais com pequenas áreas livres não contíguas
29/03/09 29
� Best-fit:
Memória Principal
Sistema Operacional
Sistema Operacional
Programa C
fit
Estratégias para escolha da Estratégias para escolha da partiçãopartição
29/03/09 30
4 Kb
3 Kb
5 Kb
Programa C
Programa A
F
1 Kb2 Kb
Programa F
Programa A
Área livre
(a) B
est-f
it
� Worst-fit:�Escolhe o pior segmento, ou seja, aquela em que o programa deixa o maior espaço sem utilização;
Deixando espaços maiores, a tendência é
Estratégias para escolha da Estratégias para escolha da partiçãopartição
�Deixando espaços maiores, a tendência é permitir que um maior número de programas utilize a memória, diminuindo o problema da fragmentação.
29/03/09 31
� Worst-fit:
Memória Principal
Sistema Operacional
4 Kb
Sistema Operacional
Estratégias para escolha da Estratégias para escolha da partiçãopartição
29/03/09 32
4 Kb
3 Kb
5 Kb
Programa C
Programa A
F
1 Kb 4 Kb
Programa C
Programa A
Área livre
Programa F(b) Worst-fit
� First-fit:�escolhe o primeiro segmento livre que seja suficiente para carregar o programa.
É a estratégia mais rápida entre elas.
Estratégias para escolha da Estratégias para escolha da partiçãopartição
�É a estratégia mais rápida entre elas.
29/03/09 33
Memória Principal
Sistema Operacional
4 KbSistema Operacional
Programa F
Estratégias para escolha da Estratégias para escolha da partiçãopartição
29/03/09 34
4 Kb
3 Kb
5 Kb
Programa C
Programa A
F
1 Kb
3 Kb
Programa C
Programa A
Área livre
Programa F
(c) First-fit
� Vinculação de endereços feita em execution timefaz com que endereços físicos e lógicos se diferenciem:� Esquema de tradução é necessário.
� O mapeamento de endereços em tempo de
Proteção e Mapeamento da Proteção e Mapeamento da MemóriaMemória
� O mapeamento de endereços em tempo de execução é feita pela MMU (Memory Management Unit);� Mapeamento permite escolher entre os métodos
diferentes de alocação de memória (Paginação, segmentação).
� O registrado base (base register) => chamado de relocation register.
29/03/09 35
� O registrador de relocação contém o endereço base para realizar a tradução.
� É adicionado a todo endereço gerado por um processo de usuário no momento em que este é
Proteção e Mapeamento da Proteção e Mapeamento da MemóriaMemória
processo de usuário no momento em que este é enviado à memória.
Endereço base
Proteção e Mapeamento da Proteção e Mapeamento da MemóriaMemória
29/03/09 37
Gerenciamento de memória com Gerenciamento de memória com Mapa de BitsMapa de Bits
� O SO deve gerenciar a memória atribuída de forma dinâmica;
� Duas técnicas são empregadas:
� Gerenciamento de memória com listas � Gerenciamento de memória com listas encadeadas
� Técnica com Mapa de Bits:� Memória é dividida em unidades de alocação => kbytes;� Cada unidade corresponde a um bit no mapa:
0 - livre1 – ocupado
29/03/09 38
Gerenciamento de memória com Gerenciamento de memória com Mapa de BitsMapa de Bits
39
a) Parte da memória com 5 segmentos de processos e 3 segmentos de memória livre
− pequenos riscos simétricos denotam as unidades de alocação
− regiões sombreadas denotam segmentos livresb) Mapa de bits correspondentec) Mesmas informações em uma lista encadeada
Gerenciamento de memória com listas encadeadas:
� Cada item da lista encadeada construída tem 2 estados (P - processo, H - livre):
Gerenciamento de memória com Gerenciamento de memória com Mapa de BitsMapa de Bits
� Endereço de início� Comprimento � Ponteiro para próximo item
� Quando termina um determinado processo => junta o espaço liberado com seus vizinhos.
29/03/09 40
Gerenciamento de memória com Gerenciamento de memória com Lista EncadeadaLista Encadeada
41
Quatro combinações de vizinhança para o processo X em término de execução
Paginação: Alocação de Paginação: Alocação de memória não contíguomemória não contíguo
� Processo é alocado na memória onde há espaço disponível;
� Divide a memória física com tamanho de blocos fixos denominado quadros (definidos pelo hardware).◦ O tamanho da página é uma potência de 2, variando de 512
42
◦ O tamanho da página é uma potência de 2, variando de 512 bytes até 16 MB
◦ O S.O. guarda todos os quadros livres
� Divide a memória lógica em blocos do mesmo tamanho chamado de página.◦ Para executar um programa com tamanho de n páginas, é necessário encontrar n páginas livre para carregá-lo.
◦ Configura uma tabela de páginas para traduzir o endereço lógico em endereço físico
EsquemaEsquema de de traduçãotradução de de EndereçoEndereço
� O endereço gerado pela CPU é dividido em :
◦ Número de Página (p) – usado como um indice dentro de uma tabela de páginas a qual contém o endereço base de cada página na memória física
◦ Página offset – deslocamento (d) – combinada com endereço
43
◦ Página offset – deslocamento (d) – combinada com endereço base define o endereço de memória física que é enviado para unidade de memória
◦ Para um dado espaço de endereço lógico 2m e tamanho de página 2n
page number page offset
p d
m - n n
EsquemaEsquema de de traduçãotradução de de EndereçoEndereço
44
EsquemaEsquema de de traduçãotradução de de EndereçoEndereço
45
Exemplo de PáginaçãoExemplo de Páginação
Tamanho da página = 4 bytesTamanho da memória = 8 páginas = 32 bytesEndereço lógico 0:página = 0/4 = 0, offset = 0%4 = 0mapeado � quadro 5 + offset 0 �
46
mapeado � quadro 5 + offset 0 �endereço físico 20
Endereço lógico 13:
página = 13/4 = 3, offset = 13%4 = 1mapeado � quadro 2 + offset 1 �endereço físico 9
Quadros LivresQuadros Livres
47
Before allocation After allocation
Todo o processo deve ter sua própria tabela de página
Implementação da tabela de páginasImplementação da tabela de páginas
� Tabela de página é guardada na memória principal◦ Registrador de base da tabela de páginas (PTBR) aponta para a tabela de página;
◦ Page-table length register – PRLR => indica o
48
tamanho da tabela de página.� Mas qual a desvantagem de guardar a tabela de páginas na memória?◦ Todo acesso a instruções requer dois acessos a memória: um para tabela de página e outro para as instruções.
Implementação da tabela de páginasImplementação da tabela de páginas
� Solução:
� Usar uma cache especial, menor, de pesquisa rápida chamada Tranlation Look-aside Buffer (TLB)
� É uma memória associativa de alta velocidade
49
� Cada entrada da TLB consistem em duas partes◦ Uma chave e um valor
� Quando recebe um item, o item é comparado com todas as chaves.◦ Atualmente: Intel Pentium Core i7 - com 512 entradas
Paginação com TLBPaginação com TLB
50
Falha
Proteção Proteção
� Proteção de memória é realizada pela proteção dos bits associadas a cada quadro.
� Esses bits costumam ser mantidos na tabela de páginas
51
de páginas ◦ Um bit pode definir uma página como sendo de leitura/escrita ou somente leitura
� Outro bit (valid-invalid) pode ser usado◦ “valid” indica onde a página esta no espaço do endereço do processo, isto é, uma página válida para acesso
◦ “invalid” indica que a página não está no espaço de endereço do processo
O bit Valid (v) or Invalid (i) na O bit Valid (v) or Invalid (i) na tabela de páginatabela de página
52
Estrutura de tabela de páginaEstrutura de tabela de página
� A maioria dos sistemas computadorizados modernos admite um grande espaço de endereço;
� Nesse contexto, a própria tabela de página se torna excessivamente grande;Uma solução é usar um algoritmo de paginação com
53
� Uma solução é usar um algoritmo de paginação com dois níveis, em que a própria tabela de página também é paginada:◦ Exemplo: máquina de 32 bits => 20 bits ficam para páginas e 12 para deslocamento
Número da página descolcamento
pi p2 d
Estrutura de tabela de páginaEstrutura de tabela de página
54
Estrutura de tabela de páginaEstrutura de tabela de página
55
• O SO cria a tabela de página externa e a página da tabela de página.
Estrutura de tabela de páginaEstrutura de tabela de página
• Em um espaço de endereçamento lógico de 64 bits, o esquema de endereço em 2 níveis não é mais adequado
• Usa-se um esquema de 3 níveis.
56
Tabela de página invertidaTabela de página invertida
� Uma entrada para cada quadro da memória física;� A entrada consiste no endereço virtual da página armazenado nesse local da memória física com informações sobre o precesso que possui essa página.
57
página.
Gerenciamento de Memória Gerenciamento de Memória SegmentaçãoSegmentação� Esquema de gerenciamento de memória que suporta visão do usuário da memória.
� Diferente da paginação?
◦ Difere fundamentalmente da paginação, onde o programa é dividido em páginas de iguais tamanhos que muitas vezes contêm instruções de mais de um módulo de programa.
06/04/09 58
Segmentação:
� Aproveita a modularidade do programa: a memórianão é dividida em tamanhos fixos e sim conforme aestruturação do programa.
Gerenciamento de Memória Gerenciamento de Memória SegmentaçãoSegmentação
estruturação do programa.
� Isso permite que os programas sejam divididoslogicamente em sub-rotinas e estruturas de dados ecolocados em blocos de informações na memória.
06/04/09 59
Compilador cria segmentos:� As variáveis globais;
� Chamadas de procedimento que armazenaparâmetros e endereços de retorno;
Gerenciamento de Memória Gerenciamento de Memória SegmentaçãoSegmentação
Chamadas de procedimento que armazenaparâmetros e endereços de retorno;
� A porção do código para cada procedimento oufunção;
� As variáveis locais do procedimento ou função;
06/04/09 60
1
1
4
Gerenciamento de Memória Gerenciamento de Memória SegmentaçãoSegmentação
2
4
2
3
Espaço do usuário Espaço de memória física
Pilha
Árvorede Parse
Livre
Tarefa: Compilação
20k
12k 12k
Gerenciamento de Memória Gerenciamento de Memória SegmentaçãoSegmentação
06/04/09 62
de Parse
Constantes
FonteTabela
de Símbolos
Espaço de EndereçamentoVirtual
Tabelade
SímbolosFonte
Constantes0k 0k0k0k
12k
02k
Pilha
12k
Segmentos (0-3)
Arquitetura de Segmentação Arquitetura de Segmentação
� Tabela de segmento – mapeia o endereço físico; cada tabela é composta por:◦ base – contém o endereço físico inicial onde o segmento reside na memória
◦ limite – especifica o tamanho do segmento
63
� Segment-table base register (STBR) aponta para a localização da tabela de segmento na memória
� Segment-table length register (STLR) indica o número de segmento usado por um programa;
número do segmento s é legal se s < STLR
� Segmentação – Proteção:
◦ Cada segmento representa uma porção semântica do programa – segmentos que são instruções, enquanto outros são dados.
GerenciamentoGerenciamento de de MemóriaMemóriaVirtual Virtual -- SegmentaçãoSegmentação
◦ Os segmentos de instruções podem ser definidos como somente de leitura ou de execução;
◦ O hardware de mapeamento verifica o bit de proteção associado com cada entrada na tabela de segmentos para evitar acesso ilegal.
06/04/09 64
Arquitetura de Segmentação Arquitetura de Segmentação
65
Arquitetura de Segmentação Arquitetura de Segmentação
66
� Segmentação:
◦ Problemas encontrados => embora haja espaço na memória, não há espaço contínuo:� Política de re-alocação: um ou mais blocos são realocados para abrir espaço contínuo (pode criar fragmentação
Gerenciamento de Memória Gerenciamento de Memória SegmentaçãoSegmentação
para abrir espaço contínuo (pode criar fragmentação externa);
◦ Necessidade:� Política de compactação: para que todos os espaços sejam compactados;
� Política (bloquear): fila de espera;� Política de troca: substituição de segmentos;
06/04/09 67
◦ Técnica de gerenciamento onde o endereçamentológico é divido em segmentos e, por sua vez, cadasegmento é dividido fisicamente em páginas.
◦ O endereço virtual é formado pelo nº do segmento
Gerenciamento de Memória Gerenciamento de Memória Virtual Virtual –– Segmentação com PaginaçãoSegmentação com Paginação
◦ O endereço virtual é formado pelo nº do segmento(NSV), um nº da página (NPV) dentro dessesegmento e um deslocamento dentro da página.
� O nº do segmento aponta para uma entrada na tabela desegmentos, que por sua vez aponta para uma tabela depáginas.
06/04/09 68
◦ Para programador: sua aplicação continua sendomapeada por segmentos de tamanhos diferentes, emfunção das subrotinas e estruturas definidas noprograma.
Gerenciamento de Memória Gerenciamento de Memória Virtual Virtual –– Segmentação com PaginaçãoSegmentação com Paginação
◦ O sistema trata cada segmento com um conjunto depáginas de mesmo tamanho, mapeadas por uma tabelade páginas associada ao segmento.
◦ Um segmento não precisa estar contíguo na memóriaprincipal, eliminando o programa de fragmentaçãoexterna.� Exemplo: Arquitetura Pentium segue esse modelo
06/04/09 69
Exemplo: Intel PentiumExemplo: Intel Pentium� Suporta:
◦ Segmentação e segmentação com paginação
� A CPU gera o endereço lógico:◦ Que são dados à unidade de segmentação;
� A unidade produz um endereço linear para cada endereço lógico.
70
endereço lógico.� O enderço linear é dado à unidade de paginação, que por sua vez gera o endereço físico na memória;◦ Essas unidades foram o equivalente a unidade de gerência MMU.
� Tamanho máximo do segmento: 4 GB
�Número máximo de segmentos por processo é 16 KB.
Segmentação: Intel PentiumSegmentação: Intel Pentium
71
segmentos por processo é 16 KB.�8 K privados �mantidas na tabela de descritor local
�8 K compartilhado �mantidados na tabela de descritor global
� Tamanho da página :� 4 KB � paginação em 2
níveis ou� 4 MB � páginação em
um nível;
p1
p2
d
Paginação: Intel PentiumPaginação: Intel Pentium
72
um nível;�Os 10 bits mais alta
ordem referencia o diretório de página
Linux com Paginação em 3 Níveis
No Pentium, tamanho do diretório do meio = 0
SumárioSumário� CPU gera endereço lógico
� Alocação de memória contíguo
� Primeiro, Melhor ou Pior Ajuste
74
� Paginação: alocação não contíguo de memória
� Segmentação: tamanho variável de acordo com a
visao de usuário
� Segmentação e Paginação no Pentium
Leituras Sugeridas
� Silberschatz, A., Galvin, P. B. Gagne, G. Sistemas Operacionais com Java. 7º edição. Editora Campus, 2008 .
� TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: Pearson, 3 ed. 2010
Acesse o link abaixo:
http://hostel.ufabc.edu.br/~marcelo.nascimento/
Nota de Aula
nto/
Obrigado!!!
ExercíciosExercícios1 - Suponha um sistema de 128 Kb de memória principal e que utilize
um sistema operacional de 64 Kb que implemente alocaçãoparticionada estática realocável. Considere também que o sistemafoi implementado em três partições: P1(8Kb), P2(24Kb) eP3(32Kb). Calcule a fragmentação interna da memória principalapós a carga de três programas: PA, PB e PC.A)P1->PA(6 Kb); P2->PB(20Kb); P3->PC(28Kb);B) P1->PA(4 Kb); P2->PB(16 Kb); P3->PC(26Kb);C)P1->PA(8 Kb); P2->PB(24Kb); P3->PC(32Kb);C)P1->PA(8 Kb); P2->PB(24Kb); P3->PC(32Kb);
2 – Considere o exercício anterior, seria possível executar quatroprogramas concorrentemente utilizando apenas a técnica dealocação de particionamento estática realocável? Se for possível,como? Considerando ainda o mesmo exercício, seria possívelexecutar um programa de 36 Kb? Se for possível, como?
3 – O que é fragmentação interna e fragmentação externa? Qual otipo de fragmentação apresentado no método de gerenciamento departições fixas?
29/03/09 77