Buscar

FSO Aula02

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

FUNDAMENTOS DE 
SISTEMAS 
OPERACIONAIS
Parte 03
Prof. Gabriel Fernandes
gfernandes+estacio@gmail.com
GERENCIAMENTO DE 
MEMÓRIA
3
Gerenciamento de Memória
• Recurso importante;
• Tendência atual do software
• Lei de Parkinson: “Os programas se expandem para preencher a 
memória disponível para eles” (adaptação);
• Original: “o trabalho se expande para preencher o tempo 
disponível para ser concluído”
• Hierarquia de memória:
• Cache;
• Principal;
• Disco;
4
Gerenciamento de Memória
Hierarquia de Memória
• Cache
• Pequena quantidade 
• K/M bytes
• Alto custo por byte
• Muito rápida
• Volátil
• Memória Principal
• Quantidade intermediária
• M/G bytes
• Custo médio por byte
• Velocidade média
• Volátil
• Disco
• Grande quantidade –
• G/T bytes
• Baixo custo por byte
• Lenta
• Não volátil
5
Gerenciamento de Memória
• Para cada tipo de memória:
• Gerenciar espaços livres/ocupados;
• Alocar processos/dados na memória;
• Localizar dado;
• 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 a troca de processos entre a memória 
principal (MP) e o disco, quando a MP não for suficiente para 
conter todos os processos;
6
Gerenciamento de Memória
• Monoprogramação:
• Sem definição de páginas: gerenciamento mais simples;
• Apenas um processo na memória;
Programa 
de usuário
0
0xFFF...
RAM
S.O.
S.O.
Programa
de usuário
DRIVERS
Programa
de usuário
S.O.
ROM
RAM
(a) (b) (c)
RAM
ROM
7
Gerenciamento de Memória
• Modelo de Multiprogramação:
• Múltiplos processos sendo executados;
• Eficiência da CPU;
Memória Principal - RAM
Processo
8
Gerenciamento de Memória
Grau de Multiprogramação
9
Gerenciamento de Memória
Partições/Alocação
• Utilizando Multiprogramação, a memória pode ser 
particionada de duas maneiras: 
• Partições fixas (ou alocação estática);
• Partições variáveis (ou alocação dinâmica);
• Partições Fixas: 
• Tamanho e número de partições são fixos (estáticos);
• Não é atrativo, porque partições fixas tendem a desperdiçar 
memória (Qualquer espaço não utilizado é literalmente perdido)
• Mais simples;
10
Gerenciamento de Memória
Partições Fixas
• Partições Fixas: 
• Filas múltiplas:
• Problema: filas não balanceadas;
• Fila única:
• Facilita gerenciamento; 
• Sempre que uma partição fica disponível, procura-se um job no começo 
da fila que caiba na partição
• Outra implementação, para evitar desperdício:
• Pesquisa toda a lista procurando pelo job que melhor se encaixa na partição
• Melhor utilização da memória, pois procura o melhor processo para a partição 
considerada;
• Problema: processos menores são prejudicados;
11
Gerenciamento de Memória
Partições Fixas
• Divisão da Memória em Partições Fixas:
partição 4
partição 3
partição 2
partição 1
S.O.
0
100 k
200 k
400 k
700 k partição 4
partição 3
partição 2
partição 1
S.O.
Filas
Múltiplas
Fila
Única
...
(a) (b)
12
Gerenciamento de Memória
Partições Fixas
• Partições Fixas: problemas com fragmentação:
• Interna: desperdício dentro da área alocada para um processo;
• Ex.: processo de tamanho 40K ocupando uma partição de 50k;
• Externa: desperdício fora da área alocada para um processo;
• Duas partições livres: PL1 com 25k e PL2 com 100k, e um processo de 
tamanho 110K para ser executado;
• Livre: 125K, mas o processo não pode ser executado; 
13
Gerenciamento de Memória
Partições Variáveis
• Partições Variáveis:
• Tamanho e número de partições variam;
• Otimiza a utilização da memória, mas complica a alocação e 
liberação da memória;
• Partições são alocadas dinamicamente;
• SO mantém na memória uma lista com os espaços livres;
• Menor fragmentação interna e grande fragmentação externa;
• Solução: Compactação;
14
Gerenciamento de Memória
Partições Variáveis
• Partições Variáveis:
SO
A
(a)
SO
A
(b)
B
SO
A
(c)
B
C
SO
(d)
B
C
SO
(e)
B
C
D
SO
(f)
C
D
SO
(g)
C
D
A
Tempo
Memória livre
15
Gerenciamento de Memória
• Minimizar espaço de memória inutilizados:
• Compactação: necessária para recuperar os espaços perdidos por 
fragmentação; no entanto, muito custosa para a CPU;
• Técnicas para alocação dinâmica de memória:
• Bitmaps;
• Listas Encadeadas;
16
Gerenciamento de Memória
• Técnica com Bitmaps:
• Memória é dividida em unidades de alocação em kbytes;
• Cada unidade corresponde a um bit no bitmap:
0 à livre
1 à ocupado
• Tamanho do bitmap depende do tamanho da unidade e do 
tamanho da memória;
• Ex.:
• unidades de alocação pequenas à bitmap grande; 
• unidades de alocação grandes à perda de espaço;
17
Gerenciamento de Memória
• Técnica com Bitmaps:
Memória livre
8 16
A B C ...Memória
1 1 1 1 1 0 0 0 
1 1 0 0 1 1 1 1
1 1 1 1 1 1 1 1
...
1 1 1 1 1 0 0 0
Bitmap
Memória ocupada
18
Gerenciamento de Memória
• Técnica com Listas Encadeadas:
• Uma lista para os espaços vazios e outra para os espaços cheios, 
ou uma lista para ambos!
“espaço º segmento”
P 0 5 H 5 3 P 8 6 H 29 3 x.......
começa
com zero tamanho 5
Processo Hole
(espaço vazio)
começa
com 5
tamanho 3
19
Gerenciamento de Memória
• Algoritmos de Alocação à quando um novo processo é 
criado:
• FIRST FIT
• 1º segmento é usado;
• Rápido, mas pode desperdiçar memória por fragmentação;
• NEXT FIT
• 1º segmento é usado;
• Mas na próxima alocação inicia busca do ponto que parou 
anteriormente;
• SIMULAÇÕES: desempenho ligeiramente inferior;
20
Gerenciamento de Memória
• BEST FIT
• Procura na lista toda e aloca o espaço que mais convém;
• Menor fragmentação se os processos se encaixam perfeitamente nos 
espaços vazios, porém maior fragmentação se começar a sobrar 
poucos espaços;
• Mais lento;
• WORST FIT
• Aloca o maior espaço disponível; 
• QUICK FIT
• Mantém listas separadas para os espaços mais requisitados;
21
Gerenciamento de Memória
• Cada algoritmo pode manter listas separadas para 
processos e para espaços livres:
• Vantagem:
• Aumenta desempenho;
• Desvantagens:
• Aumenta complexidade quando espaço de memória é liberado –
gerenciamento das listas;
• Fragmentação;
22
Gerenciamento de Memória
• Multiprogramação à Vários processos na memória:
• Como proteger os processos uns dos outros e o kernel de todos os 
processos?
• Como tratar a relocação? 
• Todas as soluções envolvem equipar a CPU com um 
hardware especial à MMU (memory management unit);
23
Gerenciamento de Memória
• Relocação:
• Quando um programa é linkado (programa principal + rotinas do 
usuário + rotinas da biblioteca à executável) o linker deve saber 
em que endereço o programa irá iniciar na memória;
• Nesse caso, para que o linker não escreva em um local indevido, 
como por exemplo na área do SO (100 primeiros endereços), é 
preciso de relocação:
• #100 + Dà que depende da partição!!!
24
Gerenciamento de Memória
• Proteção:
• Com várias partições e programas ocupando diferentes espaços 
da memória é possível acontecer um acesso indevido;
• Solução para ambos os problemas:
• 2 registradores à base e limite
• Quando um processo é escalonado o registrador-base é carregado com 
o endereço de início da partição e o registrador-limite com o tamanho 
da partição;
• O registrador-base torna impossível a um processo uma remissão a 
qualquer parte de memória abaixo de si mesmo.
25
Gerenciamento de Memória
• 2 registradores à base e limite
• Automaticamente, a MMU adiciona o conteúdo do 
registrador-base a cada endereço de memóriagerado;
• Endereços são comparados com o registrador-limite
para prevenir acessos indevidos;
26
Gerenciamento de Memória
Registradores base e limite
b) MMU mais
sofisticada à
dois pares de 
registradores:
segmento de 
dados usa um 
par separado;
§ MMU 
modernas 
têm mais pares
de 
registradores.
27
Gerenciamento de Memória
• Tipos básicos de gerenciamento:
• Com troca de processos (swapping): 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 MP suficiente não há necessidade de se ter troca de 
processos;
• Sem troca de processos: não há chaveamento;
28
Gerenciamento de Memória Swapping
• Swapping: chaveamento de processos inteiros entre a 
memória principal e o disco;
• Transferência do processo da memória principal para a memória 
secundária (normalmente o disco): Swap-out;
• Transferência do processo da memória secundária para a memória 
principal: Swap-in;
• Pode ser utilizado tanto com partições fixas quanto com partições 
variáveis; 
29
Gerenciamento de Memória
Alocando memória (tamanho)
a) segmento
de dados;
b) segmento
de dados e de
pilha;
30
Gerenciamento de Memória Memória 
Virtual (MV)
• Programas maiores que a memória eram divididos em 
pedaços menores chamados overlays;
• Programador define áreas de overlay; 
• Vantagem: expansão da memória principal;
• Desvantagem: custo muito alto;
31
Gerenciamento de Memória Memória 
Virtual (MV)
• Sistema operacional é responsável por dividir o programa 
em overlays; 
• Sistema operacional realiza o chaveamento desses 
pedaços entre a memória principal e o disco; 
• Década de 60: ATLAS à primeiro sistema com MV 
(Universidade Manchester - Reino Unido);
• 1972: sistema comercial: IBM System/370;
32
Gerenciamento de Memória Memória 
Virtual (MV)
• Com MV existe a sensação de se ter mais memória 
principal do que realmente se tem;
• O hardware muitas vezes implementa funções da 
gerência de memória virtual:
• SO deve considerar características da arquitetura;
33
Gerenciamento de Memória
Memória Virtual
• Espaço de Endereçamento Virtual de um processo é 
formado por todos os endereços virtuais que esse 
processo pode gerar;
• Espaço de Endereçamento Físico de um processo é 
formado por todos os endereços físicos/reais aceitos pela 
memória principal (RAM);
34
Gerenciamento de Memória
Memória Virtual
• Um processo em Memória Virtual faz referência a 
endereços virtuais e não a endereço reais de memória 
RAM;
• No momento da execução de uma instrução, o endereço 
virtual é traduzido para um endereço real, pois a CPU 
manipula apenas endereços reais da memória RAM à
MAPEAMENTO;
35
Gerenciamento de Memória
Mapeamento MV
• MMU: Realiza mapeamento dos endereços lógicos 
(usados pelos processos) para endereços físicos;
Processador MMU MemóriaPrincipal
Endereço
Lógico
Endereço
Físico
Unidade de Processamento
36
Gerenciamento de Memória Memória 
Virtual
• Técnicas de MV:
• Paginação:
• Blocos de tamanho fixo chamados de páginas;
• SO mantém uma lista de todas as páginas;
• Endereços Virtuais formam o espaço de endereçamento virtual;
• O espaço de endereçamento virtual é dividido em páginas virtuais;
• Mapeamento entre endereços reais e virtuais realizado pela MMU;
• Segmentação: 
• Blocos de tamanho arbitrário chamados segmentos;
37
Gerenciamento de Memória Memória 
Virtual - Paginação
• Memória Principal e Memória Secundária são 
organizadas em páginas de mesmo tamanho; 
• Página é a unidade básica para transferência de 
informação;
• Tabela de páginas: responsável por armazenar 
informações sobre as páginas virtuais:
• argumento de entrada à número da página virtual;
• argumento de saída (resultado) à número da página real (ou 
moldura de página - page frame);
38
Gerenciamento 
de Memória 
Memória Virtual 
Paginação Proces s o A
Esp aço d e
en dereça m en to
virtu a l d e A
En dereço v ir tu a l 1
.
.
.
Tab e la de
m a pea m en to
d e A
Esp aço d e
en dereça m en to
virtu a l d e B
En dereço v ir tu a l 1
.
.
.
Tab e la de
m a pea m en to
d e B
Proces s o B
Mem ór ia Pr in cip al
39
Gerenciamento de Memória
Memória Virtual
• Exemplo: 
• Páginas de 4KB 
• 4096 bytes/endereços (0-4095);
• 64KB de espaço virtual;
• 32KB de espaço real;
• Temos:
• 16 páginas virtuais;
• 8 páginas reais; 
40
Gerenciamento de Memória
Memória Virtual
Espaço de 
Endereçamento 
Virtual
Tamanho da 
página
Número de 
páginas
Número de 
entradas nas 
tabela de 
páginas
232 endereços
232 endereços
264 endereços
264 endereços
512 bytes
4 kbytes
4 kbytes
64 kbytes
223
220
252
248
223
220
252
248
Espaço Virtual X Tamanho da Página
41
Gerenciamento de Memória Memória 
Virtual - Paginação
• Problemas:
• Fragmentação interna;
• Definição do tamanho das páginas;
• Geralmente a MMU que define e não o SO;
• Páginas maiores: leitura mais eficiente, tabela menor, mas maior 
fragmentação interna;
• Páginas menores: leitura menos eficiente, tabela maior, mas menor 
fragmentação interna;
• Tamanhos possíveis entre 512 bytes a 64 KB;
• Mapa de bits ou uma lista encadeada com as páginas 
livres; 
42
Gerenciamento de Memória
Endereço Virtual à Endereço Real
§ MMU realiza o mapeamento
§ Página virtual mapeada para
página real;
43
Gerenciamento de Memória
Mapeamento da MMU
§ Operação interna de 
uma MMU com 16 
páginas de 4Kb;
§ Endereço virtual de 16 
bits: 4 bits para nº de 
páginas e 12 para 
deslocamento; 
§ Com 4 bits é possível ter 
16 páginas virtuais (24);
§ 12 bits para 
deslocamento
é possível endereçar os
4096 bytes;
44
Gerenciamento de Memória
Mapeamento da MMU
§ Número da página virtual 
é usado como índice; 
§ Se página está na 
memória RAM, então o nº 
da página real (110) é 
copiado para os três bits 
mais significativos do 
endereço de saída (real), 
juntamente com o 
deslocamento sem 
alteração;
§ Endereço real com 15 
bits é enviado à memória;
índice
45
Gerenciamento de Memória Memória 
Virtual - Paginação
• A Tabela de páginas pode ser armazenada de três 
diferentes maneiras:
• Em um conjunto de registradores, se a memória for pequena;
• Vantagem: rápido
• Desvantagem: precisa carregar toda a tabela nos registradores a cada 
chaveamento de contexto
• Na própria memória RAM à MMU gerencia utilizando dois 
registradores:
• Registrador Base da tabela de páginas (PTBR – page table base 
register): indica o endereço físico de memória onde a tabela está 
alocada;
• Registrador Limite da tabela de páginas (PTLR – page table limit 
register): indica o número de entradas da tabela (número de páginas);
• Dois acessos à memória; 
46
Gerenciamento de Memória Memória 
Virtual - Paginação
• Em uma memória cache na MMU chamada Memória Associativa; 
• Também conhecida como TLB (Translation Lookaside Buffer - buffer de 
tradução dinâmica);
• Hardware especial para mapear endereços virtuais para endereços 
reais sem ter que passar pela tabela de páginas na memória principal; 
• Melhora o desempenho;
47
Gerenciamento de Memória Memória 
Virtual - Paginação
• Estrutura de uma tabela de páginas (normalmente 32 
bits)
Identifica a página real;
Campo mais importante;
Número da Moldura de Página
48
Gerenciamento de Memória Memória 
Virtual - Paginação
Bit de Residência:
Se valor igual 1, então entrada válida para uso;
Se valor igual 0, então entrada inválida, pois 
página virtual correspondente não está na memória;
Número da Moldura de Página
• Estruturade uma tabela de páginas (normalmente 32 
bits)
49
Gerenciamento de Memória Memória 
Virtual - Paginação
Bits de Proteção:
Indicam tipos de acessos permitidos:
1 bit à 0 – leitura/escrita
1 – leitura
3 bits à 0 – Leitura
1 – Escrita
2 - Execução
Número da Moldura de Página
• Estrutura de uma tabela de páginas (normalmente 32 
bits)
50
Gerenciamento de Memória Memória 
Virtual - Paginação
Bit de Modificação (Bit M):
Controla o uso da página;
Se valor igual a 1, página foi escrita; 
página é copiada para o disco
Se valor igual a 0, página não foi modificada;
página não é copiada para o disco;
Número da Moldura de Página
• Estrutura de uma tabela de páginas (normalmente 32 
bits)
51
Gerenciamento de Memória Memória 
Virtual - Paginação
Bit de Referência (Bit R):
Controla o uso da página;
Auxilia o SO na escolha da página que deve deixar a MP (RAM);
Se valor igual a 1, página foi referenciada (leitura/escrita);
Se valor igual a 0, página não referenciada;
Número da Moldura de Página
• Estrutura de uma tabela de páginas (normalmente 32 
bits)
52
Gerenciamento de Memória Memória 
Virtual - Paginação
Bit de Cache:
Necessário quando os dispositivos de entrada/saída
são mapeados na memória e não em um endereçamento
específico de E/S;
Número da Moldura de Página
• Estrutura de uma tabela de páginas (normalmente 32 
bits)
53
Gerenciamento de Memória Memória 
Associativa (TLB)
1 140 1 RW 31
1 20 0 R X 38
1 130 1 RW 29
1 129 1 RW 62
1 19 0 R X 50
1 21 0 R X 45
1 860 1 RW 14
1 861 1 RW 75
Bit R
Página
Virtual Bit M
Página 
Física
Bits de
Proteção
Até 32/64 entradas
54
Gerenciamento de Memória 
Alocação de Páginas
• Quantas páginas reais serão alocadas a um processo?
• Duas estratégias:
• Alocação fixa ou estática: cada processo tem um número máximo 
de páginas reais, definido quando o processo é criado;
• O limite pode ser igual para todos os processos;
• Vantagem: simplicidade;
• Desvantagens: (i) número muito pequeno de páginas reais pode causar 
muita paginação (troca de páginas da memória principal); (ii) número 
muito grande de páginas reais causa desperdício de memória principal; 
55
Gerenciamento de Memória 
Alocação de Páginas
• Alocação variável ou dinâmica: número máximo de páginas reais 
alocadas ao processo varia durante sua execução;
• Vantagem: (i) processos com elevada taxa de paginação podem ter seu 
limite de páginas reais ampliado; (ii) processos com baixa taxa de 
paginação podem ter seu limite de páginas reais reduzido;
• Desvantagem: monitoramento constante; 
56
Gerenciamento de Memória 
Busca de Página
• Política de busca de página: determina quando uma página deve ser 
carregada para a memória principal
• Três estratégias:
• Paginação simples: 
• Todas as páginas virtuais do processo são carregadas para a memória principal;
• Assim, sempre todas as páginas são válidas;
• Paginação por demanda (Demand Paging): 
• Apenas as páginas referenciadas são carregadas na memória principal; 
• Quais páginas virtuais foram carregadas à Bit de controle (bit de residência);
• Página inválida;
• Paginação antecipada (Antecipatory Paging)
• Carrega para a memória principal, além da página referenciada, outras páginas 
que podem ou não ser necessárias para o processo
57
Gerenciamento de Memória 
Busca de Página
• Página inválida: MMU gera uma interrupção de proteção
e aciona o sistema operacional;
• Se a página está fora do espaço de endereçamento do processo, o 
processo é abortado;
• Se a página ainda não foi carregada na memória principal, ocorre 
uma falta de página (page fault);
58
Gerenciamento de Memória 
Busca de Página
• Falta de Página:
• Processo é suspenso e seu descritor é inserido em uma fila 
especial – fila dos processos esperando uma página virtual;
• Uma página real livre deve ser alocada;
• A página virtual acessada deve ser localizada no disco; 
• Operação de leitura de disco, indicando o endereço da página 
virtual no disco e o endereço da página real alocada;
59
Gerenciamento de Memória 
Busca de Página
• Após a leitura do disco:
• Tabela de páginas do processo é corrigida para indicar que a 
página virtual agora está válida e está na página real alocada;
• Pager: carrega páginas especificas de um processo do disco para a 
memória principal;
• O descritor do processo é retirado da fila especial e colocado na 
fila do processador; 
GERENCIAMENTO DE 
MEMÓRIA
Parte 04
Prof. Gabriel Fernandes
gfernandes+estacio@gmail.com
61
Gerenciamento de Memória 
Troca de Páginas
A
B
C
D
E
F
G
H
0
1
2
3
4
5
6
7
Memória Virtual
0
1
2
3
4
5
6
7
10
3
4
i
i
v
v
i
i
v
i
Tabela de Páginas 
Simplificada DG
Memória Principal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 
CPágina
Virtual
Página Real
62
Gerenciamento de Memória 
Troca de Páginas
• Se todas as páginas estiverem ocupadas, uma página 
deve ser retirada: página vítima;
• Exemplo: 
• Dois processos P1 e P2, cada um com 4 páginas virtuais;
• Memória principal com 6 páginas; 
63
Gerenciamento de Memória 
Troca de Páginas
0
1
2
3
A
B
C
D
Memória Virtual P1
0
1
2
3
3
2
4
v
v
v
i
Tabela de Páginas P2 
Simplificada0
1
2
3
E
F
G
H
Memória Virtual P2
D
A
F
E
G
B
Memória Principal
0
1
2
3
4
5
à P2 tenta acessar página 3! Falta de Página!
3 páginas de 
cada processo
0
1
2
3
1
5
0
v
v
i
v
Tabela de Páginas P1 
Simplificada
64
Gerenciamento de Memória 
Troca de Páginas
à Página 2 (virtual) é escolhida como vítima!
0
1
2
3
A
B
C
D
Memória Virtual P1
0
1
2
3
1
5
0
v
v
i
v
Tabela de Páginas P1 
Simplificada
0
1
2
3
E
F
G
H
Memória Virtual P2
0
1
2
3
3
2
4
v
v
i
v
Tabela de Páginas P2 
Simplificada
D
A
F
E
H
B
Memória Principal
0
1
2
3
4
5
3 páginas de 
cada processo
65
Gerenciamento de Memória 
Troca de Páginas - Paginação
• Algoritmos:
• Ótimo;
• NRU;
• FIFO;
• Segunda Chance; 
• Relógio; 
• LRU;
• Working set;
• WSClock; 
66
Gerenciamento de Memória 
Troca de Páginas - Paginação
• Algoritmo Ótimo:
• Retira da memória a página que tem menos chance de ser 
referenciada;
• Praticamente impossível de se saber;
• Impraticável;
• Usado em simulações para comparação com outros algoritmos;
67
Gerenciamento de Memória 
Troca de Páginas - Paginação
• Algoritmo Not Recently Used Page Replacement (NRU) 
ou Não Usada Recentemente (NUR)
• Troca as páginas não utilizadas recentemente:
• 02 bits associados a cada página à R (referência) e M 
(modificação)
• Classe 0 (R = 0 e M = 0) à não referenciada, não modificada;
• Classe 1 (R = 0 e M = 1) à não referenciada, modificada;
• Classe 2 (R = 1 e M = 0) à referenciada, não modificada;
• Classe 3 (R = 1 e M = 1) à referenciada, modificada;
• R e M são atualizados a cada referência à memória;
68
Gerenciamento de Memória 
Troca de Páginas - Paginação
• NRU:
• Periodicamente, o bit R é limpo para diferenciar as páginas que 
não foram referenciadas recentemente; 
• A cada tick do relógio ou interrupção de relógio;
• Classe 3 à Classe 1;
• Vantagens: fácil de entender, eficiente para implementar e fornece 
bom desempenho;
69
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo First-in First-out Page Replacement (FIFO)
• SO mantém uma listas das páginas correntes na memória;
• A página no início da lista é a mais antiga e a página no final da lista é a 
mais nova;
• Simples, mas pode ser ineficiente, pois uma página que está em 
uso constante pode ser retirada;
•Pouco utilizado;
70
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo da Segunda Chance
• FIFO + bit R;
• Página mais velha é candidata em potencial;
Se o bit R==0, então página é retirada da memória,
senão, R=0 e se dá uma nova chance à página colocando-a
no final da lista;
A DCB
0 73 8
1ª página Página mais recente
B ADC
3 87 10
1ª página Página mais recente
Se página A com
R==1; e
falta de página em
tempo 10;
Então R=0 e página A 
vai para final da lista;
tempo
71
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo do Relógio
• Lista circular com ponteiro apontando para a página mais antiga
• Algoritmo se repete até encontrar R==0;
Se R==0
- troca de página
- desloca o ponteiro
Se R==1
- R = 0
- desloca o ponteiro
- continua busca
72
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo do Relógio
73
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo Least Recently Used Page Replacement
(LRU) ou Menos Recentemente Usada (MRU)
• Troca a página menos referenciada/modificada recentemente;
• Alto custo
• Lista encadeada com as páginas que estão na memória, com as mais 
recentemente utilizadas no início e as menos utilizadas no final; 
• A lista deve ser atualizada a cada referência da memória;
74
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo Least Recently Used Page Replacement (LRU)
• Pode ser implementado tanto por hardware quanto por software:
• Hardware: MMU deve suportar a implementação LRU; 
• Contador em hardware (64 bits);
• Após cada referência à memória, o valor do contador é armazenado na tabela 
de páginas;
• Quando ocorre falta de página, o SO examina todos os contadores e escolhe 
a página que tem o menor valor
• Software: duas maneiras
• NFU (Not frequently used) ou LFU (least frequently used);
• Aging (Envelhecimento); 
75
Gerenciamento de Memória 
Troca de Páginas - Paginação
• Software: NFU ou LFU (least)
• Para cada página existe um contador à
iniciado com zero e incrementado a cada 
referência à pagina; 
• Página com menor valor do contador é candidata a troca; 
• Esse algoritmo não se esquece de nada
• Problema: pode retirar páginas que estão sendo referenciadas com 
freqüência; 
• Compilador com vários passos: passo 1 tem mais tempo de execução que 
os outros passos à páginas do passo 1 terão mais referências 
armazenadas; 
76
Gerenciamento de Memória 
Troca de Páginas - Paginação
• Software: Algoritmo aging (envelhecimento)
• Modificação do NFU, resolvendo o problema descrito 
anteriormente; 
• Além de saber quantas vezes a página foi referenciada, também 
controla quando ela foi referenciada;
• Geralmente, 8 bits são suficientes para o controle se as interrupções de 
relógio (clock ticks) ocorrem a cada 20ms (10-3);
77
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo aging
clock tick 0
1 0 1 0 1 1
10000000
10000000
00000000
10000000
00000000
10000000
0
1
2
3
4
5
a)
Bits R para páginas 0-5
clock tick 1
1 1 0 0 1 0
11000000
11000000
10000000
01000000
00000000
01000000
b)
clock tick 2
1 1 0 1 0 1
11100000
01100000
11000000
00100000
10000000
10100000
c)
clock tick 3
1 0 0 0 1 0
11110000
10110000
01100000
00010000
01000000
01010000
d)
clock tick 4
0 1 1 0 0 0
01111000
01011000
10110000
10001000
00100000
00101000
e)
Contadores
78
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo aging
clock tick 0
0 0 1 0 1 1
0
1
2
3
4
5
a)
Bits R para páginas 0-5
clock tick 1
1 0 0 1 1 0
b)
clock tick 2
1 1 0 1 1 1
c)
clock tick 3
1 0 1 0 1 0
d)
clock tick 4
0 1 1 0 0 0
e)
Contadores
79
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo Working Set (WS):
• Paginação por demanda à páginas são carregadas na memória 
somente quando são necessárias;
• Pré-paginação à Working set
• Carregar um conjunto de páginas que um processo está efetivamente 
utilizando (referenciando) em um determinado tempo t antes de ele 
ser posto em execução;
w(k,t)
WS
t1 t2
tempo
P1 P3 P4 P7 P8 P4
80
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo Working Set (WS):
• Objetivo principal: reduzir a falta de páginas 
• Um processo só é executado quando todas as páginas necessárias no 
tempo t estão carregadas na memória;
• SO gerencia quais páginas estão no Working Set;
• Para simplificar à o working set pode ser visto como o conjunto de 
páginas que o processo referenciou durante os últimos t segundos 
de tempo;
• Utiliza bit R e o tempo de relógio (tempo virtual) da última vez que 
a página foi referenciada;
81
Gerenciamento de Memória Troca de 
Páginas - Paginação
Tempo virtual atual (CVT): 2204
age = CVT – TLU 
(Ex.: 2204-2084 = 120)
τ = múltiplos clock ticks
Bit R
2084 1
1213 0
1980 1
2003 1
2014 1
2020 1
2032 1
1620 0
Tabela de Páginas
Tempo do último
Uso (TLU)
Percorrer as páginas examinando bit R;
Se (R==1)*
página foi referenciada;
faz TLU da página igual ao CVT;
Se (R==0 e age > τ)
página não está no working set;
remove a página;
Se (R==0 e age <= τ) **
página está no working set;
guarda página com maior age;
§ Algoritmo Working Set:
* Se todas as páginas 
estiverem com R==1, 
uma página é 
escolhida
aleatoriamente;
** Se todas as páginas
estiverem no WS, a 
página mais velha 
com
R==0 é escolhida;
82
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo WSClock:
• Clock + Working Set;
• Lista circular de molduras de páginas formando um anel a cada 
página carregada na memória;
• Utiliza bit R e o tempo da última vez que a página foi referenciada;
• Bit M utilizado para agendar escrita em disco;
83
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo WSClock: Tempo virtual atual: 2204
Tempo do último 
uso
2003 1
2084 1
1620 0
2032 1
1980 1
1213 0
2014 1
2020 1
Bit R
a)
2084 1
1620 0
2032 1
2003 1
1980 1
1213 0
2014 0
2020 1
b)
Se R==1
Então R=0 e ponteiro avança
84
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo WSClock: Tempo virtual atual: 2204
Tempo do último 
uso
2003 1
2084 1
1620 0
2032 1
1980 1
1213 0
2014 0
2020 1
Bit R
c)
2084 1
1620 0
2032 1
2003 1
1980 1
2204 1
2014 0
2020 1
d)
Nova páginaSe R==0 e age>t
Então M==0 (não agenda escrita) à troca
85
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo WSClock: Tempo virtual atual: 2204
2003 1
2084 1
1620 0
2032 1
1980 1
1213 0
2014 0
2020 1
c)
2084 0
2204 1
2032 1
2003 0
1980 0
1213 0
2014 0
2020 1
d)
Nova página
R==0 e age>t
M==1 (agenda escrita e continua procura)
86
Gerenciamento de Memória Troca de 
Páginas - Paginação
• Algoritmo WSClock: 
• Se todas estiverem com M==1; então escreve página atual no 
disco, e troca a página;
• Melhor desempenho à menos acessos ao disco;
GERENCIAMENTO DE 
MEMÓRIA
Parte 05
Prof. Gabriel Fernandes
gfernandes+estacio@gmail.com
88
Gerenciamento de Memória
Troca de Páginas
• Política de Substituição Local: páginas dos próprios 
processos são utilizadas na troca;
• Dificuldade: definir quantas páginas cada processo pode utilizar; 
• Política de Substituição Global: páginas de todos os 
processos são utilizadas na troca; 
• Problema: processos com menor prioridade podem ter um número 
muito reduzido de páginas, e com isso, acontecem muitas faltas de 
páginas;89
Gerenciamento de Memória
Troca de Páginas
• a) Configuração inicial;
• b) Alocação local;
• c) Alocação global;
90
Gerenciamento de Memória
Troca de Páginas
• Política de alocação local (número fixo de 
páginas/processo) permite somente política de 
substituição local de páginas
• Política de alocação global (número variável de 
páginas/processo) permite tanto a política de substituição 
de páginas local quanto global
91
Gerenciamento de Memória 
Troca de Páginas - Paginação
• Algoritmos de substituição local:
• Working Set;
• WSClock;
• Algoritmos de substituição local/global:
• Ótimo;
• NRU;
• FIFO;
• Segunda Chance;
• LRU;
• Relógio;
92
Gerenciamento de Memória
Implementação da Paginação
• Até agora, vimos somente como uma página é 
selecionada para remoção. Mas onde a página 
descartada da memória é colocada?
• Memória Secundária – Disco
• A área de troca (swap area) é gerenciada como uma lista de 
espaços disponíveis;
• O endereço da área de troca de cada processo é mantido na 
tabela de processos;
• Cálculo do endereço: MMU;
93
Gerenciamento de Memória
Implementação da Paginação
• Memória Secundária – Disco
• Possibilidade A - Assim que o processo é criado, ele é copiado 
todo para sua área de troca no disco, sendo carregado para 
memória quando necessário;
• Área de troca diferente para dados, pilha e programa, pois área de 
dados pode crescer e a área de pilha crescerá certamente;
94
Gerenciamento de Memória
Implementação da Paginação
• Memória Secundária – Disco (cont.)
• Possibilidade B - Nada é alocado antecipadamente, espaço é 
alocado em disco quando a página for enviada para lá. Assim, 
processo na memória RAM não fica “amarrado” a uma área 
específica;
95
Gerenciamento de Memória
Implementação da Paginação
Como fica o disco – memória secundária
Área de troca estática Área de troca dinâmica
96
Gerenciamento de Memória 
Tabela de Páginas Invertida
• Geralmente, cada processo tem uma tabela de páginas 
associada a ele à classificação feita pelo endereço 
virtual;
• Pode consumir grande quantidade de memória;
• Alternativa: tabela de páginas invertida;
• SO mantém uma única tabela para as molduras de páginas da 
memória;
• Cada entrada consiste no endereço virtual da página armazenada 
naquela página real, com informações sobre o processo dono da 
página virtual;
• Exemplos de sistemas: IBM System/38, IBM RISC System 6000, 
IBM RT e estações HP Spectrum;
97
Gerenciamento de Memória 
Tabela de Páginas Invertida
• Quando uma referência de memória é realizada (página 
virtual), a tabela de páginas invertida é pesquisada para 
encontrar a moldura de página correspondente;
• Se encontra, o endereço físico é gerado à
<i, deslocamento>;
98
Gerenciamento de Memória 
Tabela de Páginas Invertida
CPU
Memória
pid p d
Endereço lógico
i d
Endereço 
físico
Tabela de páginas invertida
pid pPesquisa
ýi
Endereço lógico: <id processo (pid), número página (p), deslocamento (d)>
99
Gerenciamento de Memória 
Tabela de Páginas Invertida
• Vantagens:
• Ocupa menos espaço;
• É mais fácil de gerenciar apenas uma tabela;
• Desvantagens:
• Aumenta tempo de pesquisa na tabela, pois, apesar de ser 
classificada por endereços físicos, é pesquisada por 
endereços lógicos;
• Aliviar o problema: tabela hashing;
• Uso da TLB (memória associativa) para manter entradas recentemente 
utilizadas;
100
Gerenciamento de Memória
Memória Virtual - Segmentação
• Segmentação: Visão do programador/compilador
• Tabelas de segmentos com n linhas, cada qual apontando para um 
segmento de memória;
• Vários espaços de endereçamento;
• Endereço real à base + deslocamento;
• Alocação de segmentos segue os algoritmos já estudados:
• FIRST-FIT;
• BEST-FIT;
• NEXT-FIT;
• WORST-FIT;
• QUICK- FIT;
101
Gerenciamento de Memória
Memória Virtual - Segmentação
• Segmentação:
• Facilita proteção dos dados;
• Facilita compartilhamento de procedimentos e dados entre 
processos;
• MMU também é utilizada para mapeamento entre os endereços 
lógicos e físicos;
• Tabela de segmentos informa qual o endereço da memória física do 
segmento e seu tamanho; 
102
Gerenciamento de Memória Memória 
Virtual - Segmentação
• Segmentação:
• Problemas encontrados à embora haja espaço na memória, não 
há espaço contínuo:
• Política de relocação: um ou mais segmentos são relocados para abrir 
espaço contínuo;
• Política de compactação: todos os espaços são compactados;
• Política de bloqueio: fila de espera;
• Política de troca: substituição de segmentos;
• Sem fragmentação interna, com fragmentação externa;
103
Gerenciamento de Memória Memória 
Virtual - Segmentação
Pilha
Árvore
de Parse
Livre
Constantes
Fonte
Tabela
de Símbolos
Tarefa: Compilação
Espaço de 
Endereçamento
Virtual
Tabela
de
Símbolos
Fonte
Constantes
Árvore
de
Parser
0k
20k
0k0k0k0k
12k
02k
16k
Pilha
12k
Segmentos (0-4)
104
Gerenciamento de Memória Memória 
Virtual - Segmentação
Editor
Segmento 0 Dados1
Segmento 1
Memória Lógica P1
Editor
Segmento 0 Dados2
Segmento 1
Memória Lógica P2
Limite Base
8850 90003
25286 43062
Tabela de Segmentos P2
0
1
Limite Base
4425 68348
25286 43062
Tabela de Segmentos P1
0
1 Editor
Dados 1
Dados 2
43062
68348
72773
90003
98553
Memória Física
105
Gerenciamento de Memória
Segmentação-Paginada
• Espaço lógico é formado por segmentos
• Cada segmento é dividido em páginas lógicas;
• Cada segmento possui uma tabela de páginas à mapear o 
endereço de página lógica do segmento em endereço de página 
física;
• No endereçamento, a tabela de segmentos indica, para cada 
segmento, onde sua respectiva tabela de páginas está;
106
Gerenciamento de Memória
Segmentação-Paginada
s p d
Tabela de Segmentos
Tabela de Páginas 
Segmento 0
Tabela de Páginas
Segmento 3
p.f d 
GERENCIAMENTO DE 
DISPOSITIVOS DE E/S
Prof. Gabriel Fernandes
gfernandes+estacio@gmail.com
108
Dispositivos de E/S 
Princípios de Software
• Organizar o software como uma série de camadas facilita 
a independência dos dispositivos:
• Camadas mais baixas apresentam detalhes de hardware:
• Drivers e manipuladores de interrupção;
• Camadas mais altas apresentam interface para o usuário:
• Aplicações de Usuário;
• Chamadas de Sistemas;
• Software Independente de E/S ou Subsistema de Kernel de E/S;
109
Dispositivos de Entrada e Saída
C on tro lado res
D ispo s it ivo s d e E/S
Proces s o
Sis tem a
 d e Arq u ivo s
D evice D rive r s
Su b s is tem a d e E/S
Operações d e E/S
M
od
o 
U
su
ár
io
M
od
o 
Ke
rn
el
In d epe n d en te
d o d isp os i t ivo
(a )
D ep en d en te
d o d isp os i t ivo
(b )
SO
FT
W
A
RE
H
A
RD
W
A
RE
110
Dispositivos de Entrada e Saída
C on tro lado res
D ispo s it ivo s d e E/S
Proces s o
Sis tem a
 d e Arq u ivo s
D evice D rive r s
Su b s is tem a d e E/S
Operações d e E/S
M
od
o 
U
su
ár
io
M
od
o 
Ke
rn
el
In d epe n d en te
d o d isp os i t ivo
(a )
D ep en d en te
d o d isp os i t ivo
(b )
SO
FT
W
A
RE
H
A
RD
W
A
RE
111
Dispositivos de E/S 
Princípios de Software - Camadas
• Drivers: 
• São gerenciados pelo kernel do SO;
• Contêm todo o código dependente do dispositivo;
• Controlam o funcionamento dos dispositivos por meio de 
seqüência de comandos escritos/lidos nos/dos registradores da 
controladora;
• Dispositivos diferentes possuem driversdiferentes;
• Classes de dispositivos podem ter o mesmo driver;
• São dinamicamente carregados;
• Drivers defeituosos podem causar problemas no kernel do SO;
112
Dispositivos de E/S 
Princípios de Software - Camadas
Comunicação feita
por barramento;
113
Dispositivos de Entrada e Saída
C on tro lado res
D ispo s it ivo s d e E/S
Proces s o
Sis tem a
 d e Arq u ivo s
D evice D rive r s
Su b s is tem a d e E/S
Operações d e E/S
M
od
o 
U
su
ár
io
M
od
o 
Ke
rn
el
In d epe n d en te
d o d isp os i t ivo
(a )
D ep en d en te
d o d isp os i t ivo
(b )
SO
FT
W
A
RE
H
A
RD
W
A
RE
114
Dispositivos de E/S 
Princípios de Software - Camadas
• Software de E/S no nível Usuário:
• Bibliotecas de E/S são utilizadas pelos programas dos usuários 
• Chamadas ao sistema (system calls);
115
Dispositivos de E/S 
Princípios de Software - Camadas
• Software Independente de E/S:
• Realizar as funções comuns a qualquer dispositivos;
• Prover uma interface uniforme para os drivers dos dispositivos
• Número de procedimentos que o restante do SO pode utilizar para 
fazer o driver trabalhar para ele;
• Fazer o escalonamento de E/S;
• Atribuir um nome lógico a partir do qual o dispositivo é identificado;
• Ex.: UNIX à (/dev)
• Prover buffering: ajuste entre a velocidade e a quantidade de 
dados transferidos; 
• Cache de dados: armazenar na memória um conjunto de dados 
freqüentemente acessados; 
116
Dispositivos de E/S 
Princípios de Software - Camadas
(a) Sem padrão de interface
(b) Com padrão de interface (uniforme)
117
Dispositivos de E/S 
Princípios de Software - Camadas
• Software Independente de E/S:
• Reportar erros e proteger os dispositivos contra acessos indevidos
:
• Programação: Ex.: tentar efetuar leitura de um dispositivo de saída 
(impressora, vídeo);
• E/S: Ex.: tentar imprimir em uma impressora desligada ou sem papel;
• Memória: escrita em endereços inválidos; 
• Gerenciar alocação, uso e liberação dos dispositivos à acessos 
concorrentes;
118
Dispositivos de E/S 
Princípios de Software
• Software Independente de E/S:
• Transferência de dados:
• Síncrona (bloqueante): requer bloqueio até que os dados estejam 
prontos para transferência;
• Assíncrona (não-bloqueante): transferências acionadas por 
interrupções; mais comuns;
• Tipos de dispositivos:
• Compartilháveis: podem ser utilizados por vários usuários ao mesmo 
tempo; Exemplo: disco rígido;
• Dedicados: podem ser utilizados por apenas um usuário de cada vez; 
Exemplo: impressora, unidade de fita; 
119Dispositivos de E/S - Ciclo de E/S
Pedido de E/S
Enviar pedido para driver,
bloquear processo se
necessário
Processar pedido, enviar
comandos para
controladora, configurar
controladora para bloquear
até interrupção
Monitorar o dispositivo,
interromper quando E/S
estiver concluída
E/S concluída, dados de
entrada disponíveis ou
saída concluída
Transferir dados (se
necessário) para o
processo, retornar código
de conclusão ou falha
Determinar que operação
de E/S foi concluída,
indicar mudança de estado
para o subsistema de E/S
Receber interrupção,
armazenar dados no buffer
se for entrada, sinalizar
para desbloquear driver de
dispositivo
E/S concluída, gerar
interrupção
Pedido pode ser
atendimento
imediatamente?
Chamada de sistema
Comandos da controladora
Sim
Não
Interrupção
Processo de
usuário
Subsistema de E/S
do Kernel
Subsistema de E/S
do Kernel
Driver
Controladora
TEMPO
Rotina de
Tratamento de
Interrupção
120
Dispositivos de E/S - Ciclo de E/S
Sequência da Figura anterior
• Um processo emite uma chamada de sistema bloqueante (por 
exemplo: read) para um arquivo que já esteve aberto (open);
• O código da chamada de sistema verifica os parâmetros. Se os 
parâmetros estiverem corretos e o arquivo já estiver no buffer
(cache), os dados retornam ao processo e a E/S é concluída;
• Se os parâmetros estiverem corretos, mas o arquivo não estiver no 
buffer, a E/S precisa ser realizada;
• E/S é escalonada;
• Subsistema envia pedido para o driver; 
121
Dispositivos de E/S - Ciclo de E/S
Sequência da Figura anterior
• Driver aloca espaço de buffer, escalona E/S e envia comando para a 
controladora do dispositivo escrevendo nos seus registradores de 
controle;
• Driver pode usar a DMA;
• A controladora do dispositivo opera o hardware, ou seja, o dispositivo 
propriamente dito;
• Após a conclusão da E/S, uma interrupção é gerada;
• A rotina de tratamento de interrupções apropriada recebe a 
interrupção via vetor de interrupção, armazena os dados, sinaliza o 
driver e retorna da interrupção;
122
Dispositivos de E/S - Ciclo de E/S
Sequência da Figura anterior
• Driver recebe o sinal, determina qual pedido de E/S foi concluído, 
determina o status e sinaliza que o pedido está concluído;
• Kernel transfere dados ou códigos de retorno para o espaço de 
endereçamento do processo que requisitou a E/S e move o processo 
da fila de bloqueados para a fila de prontos;
• Quando o escalonador escalona o processo para a CPU, ele retoma 
a execução na conclusão da chamada ao sistema.
123
Dispositivos de E/S - Discos
• Cada superfície é dividida em 
trilhas;
• Cada trilha é dividida em setores ou
blocos (512 bytes a 32K);
• Um conjunto de trilhas (com a 
mesma distância do eixo central) 
formam um cilindro;
• Cabeças de leitura e gravação; 
• Tamanho do disco: 
nº cabeças (faces) x 
nº cilindros (trilhas) x 
nº setores x 
tamanho_setor; 
Disco Magnético
superfície
cabeçote
124
Dispositivos de E/S - Discos
• Discos Magnéticos:
• Grande evolução em relação a:
• Velocidade de acesso (seek): tempo de deslocamento do cabeçote até 
o cilindro correspondente à trilha a ser acessada;
• Transferências: tempo para transferência (leitura/escrita) dos dados; 
• Capacidade;
• Preço;
125
Dispositivos de E/S - Discos
• Técnica para reduzir o tempo de acesso: entrelaçamento 
(interleaving):
• Setores são numerados com um espaço entre eles;
• Entre o setor K e o setor K+1 existem n (fator de entrelaçamento) 
setores; 
• Número n depende da velocidade do processador, do barramento, da 
controladora e da velocidade de rotação do disco; 
126
Dispositivos de E/S - Discos
Disco A
N = 0
Disco B
N = 2
Trilhas com 16 setores
0
1
2
3
6789
11
12
13
15
4
510
14 0 11
6
1
21383
9
4
15
5
12
714
10
127
Dispositivos de E/S - Discos
• Drivers de Disco:
• Fatores que influenciam tempo para leitura/escrita no disco: 
• Velocidade de acesso (seek) à tempo para o movimento do braço até o 
cilindro; 
• Delay de rotação (latência) à tempo para posicionar o setor na cabeça 
do disco;
• Tempo da transferência dos dados;
• Tempo de acesso:
• Tseek + Tlatência* + Ttransferência;
* Tempo necessário para o cabeçote se posicionar no setor de escrita/leitura;
128
Dispositivos de E/S – Discos
• Algoritmos de escalonamento no disco:
• FCFS (FIFO) à First-Come First-Served;
• SSF à Shortest Seek First;
• Elevator (também conhecido como SCAN);
• Escolha do algoritmo depende do número e do tipo de 
pedidos;
• Driver mantém uma lista encadeada com as requisições 
para cada cilindro;
129
Dispositivos de E/S - Discos
Disco com 37 cilindros;
Lendo bloco no cilindro 11;
Requisições: 1,36,16,34,9,12, nesta ordem
X X XX X X X
0 5 10 15 20 25 30 36
Pos. inicial
FCFS à atendimento: 1,36,16,34,9,12; 
movimentos do braço (número de cilindros): 10,35,20,18,25,3 = 111;
Tempo
130
Dispositivos de E/S - Discos
Disco com 37 cilindros;
Lendo bloco no cilindro 11;
Requisições:1,36,16,34,9,12, nesta ordem
X X XX X X X
0 5 10 15 20 25 30 36
Pos. inicial
SSF (requisição mais próxima) à
atendimento: 12,9,16,1,34,36;
movimentos do braço (número de cilindros): 1,3,7,15,33,2 = 61;
Tempo
131
Dispositivos de E/S - Discos
Disco com 37 cilindros;
Lendo bloco no cilindro 11;
Requisições: 1,36,16,34,9,12, nesta ordem
X X XX X X X
0 5 10 15 20 25 30 36
Pos. inicial
Elevator (requisições na mesma direção) à
atendimento: 12,16,34,36,9,1
movimentos do braço (número de cilindros): 1,4,18,2,27,8 = 60;
Bit de direção corrente (driver):
Se Up à atende próxima requisição;
senão Bit = Down;
muda direção e atende requisição;
Tempo
132
Dispositivos de E/S – Discos
RAID
• RAID (Redundant Array of Independent Disks) à
armazena grandes quantidades de dados;
• RAID combina diversos discos rígidos em uma estrutura 
lógica:
• Aumentar a confiabilidade, capacidade e o desempenho dos 
discos;
• Recuperação de dados à redundância dos dados;
• Armazenamento simultâneo em vários discos permite que os 
dados fiquem protegidos contra falha (não simultânea) dos discos; 
• Performance de acesso, já que a leitura da informação é 
simultânea nos vários dispositivos;
133
Dispositivos de E/S – Discos
RAID
• Pode ser implementado por:
• Hardware (controladora): 
• Instalação de uma placa RAID no servidor, o subsistema RAID é 
implementado totalmente em hardware;
• Libera o processador para se dedicar exclusivamente a outras tarefas; 
• A segurança dos dados aumenta no caso de problemas devido à 
checagem da informação na placa RAID antes da gravação;
134
Dispositivos de E/S – Discos
RAID
• Pode ser implementado por:
• Software (sistema operacional)
• Menor desempenho no acesso ao disco;
• Oferece um menor custo e flexibilidade;
• Sobrecarrega o processador com leitura/escrita nos discos;
• Para o SO existe um único disco;
135
Dispositivos de E/S – Discos
RAID
• A forma pela qual os dados são escritos e acessados 
define os níveis de RAID (até 9 níveis):
• RAID 0: 
• Também conhecido como Stripping;
• Arquivos são espalhados entre os discos em stripes; 
• Melhora desempenho das operações de E/S;
• Sem controle ou correção de erros;
• Todo o espaço do disco é utilizado para armazenamento;
• Utilizam mesma controladora (controladora RAID);
• Aplicações multimídia (alta taxa de transferência);
136
Dispositivos de E/S – Discos
RAID
• Nível 0
M
I
E
A
N
J
F
B
O
K
G
C
etc...
L
H
D
137
Dispositivos de E/S – Discos
RAID
• RAID 1:
• Conhecido como espelhamento (mirroring);
• Operações de escrita no disco primário são replicadas em um disco 
secundário;
• Pode ter controladoras diferentes;
• Desvantagem: espaço físico em dobro (alto custo);
• Transações on-line (tolerância a falhas); 
• RAID 10:
• Combinação dos RAID 1 e RAID 0;
138
Dispositivos de E/S – Discos
RAID
• Nível 10
D
C
B
A
D
C
B
A
=
H
G
F
E
H
G
F
E
=
139
Dispositivos de E/S – Discos
RAID
• RAID 2/3/4:
• Dados são armazenados em discos diferentes com paridade (permite reconstruir 
dados perdidos); Stripes;
• Paridade é mantida em um disco apenas;
• Diferença básica: como a paridade é calculada (na transferência):
• Raid 2 - Hamming ECC (error-correcting codes)– nível de bit;
• Raid 3 - XOR ECC - nível de byte ou bit;
• Raid 4 – XOR ECC - nível de bloco; 
• RAID 5:
• Stripes;
• Paridade XOR ECC distribuída - nível de bloco;
• Paridade está distribuída nos discos; 
• RAID 6:
• Stripes;
• Raid 5 com dois discos de paridade;
140
Dispositivos de E/S – Discos
RAID
• Nível 2
D0
C0
B0
A0
D1
C1
B1
A1
D2
C2
B2
A2
D3
C3
B3
A3
ECC Dx
ECC Cx
ECC Bx
ECC Ax
ECC Dy
ECC Cy
ECC By
ECC Ay
ECC Dz
ECC Cz
ECC Bz
ECC Az
141
Dispositivos de E/S – Discos
RAID
• Nível 3
D0
C0
B0
A0
D1
C1
B1
A1
D2
C2
B2
A2
D3
C3
B3
A3
Stripe 0 Stripe 1 Stripe 2 Stripe 3
Gerador de
Paridade
Paridade D
Paridade C
Paridade B
Paridade A
Paridade
Stripes 0,
1, 2 e 3
142
Dispositivos de E/S – Discos
RAID
• Nível 4
143
Dispositivos de E/S – Discos
RAID
• Nível 5
Gerador de
Paridade
Paridade 3
A2
A1
A0
B3
Paridade 2
B1
B0
C3
C2
Paridade 1
C0
D3
D2
D1
Paridade 0
144
Dispositivos de E/S – Discos
RAID
• Nível 6
• 2 cálculos diferentes de paridade
DÚVIDAS?

Continue navegando