Repàs · Tema 5. Gestió de la memòria

omple, corregeix i mira què et falla

Això no és un examen i no ho veu ningú més que tu. Tot passa dins aquesta pàgina: no s'envia res enlloc i no es desa res. Les respostes són les del llibre.
La nota surt de les 51 preguntes de resposta curta. Les preguntes obertes no puntuen, perquè no es poden corregir soles.
La solució només surt on hagis contestat. El que deixis en blanc es queda en blanc: així no et pots donar les respostes sense pensar-hi.

Posa-hi el nom abans de descarregar el PDF: si no, no se sabrà de qui és.

Practica 5.1

a) Ordena les tres memòries de la més ràpida a la més lenta.

b) On és cada cosa?

SituacióMemòria
El document que estàs escrivint ara mateix
La instrucció que la CPU repeteix milers de vegades per segon
Una foto que no has obert des de fa un mes

c) Si la memòria cau és la més ràpida, per què no es fa tota la memòria de l'ordinador amb memòria cau?

Guiat 5.2

Calcula l'adreça física. La primera ja està feta.

d<sub>B</sub>d<sub>V</sub>d<sub>F</sub>
2000 300 2300
5000 45
1200 800
7350 650

Practica 5.3

Un procés ocupa 1500 caselles i està carregat a partir de l'adreça 4000. Les seves adreces

virtuals, per tant, van de la 0 a la 1499.

d<sub>V</sub> que demanad<sub>F</sub>
100
1499
0
1600

Per què la darrera no es pot traduir? Què fa la MMU?

Guiat 5.4

Hi ha 1.024 KiB per als processos, partits en particions de 128 KiB. Quantes particions hi

ha? Omple la taula. La primera fila ja està feta.

ProcésMidaHi cap?KiB perduts
A 100 KiB 28
B 128 KiB
C 60 KiB
D 200 KiB

Quanta memòria es perd en total amb els processos que hi caben?

### 4.2. Particions dinàmiques

Per no perdre memòria dins les particions, el sistema operatiu dona a cada procés **exactament la

memòria que necessita**, un procés darrere l'altre.

Funciona bé fins que els processos comencen a acabar. Cada un que acaba deixa un forat. Amb

el temps, la memòria lliure queda repartida en molts forats petits. Hi pot haver prou memòria

lliure en total, però cap forat prou gran per al procés que arriba. Aquesta memòria perduda

entre els processos es diu fragmentació externa (external fragmentation).

La solució és la compactació (compaction): el sistema operatiu mou tots els processos cap a

un costat perquè els forats s'ajuntin en un de sol. Funciona, però mentre la fa, l'ordinador no fa

res més.

Fragmentació internaFragmentació externa
On es perd Dins la partició d'un procés Entre els processos, en forats
Quan passa Particions estàtiques Particions dinàmiques
Com es resol No es pot recuperar Compactant

### Exemple resolt 3 — Particions dinàmiques

La memòria està així, de baix a dalt:

TrosMida
Sistema operatiu
P1 200 KiB
Forat 60 KiB
P2 150 KiB
Forat 90 KiB
P3 100 KiB
Forat 50 KiB

Arriba P4, de 120 KiB.

Pas 1. Quanta memòria lliure hi ha? 60 + 90 + 50 = 200 KiB. En total, P4 hi cabria.

Pas 2. Hi ha algun forat de 120 KiB o més? El més gran fa 90. No hi cap. És fragmentació

externa.

Pas 3. Compactem. Els tres forats s'ajunten en un de 200 KiB. P4 hi entra, i en sobren

200 − 120 = 80 KiB.

SO P1 60 P2 90 P3 50 SO P1 P2 P3 P4 120 80 P4 120
La mateixa memòria abans i després de compactar.

Practica 5.5

A la memòria hi ha quatre forats lliures, de 70, 40, 110 i 30 KiB.

a) Quanta memòria lliure hi ha en total?

b) Arriba un procés de 100 KiB. Hi cap sense moure res? On?

c) Arriba un procés de 150 KiB. Hi cap? Per què?

d) Què hauria de fer el sistema operatiu perquè hi càpiga el de 150 KiB, i quanta memòria lliure en

quedaria?

Guiat 5.6

Pàgines de 4 KiB. La primera fila ja està feta.

Mida del procésPàginesKiB perduts
12 KiB 3 0
13 KiB
7 KiB
1 KiB
20 KiB

### 5.1. Traduir una adreça amb la taula de pàgines

Amb paginació, la MMU tradueix les adreces en tres passes:

1. Divideix l'adreça virtual entre la mida de pàgina. El quocient diu a quina pàgina

és, i el residu, a quina distància del principi de la pàgina: el desplaçament

(offset).

2. Busca la pàgina a la taula i en treu el marc.

3. Calcula l'adreça física: marc × mida de pàgina + desplaçament.

Si el procés demana una pàgina que no és seva, no la troba a la taula, i la MMU no la deixa passar.

### Exemple resolt 5 — Traducció

Pàgines de 4 KiB. La taula de pàgines del procés és aquesta:

PàginaMarc
0 5
1 2
2 8

El procés demana l'adreça virtual 9 KiB.

Pas 1. 9 ÷ 4 = 2, i en sobra 1. És a la pàgina 2, amb desplaçament 1 KiB.

Pas 2. A la taula, la pàgina 2 va al marc 8.

Pas 3. 8 × 4 + 1 = 33 KiB. Aquesta és l'adreça física.

Comprova sempre. El marc 8 va de 32 a 36 KiB. El resultat ha de caure dins d'aquest marc:

33 hi cau.

Practica 5.7

Pàgines de 4 KiB. Aquest procés ocupa 4 pàgines i té aquesta taula:

PàginaMarc
0 5
1 2
2 8
3 0
d<sub>V</sub>PàginaDesplaçamentMarcd<sub>F</sub>
2 KiB
5 KiB
14 KiB
11 KiB

El procés demana l'adreça virtual 17 KiB. Què passa?

Practica 5.8

a) Ordena els passos d'una fallada de pàgina, de l'1 al 5.

PasOrdre
a El sistema operatiu busca la pàgina a l'espai d'intercanvi
b El procés continua on era
c El procés fa servir una adreça d'una pàgina que no és a la RAM
d El sistema operatiu porta la pàgina a un marc lliure i actualitza la taula
e La MMU no la troba a la RAM i avisa el sistema operatiu

b) Mentre el disc porta la pàgina, en quin estat està el procés?

c) Un company té 8 GiB de RAM i l'ordinador li va molt lent quan obre molts programes. Diu que

comprarà un disc més gran. Què li recomanes i per què?

Practica 5.9 — A l'ordinador

a) Executa free -h. Quanta RAM total té l'ordinador i quanta hi ha disponible?

b) Quant espai d'intercanvi té, i quant en fa servir?

c) Obre molts programes i pestanyes i torna a executar free -h. Què ha canviat?

A. Vertader o fals

FraseV o FPer què
La memòria cau té més capacitat que la RAM
L'adreça física és la base més l'adreça virtual
Les particions estàtiques provoquen fragmentació externa
Amb paginació, les pàgines d'un procés han d'anar seguides a la RAM
Una fallada de pàgina vol dir que el programa s'ha penjat
L'espai d'intercanvi és al disc

B. Preguntes curtes

1. Quina diferència hi ha entre fragmentació interna i externa?

2. Per a què serveix la MMU?

3. Per què amb paginació no hi ha fragmentació externa?

4. Per què un ordinador amb poca RAM va lent quan obres molts programes?

C. Problemes

Problema 1. Hi ha 512 KiB per als processos, en particions estàtiques de 64 KiB.

Quantes particions hi ha? Arriben processos de 50, 64, 20 i 100 KiB. Quins hi caben,

quanta memòria es perd amb cada un i quanta en total?

Problema 2. Pàgines de 8 KiB. Un procés ocupa 30 KiB. Quantes pàgines necessita i

quanta memòria perd? La seva taula de pàgines és: pàgina 0 → marc 3, 1 → 7, 2 → 1, 3 → 4.

Tradueix les adreces virtuals 20 KiB i 26 KiB.

Problema 3. Completa: un procés amb base 3500 demana l'adreça virtual 700; un altre amb

base 5200 acaba a l'adreça física 6000. Quina és la física del primer i la virtual del

segon?

Problema 4. Explica pas a pas què passa quan un procés necessita una pàgina que és a l'espai

d'intercanvi, i en quin estat queda el procés mentrestant.

Encara no has corregit