Gestió de Memòria: Paginació, Segmentació i Memòria Virtual

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en catalán con un tamaño de 4,98 KB

Pàgines i adreces lògiques

Dins cada procés, una adreça lògica està formada per un nombre de pàgina i un desplaçament dins la corresponent pàgina. Un registre del processador guarda sempre l'adreça d'inici física de la taula de pàgines del procés en execució.

Una vegada coneguda l'adreça lògica (nombre de pàgina i desplaçament), el processador consulta la taula per obtenir l'adreça física (marc de pàgina i desplaçament).

Segmentació simple

Cada programa es divideix en blocs anomenats segments. No cal que els segments siguin de la mateixa longitud, però es fixa una longitud màxima. En carregar un programa a la memòria, els diferents segments poden ocupar qualsevol posició. Cada segment ocupa l'espai de memòria estrictament necessari, és a dir, no presenta segmentació interna. Sí que hi ha fragmentació externa, però degut a que els segments són més petits, no és tan gran com en els sistemes de partició dinàmica.

Segments i adreces lògiques

Quan un procés passa a l'estat d'execució, un registre del processador es carrega amb l'adreça d'inici de la taula de segments del procés. A partir de l'adreça lògica (nombre de segment, desplaçament) = (n,m), el processador accedeix a la posició n de la taula de segments per obtenir l'adreça física d'inici del segment, k, i la seva longitud, l. L'adreça física s'obté sumant el desplaçament m a l'adreça d'inici de segment, k. El hardware també compara el desplaçament m amb la longitud del segment, l. Si m>l, l'adreça no és vàlida. No hi ha correspondència directa entre adreces lògiques i adreces físiques.

Paginació simple vs. Segmentació simple

La segmentació requereix sistemes hardware més complicats per la traducció d'adreces.

  • La segmentació provoca fragmentació externa.
  • La paginació provoca una petita fragmentació interna.
  • La segmentació és visible pel programador, mentre que la paginació és transparent.

La segmentació es pot entendre com una eina per organitzar els programes lògicament en diferents segments, als que es pot oferir diferent tipus de protecció. Per exemple: pel codi permís d'execució i per les dades lectura/escriptura. Així, cal disposar d'informació addicional (bits de protecció) dins les taules de segments.

Avantatges de la càrrega parcial

  • Es poden mantenir en memòria principal més processos.
  • No es carreguen completament, sols part.
  • Amb més processos en memòria, és més probable que un procés presenti l'estat preparat en qualsevol instant.
  • Es pot executar un procés, fins i tot quan és més gran que la capacitat de la memòria principal.
  • Basta utilitzar adreces lògiques més llargues (nombre de bits) que les adreces físiques.

Per exemple: amb 16 bits poden adreçar-se 64KB de memòria física, si les pàgines són d'1KB, calen 10 bits per indicar el desplaçament, per indicar el nombre de pàgina corresponent a una adreça lògica podem utilitzar qualsevol nombre de bits, 6 (= 16-10) o més.

Memòria virtual

Tota la memòria indicada mitjançant una adreça lògica s'anomena memòria virtual.

  • Es manté en memòria secundària (per exemple, discs).
  • Les peces es carreguen en memòria principal sols quan cal.

Per motius de rendiment, la memòria virtual es guarda dins una àrea especial del disc anomenada àrea de swap i no es gestiona com la resta del sistema de fitxers. La memòria física és aquella senyalada mitjançant una adreça física. RAM.

La conversió d'una adreça lògica a una adreça física es realitza indexant la corresponent taula de pàgines/segments mitjançant el hardware de gestió de memòria.

Hiperpaginació (Thrashing)

Per tal de col·locar el major nombre de processos en memòria, sols es carreguen fragments d'ells.

Quan la memòria està plena, si el SO vol carregar un nou fragment, primer ha d'expulsar-ne algun altre. Si s'expulsa un fragment just abans d'usar-lo, s'haurà de tornar a carregar immediatament. Si aquesta situació es repeteix sovint es produeix la hiperpaginació. El processador passa més temps expulsant i carregant fragments que executant instruccions d'usuari. Es tracta d'encertar, d'acord amb la història recent dels processos, quins són els fragments que no s'utilitzaran en un futur proper.

Principi de localitat i memòria virtual

Els algorismes per evitar la hiperpaginació funcionen gràcies al principi de localitat, que afirma que les referències a memòria (per dades o instruccions) dins un procés tendeixen a estar agrupades. Per tant, es pot suposar que, per a períodes de temps curts, sols cal que siguin a memòria petits fragments del procés. I, a més, es poden fer suposicions intel·ligents respecte els fragments que s'utilitzaran en un proper futur. Així s'evita la hiperpaginació.

Entradas relacionadas: