La gestió de memòria és una de les funcions més crítiques d'un sistema operatiu. Aquesta secció cobreix els conceptes bàsics, les tècniques i els mecanismes utilitzats per gestionar la memòria en un sistema informàtic.

Conceptes Bàsics de la Gestió de Memòria

Memòria Principal i Memòria Secundària

  • Memòria Principal (RAM): És la memòria de treball del sistema on es carreguen els programes i dades que s'estan utilitzant actualment.
  • Memòria Secundària: Inclou dispositius com discos durs i SSDs, que emmagatzemen dades de manera permanent.

Espai d'Adreces

  • Espai d'Adreces Físiques: Adreces reals a la memòria principal.
  • Espai d'Adreces Lògiques: Adreces generades pels programes. El sistema operatiu les tradueix a adreces físiques.

Tècniques de Gestió de Memòria

Particionament

  • Particionament Estàtic: La memòria es divideix en particions fixes. Cada partició pot contenir un procés.
  • Particionament Dinàmic: Les particions es creen de manera dinàmica segons les necessitats dels processos.

Paginació

  • Pàgines: La memòria es divideix en blocs de mida fixa anomenats pàgines.
  • Marcs de Pàgina: La memòria física es divideix en blocs de la mateixa mida que les pàgines.
  • Taula de Pàgines: Mapa que tradueix adreces lògiques a adreces físiques.
// Exemple de codi per accedir a una pàgina
int page_size = 4096; // mida de la pàgina en bytes
int logical_address = 12345; // adreça lògica
int page_number = logical_address / page_size;
int offset = logical_address % page_size;
int frame_number = page_table[page_number];
int physical_address = frame_number * page_size + offset;

Segmentació

  • Segments: La memòria es divideix en segments de mida variable segons les necessitats dels programes.
  • Taula de Segments: Mapa que tradueix adreces lògiques a adreces físiques.

Memòria Virtual

Concepte

  • Memòria Virtual: Permet que els programes utilitzin més memòria de la que físicament està disponible mitjançant la utilització de memòria secundària.

Paginació per Demanda

  • Paginació per Demanda: Les pàgines es carreguen a la memòria només quan són necessàries.
  • Page Fault: Error que es produeix quan una pàgina no es troba a la memòria principal i ha de ser carregada des de la memòria secundària.

Algoritmes de Reemplaçament de Pàgines

  • FIFO (First-In, First-Out): La pàgina més antiga és la primera en ser reemplaçada.
  • LRU (Least Recently Used): La pàgina menys recentment utilitzada és la primera en ser reemplaçada.
  • Optimal: Reemplaça la pàgina que no serà utilitzada durant el període de temps més llarg.

Exercicis Pràctics

Exercici 1: Traducció d'Adreces Lògiques a Físiques

Enunciat: Donada una mida de pàgina de 1024 bytes, una adreça lògica de 2049 i una taula de pàgines on el número de pàgina 2 correspon al marc de pàgina 5, calcula l'adreça física.

Solució:

  1. Número de Pàgina: 2049 / 1024 = 2
  2. Desplaçament: 2049 % 1024 = 1
  3. Marc de Pàgina: 5 (de la taula de pàgines)
  4. Adreça Física: 5 * 1024 + 1 = 5121

Exercici 2: Algoritme de Reemplaçament de Pàgines

Enunciat: Simula l'algoritme LRU amb una seqüència de referències de pàgines [0, 4, 1, 4, 2, 4, 3, 4] i un nombre de marcs de pàgina de 3.

Solució:

  1. Inicialment: [ ] (buit)
  2. Referència 0: [0]
  3. Referència 4: [0, 4]
  4. Referència 1: [0, 4, 1]
  5. Referència 4: [0, 4, 1] (4 ja està present)
  6. Referència 2: [4, 1, 2] (0 reemplaçat per 2)
  7. Referència 4: [1, 2, 4] (4 ja està present)
  8. Referència 3: [2, 4, 3] (1 reemplaçat per 3)
  9. Referència 4: [2, 3, 4] (4 ja està present)

Resum

En aquesta secció hem explorat els conceptes bàsics de la gestió de memòria, incloent la memòria principal i secundària, espais d'adreces, tècniques com el particionament, la paginació i la segmentació, així com la memòria virtual i els algoritmes de reemplaçament de pàgines. Els exercicis pràctics proporcionen una comprensió més profunda dels mecanismes de traducció d'adreces i reemplaçament de pàgines.

© Copyright 2024. Tots els drets reservats