Vés al contingut

Error de pàgina

De la Viquipèdia, l'enciclopèdia lliure
Accions realitzades en una traducció d'adreces virtuals a físiques. Cada traducció es reinicia si es produeix un error de TLB, de manera que la cerca es pot produir correctament a través del maquinari.

En informàtica, un error de pàgina (de vegades anomenat PF o falla dura) és una excepció que la unitat de gestió de memòria (MMU) planteja quan un procés accedeix a una pàgina de memòria sense els preparatius adequats. Per accedir a la pàgina cal afegir un mapa a l'espai d'adreces virtuals del procés. A més, és possible que el contingut real de la pàgina s'hagi de carregar des d'una botiga de suport, com ara un disc. La MMU detecta l'error de la pàgina, però el nucli del sistema operatiu gestiona l'excepció fent que la pàgina requerida sigui accessible a la memòria física o negant un accés il·legal a la memòria.[1]

Els errors de pàgina vàlids són habituals i necessaris per augmentar la quantitat de memòria disponible per als programes de qualsevol sistema operatiu que utilitzi memòria virtual, com ara Windows, macOS i el nucli Linux.[2][3]

Tipus [4][modifica]

Menor[modifica]

Si la pàgina es carrega a la memòria en el moment en què es genera l'error, però no està marcada a la unitat de gestió de memòria com a carregada a la memòria, s'anomena error de pàgina menor o suau. El gestor d'errors de pàgina del sistema operatiu només necessita que l'entrada d'aquesta pàgina a la unitat de gestió de memòria apunti a la pàgina a la memòria i indiqui que la pàgina està carregada a la memòria; no necessita llegir la pàgina a la memòria. Això podria passar si la memòria és compartida per diferents programes i la pàgina ja es porta a la memòria per a altres programes.

Major[modifica]

Aquest és el mecanisme que utilitza un sistema operatiu per augmentar la quantitat de memòria de programa disponible sota demanda. El sistema operatiu retarda la càrrega de parts del programa des del disc fins que el programa intenta utilitzar-lo i es genera l'error de pàgina. Si la pàgina no es carrega a la memòria en el moment de l'error, s'anomena error de pàgina important o dur. El gestor d'errors de pàgina del sistema operatiu ha de trobar una ubicació lliure: una pàgina lliure a la memòria o una pàgina no lliure a la memòria. Aquest últim pot ser utilitzat per un altre procés, en aquest cas el sistema operatiu ha d'escriure les dades en aquesta pàgina (si no s'han escrit des de la darrera modificació) i marcar aquesta pàgina com a no carregada a la memòria en el seu procés de taula de pàgines. Un cop disponible l'espai, el sistema operatiu pot llegir les dades de la pàgina nova a la memòria, afegir una entrada a la seva ubicació a la unitat de gestió de memòria i indicar que la pàgina està carregada. Així, els errors importants són més cares que els errors menors i afegeixen latència d'accés a l'emmagatzematge a l'execució del programa interromput.

Invàlid[modifica]

Si es produeix un error de pàgina per a una referència a una adreça que no forma part de l'espai d'adreces virtuals, és a dir, no hi pot haver una pàgina a la memòria corresponent, s'anomena error de pàgina no vàlida. Aleshores, el gestor d'errors de pàgina del sistema operatiu generalment passarà un error de segmentació al procés ofensiu, indicant que l'accés no era vàlid; això normalment provoca la terminació anormal del codi que va fer la referència no vàlida. Normalment, un punter nul es representa com un punter a l'adreça 0 a l'espai d'adreces; molts sistemes operatius configuren la MMU per indicar que la pàgina que conté aquesta adreça no es troba a la memòria i no inclou aquesta pàgina a l'espai d'adreces virtuals, de manera que els intents de llegir o escriure la memòria a la qual fa referència un punter nul obtenen un missatge no vàlid. error de pàgina.

Impacte en el rendiment[modifica]

Els errors de pàgina degraden el rendiment del sistema i poden provocar un desastre. Els errors de pàgina importants en ordinadors convencionals que utilitzen unitats de disc dur poden tenir un impacte significatiu en el seu rendiment, ja que una unitat de disc dur mitjana té una latència de rotació mitjana de 3. ms, un temps de cerca de 5 ms, i un temps de transferència de 0,05 ms/pàgina. Per tant, el temps total de paginació és prop de 8 ms (= 8.000 μs). Si el temps d'accés a la memòria és de 0,2 μs, aleshores l'error de pàgina faria que l'operació fos unes 40.000 vegades més lenta.

Referències[modifica]

  1. «Page Fault Definition» (en anglès). [Consulta: 16 setembre 2023].
  2. Bovet, Daniel. Understanding the Linux Kernel (en anglès). 3rd. O'Reilly Media, novembre 2005. ISBN 0-596-00565-2. 
  3. «The Basics of Page Faults» (en anglès). [Consulta: 16 setembre 2023].
  4. «What is a Page Fault?» (en anglès). [Consulta: 16 setembre 2023].