jueves, 17 de diciembre de 2015

Unidad 1 Introduccion a los sistemas operativos

Linia del tiempo

Evolucion de sistamas operativos

Mapa conceptual

Estructura niveles o estratos de diseno

Mapa mental

Unidad 2 Administracion de Procesos y del procesador

Investigacion



Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros y las variables. Conceptualmente cada uno de estos procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro.

Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:

*      Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
*      Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.
*      Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.

Otra información que permite al sistema operativo su planificación.

Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución.

Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria.

En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.

En este modelo: todo software ejecutable de la computadora, lo que a menudo incluye al sistema operativo, está organizado en una serie del proceso secuenciales, o simplemente procesos.
La idea clava aquí es que un proceso es una actividad de algún tipo: tiene programa, entrada, salida y un estado. Se puede compartir un procesador entre varios procesos, usando algún algoritmo de planificación para determinar cuándo debe de trabajar en un proceso para atender a uno distinto.

Jerarquías de procesos

Los sistemas operativos que manejan el concepto de proceso deben contar con algún mecanismo para crear todos los procesos necesarios. En los sistemas muy sencillos, o en los diseñados para ejecutar solo una aplicación.
En otros sistemas operativos existen llamadas al sistema para crear un proceso, cargar su memoria y ponerlo en ejecutar. Sea cual sea la naturaleza exacta de la llamada al sistema. Los procesos necesitan poder crear otros procesos.

En MINIX, los procesos se crean con la llamada al sistema FORK (bifurcar), que crea una copia idéntica del proceso invocador. El proceso hijo también puede ejecutar FORK, así que es posible tener un árbol de proceso.




Estados de procesos

El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por una serie de estados discretos. Estos estados son se muestran en el siguiente diagrama:

 Estos elementos se organizan en tres grupos: estado del procesador, imagen de memoria y tablas del sistema operativo.
El estado del procesador está formado por el contenido de todos sus registros, que se enumeran seguidamente:
  • Registros generales. De existir registros específicos de coma flotante también se incluyen aquí.
  • Contador de programa.
Información del proceso
  • Puntero de pila.
  • Registro o registros de estado.
  • Registros especiales. Como puede ser el RIED (registro identificador de espacio de direccionamiento).
El estado del procesador de un proceso reside en los registros del procesador, cuando el proceso está en ejecución, o en el bloque de control de proceso (BCP), cuando el proceso no está en ejecución.
Cuando el proceso está ejecutando, el estado del procesador varía de acuerdo al flujo de instrucciones maquina ejecutado. En este caso, la copia del estado del procesador que reside en el BCP no está actualizada. Téngase en cuenta que los registros de la maquina se utilizan para no tener que acceder a la información de memoria, dado que es mucho más lenta. Por tanto, no tiene sentido plantear que, en cada modificación de un registro, se actualice su valor en el BCP, puesto que está en memoria.
 Sin embargo, cuando se detiene la ejecución de un proceso, como consecuencia de la ejecución de una interrupción, es muy importante que el sistema operativo actualice la copia del estado del procesador en su BCP. En términos concretos, la rutina del sistema operativo que trata las Interrupciones lo primero que ha de hacer es salvar el estado del procesador en el BCP del proceso interrumpido.
Se describe cada uno de estos procesos:

Estado
Descripción
Nuevo
Se dice que un proceso está en estado de nuevo cuando apenas se encuentra en proceso de crearse.
Listo
Un proceso está en estado de listo, cuando podría usar una UCP, si hubiera una disponible.
En ejecución
Se dice que un proceso está estado de ejecución, si en ese momento tiene está ocupando la CPU.
Bloqueado
Se dice que un proceso está en estado de bloqueado, si espera que ocurra algo, como por ejemplo, la terminación de una E/S, para así poder ponerse en marcha.
Terminado
Cuando un proceso se ha completado su ejecución pasa a ser un proceso terminado.

Transiciones de estados
Cuando un trabajo es admitido se crea un proceso equivalente, y es insertado en la última parte de la cola de listos. Cuando un proceso pasa de un estado a otro se dice que hace una transición de estado, estas transiciones se describen:

Transición
Descripción
Admitido(Proceso):Nuevo Listo
Cuando un proceso se ha creado y se le es permito para competir por la CPU.
Despacho(Proceso):Listo En ejecución
La asignación de la CPU al primer proceso de la lista de listos es llamada despacho y es ejecutado por la entidad de sistema llamada despachador. Mientras que el proceso tenga la CPU se dice que está en ejecución.
Tiempo excedido(Proceso):En ejecución Listo
El S.O , cuando un proceso se le expira el intervalo de tiempo asignado para estar en ejecución (CUANTO), hace que este proceso que se hallaba en estado de ejecución pase al estado de listo e inmediatamente el despachador hace que el primer proceso de la lista pase a estado de ejecución.
Bloqueo(Proceso):En ejecución Bloqueado
Si un proceso que se encuentra en estado de ejecución inicia una operación de E/s antes que termine su cuanto, el proceso voluntariamente abandona la CPU, es decir, el proceso se bloquea a sí mismo.
Despertar(Proceso):Bloqueo Listo
La única transición posible en nuestro modelo básico ocurre cuando acaba una operación de E/S (o alguna otra causa por la que esté esperando el proceso), y esta termina pasa al estado de listo.
Salir(Proceso):En ejecución Terminado
Esta transición ocurre cuando el proceso se ha terminado de ejecutarse, y pasa a un estado de terminado

2.3 PROCESOS LIGEROS (HILOS O HEBRAS)
Un proceso ligero, o thread, es un programa en ejecución (flujo de ejecución) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros. Como muestra la Figura, un proceso puede contener un solo flujo de ejecución, como ocurre en los procesos clásicos, o más de un flujo de ejecución (procesos ligeros).
Desde el punto de vista de la programación, un proceso ligero se define como una función cuya ejecución se puede lanzar en paralelo con otras. El hilo de ejecución primario, o proceso ligero primario, corresponde a la función main.
Cada proceso ligero tiene informaciones que le son propias y que no comparte con otros procesos ligeros. Las informaciones propias se refieren fundamentalmente al contexto de ejecución, pudiéndose destacar las siguientes:
  • Contador de programa.
  • Pila.
  • Registros.
  • Estado del proceso ligero (ejecutando, listo o bloqueado).
Todos los procesos ligeros de un mismo proceso comparten la información del mismo. En concreto, comparten:
  • Espacio de memoria.
  • Variables globales.
  • Archivos abiertos.
  • Procesos hijos.
  • Temporizadores.
  • Señales y semáforos.
  • Contabilidad.
Es importante destacar que todos los procesos ligeros de un mismo proceso comparten el mismo espacio de direcciones de memoria, que incluye el código, los datos y las pilas de los diferentes procesos ligeros. Esto hace que no exista protección de memoria entre los procesos ligeros de un mismo proceso, algo que si ocurre con los procesos convencionales. El proceso ligero constituye la unidad ejecutable en Windows NT. La Figura representa de forma esquemática la estructura de un proceso de Windows NT con sus procesos ligeros.

Proceso ligero

El concepto de proceso engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecución.
Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros. Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución (una traza) a través de uno o más programas. Esta ejecución se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecución, listo, etc.) y una prioridad de expedición u origen. La unidad planificada y expedida por el sistema operativo es el proceso.
Dentro de un proceso puede haber uno o más hilos de control cada uno con:
*      Un estado de ejecución (en ejecución, listo, bloqueado).
*      Un contexto de procesador, que se salva cuando no esté ejecutándose.
*      Una pila de ejecución.
*      Algún almacenamiento estático para variables locales.
*      Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.
CARACTERISTICAS
Se comparten recursos. La compartición de la memoria permite a las hebras pares comunicarse sin usar ningún mecanismo de comunicación inter-proceso del SO. La conmutación de contexto es más rápida gracias al extenso compartir de recursos No hay protección entre las hebras. Una hebra puede escribir en la pila de otra hebra del mismo proceso Estado de los procesos ligeros.
Página: http//www.SistemasOperativos.com/unidad2S.O/fwlink/p/?Linkld=255141.

MuliteLevel Queve

diapositivas






Unidad 3 Administracion de memoria

Invetigacion


3.1.-Politica y filosofía
Filosofía
La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamaño. Cada localidad de almacenamiento tiene asignada una dirección que la identifica.
Una de las funciones básicas que debe implementar un SO es la Administración de la Memoria para tener un control sobre los lugares donde están almacenados los datos y procesos que actualmente se están utilizando.
Política
FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de procesos listos, si un proceso llega al procesador sale hasta que termine. La política FIFO actualmente no se usa como el esquema principal de un sistema, pero si por ejemplo cuando se usa una política de prioridades y hay procesos con la misma prioridad, a estos se les podría aplicar FIFO.
Ejemplos:
Descripción: http://sistemasoperativos.angelfire.com/html/imagenes/3.1_picture131_0000.jpg
Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se les asigna una cantidad limitada de tiempo (CUANTUM) en el procesador, si no termina en ese lapso se manda al final de la lista de procesos listos
Ejemplos:
Descripción: http://sistemasoperativos.angelfire.com/html/imagenes/3.1_picture231_0000.jpg
 SJF (Shortest job first - Prioridad del trabajo más corto): Se ejecuta primero el proceso en espera que tiene el menor tiempo estimado. SJF favorece a los procesos cortos, ya que los largos podrían llegar a rezagarse mucho tiempo e incluso nunca ejecutarse.
Ejemplos:
Descripción: http://sistemasoperativos.angelfire.com/html/imagenes/3.1_picture331_0000.jpg
HRN: (highest response ratio next? Prioridad de la tasa de respuesta más alta): Política no apropiativa que corrige el retraso excesivo de procesos grandes que produce el SJF, para así no caer en un favoritismo excesivo por los procesos cortos, lo logra usando una formula basada en el tiempo de espera y el tiempo de servicio, con lo cual la prioridad de cada trabajo no solo está en función del tiempo de servicio sino también del tiempo que ha esperado para ser atendido.
Ejemplos:
Descripción: http://sistemasoperativos.angelfire.com/html/imagenes/3.1_hrn_0000.jpg
3.2.-Memoria real
La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos.
Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso.
Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor.
Cuando no existe memoria virtual no hay diferenciación entre el espacio de direcciones y la memoria real; el espacio de direcciones que puede ser usado en los programas tiene idéntico tamaño al espacio de memoria real posible. Si se utiliza memoria virtual, el espacio de direcciones disponibles para los programas es aquel determinado por el tamaño de la memoria virtual implementada y no el espacio de direcciones provisto por la memoria real disponible (el espacio de la memoria virtual será mayor que el de la memoria real).
La organización y administración de la “memoria principal”, “memoria primaria” o “memoria real” de un sistema ha sido y es uno de los factores más importantes en el diseño de los S. O.

Administración de almacenamiento
Para que un sistema informático sea cómodo para los usuarios, el sistema operativo proporciona una lista lógica y uniforme del sistema de almacenamiento de la información... El sistema operativo abstrae las propiedades físicas de los dispositivos de almacenamiento y define una unidad de almacenamiento lógico, el archivo.
El sistema operativo asigna los archivos a los soportes físicos y accede a dichos archivos a través de los dispositivos de almacenamiento.
Almacenamiento del sistema de archivos
La gestión de archivos es uno de los componentes más visibles de un sistema operativo. Las computadoras pueden almacenar la información en diferentes tipos de medios físicos .Los discos magnéticos, discos ópticos y cintas magnéticas son habituales.
Un archivo es una colección de información relacionada definida por su creador. Comúnmente, los archivos representan programas (tanto en formato fuente como en objeto) y datos. Los archivos de datos pueden ser numéricos, alfabéticos, alfanuméricos o binarios. Los archivos pueden tener un formato libre (como, por ejemplo, los archivos de texto) o un formato rígido, como por ejemplo una serie de campos fijos.
Jerarquía
Los programas y datos tienen que estar en la memoria principal para poder ejecutarse ser referenciados.
Los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario.
El almacenamiento principal es más costoso y menor que el secundario pero de acceso más rápido.
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre niveles.
Un nivel adicional es el “cache” o memoria de alta velocidad, que posee las siguientes características:
  • Es más rápida y costosa que la memoria principal.
  • Impone al sistema un nivel más de traspaso:
    • Los programas son traspasados de la memoria principal al cache antes de su ejecución.
  • Los programas en la memoria cache ejecutan mucho más rápido que en la memoria principal.
  • Al utilizar memoria cache se espera que:
    • La sobrecarga que supone el traspaso de programas de un nivel de memoria a otro sea mucho menor que la mejora en el rendimiento obtenida por la posibilidad de una ejecución mucho más rápida en la cache.

Estrategias de Administración de Memoria
Se dividen en las siguientes categorías:
  • Estrategias de búsqueda:
    • Estrategias de búsqueda por demanda.
    • Estrategias de búsqueda anticipada.
  • Estrategias de colocación.
  • Estrategias de reposición.
Las “estrategias de búsqueda” están relacionadas con el hecho de cuando obtener el siguiente fragmento de programa o de datos para su inserción en la memoria principal.
En la “búsqueda por demanda” el siguiente fragmento de programa o de datos se carga al almacenamiento principal cuando algún programa en ejecución lo referencia.
Se considera que la “búsqueda anticipada” puede producir un mejor rendimiento del sistema.
Las “estrategias de colocación” están relacionadas con la determinación del lugar de la memoria donde se colocara (cargara) un programa nuevo.
Las “estrategias de reposición” están relacionadas con la determinación de que fragmento de programa o de datos desplazar para dar lugar a los programas nuevos.
Multiprogramación de partición fija, Partición Variable de intercambio de almacenamiento
Multiprogramación de Partición Fija.
Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a que:
  • Cuando ocurre una petición de e / s la CPU normalmente no puede continuar el proceso hasta que concluya la operación de e / s requerida.
Los periféricos de e / s frenan la ejecución de los procesos ya que comparativamente la CPU es varios ordenes de magnitud más rápida que los dispositivos de e / s.
  • Un trabajo en espera de e / s cederá la CPU a otro trabajo que esté listo para efectuar cómputos.
  • Existe paralelismo entre el procesamiento y la e / s.
  • Se incrementa la utilización de la CPU y la capacidad global de ejecución del sistema.
  • Es necesario que varios trabajos residan a la vez en la memoria principal.
Multiprogramación de Partición Fija: Traducción y Carga Absolutas.
Las “particiones” del almacenamiento principal:
  • Son de tamaño fijo.
  • Alojan un proceso cada una.
  • La CPU se cambia rápidamente entre los procesos creando la ilusión de simultaneidad.
Multiprogramación de Partición Fija: Traducción y Carga Relocalizables.
       Los compiladores, ensambladores y cargadores de relocalización (Ver figura 3.2.5.3)):
  • Se usan para producir programas relocalizables que puedan ser ejecutados en cualquier partición disponible de tamaño suficiente para aceptarlos.
  • Son más complejos que los absolutos.
  • Mejoran la utilización del almacenamiento.
3.3.- Organización de memoria virtual
Memoria Virtual
La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una máquina. Ésta ilusión permite que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria física.
La memoria virtual ha llegado a ser un componente esencial de la mayoría de los S.O actuales. Y como en un instante dado, en la memoria solo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria.
La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física
Descripción: http://sistemasoperativos.angelfire.com/html/imagenes/3.2.5_clip_image004.jpg.
Evaluación de las Organizaciones de Almacenamiento
Almacenamiento virtual "significa la capacidad de direccional un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de determinado sistema de computación”.
Los métodos más comunes de implementación son mediante:
  • Técnicas de “paginación”.
  • Técnicas de “segmentación”.
  • Una combinación de ambas técnicas.
Las direcciones generadas por los programas en su ejecución no son, necesariamente, aquellas contenidas en el almacenamiento primario (memoria real), ya que las direcciones virtuales suelen seleccionarse dentro de un número mucho mayor de direcciones que las disponibles dentro del almacenamiento primario.
La evolución en las organizaciones de almacenamiento puede resumirse como sigue:
  • Real:
    • Sistemas dedicados a un solo usuario.
  • Real:
    • Sistemas de multiprogramación en memoria real:
      • Multiprogramación en partición fija:
        • Absoluta.
        • Relocalizarla (reubicadle).
      • Multiprogramación en partición variable.
  • Virtual:
    • Multiprogramación en almacenamiento virtual:
      • Paginación pura.
      • Segmentación pura.
      • Combinación paginación / segmentación.

Paginación
El termino memoria virtual se asocia normalmente con sistemas que emplean paginación, aunque también se puede usar memoria virtual basada en la segmentación. El uso de la paginación en la memoria virtual fue presentado por primera vez en el computador Atlas.
Cada proceso tiene su propia tabla de páginas y cuando carga todas sus páginas en la o memoria principal. Puesto que solo algunas de las páginas de un proceso pueden estar en la memoria principal, se necesita un bit en cada entrada de la tabla para indicar si la página perteneciente está presente en la memoria principal o no. Si el bit indica que la pagina está en la memoria, la entrada incluye también el número de marco para esa página.
Otro bit de control necesario en la entrada de la tabla de páginas es el bit de modificación (M), para indicar si el contenido de la página correspondiente se ha alterado desde que la página se cargó en la memoria principal.
Con la memoria virtual, la CPU produce direcciones virtuales que son traducidas por una combinación de hardware y software a direcciones físicas, pues pueden ser utilizadas para acceder a memoria principal. Este proceso se denomina correspondencia de memoria o traducción de direcciones. Actualmente los dos niveles de la jerarquía de memoria controlados por la memoria virtual son las DRAM y los Discos magnéticos.
Segmentación
La segmentación permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaños, incluso de forma dinámica. Las referencias a la memoria constan de una dirección de la forma (número de segmento, desplazamiento).
Esta organización ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado:
1. Simplifica la gestión de estructuras de datos crecientes. Si el programador no conoce a priori cuan larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo a menos que se permitan tamaños de segmentos dinámicos. Con memoria virtual segmentada, a la estructura de datos se le puede asignar a su propio segmento y el S.O expandirá o reducirá el segmento cuando se necesite.
2. Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar o volver a montar el conjunto de programas por completo.
3. Se presta a la comparación entre procesos. Un programador puede situar un programa de utilidades o una tabla de datos en un segmento que puede ser referenciado por otros procesos.
4. Se presta a la protección. Puesto que un segmento puede ser construido para albergar un conjunto de procedimientos y datos bien definido, el programador o el administrador del sistema podrán asignar los permisos de acceso de la forma adecuada.
Sistema de pagmentación / segmentación  
La paginación y la segmentación puras son métodos de manejo de memoria bastante efectivos, aunque la mayoría de los sistemas operativos modernos implantan esquemas combinados, es decir, combinan la paginación y la segmentación.
Por cada segmento se tiene una dirección a una tabla de páginas. Cada tabla de páginas tiene las direcciones de las páginas que componen a un solo segmento. Por ejemplo, el segmento `A' puede estar formado por las paginas reales `a','b','c','p' y `x'. El segmento `B' puede estar compuesto de las paginas `f','g','j','w' y `z'.      Otro aspecto importante es la estrategia para cargar páginas (o segmentos) a la memoria RAM.
3.4.- Administración de memoria virtual
La clave del concepto de memoria (almacenamiento) virtual está en la disociación:
  • De las direcciones a las que hace referencia un programa.
  • De las direcciones disponibles en la memoria real (almacenamiento primario).
Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demás páginas que estarán disponibles cuando las requiera el proceso.
El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas páginas cuando hay espacio disponible Mientras el proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se puede reducir.
Estrategia de administración
Determinan cuando se debe de transferir una página o un segmento de almacenamiento secundario al primario. Las estrategias de obtención por demanda esperan a que un proceso en ejecución haga referencia a una página o un segmento antes de traer la página o el segmento de almacenamiento primario.
Estrategias de Colocación
 Determinan en qué lugar del almacenamiento primario se debe colocar una página o un segmento entrante. Una página entrante se puede colocar en cualquier marco de página disponible.
Estrategias de Reemplazo
Sirven para decidir cuál página o segmento se debe desplazar para dar espacio a una página o segmento entrante cuando está completamente ocupado el almacenamiento primario.
Técnicas de reemplazo de página
Las rutinas de administración de almacenamiento del Sistema operativo deben decidir que página del almacenamiento primario se debe desplazar para dejar espacio a una página entrante.
Principio de Optimalizad
Para obtener un rendimiento óptimo, la página que se debe reemplazar es aquella que tardara más tiempo en ser utilizada. Esta estrategia óptima de reemplazo se denomina OPT o MIN.
Reemplazo de Páginas aleatorio
Es una técnica sencilla. Todas las páginas que se encuentran en el almacenamiento principal tienen la misma probabilidad de ser elegidas para el reemplazo. Esta estrategia podría seleccionar cualquier página para ser reemplazada, incluyendo la siguiente página la que se hará referencia. Las decisiones de reemplazo aleatorio se dé páginas se pueden tomar rápidamente y con un número significativo de marcos de página. Es un esquema que casi no se utiliza por su enfoque aleatorio de acertar o errar.
Reemplazo de páginas de primeras entradas-primeras salidas (PEPS)
Cada página se registra en el instante que entro en el almacenamiento primario. Cuando se necesita reemplazar una página, se escoge la que ha permanecido en el almacenamiento durante el mayor tiempo.
Anomalías PEPS
Belady, Nelson y Shelder descubrieron que al utilizar el reemplazo de páginas PEPS, ciertos patrones de referencia a página originan más fallas de páginas cuando aumenta el número de marcos de página asignados a un proceso. Este fenómeno se denomina Anomalía PEPS o anomalía Belady. La columna de la izquierda indica el patrón de referencias a páginas de un proceso.
Paginación por demanda
Considere como podría cargarse un programa ejecutable desde el disco a la memoria. Una opción consiste encargar el programa completo en memoria física en el momento de ejecutar el programa. Sin embargo, esta técnica presenta el problema de que puede que no necesitemos inicialmente todo el programa en la memoria. Las páginas de un proceso deben cargarse por demanda. No se debe transferir ninguna página al almacenamiento secundario al primado hasta que un proceso en ejecución haga explícitamente referencia a ella.

Paginación anticipada
 En la paginación anticipada, el sistema operativo intenta predecir las páginas que necesitara un proceso y entonces carga dichas cuando hay espacio disponible.
Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demás páginas que estarán disponibles cuando las requiera el proceso.
El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas páginas cuando hay espacio disponible Mientras el proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se puede reducir.
Liberación de página
En la paginación anticipada, el sistema operativo intenta predecir las páginas que necesitara un proceso y entonces carga dichas cuando hay espacio disponible.
Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demás páginas que estarán disponibles cuando las requiera el proceso.
El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas páginas cuando hay espacio disponible Mientras el proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se puede reducir.

Tamaño de la página
Generalmente el almacenamiento real se divide en marcos o celdas de página de tamaño fijo.
Los interrogantes tienen que ver con el tamaño de las paginas, si todas las paginas tendrán igual tamaño, si en caso de utilizar páginas de diferente tamaño las paginas mayores deben ser o no múltiplos enteros de las menores, etc.
      Algunas consideraciones para determinar el tamaño de página son las siguientes:
  • Cuanto más pequeño sea el tamaño de una página, más páginas y marcos de páginas habrá y mayores serán las tablas de página.
El desperdicio de almacenamiento debido al tamaño excesivo de las tablas de página se llama “fragmentación de tablas”.
Esto indica la necesidad de páginas más grandes.
  • Con paginas grandes, grandes cantidades de información que nunca llegaría a ser referenciada, se paginaran hacia el almacenamiento primario
Esto indica la necesidad de páginas más pequeñas.