Paginación de memoria

Ciencias de la Computación.(paginacion)

En sistemas operativos de computadoras, los sistemas de paginación de memoria dividen los programas en pequeñas partes o páginas, lo que vendría siendo la memoria lógica. Del mismo modo, la memoria "física" es dividida en trozos del mismo tamaño que las páginas llamados marcos de página. Ambos tipos de bloques son del mismo tamaño. De esta forma, al ejecutar un proceso, sus páginas se cargan desde el almacén de respaldo a los marcos disponibles. Además, la cantidad de memoria desperdiciada por un proceso es el final de su última página, lo que minimiza la fragmentación interna y evita la externa.

La fragmentación externa y, por tanto, la necesidad de compactación puede evitarse por completo empleando la paginación. Ésta consiste en que cada proceso está dividido en varios bloques de tamaño fijo llamados páginas, dejando de requerir que la asignación sea de un área contigua de memoria. La memoria se presentará a cada proceso como si fuera de su uso exclusivo. La memoria física se divide en una serie de marcos (frames), todos ellos del mismo tamaño, y el espacio para cada proceso se divide en una serie de páginas (pages), del mismo tamaño que los marcos. La MMU se encarga del mapeo entre páginas y marcos mediante tablas de páginas.

Tanto el tamaño de las páginas como de los marcos de páginas es definido por el hardware y suele ser una potencia de 2. Sabiendo entonces que muchos sistemas soportan un gran espacio de direcciones lógicas esto haría que nuestra tabla de páginas (la estructura de datos que sirve para conocer donde está el marco en el que se haya cargado una cierta página) sea excesivamente grande. Como una alternativa a esta situación, se propone "paginar las tablas de páginas", es decir, se divide a la tabla de páginas en fragmentos más pequeños.

El procedimiento para determinar el número de página asociado a una localidad de memoria específica es realizado por medio de la operación módulo, mediante el residuo es posible asociar los datos con el marco y la tabla de páginas. En general calcular el valor del módulo para la derivación de claves resulta muy eficiente porque necesita poco costo (computacional, de memoria). La operación módulo también sirve para validar qué páginas son reales y cuáles no; cabe recordar que la memoria virtual se presenta como lo máximo que la arquitectura ofrece como una dirección de memoria; por tanto, no todas las páginas son verdaderas; para determinar cuáles páginas pueden ser direccionadas por la memoria física (limitada por número de pines), se realiza la operación módulo.

En un momento cualquiera, la memoria se encuentra ocupada con páginas de diferentes procesos, mientras que algunos marcos están disponibles para su uso. El sistema operativo mantiene una lista de estos últimos marcos, y una tabla por cada proceso, donde consta en qué marco se encuentra cada página del proceso. De esta forma, las páginas de un proceso pueden no estar continuamente ubicadas en memoria, y pueden intercalarse con las páginas de otros procesos.

En la tabla de páginas de un proceso, se encuentra la ubicación del marco que contiene a cada una de sus páginas. Las direcciones lógicas ahora se forman como un número de página y de un desplazamiento dentro de esa página (conocido comúnmente como offset). El número de página es usado como un índice dentro de la tabla de páginas, y una vez obtenida la dirección del marco de memoria, se utiliza el desplazamiento para componer la dirección real o dirección física. Este proceso se realiza en una parte del computador específicamente diseñada para esta tarea, es decir, es un proceso hardware y no software.

De esta forma, cuando un proceso es cargado en memoria, se cargan todas sus páginas en marcos libres y se completa su tabla de páginas.

Veamos un ejemplo:

Número de marco Programa.#página Dirección física
0 Programa A.0 1000:0000
1 Programa A.1 1000:1000
2 Programa A.2 1000:2000
3 Programa B.0 1000:3000
4 Programa B.1 1000:4000
5 Programa C.0 1000:5000
6 Programa C.1 1000:6000
7 Programa D.2 1000:7000

La tabla de la derecha muestra una posible configuración de la memoria en un momento dado, con páginas de 4Kb. La forma en que se llegó a este estado puede haber sido la siguiente:

Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente 3, 2, 2 y 3 páginas.

  1. El programa A se carga en memoria (se le asignan los marcos 0, 1 y 2)
  2. El programa B se carga en memoria (se le asignan los marcos 3 y 4)
  3. El programa C se carga en memoria (se le asignan los marcos 5 y 6)
  4. El programa B termina, liberando sus páginas
  5. El programa D se carga en memoria (se le asignan los marcos 3 y 4 que usaba el proceso B y el marco 7 que permanecía libre)

De esta forma, las tablas simplificadas de cada proceso se ven de esta forma:

Proceso A
Página Dirección física
0 1000:0000
1 1000:1000
2 1000:2000
Proceso B
Página Dirección física
- -
- -
Proceso C
Página Dirección física
0 1000:5000
1 1000:6000
Proceso D
Página Dirección física
0 1000:3000
1 1000:4000
2 1000:7000

Ahora consideremos qué sucede cuando un programa quiere acceder a su memoria. Si el programa A contiene una referencia a la memoria con dirección 20FE, se realizará el siguiente procedimiento. 20FE es 0010000011111110 en notación binaria (en un sistema de 16 bit), y en el ejemplo se están usando páginas de 4Kb de tamaño. Cuando la petición de la dirección de memoria 20FE es realizada, la Unidad de Gestión de memoria se ve de esta forma:


0010000011111110 = 20FE
|__||__________|
 |       |
 |       v
 |      Posición de memoria dentro de la página (0FE)
 v
Número de página (0010 = 2)

Tabla de paginación
Entrada a la tabla de páginas
n = @ página física V P L E M

* n = bits de la @ lógica -log2(número de palabras de una página).
* V: bit de validez.
* P: bit de persistencia.
* L: bit de derecho a lectura.
* E: bit de derecho a escritura.
* M: bit de modificación.

Al usar páginas de 4096 bytes, todas las ubicaciones dentro de una página pueden ser representadas por 12 bits, en el sistema binario (212=4096), lo que deja 4 bits para representar el número de página. Si las páginas hubieran sido de la mitad del tamaño (2048) se podrían tener 5 bits para el número de página, lo que significa que a menor tamaño de página se pueden tener tablas con más páginas.

Cuando el pedido de acceso a memoria es realizado, la MMU busca en la tabla de páginas del proceso que realizó el pedido por la relación en memoria física. En nuestro ejemplo, la página número 2 del proceso A corresponde al marco número 2 en memoria física, con dirección real 1000:2000, por lo tanto, la MMU devolverá la dirección del marco en memoria física, con el desplazamiento dentro de esa página: 1000:20FE.

Paginación en memoria virtual

El único inconveniente de paginación pura es que todas las páginas de un proceso deben estar en memoria para que se pueda ejecutar. Esto hace que si los programas son de tamaño considerable, no puedan cargarse muchos a la vez, disminuyendo el grado de multiprogramación del sistema. Para evitar esto, y aprovechando el principio de cercanía de referencias donde se puede esperar que un programa trabaje con un conjunto cercano de referencias a memoria (es decir con un conjunto residente más pequeño que el total de sus páginas), se permitirá que algunas páginas del proceso sean guardadas en un espacio de intercambio (fragmentación interna) mientras no se necesiten.

Cuando la paginación se utiliza junto con memoria virtual, el sistema operativo mantiene además el conocimiento sobre qué páginas están en memoria principal y cuáles no, usando la tabla de paginación. Si una página buscada está marcada como no disponible (tal vez porque no está presente en la memoria principal, pero sí en el área de intercambio), cuando la CPU intenta referenciar una dirección de memoria en esa página, la MMU responde levantando una excepción (comúnmente llamada fallo de página). Si la página se encuentra en el espacio de intercambio, el sistema operativo invocará una operación llamada intercambio de página, para traer a memoria principal la página requerida. La operación lleva varios pasos. Primero se selecciona una página en memoria, por ejemplo una que no haya sido usada recientemente (para más detalles ver algoritmos de reemplazo de páginas). Si la página fue modificada, se escribe la misma en el espacio de intercambio. El siguiente paso en el proceso es leer la información en la página necesitada desde el espacio de intercambio. Cuando esto sucede, las tablas para traducción de direcciones virtuales a reales son actualizadas para reflejar los contenidos de la memoria física. Entonces el intercambio de página sale, y el programa que usó la dirección que causó la excepción es vuelto a ejecutar desde el punto en que se dio la misma y continúa como si nada hubiera pasado. También es posible que una dirección virtual sea marcada como no disponible porque no fue localizada previamente. En estos casos, una página de memoria es localizada y llenada con ceros, la tabla de paginación es modificada para mostrar los cambios y el programa se reinicia como en el otro caso.

Si la página que ha provocado el fallo de página no se encuentra en el espacio de intercambio, habrá que ir a buscarla a la unidad de disco. El proceso, por lo demás sería análogo.

Véase también

Read other articles:

Kalsifikasi metastatik adalah deposisi garam kalsium di jaringan normal, umumnya akibat hiperkalsemia atau tingginya kadar kalsium di dalam serum. Penyebab utama hiperkalsemia yaitu peningkatan sekresi hormon paratiroid (hiperparatiroidisme), destruksi tulang, kelainan yang berhubungan dengan Vitamin D, dan gagal ginjal.[1] Kalsifikasi metastatik dapat terjadi secara luas di dalam tubuh, tetapu umumnya memengaruhi jaringan interstisial dari pembuluh darah, ginjal, paru-paru, dan mukos...

 

DarabaniKotaLetak DarabaniNegara RumaniaProvinsiBotoşaniStatusKotaPemerintahan • Wali kotaCorneliu Arosoaie (Partidul Social Democrat)Luas • Total99,85 km2 (3,855 sq mi)Populasi (2004) • Total11.864Zona waktuUTC+2 (EET) • Musim panas (DST)UTC+3 (EEST) Darabani adalah kota yang terletak di provinsi Botoşani, Rumania. Pada tahun 2004, kota ini diperkirakan memiliki jumlah penduduk sebesar 11.867 jiwa. Pranala luar Daraba...

 

Mexican-Spanish rheologist mechanical engineer (born 1942) Baltasar Mena IniestaBorn1942 (age 81–82)Spain[1]NationalityMexican, SpanishAlma materNational Autonomous University of Mexico, University of Toulouse and Brown University.AwardsNational Prize for Arts and Sciences (Technology and Design, 1997); UNESCO Science Prize (2001)Scientific careerFieldsRheologyInstitutionsFaculty of Engineering, National Autonomous University of Mexico (UNAM) Baltasar Mena Iniesta (bor...

Commuter railway station in Greater Copenhagen, Denmark BuddingeS-train stationGeneral informationLocation270 Buddingevej, GladsaxeCoordinates55°44′50″N 12°29′36″E / 55.74722°N 12.49333°E / 55.74722; 12.49333Owned byDSBPlatformsIsland platformTracks2HistoryOpened1906Services Preceding station S-train Following station Vangedetowards Høje Taastrup BxPeak hours Terminus B Stengårdentowards Farum Buddinge station is a station on the Farum radial of the S-tra...

 

Questa voce o sezione sull'argomento stadi di calcio d'Italia non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Gino Salveti Informazioni generaliStato Italia UbicazioneVia Appia Nuova,03043 Cassino (FR) Inizio lavori1963 Inaugurazione1967 Costo300.000.000 £ ProprietarioComune di Cassino ProgettoBruno Magrelli e Paolo Teresi Informazioni tecnichePost...

 

Disambiguazione – Se stai cercando altri significati, vedi Messico (disambigua). Messico (dettagli) (dettagli) Messico - Localizzazione Dati amministrativiNome completoStati Uniti Messicani Nome ufficialeEstados Unidos Mexicanos Lingue ufficialiSpagnolo, Nahuatl e altre 68 lingue native Capitale Città del Messico  (9 209 944 ab. / 2020) PoliticaForma di governoRepubblica presidenziale federale PresidenteAndrés Manuel López Obrador Indipendenzadalla Spagna,1...

В статье есть список источников, но не хватает сносок. Без сносок сложно определить, из какого источника взято каждое отдельное утверждение. Вы можете улучшить статью, проставив сноски на источники, подтверждающие информацию. Сведения без сносок могут быть удалены. (6 дек...

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (أبريل 2019) فيليبي بونس راميريز معلومات شخصية الميلاد 29 مارس 1988 (العمر 36 سنة) الطول 1.77 م (5 قدم 9 1⁄2 بوصة) مركز اللعب وسط الجنسية المكسيك  معلومات النادي الن...

 

Sunderland 2015–16 football seasonSunderland2015–16 seasonJoyous Black Cats celebrate a goal at home to Chelsea, May 2016ChairmanEllis ShortManagerDick Advocaat (until 4 October 2015)Sam Allardyce (from 9 October 2015)StadiumStadium of LightPremier League17thFA CupThird roundLeague CupThird roundTop goalscorerLeague: Jermain Defoe (15)All: Jermain Defoe (18) Home colours Away colours ← 2014–152016–17 → The 2015–16 season is Sunderland's 137th season in existen...

Голубянки Самец голубянки икар Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ПервичноротыеБез ранга:ЛиняющиеБез ранга:PanarthropodaТип:ЧленистоногиеПодтип:ТрахейнодышащиеНадкласс:ШестиногиеКласс...

 

British prince (born 1960) Prince Andrew redirects here. For other uses, see Prince Andrew (disambiguation). Prince AndrewDuke of York (more)Andrew in 2017Born (1960-02-19) 19 February 1960 (age 64)Buckingham Palace, London, EnglandSpouse Sarah Ferguson ​ ​(m. 1986; div. 1996)​IssueDetail Princess Beatrice Princess Eugenie NamesAndrew Albert Christian Edward[a]HouseWindsorFatherPrince Philip, Duke of EdinburghMotherElizabeth IIEduca...

 

Le Razos de trobar in un manoscritto catalano Raimon Vidal de Bezaudun(n), in catalano Ramon Vidal de Besalú, in francese Raymond Vidal de Besaudun (1196 – 1252[1]), è stato un trovatore, poeta e grammatico catalano originario di Besalú. Famoso per essere stato l'autore del primo trattato poetico di una lingua romanza (l'occitano), le Razos de trobar (ca. 1210).[2] Indice 1 Biografia 2 Opera 3 Note 4 Bibliografia 5 Voci correlate 6 Altri progetti 7 Collegamenti esterni Bi...

В статье не хватает ссылок на источники (см. рекомендации по поиску). Информация должна быть проверяема, иначе она может быть удалена. Вы можете отредактировать статью, добавив ссылки на авторитетные источники в виде сносок. (20 октября 2021) Рязанский государственный радиот...

 

City and commune in Valparaíso, Chile City and Commune in Valparaíso, ChileLa CaleraCity and CommuneDowntown La Calera from the hills La CaleraLocation in ChileCoordinates: 32°47′12″S 71°11′50″W / 32.78667°S 71.19722°W / -32.78667; -71.19722CountryChileRegionValparaísoProvinceQuillotaFounded1844Government[1] • TypeMunicipality • MayorTrinidad Rojo (RN)Area[2] • Total60.5 km2 (23.4 sq mi)&...

 

جرجي زيدان  جرجي زيدان في أوائل القرن العشرين    معلومات شخصية الميلاد 14 ديسمبر 1861 [1]  بيروت  الوفاة 21 يوليو 1914 (52 سنة) [2]  القاهرة[3]  مواطنة الدولة العثمانية  إخوة وأخوات إبراهيم زيدان  الحياة العملية المواضيع تاريخ،  وأدب،  وصحافة ...

Plan to immunize against COVID-19 COVID-19 vaccination in MexicoDateDecember 24, 2020 (2020-12-24) – presentLocationMexicoCauseCOVID-19 pandemic in Mexico Part of a series on theCOVID-19 pandemicScientifically accurate atomic model of the external structure of SARS-CoV-2. Each ball is an atom. COVID-19 (disease) SARS-CoV-2 (virus) Cases Deaths Timeline 2019 2020 January responses February responses March responses April responses May responses June responses July responses Au...

 

American white supremacist terrorist hate group KKK and Klansman redirect here. For other uses, see Clansman (disambiguation) and KKK (disambiguation). Ku Klux KlanThe Duke Flag, used by some in the Third Klan and named after former Klan leader David Duke. The Blood Drop Cross is shown in the centre.[1]Political positionFar-rightFirst Klan (1865–1872)Founded inPulaski, Tennessee, U.S.MembersUnknownPolitical ideologies Anti-black racism White supremacy White nationalism Vigilantism S...

 

LosariKecamatanPeta lokasi Kecamatan LosariNegara IndonesiaProvinsiJawa TengahKabupatenBrebesPemerintahan • CamatImam Tohid, S.Sos[1]Populasi • Total- jiwaKode Kemendagri33.29.12 Kode BPS3329100 Desa/kelurahan22 Losari (bahasa Jawa: ꦭꦺꦴꦱꦫꦶ) adalah sebuah kecamatan di Kabupaten Brebes, Provinsi Jawa Tengah, Indonesia. Kecamatan ini terletak di perbatasan antara Provinsi Jawa Tengah dan Jawa Barat. Ibu kota kecamatan ini terletak di Desa Losa...

Railway station on the Wirral line in Birkenhead, Wirral, England This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Birkenhead Hamilton Square railway station – news · newspapers · books · scholar · JSTOR (June 2011) (Learn how and when to remove this message) Birkenhead Hamilton SquarePlatforms 1 and 2.Genera...

 

Perusahaan Kereta Api HokkaidoJenisKK milik negaraIndustriTransportasi relPendahuluKereta Api Nasional Jepang (JNR)Didirikan1 April 1987 (privatisasi JNR)KantorpusatChūō-ku, Sapporo, Hokkaido, JepangWilayah operasiHokkaidoProdukKitaca (sebuah kartu pintar bebas kotak yang bisa diisi ulang)JasaKereta api penumpang Kereta api barang Bus antarkotaPemilikBadan Pembangunan, Transportasi, dan Teknologi Kereta Api Jepang (100%)Karyawan7.970 (pada 1 April 2007)AnakusahaJR Hokkaido BusSitus webwww2....