1. INTRODUCCIÓN
Actualmente, la mayoría de los sistemas operativos cuentan con una alta capacidad de memoria, ya que la memoria es uno de los principales recursos de una computadora, la cual debe ser administrada con total cuidado. De igual manera, las aplicaciones hoy en día utilizan altos requerimientos de memoria, lo que provoca escasez en la memoria de los sistemas que operan con multiprogramación.
En los sistemas operativos de las computadoras, la paginación de memoria se refiere a la división de los programas en pequeñas páginas, así mismo la memoria es dividida en partes del mismo tamaño que las páginas de los conocidos marcos de página. Para la paginación y segmentación puras se puede decir que el direccionamiento es bidimensional porque se necesitan dos valores para hallar la dirección real. Para el caso combinado, se tiene un direccionamiento tridimensional.
Existen 2 funciones de la paginación:
La segmentación permite al programador contemplar la memoria como si tuviera varios espacios de direcciones o segmentos. Las referencias a la memoria constan de una dirección de la forma (número de segmento, desplazamiento).
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 páginas reales a, b, c, p y x. El segmento B puede estar compuesto de las páginas f, g, j, w y z.
4. CONCLUSIÓN
En los sistemas operativos de las computadoras, la paginación de memoria se refiere a la división de los programas en pequeñas páginas, así mismo la memoria es dividida en partes del mismo tamaño que las páginas de los conocidos marcos de página. Para la paginación y segmentación puras se puede decir que el direccionamiento es bidimensional porque se necesitan dos valores para hallar la dirección real. Para el caso combinado, se tiene un direccionamiento tridimensional.
2. OBJETIVO
Estudiar el funcionamiento de la memoria virtual paginada y segmentada de un Sistema Operativo, y la necesidad de introducir estos mecanismos en un computador.
3. MARCO TEÓRICO
3.1. 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.
Las páginas sirven como unidad de almacenamiento de información y transferencia a la memoria principal y la memoria secundaria. Las páginas de un programa necesitan estar contiguamente en: memoria.
Las páginas sirven como unidad de almacenamiento de información y transferencia a la memoria principal y la memoria secundaria. Las páginas de un programa necesitan estar contiguamente en: memoria.
Figura 1. Paginación
Existen 2 funciones de la paginación:
- Llevar a cabo la transformación de una dirección virtual a física.
- Transferir, cuando haga falta, páginas de la memoria secundaria a la principal, y de la memoria principal a la secundaria cuando ya no sean necesarias.
3.1.1. CARACTERÍSTICAS DE LA PAGINACIÓN
- El espacio de direcciones lógico de un proceso puede ser no contiguo.
- Se divide la memoria física en bloques de tamaño fijo llamados marcos (frames).
- Se divide la memoria en bloques de tamaño llamados páginas.
- Se mantiene información en los marcos libres.
- Para correr un programa de n páginas de tamaño, se necesitan encontrar a n marcos y cargar el programa.
- Se establece una tabla de páginas para trasladar las direcciones lógicas a físicas.
- Se produce fragmentación interna.
3.1.2. VENTAJAS DE LA PAGINACIÓN
- Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargará bajo la solicitud.
- No es necesario que las páginas estén contiguas en memoria.
- Fácil control de todas las páginas, ya que tienen el mismo tamaño.
- Se elimina el problema de fragmentación externa.
- Se obtiene una alta velocidad de acceso a memoria gracias a la TDP.
3.1.3. DESVENTAJAS DE LA PAGINACIÓN
- Problema importante "Superfluity".
- El costo del Hardware y el Software se incrementa.
- Consumen más recursos de memoria.
- Aparece el problema de Fragmentación Interna.
3.2. SEGMENTACIÓN
La segmentación de memoria es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica, llevándose a cabo una agrupación lógica de la información en bloques de tamaño variable denominados segmentos, es decir que los segmentos pueden ser de distintos tamaños, incluso de forma dinámica.La segmentación permite al programador contemplar la memoria como si tuviera varios espacios de direcciones o segmentos. Las referencias a la memoria constan de una dirección de la forma (número de segmento, desplazamiento).
Figura 2. Segmentación
3.2.1. VENTAJAS DE LA SEGMENTACIÓN
- El programador conoce las unidades lógicas de su programa.
- Es posible compilar módulos separados como segmentos.
- Facilidad de modificación de los módulos.
- El cambio dentro de un módulo no afecta al resto de los módulos.
3.2.2. DESVENTAJAS DE LA SEGMENTACIÓN
- Se complica el manejo de memoria virtual.
- El costo del Hardware y el Software se incrementa.
- Mayor consumo de recursos: memoria, tiempo de CPU, etc.
- Aparece el problema de Fragmentación Externa.
3.4. TABLA DE PROCESOS (TP)
Un sistema debe contar con una tabla de procesos (TP). Por cada renglón de esa tabla se tiene un número de proceso y una dirección a una tabla de segmentos. Es decir, cada proceso tiene una tabla de segmentos. Cuando un proceso hace alguna referencia a memoria, se consulta TP para encontrar la tabla de segmentos de ese proceso. En cada tabla de segmentos de proceso (TSP) se tienen los números de los segmentos que componen a ese proceso.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 páginas reales a, b, c, p y x. El segmento B puede estar compuesto de las páginas f, g, j, w y z.
Figura 3. Estructura de Tablas para un Sistema de Paginación y Segmentación
Otro aspecto importante es la estrategia para cargar páginas (o segmentos) a la memoria RAM. Se usan más comúnmente dos estrategias:
- Cargado de páginas por demanda.- Consiste en que las páginas solamente son llevadas a RAM si fueron solicitadas, es decir, si se hizo referencia a una dirección que cae dentro de ellas.
- Cargado de páginas anticipada.- Consiste en tratar de adivinar qué páginas serán solicitadas en el futuro inmediato y cargarlas de antemano, para que cuando se pidan ya no ocurran fallos de página.
Cuando se hace referencia a una dirección cuya página no está en RAM, se provoca fallo de página y se carga esa página junto con algunas páginas adyacentes. En este caso la página solicitada se cargará por demanda y las adyacentes se cargarán por anticipación.
4. CONCLUSIÓN
La paginación y la segmentación son métodos de manejo de memoria bastante efectivos, y en la actualidad la mayoría de los sistemas operativos combinan la paginación y la segmentación, debido a que de esta manera se aprovechan los conceptos de la división lógica de los programas (segmentos) con la de las páginas.
5. BIBLIOGRAFÍA
Cedeño, K.; Guzmán, M.; Muñoz, J. 2011. Paginación y Segmentación de Memoria. Instituto Tecnológico de Apizaco. (En línea). Consultado, 30 de enero de 2016. Disponible en: http://es.slideshare.net/menes21/paginacion-y-segmentacion-de-memoria
Martínez, M. 2011. Administración de Memoria: Sistema de Paginación/Segmentación. Instituto Tecnológico de Veracruz. (En línea). Consultado, 30 de enero de 2016. Disponible en: http://sistemasoperativos.angelfire.com/html/3.3.4.html
Martínez, M. 2011. Administración de Memoria: Sistema de Paginación/Segmentación. Instituto Tecnológico de Veracruz. (En línea). Consultado, 30 de enero de 2016. Disponible en: http://sistemasoperativos.angelfire.com/html/3.3.4.html
Tanenbaum, A. 2009. Sistemas Operativos Modernos. 3 ed. México. DF. PEARSON EDUCACIÓN.