Está en la página 1de 6

ALGORITMO DE REEMPLAZO DE PÁGINAS

La paginación también surgió de la necesidad de mantener más de un programa


residente en memoria cuando la capacidad de ésta es inferior a la suma de los tamaños
de los programas. Se trata de un mecanismo automático de solapamiento múltiple que
practica el Sistema Operativo para hacer posible la multiprogramación. El espacio de
memoria principal se divide en bloques de tamaño fijo denominados páginas(pequeñas
partes). Del mismo modo, la memoria es dividida en trozos del mismo tamaño que las
páginas llamados marcos de página. De esta forma, 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. Los programas se dividen también en páginas y
residen en el disco. El Sistema Operativo se encarga de asignar páginas físicas a los
programas en ejecución (multiprogramación). De esta forma el tiempo de CPU puede
distribuirse entre los programas residentes.

Los algoritmos de reemplazo de páginas (son usados para decidir qué páginas pueden
ser sacadas de memoria cuando se necesita cargar una nueva y ya no hay espacios.)

Son aquellos algoritmos de sistemas operativos que están diseñados para solucionar el
problema de decidir qué página de las que reside en memoria bajo un frame o marco
debe salir para dejar entrar a otra que está siendo referenciada. Al ser los reemplazos de
página fundamentales para la paginación bajo demanda, es importante que los sistemas
operativos implementen los algoritmos más efectivos. Algunos de los presentados son
algoritmos creados para concretizar la idea de reemplazo, otros son ideales pero
imposibles o difíciles de implementar y están aquellos que con ciertos costos son
perfectamente implementables, pero todo algoritmo debe apuntar a tener la menor
cantidad de fallos de página, lo que implica, por ejemplo, la reducción sustancial de I/O
a memoria secundaria.

Los algoritmos son evaluados con cadenas de referencias, que son cadenas de números
que indican las páginas que son referenciadas. La idea es simular cómo actúan los
distintos algoritmos para estas cadenas, de forma tal de conocer su eficiencia.

Cuando se presenta un fallo de página, el sistema operativo tiene que escoger la página
que desalojará de la memoria para hacer espacio para colocar la página que traerá del
disco. Si la página a desalojar fue modificada mientras estaba en la memoria, deberá
reescribirse en el disco para actualizar la copia. En cambio, si la página no se ha
modificado(por ejemplo si tiene texto de programa), la copia en disco ya estará
actualizada y no será necesario reescribirla. La nueva página simplemente sobreescribe
lo que se está desalojando. Aunque sería posible escoger una página al azar para
desalojarla cuando haya un fallo de página, el desempeño del sistema mejora si se
escoge una página que no se usa mucho.
Si se desaloja una página muy utilizada, lo más seguro es que pronto tenga que volverse
a traer a la memoria, con el consiguiente gasto extra.

Vale la pena señalar que el problema de "reemplazo de páginas" también se da en otras


áreas del diseño de computadoras. Por ejemplo, casi todas las computadoras tienen unos
o más cachés en memoria que tienen bloques de memoria de 32 y 64 bytes recién
usados. Cuando se llena el caché, hay que escoger el bloque a desalojar. Este problema
es idéntico al reemplazo de páginas, sólo que se efectúa en una escala de tiempo más
corta (se tiene que efectuar en unos cuantos nanosegundos, no en milisegundos como el
reemplazo de páginas). La escala de tiempo es corta porque los fallos de bloque en
caché se satisfacen colocando un bloque de la memoria principal, que no tiene tiempo
de desplazamiento de la cabeza lectora ni latencia rotacional. Un segundo ejemplo es un
servidor web. Éste puede mantener en su caché de memoria cierto número de páginas
web muy utilizadas. Sin embargo, si el caché se llena y se hace referencia a una página
nueva, habrá que decidir cuál página web desalojar. Las consideraciones son similares
en el caso de páginas de memoria virtual, salvo por el hecho de que las páginas web
nunca se modifican en el caché, así que la copia en disco siempre está actualizada. En
un sistema de memoria virtual, las páginas que están en la memoria principal podrían
estar modificadas o sin modificación.

DISEÑO PARA LOS SISTEMAS DE PAGINACIÓN

Es una técnica de manejo de memoria, en la cual el espacio de memoria se divide en


secciones físicas de igual tamaño, denominadas marcos de página. Los programas se
dividen en unidades lógicas, denominadas páginas, que tienen el mismo tamaño que los
marcos de páginas. De esta forma, se puede cargar una página de información en
cualquier marco de página.
POLITICAS DE ASIGNACIÓN LOCAL VS ASIGNACIÓN GLOBAL

Se considera dos tipos de reemplazo, local y global. Los algoritmos locales


corresponden de manera efectiva a asignar a cada proceso una fracción fija de la
memoria. Los algoritmos globales asignan marcos de página de manera dinámica entre
los procesos ejecutables.

Control de carga

Aun con lo mejor en diseño, es posible que un sistema se sobrepagine. Una buena forma
de reducir el número de procesos que compiten por la memoria es intercambiar algunos
de ellos enviándolos
Configuración al disco y liberar
original todas lasdepáginas
Reemplazo páginas que ellos mantienen. El páginas
Reemplazo de proceso
de intercambiar procesos para liberar la carga en la memoria es semejante
Local Global a la
planificación de dos niveles, donde ciertos procesos se colocan en disco y se utiliza un
planificador de corto plazo para planificar los procesos restantes.

Tamaño de página

Se requiere balancear varios factores competitivos. Como resultado, no hay un tamaño


óptimo en general. En promedio, la mitad de la página final estará vacía. El espacio
adicional en esa página se desperdicia. A este desperdicio se le conoce como
fragmentación interna.
Espacios separados de instrucciones y de datos

En una computadora con este diseño, ambos espacios de direcciones se pueden paginar
de manera independiente. Cada uno tiene su propia tabla de páginas, con su propia
asignación de páginas virtuales a marcos de páginas físicas. Cuando el hardware desea
obtener una instrucción, sabe que debe utilizar el espacio I y la tabla de páginas de este
espacio.

Política de limpieza

Para asegurar una provisión abundante de marcos de página libres, muchos sistemas de
paginación tienen un proceso en segundo plano conocido como demonio de paginación,
que está inactivo la mayor parte del tiempo pero se despierta en forma periódica para
inspeccionar el estado de la memoria. Cuando menos el demonio de paginación asegura
que todos los marcos libres estén limpios, por lo que no se necesitan escribir en el disco
en un apuro a la hora de ser requeridos. Una manera de implementar esta política de
limpieza es mediante un reloj con dos manecillas.

SEGMENTACIÓN DE MEMORIA
Segmentación de memoria es la división de un equipo 's memoria primaria en
segmentos o secciones . En un sistema de ordenador mediante la segmentación, una
referencia a una ubicación de memoria incluye un valor que identifica un segmento y un
(posición de almacenamiento) de compensación dentro de ese segmento. Segmentos o
secciones también se utilizan en los ficheros objeto de programas compilados cuando
están unidos juntos en una imagen del programa y cuando la imagen se cargan en la
memoria.

Segmentos generalmente corresponden a las divisiones naturales de un programa, tales


como rutinas individuales o tablas de datos para la segmentación es en general más
visibles para el programador de la paginación solo. Diferentes segmentos pueden ser
creados para distintos programas módulos , o para diferentes clases de uso de la
memoria tales como de código y segmentos de datos . Ciertos segmentos pueden ser
compartidos entre los programas.

OBJETIVOS ALCANZADOS CON LA SEGMENTACIÓN DE MEMORIA

 MODULARIDAD DE PROGRAMAS: cada rutina del programa puede ser


un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del
programa.
 ESTRUCTURAS DE DATOS DE LARGO VARIABLE: Donde cada
estructura tiene su propio tamaño y este puede variar.
 PROTECCIÓN: Se puede proteger los módulos del segmento contra accesos
no autorizados.
 COMPARTICIÓN: Dos o más procesos pueden ser un mismo segmento, bajo
reglas de protección; aunque no sean propietarios de los mismos.
 ENLACE DINÁMICO ENTRE SEGMENTOS: Puede evitarse realizar todo
el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se
establecerán solo cuando sea necesario.

LA SEGMENTACIÓN PAGINADA AYUDA AL PROCESO DE GESTIÓN DE


MEMORIA

PUEDE HACERSE UNA COMBINACIÓN DE SEGMENTACIÓN Y PAGINACIÓN


PARA OBTENER LAS VENTAJAS DE AMBAS.

CADA SEGMENTO PUEDE SER DESCRITO POR SU PROPIA TABLA DE


PÁGINAS.

LOS SEGMENTOS SON USUALMENTE MÚLTIPLOS DE PÁGINAS EN


TAMAÑO, Y NO ES NECESARIO QUE TODAS LAS PÁGINAS SE
ENCUENTREN EN MEMORIA PRINCIPAL ALA VEZ; ADEMÁS LAS PÁGINAS
DE UN MISMO SEGMENTO, AUNQUE SE ENCUENTREN CONTIGUAS EN
MEMORIA VIRTUAL; NO NECESITAN ESTARLO EN MEMORIA REAL.

COMPARTICIÓN DE SEGMENTOS

En un sistema de segmentación, una vez que un segmento ha sido declarado como


compartido, entonces las estructuras que lo integran pueden cambiar de tamaño. Dos
procesos pueden compartir un segmento con solo tener entradas en sus tablas generales
que apunten al mismo segmento del almacenamiento primario.

LAS VENTAJAS DE LA SEGMENTACIÓN

 El programador puede conocer las unidades lógicas de su programa, dándoles un


tratamiento particular. Es posible compilar módulos separados como segmentos
el enlace entre los segmentos puede suponer hasta tanto se haga una referencia
entre segmentos.
 Es fácil el compartir segmentos. Es posible que los segmentos crezcan
dinámicamente según las necesidades del programa en ejecución.
LAS DESVENTAJAS

 Hay un incremento en los costos de hardware y de software para llevar a cabo la


implantación, así como un mayor consumo de recursos: memoria, tiempo de
CPU, etc.
 Debido a que los segmentos tienen un tamaño variable se pueden presentar
problemas de fragmentación externas, lo que puede ameritar un plan de
reubicación de segmentos en memoria principal.

COMANDOS PARA ADMINISTRACIÓN DE MEMORIA

https://sites.google.com/site/sistemasoperativos2unah/investigaciones/algoritmos-de-
reemplazo

https://es.qwe.wiki/wiki/Page_replacement_algorithm

https://codetagebuch.wordpress.com/2016/10/23/3-5-diseno-para-sistemas-de-
paginacion/

https://es.slideshare.net/menes21/paginacion-y-segmentacion-de-memoria

También podría gustarte