Repàs · Tema 5. Gestió de la memòria
omple, corregeix i mira què et falla
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 demana | d<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és | Mida | Hi cap? | KiB perduts |
|---|---|---|---|
| A | 100 KiB | Sí | 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ó interna | Fragmentació 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:
| Tros | Mida |
|---|---|
| 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.
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és | Pàgines | KiB 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àgina | Marc |
|---|---|
| 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àgina | Marc |
|---|---|
| 0 | 5 |
| 1 | 2 |
| 2 | 8 |
| 3 | 0 |
| d<sub>V</sub> | Pàgina | Desplaçament | Marc | d<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.
| Pas | Ordre | |
|---|---|---|
| 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
| Frase | V o F | Per 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.