¿Que es la paginación?. 30 / julio / 2007
Posted by jgutgil in Sistemas Operativos.trackback
Hace no mucho, mencioné algo llamado ‘Paginación’. Pues bien, hoy voy a explicar que es eso de la paginación, ya que es algo que ocurre siempre en nuestro PC y no sabemos identificarlo.
El concepto de paginación aparece junto con el de memoria virtual, ¿que es eso?. Este método fue creado por Fotheringham y la idea básica es la siguiente.
Cuando ejecutamos un programa este puede caber o no en la memoria física, si se da la situación de que el proceso es mayor que la memoria, el SO se encarga de mantener en memoria las partes del programa que estamos usando y el resto en el disco duro.
Pues bien, la técnica llamada ‘paginación’ se encarga del intercambio de información entre nuestra memoria y el disco duro cuando tiene que pasar información de la memoria al disco duro debido a lo comentado antes, que no hemos cargado el programa entero,los pasos serían los siguientes.
Partimos de la siguiente instrucción en lenguaje ensamblador.
MOV REG, 100
Con esa instrucción en lenguaje ensamblador lo que estamos haciendo es mover el contenido de la dirección 100 al registro REG.
Las direcciones pueden generarse empleando diversos métodos (indización, registros base,…).
Estas direcciones se denominan direcciones virtuales y constituyen el espacio de direcciones virtuales. En ordenadores sin memoria virtual, esta dirección se coloca directamente en el bus de memoria y esto hace que se lea o escriba la palabra física de memoria que tenga esa dirección. Cuando se usa memoria virtual (que es nuestro caso), las direcciones virtuales no se envían directamente al bus, sino a una unidad de administración de memoria, (MMU, memory management unit) que establece una correspondencia entre las direcciones virtuales y físicas de la memoria.
En la imagen anterior vemos un esquema del proceso, aunque vemos que la MMU está fuera de la CPU, en los chips actuales se encuentra dentro de la CPU.
El espacio de direcciones virtuales se divide en unidades llamadas «páginas». Las unidades correspondientes en el disco duro se denominan «marcos de página». Las páginas y los marcos tienen el mismo tamaño.
Así sería el proceso de la paginación, pero leyendo lo anterior podemos pensar, ¿que ocurriría si el programa trata de usar una página que no tiene corespondencia?.
La MMU ve que la página no tiene correspondencia y hace que la CPU salte al SO. Esta interrupción se llama ‘fallo de página’. El SO escoge un marco de página que no se esté usando mucho y vuelve a escribir su contenido en el disco, después de lo cual trae la página a la que se acaba de hacer referencia y la coloca en el marco recién desocupado, modificael mapa y reinicia la instrucción interrumpida.
Y ahora nos surge otra duda, dicho desalojo cuando se produce el fallo de página, ¿se realiza al azar?, ya que si esto se hiciera mal, el SO estaría continuamente reescribiendo el mapa, por lo que se perdería mucho tiempo.
Veamos, cuando se produce un fallo de página, el SO examina todas las páginas y las divide en cuatro grupos dependiendo del estado de sus bits R (página solicitada) y M (página modificada).
- Clase 0: no solicitada, no modificada.
- Clase 1: no solicitada, modificada.
- Clase 2: solicitada, no modificada.
- Clase 3: solicitada, modificada.
Existen diversos algoritmos para decidir que página desalojamos, los cuales son…
NRU (Not Recently Used, No Usada Recientemente), se desaloja al azar una página de Clase baja que no esté vacía. Este algoritmo presupone que es mejor desalojar una página modificada pero no solicitada en un tic de reloj (20 ms), a una limpia que se esté usando mucho. NRU es fácil de entender, tiene una implementación aceptable y un desempeño eficiente, aunque no es óptimo.
FIFO (First In, First Out – primero en entrar primero en salir), el SO mantiene una lista de todas lás áginas existentes, desde la más antigua hasta la más nueva, cuando se produce el fallo, se desaloja la primera de a lista (la más antigua) y la nueva se coloca al final.
Yo he nombrado dos algoritmos, aunque existen muchísimos…, Tipo Reloj, LRU, Conjunto de Trabajo, WSClock,…
Cada uno tiene sus pros y sus contras, ninguno es el mejor de todos.
Gracias Me gusto mucho la explicacion un tanto ams entendible que en el Tanembaun
cecilia
dice magdalena que quiere con tigo
cuak
Hola ayudame con este problema por favor!!
Si se cuenta con una memoria de 256 MB y paginas de 512 KB, ¿Cuantas paginas caben en su memoria?
Si tienes un archivo de 3,2 MB, ¿Cuantas paginas
ocupa en memoria?
Muy bueno la explicación, gracias.
ni idea tengo de que es esto de paginacion llegue aqui por errorun saludo
EXCELENTE EXPLICACIÓN, PERO DESEO PROFUNDIZAR MAS EN EL TEMA, SI ES POSIBLE
un poco mal explicado…..
Muy bueno gracias…..!!!!
muchas gracias por la explicacion 😀
muchas grax bro….:d
Gracias por tu piblicación, me ayudo bastante entender a grandes rasgos el funcionamiento de la paginacion y los marcos de pagina..
gracias..
falta una mejor explicacion..(_)
a falta de pan buenas son tortas
muy bueno el aporte!! lo explicaste muy sencillo y facil de entender, ademas uniste los temas de paginacion y algoritmo de reemplazo de una manera rapida y facil de entender!!!
excelente! me sacaste de apuro ya que falte a la clase teorica donde explicaron este tema…
gracias
linux es lo maximo ,te amo linux quiero co niocerte,paro soñando conitgo linux.
con amor ymucho amor
Rolando
por si acaso soy Rolando Javier Berrú el mas chocho con linux.
Me fascinas linux .
PDTA..te amo
Hola. La pregunta no tiene que ver con paginación en SO, pero espero puedas ayudarme.
Se trata sobre paginación en web.
Quiero saber que método resulta más óptimo en cuanto a tiempo de carga, cual es recomendable.
Si tengo n registros en una BD (por ejemplo trabajadores), llamar al total de estos registros al cargar la página y mostrarlos en un grid (usando javascript) según el tamaño de página que quiero usar, por ejemplo 10 registros en la primera página y al clickear en la 2da página mostrar los siguientes 10 y ocultar los 10 primeros y el resto, y asi por el resto de páginas.
En este primer caso la llamada a la BD es una sola vez, la primera vez que carga la página y para mostrar los datos los oculto o los hago visibles, usando javascript, según crea necesario.
La segunda opción sería la siguiente: la primera vez que carga la página cargo en un grid el número de registros que indica mi tamaño de página, por ejemplo 20, es decir hago la consulta a la BD por los primeros 20 registros, y si clickean en la página 2 hago nuevamente la consulta a la BD por los siguientes 20 registros y así con el resto de páginas.
En este segundo caso se estaría accediendo a la base de datos por cada consulta a cada página, pero la cantidad de información que cargaría sería menor.
¿Cual resulta más óptimo?.
También deseo saber cómo realiza la paginación el GridView del ASP, y el RADGridView del Telerik, ya que estos son objeto del servidor, si por cada vez que se hace click en un nro de página van al servidor, o es que hacen inicialmente la carga total de los datos y usan javascript para mostrar y ocultar datos.
De antemano gracias por aclarar mis dudas.
Ana.
sorry, corrijo mi correro
ashhhhh que feo sitio muaaaaaak bay los kiero a todo000000sssssssssssssssssssssssssssssssssssssss
Yo no entendí T^T
en comprar cosméticos por internet
informat – Me and my life
gucci mamas bag
Me and my life
Bumper Repair Bradford
informat – Me and my life
Brett Cravaliat
informat – Me and my life
Organisational Resilience
informat – Me and my life
usual random water
Me and my life
great points altogether, you simply won a new reader.
What could you recommend in regards to your submit that you just
made some days ago? Any sure?
It’s actually a cool and useful piece of information. I am
happy that you shared this useful information with us.
Please stay us up to date like this. Thank you for sharing.
mybrowsergames.blogspot.nl
Me and my life
Greetings from Carolina! I’m bored to death at work so
I decided to check out your website on my iphone during lunch break.
I love the information you provide here and can’t wait to take a look when I get home.
I’m surprised at how quick your blog loaded on my phone ..
I’m not even using WIFI, just 3G .. Anyhow, excellent
blog!
I’m not sure where you are getting your information, but good topic.
I needs to spend some time learning much more or understanding more.
Thanks for fantastic information I was looking for this info for my mission.
Write more, thats all I have to say. Literally, it seems as though you relied on the
video to make your point. You clearly know what youre talking about,
why waste your intelligence on just posting videos to your site when you could be giving us something informative to read?
web site
informat – Me and my life
For most recent information you have to pay a quick visit the web and on web I
found this web page as a most excellent website for latest updates.
frases de cumpleaños para una amiga
informat – Me and my life
You actually make it seem so easy with your presentation but I find this matter to be really something which I think I would never understand.
It seems too complex and very broad for me. I’m looking forward for your next
post, I will try to get the hang of it!
Bryan Adams Tracks of My Years Album download
Me and my life
Hi, this weekend is good in favor of me, for the reason that this occasion i am reading
this wonderful informative paragraph here at my residence.
ô tô cũ hà nội
informat – Me and my life
care bears
informat – Me and my life
weight loss with hcg diet
informat – Me and my life
resep nasi uduk dan lauknya
informat – Me and my life
best panasonic electric shaver
informat – Me and my life
Plastic Surgery In Korea Clinic
informat – Me and my life
drug screening lake city fl
informat – Me and my life
neighbors moving and storage reviews
informat – Me and my life
social media marketing books
informat – Me and my life
go source
informat – Me and my life
no pos wauu…..
puro amor…jejej
o pos puro pozole