SlideShare una empresa de Scribd logo
1 de 98
Descargar para leer sin conexión
AREA DE LA ENERGÍA LAS 
INDUSTRIAS Y LOS RECURSOS 
NATURALES NO RENOVABLES 
CARRERA DE INGENIERIA EN SISTEMAS 
SISTEMAS OPERATIVOS 
Docente: 
Email: fpajila@unl.edu.ec 
Periodo: 
Ing. Freddy Patricio Ajila Z. 
septiembre 2013 – febrero 2014
Segunda Parte: 
Gestión de 
Memoria
OBJETIVO 
1. Analizar las estrategias con las que cuenta el 
sistema operativo para compartir la memoria 
entre los procesos.
Contenido 
1. Introducción 
2. Asignación de espacio contiguo 
– Asignación estática de memoria particionada 
– Asignación dinámica de memoria particionada 
– Protección y uso compartido 
3. Asignación de espacio no contiguo 
– Segmentación 
– Paginación 
– Segmentación con paginación 
4. Gestión de memoria virtual 
– Introducción 
– Paginación por demanda 
– Algoritmos de reemplazo de páginas 
– Algoritmos de asignación de marcos de página
1. Introducción 
La CPU es compartida por un conjunto de procesos y 
esta tarea es controlada por el planificador de procesos, 
pero para mejorar el grado de utilización del procesador 
y la velocidad de respuesta a los usuarios es necesario 
mantener varios procesos en memoria y para ello se 
nececita gestionar de forma eficiente el espacio de 
memoria.
Introducción 
Para lograrlo el S.O utiliza técnicas de gestion de 
memoria que entre las más utilizadas están la 
paginación y la segmentación. 
C/U de las técnicas tiene sus propias ventajas y 
desventajas y para ejecutarse dependen de muchos 
factores, en especial del hardware del sistema (CPU).
Fundamentos 
La CPU toma inst de memoria de acuerdo con el 
valor del contador del programa PC. 
Las inst pueden provocar otras operaciones de 
lectura o almace en dir específicas de memoria. Por 
ejemplo: Ciclo Inst (Extraer Inst + Decodifi + 
Operandos + ejecución = almacenamiento 
resultados)
Un programa debe cargarse en memoria desde disco y 
colocarse dentro de un proceso para que se ejecute. 
La unidad de memoria tan solo ve un flujo de direciones 
de memoria no como se generan ni tampoco para que se 
utilizan las inst o datos. 
Por lo tanto ignoramos como generar dir de memoria y 
nos centramos en la secuencia de dir de memoria 
generadas por el programa en ejecución
Hardware Básico 
- La memoria principal y los registros son los únicos dispositivos 
de almacenamiento a los que puede acceder desde la CPU 
directamente 
• 
- Los datos siempre deben estar en memoria para que la CPU 
pueda pueda operar con ellos 
•- El acceso a registro es muy rápido; supone un ciclo de CPU (o 
menos) 
- El acceso a memoria principal puede durar varios ciclos del 
reloj del procesador para completarse y x tanto el procesador 
tiene que detenerse ya q nodispone de los datos para completar 
la inst que está ejecutando 
- El remedio son las memorias caché se colocan entre la 
memoria principal y la CPU para resolver la diferencia de veloc.
Procesamiento de un programa de usuario
•­Algo 
fundamental que se debe garantizar 
es que no se pueda acceder a espacios de 
memoria que no corresponden, ya sea del 
Sistema Operativo como de otros procesos. 
Este tipo de protección debe ser 
proporcionada por el hardware. 
­Para 
hacer esto se debe determinar el 
rango de direcciones legales a las que el 
proceso puede acceder.
Estas direcciones están dadas a través de dos 
registros: Registro base y límite 
Registro base.­contiene 
la dirección de la 
memoria física desde donde empieza el proceso. 
Registro límite.­especifica 
el rango de 
direcciones utilizadas por el proceso. 
Esto quiere decir que si un proceso empieza en 
la dirección 3000 ese es su registro base y 
si el límite es 325, entonces solo podrá 
acceder ese proceso a las direcciones 
comprendidas entre 3000 y 3325 incluyendo el 
extremo inferior.
Un registro base y un registro límite definen un espacio lógico de direcciones
Unidad de Gestión de Memoria (MMU) 
La MMU (Memory-Management Unit) es un 
dispositivo hardware que transforma las 
direcciones virtuales en físicas 
Con la MMU el valor del registro de 
reubicación (registro base) es añadido a 
cada dirección generada por un proceso de 
usuario en el momento en que es enviada a 
la memoria 
El programa de usuario trabaja con 
direcciones lógicas; nunca ve las direcciones 
físicas reales
Protección de espacio de memoria 
La protección de la memoria en este caso 
consiste en que el hardware de la CPU compare 
las direcciones generadas, para saber si se 
encuentran dentro del rango establecido para 
ese proceso, si este acceso es legal no existe 
problema alguno, pero si es ilegal entonces se 
genera una interrupción lo que provoca una 
llamada al sistema para que el sistema 
operativo conozca que se está haciendo un 
acceso a una dirección incorrecta y la 
repuesta del SO es generar un error de 
direccionamiento.
Protección hardware de las direciones, utilizando un registro base y un registro límite.
Estos registros solo pueden ser cargados por 
el S.O ya que las instrucciones privilegiadas 
solo se pueden ser ejecutadas en modo kernel. 
El S.O que se ejecuta en modo kernel tiene 
acceso no restringido a la memoria del S.O 
como de los usuarios. 
Lo anterior permite al S.O cargar los prog de 
usuarios en la memoria de los usuarios y 
volcar estos programas en caso de error.
Reasignación de direciones 
Normalmente los programas se encuentran 
almacenados en Disco cuando un usuario los invoca 
o el mismo sistema operativo lo hace, estos se 
carga en memoria, para luego ejecutarse en la CPU 
instrucción por instrucción. Estos procesos que 
se encuentran en el disco forman la cola de 
entrada o cola de trabajo. 
Cuando el proceso termina su ejecución, se 
produce una llamada al sistema para que el SO 
conozca sobre esta terminación y actualice sus 
tablas de datos en las cuales posee info sobre 
los espacios de memoria que están siendo 
utilizados y por quién están siendo utilizados, 
obviamente el resto de espacios serán los que 
estén disponibles.
Recuerde que la asignación de memoria a un proceso no 
es secuencial si no más bien aleatoria, eso quiere 
decir que en cualquier espacio de memoria que esté 
disponible y este sea lo suficiente para albergar al 
proceso, este se alojará. 
• 
•A medida que se ejecute el proceso, este accesa a 
memoria para obtener instruciones y datos 
• 
En el caso de un proceso de usuario se puede 
reasignar las direcciones, esto implica que se cambie 
la dirección establecida al principio, por otra. La 
reasignación de las direcciones puede darse en 
cualquiera de los pasos: 
Tiempo de compilación. 
Tiempo de carga. 
Tiempo de ejecución.
Espacio de direciones lógico y físico 
Dirección lógica.- es una dirección generada por la 
CPU. 
Dirección física.- es una dirección vista en la memoria 
principal. 
Los métodos de reasignación en tiempo de compilación 
y en tiempo de carga generan direcciones lógicas y 
físicas iguales. En cambio el esquema de reasignación 
de direcciones en tiempo de ejecución hace que las 
direcciones físicas y lógicas difieran, es por eso que en 
esta parte analizaremos este caso.
El conjunto de todas las direcciones lógicas 
generadas por un programa se denomina espacio 
de direcciones lógicas, y al conjunto de todas 
las direcciones físicas correspondientes a 
esas direcciones lógicas, se las denomina 
espacio de direcciones físicas. 
A las direcciones lógicas también se les 
denomina direcciones virtuales. 
El cambio de direcciones virtuales a físicas 
es realizada por un dispositivo HW denominado 
Unidad de Administración de Memoria (MMU)
En la MMU se realiza la suma de la dirección 
virtual generada por la CPU y el Registro base 
que ahora le vamos a llamar registro de 
reubicación, esta operación nos da como resultado 
un acceso válido a un espacio de memoria física 
ocupada por el proceso que actualmente se 
encuentra en la CPU ejecutándose. 
Al cambio de direcciones lógicas a físicas 
también se le denomina Mapeo de direcciones 
lógicas. 
Recuerde que cualquier acceso a un espacio de 
memoria que no se encuentre dentro del rango 
establecido producirá un error de 
direccionamiento.
Reubicación dinámica mediante registro
Carga Dinámica 
Para que un programa se ejecute sabemos que 
debe estar cargado en memoria, en consecuencia 
entonces el tamaño de un proceso está limitado 
por el tamaño de la memoria física. 
¿Qué pasa si no hay tamaño suficiente de 
memoria para satisfacer una solicitud de un 
proceso? 
Para mejorar la utilización del espacio en 
memoria principal se puede utilizar el 
mecanismo de carga dinámica. 
Con la carga dinámica, una rutina no se carga 
hasta que se la invoca, todas las rutinas se 
mantienen en disco
La idea es mejorar la utilización del espacio 
de memoria con lo que la utilización de este 
método garantizaría que tenga más espacio en 
memoria para satisfacer una solicitud de otro 
proceso que quiera ejecutarse, por lo que solo 
se cargaría en memoria la instrucción que se 
necesita, eso si se debe estar actualizando 
cada vez la tabla de direcciones del programa 
en memoria 
La ventaja de este método, es que una rutina o 
instrucción no utilizada no se cargará nunca 
en memoria.
Intercambio 
Un proceso puede ser retirado temporalmente de la memoria a algún 
almacenamiento auxiliar; más tarde será incorporado de nuevo a la memoria 
para que continúe su ejecución 
•Por ejemplo En un entorno de multiprogramación al usar el algoritmo de 
planificación basado en Round Robin, cuando se termina el quantun de tiempo 
el gestor de memoria retira el proceso y en el espacio que queda es cargado 
otro proceso. Mientras esto ocurre el planificador de la CPU, asigna un cuanto de 
tiempo a otro proceso que ya está en memoria. 
• 
En los algoritmos con prioridad el gestor de memoria puede descargar un 
proceso de menor prioridad y cargar un proceso de prioridad mayor; de tal 
manera que asigna un espacio de memoria acorde a lo solicitado por el proceso 
de mayor prioridad 
• 
El SO mantiene una cola de listos para los procesos intercambiados 
que pueden ejecutarse
Vista esquemática del intercambio
Particionamiento fijo o estático
Particionamiento fijo o estático 
Con esta técnica es que cada partición permite cargar un 
proceso. 
Cada partición permite ejecutar un proceso de forma 
independiente ya que todas las instruciones y datos se 
encuentran dentro de la partición. 
Un proceso no puede invadir el espacio de direcciones de 
otro proceso que se encuentra en otra partición, hay 
esquemas que permiten proteger el espacio de direciones de 
cada partición. 
Con esta técnica existe mucho desperdicio de memoria ya 
que el tamaño de la partición suele ser mayor que el tamaño 
del proceso.
Particionamiento fijo o estático
Particionamiento fijo o estático 
Con el esque de cola única; el proceso completo debe 
cargarse en cualquier partición donde quepa. 
Con el esquema de cola única; surge la pregunta ¿Cual de las 
particiones libres es ideal para cargar el proceso?(Tecnicas 
primer ajuste, mejor ajuste y peor ajuste). 
Con el esquema de varias colas (una por partición); los 
procesos están diseñados para ejecutarse en dicha 
partición. 
El problema que existe es el desperdicio de memoria que 
queda al final de cada partición (Fragmentación Interna) ya 
que no se puede garantizar que el proceso quepa 
exactamente en la partición.
Fragmentación Interna 
Ala diferencia entre el tamaño de la partición y el tamaño del 
proceso se conoce como fragmentación interna.
Fragmentación Externa 
Se produce cuando un proceso por su tamaño no puede ser 
cargado en ninguna de las particiones libres y por lo tanto existe 
desperdicio de particiones completas, a lo que se conoce como 
fragmentación externa. 
La fragmentación externa se soluciona por medio de la 
compactación 
Compactación: Consiste en mover las particiones de memoria 
asignadas para colocar toda la memoria libre en un bloque 
grande y contiguo
Particionamiento variable o dinámico 
●Este equema fué diseñado para solucionar el problema de particionamiento fijo, 
ya que conforme llegan los procesos se les asisgna la cantidad exacta de 
memoria que necesitan. 
● Cuando llega un proceso se le asigna una partición lo suficientemente grande 
donde quepa el proceso. 
– Con el espacio sobrante se crea una nueva partición libre (hueco) 
● En este tipo de asignación las consideraciones de protección son las mismas 
que en la asignación estática
Particionamiento variable o dinámico 
Esquema con una sola partición grande para cargar a los 
procesos. El S.O lleva una tabla de registro de las particiones 
Libres y sus tamaños
Ejemplo de compactación
Técnicas de asignación de particiones 
En estos dos esquemas de particionamiento; fijo y variable es 
importante saber en que partición se va a colocar el proceso que va 
ha ser cargado. Los siguientes algoritos se aplican a los dos 
esquemas de particionamiento fijo y variable. 
Primer ajuste (First-fit): Colocar el proceso en el primer 
hueco libre donde quepa el proceso. 
Mejor ajuste (Best-fit): Se busca de entre las particiones 
libres la que mejor se ajuste al tamaño del proceso o la más 
adecuada procurando que la fragmentación interna sea lo 
mas pequeña posible. 
Peor ajuste (Worst-fit): Se busca de entre las particiones 
libres la particion más grande posible, usando la lógica de 
que la fragmentación interna sea lo suficientemente grande 
para cargar otro proceso 
Los métodos de primer y mejor ajuste son mejores que el peor ajuste en términos de 
velocidad y aprovechamiento de la memoria
Ejemplo de los algoritmos de primer, mejor y peor ajuste
Recomendaciones 
Los espacios libres en memoria no están ordenados de una manera 
específica, y en algunas ocasiones es conveniente ordenarla: 
En el algoritmo de mejor ajuste al tener ordenado las particiones de 
menor a mayor, en el primer hueco que quepa el proceso se lo asignará, 
teniendo un menor espacio de fragmentación interna. 
En el algoritmo de peor ajuste es conveniente ordenarlo de mayor a 
menor, ya que si en el primer hueco no cabe el proceso, se deduce que 
en este momento no es posible cargar dicho proceso 
Se debe tomar en cuenta: El cómo tiene organizada un S.O. su lista de 
huecos y el cómo se asigna los huecos a los procesos, son elementos a 
tomar en cuenta cuando se analizan las características de un S.O. 
particular.
3. Asignación de espacio no contiguo o 
Almacenamiento Disperso 
a. Paginación 
b. Segmentación 
c. Segmentación con paginación
Paginación 
Es un esquema de gestión de memoria que permite que el espacio de 
direcciones físicas de un proceso no sea contiguo. 
El método básico de la paginación consiste en descomponer la 
memoria física en una serie de bloques de tamaño fijo denominado 
marcos de pagina y descomponer la memoria lógica en en bloques del 
mismo tamaño denominado páginas. 
Cuando se carga un proceso sus páginas se cargan desde el disco 
duro en los marcos de memoria disponibles. 
La porción de disco conocida como memoria auxiliar está dividida en 
bloques de tamaño fijo del mismo tamaño que los marcos de memoria. 
Toda dirección generada por la CPU está dividida en dos partes: un 
número de página (p) y un desplazamiento (d), El número de página 
se utiliza como índice para la tabla de páginas.
Esquema del hardware de Paginación
Paginación 
La tabla de páginas contiene la dirección báse de cada página 
en memoria física que se combina con el desplazamiento de 
página para obtener la dirección de memoria física. 
Modelo de paginación de la memoria lógica y física
Paginación 
El tamaño de página es una potencia de 2, que varía entre 512 Bytes 
y 16 Mbytes por página 
número de página desplazamiento 
La estructura de una dirección lógica es: 
p d 
m - n n 
Donde p es un índice de la tabla de páginas y d es el 
desplazamiento dentro de la página. 
Por ej: El tamaño de las paginas es de 4 bytes y la memoria física 
es de 32 bytes (8 páginas). La dir lógica 0 representa la pagina 0 
y se encuentra en el marco 5, por lo tanto la dir lógica 0 se 
corresponde con la dir física 20. Esto se calcula de la sig manera: 
Dir física = (Marco de página * támaño de pagina)+desplazamiento 
Dir lógica 0 coresponde con dir física 20 ­­­> 
20 = (5*4)+ 0 
Dir lógica 3 coresponde con dir física 23 ­­­> 
23 = (5*4)+ 3 
Dir lógica 4 coresponde con dir física 24 ­­­> 
24 = (6*4)+ 0 
Dir lógica 13 coresponde con dir física 20 ­­­> 
9 = (2*4)+ 1
Ejemplo de paginación para una memoria de 32 bytes con páginas de 4 bytes 
0123 
abc 
d 
4567 
ef 
gh 
891 
0 
11 
ij 
kl 
12 
13 
14 
15 
mnop 
Memoria lógica 
0 5 
1 6 
2 1 
3 2 
Tabla de páginas 
0 
1 
2 
3 
0 
4 ij 
kl 
8 mnop 
12 
16 
20 abc 
d 
24 ef 
gh 
28 
0 
1 
2 
3 
4 
5 
6 
7 
Memoria Fisica 
Num Pag 
Marco Pag
Paginación 
Cuando usamos el esquema de paginación no tenemos 
fragmentación externa. 
Pero si puede existir en cierto grado de fragmentación 
interna ya que el ultimo marco de pagina asignado puede 
no estar completamnte lleno. Por ejemplo: 
Si el tamaño de pagina es 2048 byes y el proceso es de 
72226 bytes nececitará: 
Num paginas = 72226 / 2048 = 35 paginas completas 
Porcion de página = 72226 ­( 
35 * 2048) = 546 bytes 
Fragmnetación Interna = 2048 – 546 = 1052 bytes
Paginación 
Marcos Libres 
Cuando llega un proceso al sistema para ejecutarlo, 
se examina su tamaño expresado en páginas, donde cada 
pagina necitará un marco. Por lo tanto si el proceso 
requiere n paginas deberán haber almenos n marcos 
libres en memoria. Si hay n marcos libres se los 
asignara al proceso que acaba de llegar. La primera 
página del proceso se carga en uno de los marcos 
asignados y se incluye el numero de marco en la 
tabla de páginas para ese proceso. La siguiente 
pagina se carga en otro marco y su numero de marco se 
guarda en la tabla de páginas y así sucecivamente. 
Ver siguiente diagrama:
Esquema de marcos libres 
Antes de la asignación Después de la asignación
Paginación 
Protección 
La protección de la memoria en un entorno paginado se implementa 
mediante una serie de bits de protección asociados con cada marco, 
estos bits se mantienen en la tabla de páginas. 
 Al mismo tiempo que se clacula la dir física, puede comprobarse los 
bits de protección para verificar que no se esté haciendo ninguna 
escritura en una página de solo lectura. 
 Generalmente se asocia un bit de validez con cada entrada de la tabla 
de páginas de tal forma que cuando un bit es: 
“válido” indica que la página asociada está en el espacio de direcciones 
lógico del proceso, y por tanto es legal el acceso. 
 Un bit “inválido” indica que la página no está en el espacio de 
direcciones lógico del proceso.
Esquema de un bit de validez en una tabla de páginas
Paginación 
Páginas Compartidas 
Una ventaja de la paginación es la posibilidad de compartir código común en un 
entrono de tiempo compartido. 
Para ello se comparten los marcos de memoria; donde el marco compartido debe 
estar asociado a una página en la tabla de páginas de cada proceso 
Código compartido 
Los procesos comparten una copia de código reentrante (o código puro) no 
modificable o sólo lectura (ej., editores de texto, compiladores) estos pueden estar 
en varias páginas compartidas para cada proceso 
Los datos privados de cada proceso se encuentran en páginas no compartidas
EJEMPLO DE PÁGINAS COMPARTIDAS (Un editor de 3 páginas 
de código puro y una página para espacio de datos)
Paginación 
Ejercicios 
1. Empleando un tamaño de página (tp) de 8 bytes y una memoria física (mf) de 
64 bytes, indique el número de páginas y calcule la direción física de memoria 
para los datos indicados en el diagrama. Los datos son 3, 9, 14, 18 y 28. 
0 3 
1 4 
2 2 
3 1 
Tabla de páginas 
Datos Num Pag 
01234567 
0 
891 
0 
11 
12 
13 
14 
15 
1 
16 
17 
18 
19 
20 
21 
22 
23 
2 
24 
25 
26 
27 
28 
29 
30 
31 
3 
Memoria lógica 
Num Pag 
Marco Pag
Solución ejercicio 1
Paginación 
Ejercicios 
2. Empleando un tamaño de página (tp) de 4 bytes y una memoria física (mf) de 
16 bytes, indique el número de páginas y calcule la direción de la memoria física 
para los datos indicados en el diagrama. Los datos son a, f, l, o. 
Bit Val- Inv 
0 3 v 
1 4 i 
2 2 v 
3 5 i 
Tabla de páginas 
Datos Num Pag 
abc 
d 
0 
ef 
gh 
1 
Ij 
kl 
2 
mnop 
3 
Memoria lógica 
Num Pag 
Marco Pag
Solución ejercicio 2
Segmentación 
 La segmentación es un esquema de gestión de memoria que apoya la visión 
que el usuario tiene de la memoria, aquí los espacios lógicos es una colección de 
segmentos, cada segmento tiene un nombre y una longitud(desplazamiento). 
 Cuando el programa se compila, el compilador automaticamente construye los 
segmentos. Un segmento es una unidad lógica tal como: 
programa principal, 
procedimiento, 
función, 
método, 
objeto, 
variables locales, variables globales, 
bloque común, 
pila, 
tabla de símbolos, arrays
1.4 SEGMENTACIÓN 
Programa Visto por un Usuario
Segmentación 
 Por ejemplo: 
Uncompilador C, podría crear elementos separados para los 
siguientes elementos: 
1. El código 
2. Las variables 
3. El cúmulo de memoria a partir del cual se asigna la memoria 
4. Las pilas utilizadas por cada hebra de ejecución 
5. La biblioteca de C estandar
1.4 SEGMENTACIÓN 
Vista Lógica de la Segmentación 
1 
3 
2 
4 
Espacio de usuario 
1 
4 
2 
3 
Espacio de memoria física
Elementos de la sementación 
Una dirección lógica consiste en un par: 
<número de segmento, desplazamiento> 
Tabla de segmentos – contiene información 
sobre la ubicación de los segmentos en 
memoria; cada entrada tiene: 
– base – contiene la dirección física en la 
que comienza el segmento 
– límite – especifica la longitud del segmento
Hardware de segmentación
1.4 SEGMENTACIÓN 
Ejemplo de Segmentación
Segmentación con paginación 
La paginación y la segmentación se pueden combinar 
en la segmentación con paginación 
En este esquema de gestión de memoria los segmentos 
se paginan 
– Se apoya la visión de la memoria que tiene el 
usuario 
– Se resuelve el problema de la asignación dinámica 
Es necesario una tabla de segmentos y una tabla de 
páginas por cada segmento 
– La traducción de direcciones es más compleja y 
puede requerir un mayor número de accesos a 
memoria en el peor caso
Segmentación con paginación 
El espacio de direcciones de un usuario se divide en varios 
segmentos según el criterio del programador. 
Cada segmento se vuelve a dividir en varias páginas de tamaño fijo, 
que tienen la misma longitud que un marco de memoria principal. Si el 
segmento tiene menor longitud que la página, el segmento ocupará 
sólo una página. 
Desde el punto de vista del programador, una dirección lógica 
también está formada por un número de segmento y un 
desplazamiento en el segmento. 
Desde el punto de vista del sistema, el desplazamiento del segmento 
se ve como un número de página dentro del segmento y un 
desplazamiento dentro de la página. 
Cada proceso tiene una tabla de segmentos y varias tablas de 
páginas (una por cada segmento).
Segmentación con paginación 
Ejemplo
4. Gestión de memoria virtual 
Es una técnica que permite al S.O. la ejecución de procesos que no 
se encuentran completamente cargados en memoria. Una de las 
principales ventajas de este esquema es que los programas pueden 
tener un tamaño mayor que la propia memoria física.
Fundamentos 
 Sólo partes del proceso necesitan estar en memoria para su ejecución. 
 Una ventaja es que el espacio de direcciones lógicas puede ser mayor 
que el espacio de direcciones físicas. 
 Facilita la tarea de programación porque el programador ya no se debe 
preocupar por la cantidad de memoria física disponible. 
 Se podrían ejecutar más programas al mismo tiempo aprovechando el 
uso del procesador sin incrementar el tiempo de respuesta. 
 Permite compartir espacios de direcciones entre procesos. 
 Se requiere mecanismos para traer paginas de disco a memoria y 
retirar paginas de memoria para pasrlas a disco. 
La memoria virtual suele implementarse usando esquemas como: 
– Paginación por demanda 
– Segmentación por demanda
Administración de memoria virtual 
 Políticas de carga (Fetch). 
➔ Cuando traer una pagina/segmento a memoria 
 Politicas de colocación (Placement). 
➔ Donde colocar una pagina/segmento a memoria 
 Politicas de reemplazo (Replacement). 
➔ Si la memoria principal está llena, se debe decidir cual 
página/segmento se debe reemplazar
Políticas de carga 
Paginación por demenada 
La memoria virtual basada en paginación por demanda solo se 
cargan las paginas que sean necesarias de tal forma que las paginas 
no necesarias jamas se cargan a memoria. 
 Se requiere menos memoria 
 La respuesta es más rápida 
 Puede haber más procesos en memoria 
La herramienta que usa el S.O para traer una página a memoria o 
llevarla a disco se llama Paginador conocida tambien como 
intercambiador perezoso.
Esquema memoria paginada a disco
¿Dentro del esquema de paginación, que pasa si quiere 
accesar a una página que no está en memoria? 
 La respuesta es que ocurre un fallo de página 
 Un fallo de pagina sucede cuando un proceso en ejecución 
intenta accesar a una dirección lógica de una página que no 
está cargada en memoria 
 Si ocurre un fallo de página se provoca una interrupción al S.O 
de fallo de página para que se encargue de subir la pagina 
solicitada. 
 Cuando se carga la página el bit de estado en la tabla de 
paginas cambia a 1 indicando que la pagina está en memoria.
Fallo de página 
Bit de estado 
En cada entrada de la tabla de páginas hay un bit de validez 
(v/1 Þ en memoria, i/0 Þ no en memoria o acceso ilegal) 
Al comienzo el bit de validez es inicializado a i en todas las entradas 
Ejemplo de tabla de páginas: 
Durante la traducción de direcciones, si el bit de validez de la 
entrada de la tabla de páginas es i Þ fallo de página
Esquema de una tabla de páginas cuando algunas páginas no se encuentran en memoria principal
¿Que hace el S.O cuando existe un fallo de página? 
Cuando existe un fallo de pagina el procedimiento a seguir es 
sencillo: 
1. Se comprueba en la tabla de páginas del proceso (PCB) si la 
referencia era un acceso a memoria válido o invalido. 
2. Si la referencia era inválida, se aborta el proceso. Si la referencia 
es válida y la pagina no está en memoria, se la debe cargar. 
3. Buscamos un marco libre 
4. Cargamos la página desde disco al marco asignado 
5. Completada la carga, modificamos la tabla de paginas cambiando el 
bit a válido. 
6. Reinicia la instrucción que fué interrumpida o causó el fallo de 
página
Esquema de los pasos para tratar un fallo de página
Políticas de colocación 
Para paginación es trivial, ya que todos los 
marcos de pagina son iguales y por lo tanto la 
pagina podría ser colocada en cualquiera de ellos. 
Para segmentación y debido a que sus 
segmentos son de tamaño variable se debe utilizar 
mecanismos o algoritmos de colocación como: 
 Primer Ajuste 
 Mejor Ajuste 
 Peor Ajuste
¿Que pasa si no existe un marco de página libre? 
 La respuesta es que se debe seguir alguna política 
de reemplazo. 
 Mediante algun algoritmo el S.O decide que página 
retirar de memoria para dejar el marco libre. 
 Es necesario que el algoritmo que se use para el 
reemplazo de páginas no genere muchos fallos de 
pa ina para futuras referencias, ǵ osea debe retirar la 
pagina adecuada.
Políticas de reemplazo 
: 
 Aleatorio (RANDOM) 
 Mejor OPTIMA (OPT) 
 Primera en llegar, primera en salir (FIFO) 
 Menos recientemente utilizada (LRU) 
 Aproximaciones LRU 
 Referencia bit, segunda oportunidad, reloj 
 Algoritmos basados en contadores 
 Menos frecuentemente utilizada (LFU) 
 Mas frecuentemente utilizada (MFU)
Conceptos clave 
String de referencia 
Es el registro de las páginas que han sido 
accesadas por un proceso. 
 Por ejemplo el PRS del proceso A es: 
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 
La secuencia signifinicca que el proceso en 
ejecución accesó a la pag 1, luego a la 2, 
luego a la 3 y asi susecivamente.
Conceptos clave 
Rendimiento de estrategias de 
reemplazo 
 Significa que cualquier estrategia de reempazo 
debe permitir el mejor rendimiento para la ejecución 
del proceso. 
 EL rendimiento está dado por 
R = 1 – F 
donde: 
F = # de fallos de pagina / # total de referencias 
 Cualquier estrategia que se aplique dependera 
PRS que indica el historial de acceso a las 
paginas y esto influirá directamente sobre el 
rendimiento.
Algoritmo Optimo 
 Es el mejor que existe 
 Consiste en reemplazar la página que no 
va ha ser utilizada por el período más largo 
de tiempo. 
 Significa que cuando se llenó la memoria, 
se debe tomar una decisión en base al 
historial del PRS con el fin escoger la pagina 
más distante o la que menos voy accesar 
más adelante.
Ejemlpo con tres marcos
Respuesta
Algoritmo FIFO 
 Este algorimo tomo en cuenta el orden de 
llegada por lo tanto la primera pagina en 
llegar es la primera página en salir. 
 Ejemplo con 3 marcos libres
Respuesta
Algoritmo LRU (Menos 
recientemente utilizada) 
 Este algorimo se b asa en el tiempo de 
ejecución, ya que analiza desde el tiempo 
actual hacia atrás cual es la página mas 
lejana o la que menos recientemente he 
utilizado. 
 Ejemplo con 3 marcos libres
Respuesta
Ejercicio 
 Usar FIFO y LRU para 4 marcos de página
Respuesta FIFO
Respuesta LRU
4. Asignación de marcos libres 
n ¿Cuantos marcos libres asiganamos a cada proceso? 
n La respuesta es los marcos necesarios de acuerdo a las 
nececidades de los procesos. 
n Una razón fundamental de asignar de marcos necesarios es el 
rendieminto, ya que mientras se reduce el numero de marcos 
asignados a un proceso incrementa la tasa de fallos de página y 
el tiempo de ejecución del proceso tambien aumenta. 
n Existe dos algoritmos principales de asignación: 
• Asignación equitativa 
• Asignación proporcional
4.1 Asignación equitativa 
n Consiste en repartir los m marcos libres entre n 
procesos para que cada proceso tenga un número 
igual de márcos. 
n Por ejemplo: 
Si hay 100 marcos libres y 5 procesos: 
# marcos x proceso = 100 / 2 = 20
4.2 Asignación proporcional 
n Consiste en repartir los m marcos libres entre n 
procesos de acuerdo al tamaño de los procesos. 
n Por ejemplo: Si hubiera 64 marcos libres y dos 
procesos, el uno de 10 páginas y el otro de 127 páginas: 
m 
= 
å 
tamaño del proceso 
s p 
i i 
= 
S s 
i 
= 
número total de marcos 
a p s 
= = ´ 
S 
m 
i 
asignación para 
i i 
= 
= 
= 
= ´ » 
64 59 
64 
10 
127 
10 
127 
137 
64 5 
137 
m 
s 
1 
2 
s 
a 
1 
2 
= ´ » 
a 
n En conclusión podemos decir que tanto con la asignación equitativa como con la proporcional 
el número de marcos por proceso puede variar de acuerdo al nivel de multiprogramación
4.3 Asignación global y local 
n Si hay múltiples procesos compitiendo por los marcos, podemos 
clasificar los algoritmos de sustitución de páginas en dos categorías 
amplias: sustitución global y sustitución local. 
– Sustitución Global (Se selecciona un marco de sustitución de entre un 
conjunto de todos los marcos asignados; es decir cualquier proceso puede 
quitar un marco de otro proceso) 
– Sustitución Local (Cada proceso solo puede sustituir el marco; dentro del 
conjunto de marcos asignados al mismo) 
n Se puede concluir entonces que con sustitución local el numero de 
marcos asignados a un proceso no varia, mientras que con 
sustitución global el número de marcos incrementa.
5. Sobrepaginación 
n Si el # de marcos asignados a un proceso de baja 
prioridad cae por debajo del #mínimo requerido 
por el sistema; se dice entonces que el proceso 
no tiene el # de marcos que nececita para 
soportar las páginas que está usando activamente 
y por lo tanto generará rapidamente una y otra 
vez sucecivos fallos de pagina. 
n A esta alta actividad de páginación se la conoce 
como sobrepaginación, ya que se invierte mas 
tiempo recargando páginas que ejecutando el 
proceso.
5.1 Solución a la Sobrepaginación 
?
Fin de la unidad 
Gracias.

Más contenido relacionado

La actualidad más candente

Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesadorFernando Camacho
 
Sistemas operativos por estructura
Sistemas operativos por estructuraSistemas operativos por estructura
Sistemas operativos por estructuraProf. Javier Troya
 
100 ejercicios-resueltos-de-sistemas-operativos
100 ejercicios-resueltos-de-sistemas-operativos100 ejercicios-resueltos-de-sistemas-operativos
100 ejercicios-resueltos-de-sistemas-operativosPatriciaDavila16
 
Procesos Planificacion de los Sistemas Operativos
 Procesos Planificacion de los Sistemas Operativos Procesos Planificacion de los Sistemas Operativos
Procesos Planificacion de los Sistemas OperativosG Hoyos A
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareLia IS
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosCarolina Cols
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPUEduardo Suarez
 
Taller modelo entidad relacion
Taller modelo entidad relacionTaller modelo entidad relacion
Taller modelo entidad relacionBrayan Vega Diaz
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosJosé Antonio Sandoval Acosta
 
Types of operating system
Types of operating systemTypes of operating system
Types of operating systemAshikur Rahman
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesosrcarrerah
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
Tema 1: Sistemas Operativos ejercicios
Tema 1: Sistemas Operativos ejercicios Tema 1: Sistemas Operativos ejercicios
Tema 1: Sistemas Operativos ejercicios SheilaDaniel28
 
Organización lógica y física.
Organización lógica y física.Organización lógica y física.
Organización lógica y física.Lely
 

La actualidad más candente (20)

1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Sistemas operativos por estructura
Sistemas operativos por estructuraSistemas operativos por estructura
Sistemas operativos por estructura
 
100 ejercicios-resueltos-de-sistemas-operativos
100 ejercicios-resueltos-de-sistemas-operativos100 ejercicios-resueltos-de-sistemas-operativos
100 ejercicios-resueltos-de-sistemas-operativos
 
Procesos Planificacion de los Sistemas Operativos
 Procesos Planificacion de los Sistemas Operativos Procesos Planificacion de los Sistemas Operativos
Procesos Planificacion de los Sistemas Operativos
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de Software
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativos
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos
 
Taller modelo entidad relacion
Taller modelo entidad relacionTaller modelo entidad relacion
Taller modelo entidad relacion
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
 
Types of operating system
Types of operating systemTypes of operating system
Types of operating system
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesos
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Linea de tiempo HCI
Linea de tiempo HCILinea de tiempo HCI
Linea de tiempo HCI
 
Tema 1: Sistemas Operativos ejercicios
Tema 1: Sistemas Operativos ejercicios Tema 1: Sistemas Operativos ejercicios
Tema 1: Sistemas Operativos ejercicios
 
Organización lógica y física.
Organización lógica y física.Organización lógica y física.
Organización lógica y física.
 

Destacado

AignacióN De Memoria Con Particiones DináMicas
AignacióN De Memoria Con Particiones DináMicasAignacióN De Memoria Con Particiones DináMicas
AignacióN De Memoria Con Particiones DináMicasESPOCH
 
Paginación y Segmentación
Paginación y SegmentaciónPaginación y Segmentación
Paginación y Segmentacióngabosand
 
Andrea psicología dinámica resumen_nacho
Andrea psicología dinámica resumen_nachoAndrea psicología dinámica resumen_nacho
Andrea psicología dinámica resumen_nachoNacho Soto
 
Ello yo y superyo eduardo espinosa 5ºb
Ello   yo y superyo eduardo espinosa 5ºbEllo   yo y superyo eduardo espinosa 5ºb
Ello yo y superyo eduardo espinosa 5ºbNacho Soto
 
Paginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónPaginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónNatalia Ludeña
 
Como Resolver Problemas y Tomar Decisiones
Como Resolver Problemas y Tomar DecisionesComo Resolver Problemas y Tomar Decisiones
Como Resolver Problemas y Tomar DecisionesJuan Carlos Fernández
 
Inteligencia emocional
Inteligencia emocionalInteligencia emocional
Inteligencia emocionalMirthaya
 

Destacado (10)

PAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIAPAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIA
 
AignacióN De Memoria Con Particiones DináMicas
AignacióN De Memoria Con Particiones DináMicasAignacióN De Memoria Con Particiones DináMicas
AignacióN De Memoria Con Particiones DináMicas
 
Capitulo3
Capitulo3Capitulo3
Capitulo3
 
Inteligencia emocional
Inteligencia emocionalInteligencia emocional
Inteligencia emocional
 
Paginación y Segmentación
Paginación y SegmentaciónPaginación y Segmentación
Paginación y Segmentación
 
Andrea psicología dinámica resumen_nacho
Andrea psicología dinámica resumen_nachoAndrea psicología dinámica resumen_nacho
Andrea psicología dinámica resumen_nacho
 
Ello yo y superyo eduardo espinosa 5ºb
Ello   yo y superyo eduardo espinosa 5ºbEllo   yo y superyo eduardo espinosa 5ºb
Ello yo y superyo eduardo espinosa 5ºb
 
Paginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónPaginación, Segmentación y Fragmentación
Paginación, Segmentación y Fragmentación
 
Como Resolver Problemas y Tomar Decisiones
Como Resolver Problemas y Tomar DecisionesComo Resolver Problemas y Tomar Decisiones
Como Resolver Problemas y Tomar Decisiones
 
Inteligencia emocional
Inteligencia emocionalInteligencia emocional
Inteligencia emocional
 

Similar a Gestión de memoria

Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosJammil Ramos
 
Clase 8 de sio administracion de la memoria
Clase 8 de sio administracion de la memoriaClase 8 de sio administracion de la memoria
Clase 8 de sio administracion de la memoriaDonelly Ramos
 
Grupo1 Hhh
Grupo1 HhhGrupo1 Hhh
Grupo1 Hhhbetzi.15
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoriajhoax
 
tercera unidad :3
tercera unidad :3tercera unidad :3
tercera unidad :3irisdelc
 
Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoriaguestaff6d2
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoriacaredimaria
 
Administración de la memoria
Administración de la memoriaAdministración de la memoria
Administración de la memoriaBeatriz Pérez
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoriagiovatovar
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2giovatovar
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2giovatovar
 
Administracion de memoria en una PC
Administracion de memoria en una PCAdministracion de memoria en una PC
Administracion de memoria en una PCSimón Aranguren
 
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Juan Lopez
 

Similar a Gestión de memoria (20)

Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Clase 8 de sio administracion de la memoria
Clase 8 de sio administracion de la memoriaClase 8 de sio administracion de la memoria
Clase 8 de sio administracion de la memoria
 
Grupo1 Hhh
Grupo1 HhhGrupo1 Hhh
Grupo1 Hhh
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
 
Tc2 paso3
Tc2 paso3Tc2 paso3
Tc2 paso3
 
tercera unidad :3
tercera unidad :3tercera unidad :3
tercera unidad :3
 
Memoria en los SO
Memoria en los SOMemoria en los SO
Memoria en los SO
 
Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoria
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoria
 
Administración de la memoria
Administración de la memoriaAdministración de la memoria
Administración de la memoria
 
Leccion3 sisop
Leccion3 sisopLeccion3 sisop
Leccion3 sisop
 
Trabajo tema 6 memoria
Trabajo tema 6 memoriaTrabajo tema 6 memoria
Trabajo tema 6 memoria
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoria
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
7 memoria cache
7 memoria cache7 memoria cache
7 memoria cache
 
Unidad3
Unidad3Unidad3
Unidad3
 
Administracion de memoria en una PC
Administracion de memoria en una PCAdministracion de memoria en una PC
Administracion de memoria en una PC
 
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
 

Más de Freddy Patricio Ajila Zaquinaula (9)

Introducción a las Tics
Introducción a las TicsIntroducción a las Tics
Introducción a las Tics
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivos
 
Gestión de procesos
Gestión de procesosGestión de procesos
Gestión de procesos
 
Introducción y componenetes del sistema operativo
Introducción y componenetes del sistema operativoIntroducción y componenetes del sistema operativo
Introducción y componenetes del sistema operativo
 
Unidad Central de procesamiento
Unidad Central de procesamientoUnidad Central de procesamiento
Unidad Central de procesamiento
 
Memoria Externa, Unidadad de Entrada/Salida, Introducción al Sistema Operativo
Memoria Externa, Unidadad de Entrada/Salida, Introducción al Sistema Operativo Memoria Externa, Unidadad de Entrada/Salida, Introducción al Sistema Operativo
Memoria Externa, Unidadad de Entrada/Salida, Introducción al Sistema Operativo
 
Sistema de Interconexión, Memoria Caché, Memoria Interna.
Sistema de Interconexión, Memoria Caché, Memoria Interna.Sistema de Interconexión, Memoria Caché, Memoria Interna.
Sistema de Interconexión, Memoria Caché, Memoria Interna.
 
Organizacion y arquitectura del computador (UNL marzo - julio 2013)
Organizacion y arquitectura del computador (UNL marzo - julio 2013)Organizacion y arquitectura del computador (UNL marzo - julio 2013)
Organizacion y arquitectura del computador (UNL marzo - julio 2013)
 

Último

RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 

Último (20)

RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 

Gestión de memoria

  • 1. AREA DE LA ENERGÍA LAS INDUSTRIAS Y LOS RECURSOS NATURALES NO RENOVABLES CARRERA DE INGENIERIA EN SISTEMAS SISTEMAS OPERATIVOS Docente: Email: fpajila@unl.edu.ec Periodo: Ing. Freddy Patricio Ajila Z. septiembre 2013 – febrero 2014
  • 3. OBJETIVO 1. Analizar las estrategias con las que cuenta el sistema operativo para compartir la memoria entre los procesos.
  • 4. Contenido 1. Introducción 2. Asignación de espacio contiguo – Asignación estática de memoria particionada – Asignación dinámica de memoria particionada – Protección y uso compartido 3. Asignación de espacio no contiguo – Segmentación – Paginación – Segmentación con paginación 4. Gestión de memoria virtual – Introducción – Paginación por demanda – Algoritmos de reemplazo de páginas – Algoritmos de asignación de marcos de página
  • 5. 1. Introducción La CPU es compartida por un conjunto de procesos y esta tarea es controlada por el planificador de procesos, pero para mejorar el grado de utilización del procesador y la velocidad de respuesta a los usuarios es necesario mantener varios procesos en memoria y para ello se nececita gestionar de forma eficiente el espacio de memoria.
  • 6. Introducción Para lograrlo el S.O utiliza técnicas de gestion de memoria que entre las más utilizadas están la paginación y la segmentación. C/U de las técnicas tiene sus propias ventajas y desventajas y para ejecutarse dependen de muchos factores, en especial del hardware del sistema (CPU).
  • 7. Fundamentos La CPU toma inst de memoria de acuerdo con el valor del contador del programa PC. Las inst pueden provocar otras operaciones de lectura o almace en dir específicas de memoria. Por ejemplo: Ciclo Inst (Extraer Inst + Decodifi + Operandos + ejecución = almacenamiento resultados)
  • 8. Un programa debe cargarse en memoria desde disco y colocarse dentro de un proceso para que se ejecute. La unidad de memoria tan solo ve un flujo de direciones de memoria no como se generan ni tampoco para que se utilizan las inst o datos. Por lo tanto ignoramos como generar dir de memoria y nos centramos en la secuencia de dir de memoria generadas por el programa en ejecución
  • 9. Hardware Básico - La memoria principal y los registros son los únicos dispositivos de almacenamiento a los que puede acceder desde la CPU directamente • - Los datos siempre deben estar en memoria para que la CPU pueda pueda operar con ellos •- El acceso a registro es muy rápido; supone un ciclo de CPU (o menos) - El acceso a memoria principal puede durar varios ciclos del reloj del procesador para completarse y x tanto el procesador tiene que detenerse ya q nodispone de los datos para completar la inst que está ejecutando - El remedio son las memorias caché se colocan entre la memoria principal y la CPU para resolver la diferencia de veloc.
  • 10. Procesamiento de un programa de usuario
  • 11. •­Algo fundamental que se debe garantizar es que no se pueda acceder a espacios de memoria que no corresponden, ya sea del Sistema Operativo como de otros procesos. Este tipo de protección debe ser proporcionada por el hardware. ­Para hacer esto se debe determinar el rango de direcciones legales a las que el proceso puede acceder.
  • 12. Estas direcciones están dadas a través de dos registros: Registro base y límite Registro base.­contiene la dirección de la memoria física desde donde empieza el proceso. Registro límite.­especifica el rango de direcciones utilizadas por el proceso. Esto quiere decir que si un proceso empieza en la dirección 3000 ese es su registro base y si el límite es 325, entonces solo podrá acceder ese proceso a las direcciones comprendidas entre 3000 y 3325 incluyendo el extremo inferior.
  • 13. Un registro base y un registro límite definen un espacio lógico de direcciones
  • 14. Unidad de Gestión de Memoria (MMU) La MMU (Memory-Management Unit) es un dispositivo hardware que transforma las direcciones virtuales en físicas Con la MMU el valor del registro de reubicación (registro base) es añadido a cada dirección generada por un proceso de usuario en el momento en que es enviada a la memoria El programa de usuario trabaja con direcciones lógicas; nunca ve las direcciones físicas reales
  • 15. Protección de espacio de memoria La protección de la memoria en este caso consiste en que el hardware de la CPU compare las direcciones generadas, para saber si se encuentran dentro del rango establecido para ese proceso, si este acceso es legal no existe problema alguno, pero si es ilegal entonces se genera una interrupción lo que provoca una llamada al sistema para que el sistema operativo conozca que se está haciendo un acceso a una dirección incorrecta y la repuesta del SO es generar un error de direccionamiento.
  • 16. Protección hardware de las direciones, utilizando un registro base y un registro límite.
  • 17. Estos registros solo pueden ser cargados por el S.O ya que las instrucciones privilegiadas solo se pueden ser ejecutadas en modo kernel. El S.O que se ejecuta en modo kernel tiene acceso no restringido a la memoria del S.O como de los usuarios. Lo anterior permite al S.O cargar los prog de usuarios en la memoria de los usuarios y volcar estos programas en caso de error.
  • 18. Reasignación de direciones Normalmente los programas se encuentran almacenados en Disco cuando un usuario los invoca o el mismo sistema operativo lo hace, estos se carga en memoria, para luego ejecutarse en la CPU instrucción por instrucción. Estos procesos que se encuentran en el disco forman la cola de entrada o cola de trabajo. Cuando el proceso termina su ejecución, se produce una llamada al sistema para que el SO conozca sobre esta terminación y actualice sus tablas de datos en las cuales posee info sobre los espacios de memoria que están siendo utilizados y por quién están siendo utilizados, obviamente el resto de espacios serán los que estén disponibles.
  • 19. Recuerde que la asignación de memoria a un proceso no es secuencial si no más bien aleatoria, eso quiere decir que en cualquier espacio de memoria que esté disponible y este sea lo suficiente para albergar al proceso, este se alojará. • •A medida que se ejecute el proceso, este accesa a memoria para obtener instruciones y datos • En el caso de un proceso de usuario se puede reasignar las direcciones, esto implica que se cambie la dirección establecida al principio, por otra. La reasignación de las direcciones puede darse en cualquiera de los pasos: Tiempo de compilación. Tiempo de carga. Tiempo de ejecución.
  • 20. Espacio de direciones lógico y físico Dirección lógica.- es una dirección generada por la CPU. Dirección física.- es una dirección vista en la memoria principal. Los métodos de reasignación en tiempo de compilación y en tiempo de carga generan direcciones lógicas y físicas iguales. En cambio el esquema de reasignación de direcciones en tiempo de ejecución hace que las direcciones físicas y lógicas difieran, es por eso que en esta parte analizaremos este caso.
  • 21. El conjunto de todas las direcciones lógicas generadas por un programa se denomina espacio de direcciones lógicas, y al conjunto de todas las direcciones físicas correspondientes a esas direcciones lógicas, se las denomina espacio de direcciones físicas. A las direcciones lógicas también se les denomina direcciones virtuales. El cambio de direcciones virtuales a físicas es realizada por un dispositivo HW denominado Unidad de Administración de Memoria (MMU)
  • 22. En la MMU se realiza la suma de la dirección virtual generada por la CPU y el Registro base que ahora le vamos a llamar registro de reubicación, esta operación nos da como resultado un acceso válido a un espacio de memoria física ocupada por el proceso que actualmente se encuentra en la CPU ejecutándose. Al cambio de direcciones lógicas a físicas también se le denomina Mapeo de direcciones lógicas. Recuerde que cualquier acceso a un espacio de memoria que no se encuentre dentro del rango establecido producirá un error de direccionamiento.
  • 24. Carga Dinámica Para que un programa se ejecute sabemos que debe estar cargado en memoria, en consecuencia entonces el tamaño de un proceso está limitado por el tamaño de la memoria física. ¿Qué pasa si no hay tamaño suficiente de memoria para satisfacer una solicitud de un proceso? Para mejorar la utilización del espacio en memoria principal se puede utilizar el mecanismo de carga dinámica. Con la carga dinámica, una rutina no se carga hasta que se la invoca, todas las rutinas se mantienen en disco
  • 25. La idea es mejorar la utilización del espacio de memoria con lo que la utilización de este método garantizaría que tenga más espacio en memoria para satisfacer una solicitud de otro proceso que quiera ejecutarse, por lo que solo se cargaría en memoria la instrucción que se necesita, eso si se debe estar actualizando cada vez la tabla de direcciones del programa en memoria La ventaja de este método, es que una rutina o instrucción no utilizada no se cargará nunca en memoria.
  • 26. Intercambio Un proceso puede ser retirado temporalmente de la memoria a algún almacenamiento auxiliar; más tarde será incorporado de nuevo a la memoria para que continúe su ejecución •Por ejemplo En un entorno de multiprogramación al usar el algoritmo de planificación basado en Round Robin, cuando se termina el quantun de tiempo el gestor de memoria retira el proceso y en el espacio que queda es cargado otro proceso. Mientras esto ocurre el planificador de la CPU, asigna un cuanto de tiempo a otro proceso que ya está en memoria. • En los algoritmos con prioridad el gestor de memoria puede descargar un proceso de menor prioridad y cargar un proceso de prioridad mayor; de tal manera que asigna un espacio de memoria acorde a lo solicitado por el proceso de mayor prioridad • El SO mantiene una cola de listos para los procesos intercambiados que pueden ejecutarse
  • 27. Vista esquemática del intercambio
  • 29. Particionamiento fijo o estático Con esta técnica es que cada partición permite cargar un proceso. Cada partición permite ejecutar un proceso de forma independiente ya que todas las instruciones y datos se encuentran dentro de la partición. Un proceso no puede invadir el espacio de direcciones de otro proceso que se encuentra en otra partición, hay esquemas que permiten proteger el espacio de direciones de cada partición. Con esta técnica existe mucho desperdicio de memoria ya que el tamaño de la partición suele ser mayor que el tamaño del proceso.
  • 31. Particionamiento fijo o estático Con el esque de cola única; el proceso completo debe cargarse en cualquier partición donde quepa. Con el esquema de cola única; surge la pregunta ¿Cual de las particiones libres es ideal para cargar el proceso?(Tecnicas primer ajuste, mejor ajuste y peor ajuste). Con el esquema de varias colas (una por partición); los procesos están diseñados para ejecutarse en dicha partición. El problema que existe es el desperdicio de memoria que queda al final de cada partición (Fragmentación Interna) ya que no se puede garantizar que el proceso quepa exactamente en la partición.
  • 32. Fragmentación Interna Ala diferencia entre el tamaño de la partición y el tamaño del proceso se conoce como fragmentación interna.
  • 33. Fragmentación Externa Se produce cuando un proceso por su tamaño no puede ser cargado en ninguna de las particiones libres y por lo tanto existe desperdicio de particiones completas, a lo que se conoce como fragmentación externa. La fragmentación externa se soluciona por medio de la compactación Compactación: Consiste en mover las particiones de memoria asignadas para colocar toda la memoria libre en un bloque grande y contiguo
  • 34. Particionamiento variable o dinámico ●Este equema fué diseñado para solucionar el problema de particionamiento fijo, ya que conforme llegan los procesos se les asisgna la cantidad exacta de memoria que necesitan. ● Cuando llega un proceso se le asigna una partición lo suficientemente grande donde quepa el proceso. – Con el espacio sobrante se crea una nueva partición libre (hueco) ● En este tipo de asignación las consideraciones de protección son las mismas que en la asignación estática
  • 35. Particionamiento variable o dinámico Esquema con una sola partición grande para cargar a los procesos. El S.O lleva una tabla de registro de las particiones Libres y sus tamaños
  • 37. Técnicas de asignación de particiones En estos dos esquemas de particionamiento; fijo y variable es importante saber en que partición se va a colocar el proceso que va ha ser cargado. Los siguientes algoritos se aplican a los dos esquemas de particionamiento fijo y variable. Primer ajuste (First-fit): Colocar el proceso en el primer hueco libre donde quepa el proceso. Mejor ajuste (Best-fit): Se busca de entre las particiones libres la que mejor se ajuste al tamaño del proceso o la más adecuada procurando que la fragmentación interna sea lo mas pequeña posible. Peor ajuste (Worst-fit): Se busca de entre las particiones libres la particion más grande posible, usando la lógica de que la fragmentación interna sea lo suficientemente grande para cargar otro proceso Los métodos de primer y mejor ajuste son mejores que el peor ajuste en términos de velocidad y aprovechamiento de la memoria
  • 38. Ejemplo de los algoritmos de primer, mejor y peor ajuste
  • 39. Recomendaciones Los espacios libres en memoria no están ordenados de una manera específica, y en algunas ocasiones es conveniente ordenarla: En el algoritmo de mejor ajuste al tener ordenado las particiones de menor a mayor, en el primer hueco que quepa el proceso se lo asignará, teniendo un menor espacio de fragmentación interna. En el algoritmo de peor ajuste es conveniente ordenarlo de mayor a menor, ya que si en el primer hueco no cabe el proceso, se deduce que en este momento no es posible cargar dicho proceso Se debe tomar en cuenta: El cómo tiene organizada un S.O. su lista de huecos y el cómo se asigna los huecos a los procesos, son elementos a tomar en cuenta cuando se analizan las características de un S.O. particular.
  • 40. 3. Asignación de espacio no contiguo o Almacenamiento Disperso a. Paginación b. Segmentación c. Segmentación con paginación
  • 41. Paginación Es un esquema de gestión de memoria que permite que el espacio de direcciones físicas de un proceso no sea contiguo. El método básico de la paginación consiste en descomponer la memoria física en una serie de bloques de tamaño fijo denominado marcos de pagina y descomponer la memoria lógica en en bloques del mismo tamaño denominado páginas. Cuando se carga un proceso sus páginas se cargan desde el disco duro en los marcos de memoria disponibles. La porción de disco conocida como memoria auxiliar está dividida en bloques de tamaño fijo del mismo tamaño que los marcos de memoria. Toda dirección generada por la CPU está dividida en dos partes: un número de página (p) y un desplazamiento (d), El número de página se utiliza como índice para la tabla de páginas.
  • 42. Esquema del hardware de Paginación
  • 43. Paginación La tabla de páginas contiene la dirección báse de cada página en memoria física que se combina con el desplazamiento de página para obtener la dirección de memoria física. Modelo de paginación de la memoria lógica y física
  • 44. Paginación El tamaño de página es una potencia de 2, que varía entre 512 Bytes y 16 Mbytes por página número de página desplazamiento La estructura de una dirección lógica es: p d m - n n Donde p es un índice de la tabla de páginas y d es el desplazamiento dentro de la página. Por ej: El tamaño de las paginas es de 4 bytes y la memoria física es de 32 bytes (8 páginas). La dir lógica 0 representa la pagina 0 y se encuentra en el marco 5, por lo tanto la dir lógica 0 se corresponde con la dir física 20. Esto se calcula de la sig manera: Dir física = (Marco de página * támaño de pagina)+desplazamiento Dir lógica 0 coresponde con dir física 20 ­­­> 20 = (5*4)+ 0 Dir lógica 3 coresponde con dir física 23 ­­­> 23 = (5*4)+ 3 Dir lógica 4 coresponde con dir física 24 ­­­> 24 = (6*4)+ 0 Dir lógica 13 coresponde con dir física 20 ­­­> 9 = (2*4)+ 1
  • 45. Ejemplo de paginación para una memoria de 32 bytes con páginas de 4 bytes 0123 abc d 4567 ef gh 891 0 11 ij kl 12 13 14 15 mnop Memoria lógica 0 5 1 6 2 1 3 2 Tabla de páginas 0 1 2 3 0 4 ij kl 8 mnop 12 16 20 abc d 24 ef gh 28 0 1 2 3 4 5 6 7 Memoria Fisica Num Pag Marco Pag
  • 46. Paginación Cuando usamos el esquema de paginación no tenemos fragmentación externa. Pero si puede existir en cierto grado de fragmentación interna ya que el ultimo marco de pagina asignado puede no estar completamnte lleno. Por ejemplo: Si el tamaño de pagina es 2048 byes y el proceso es de 72226 bytes nececitará: Num paginas = 72226 / 2048 = 35 paginas completas Porcion de página = 72226 ­( 35 * 2048) = 546 bytes Fragmnetación Interna = 2048 – 546 = 1052 bytes
  • 47. Paginación Marcos Libres Cuando llega un proceso al sistema para ejecutarlo, se examina su tamaño expresado en páginas, donde cada pagina necitará un marco. Por lo tanto si el proceso requiere n paginas deberán haber almenos n marcos libres en memoria. Si hay n marcos libres se los asignara al proceso que acaba de llegar. La primera página del proceso se carga en uno de los marcos asignados y se incluye el numero de marco en la tabla de páginas para ese proceso. La siguiente pagina se carga en otro marco y su numero de marco se guarda en la tabla de páginas y así sucecivamente. Ver siguiente diagrama:
  • 48. Esquema de marcos libres Antes de la asignación Después de la asignación
  • 49. Paginación Protección La protección de la memoria en un entorno paginado se implementa mediante una serie de bits de protección asociados con cada marco, estos bits se mantienen en la tabla de páginas.  Al mismo tiempo que se clacula la dir física, puede comprobarse los bits de protección para verificar que no se esté haciendo ninguna escritura en una página de solo lectura.  Generalmente se asocia un bit de validez con cada entrada de la tabla de páginas de tal forma que cuando un bit es: “válido” indica que la página asociada está en el espacio de direcciones lógico del proceso, y por tanto es legal el acceso.  Un bit “inválido” indica que la página no está en el espacio de direcciones lógico del proceso.
  • 50. Esquema de un bit de validez en una tabla de páginas
  • 51. Paginación Páginas Compartidas Una ventaja de la paginación es la posibilidad de compartir código común en un entrono de tiempo compartido. Para ello se comparten los marcos de memoria; donde el marco compartido debe estar asociado a una página en la tabla de páginas de cada proceso Código compartido Los procesos comparten una copia de código reentrante (o código puro) no modificable o sólo lectura (ej., editores de texto, compiladores) estos pueden estar en varias páginas compartidas para cada proceso Los datos privados de cada proceso se encuentran en páginas no compartidas
  • 52. EJEMPLO DE PÁGINAS COMPARTIDAS (Un editor de 3 páginas de código puro y una página para espacio de datos)
  • 53. Paginación Ejercicios 1. Empleando un tamaño de página (tp) de 8 bytes y una memoria física (mf) de 64 bytes, indique el número de páginas y calcule la direción física de memoria para los datos indicados en el diagrama. Los datos son 3, 9, 14, 18 y 28. 0 3 1 4 2 2 3 1 Tabla de páginas Datos Num Pag 01234567 0 891 0 11 12 13 14 15 1 16 17 18 19 20 21 22 23 2 24 25 26 27 28 29 30 31 3 Memoria lógica Num Pag Marco Pag
  • 55. Paginación Ejercicios 2. Empleando un tamaño de página (tp) de 4 bytes y una memoria física (mf) de 16 bytes, indique el número de páginas y calcule la direción de la memoria física para los datos indicados en el diagrama. Los datos son a, f, l, o. Bit Val- Inv 0 3 v 1 4 i 2 2 v 3 5 i Tabla de páginas Datos Num Pag abc d 0 ef gh 1 Ij kl 2 mnop 3 Memoria lógica Num Pag Marco Pag
  • 57. Segmentación  La segmentación es un esquema de gestión de memoria que apoya la visión que el usuario tiene de la memoria, aquí los espacios lógicos es una colección de segmentos, cada segmento tiene un nombre y una longitud(desplazamiento).  Cuando el programa se compila, el compilador automaticamente construye los segmentos. Un segmento es una unidad lógica tal como: programa principal, procedimiento, función, método, objeto, variables locales, variables globales, bloque común, pila, tabla de símbolos, arrays
  • 58. 1.4 SEGMENTACIÓN Programa Visto por un Usuario
  • 59. Segmentación  Por ejemplo: Uncompilador C, podría crear elementos separados para los siguientes elementos: 1. El código 2. Las variables 3. El cúmulo de memoria a partir del cual se asigna la memoria 4. Las pilas utilizadas por cada hebra de ejecución 5. La biblioteca de C estandar
  • 60. 1.4 SEGMENTACIÓN Vista Lógica de la Segmentación 1 3 2 4 Espacio de usuario 1 4 2 3 Espacio de memoria física
  • 61. Elementos de la sementación Una dirección lógica consiste en un par: <número de segmento, desplazamiento> Tabla de segmentos – contiene información sobre la ubicación de los segmentos en memoria; cada entrada tiene: – base – contiene la dirección física en la que comienza el segmento – límite – especifica la longitud del segmento
  • 63. 1.4 SEGMENTACIÓN Ejemplo de Segmentación
  • 64. Segmentación con paginación La paginación y la segmentación se pueden combinar en la segmentación con paginación En este esquema de gestión de memoria los segmentos se paginan – Se apoya la visión de la memoria que tiene el usuario – Se resuelve el problema de la asignación dinámica Es necesario una tabla de segmentos y una tabla de páginas por cada segmento – La traducción de direcciones es más compleja y puede requerir un mayor número de accesos a memoria en el peor caso
  • 65. Segmentación con paginación El espacio de direcciones de un usuario se divide en varios segmentos según el criterio del programador. Cada segmento se vuelve a dividir en varias páginas de tamaño fijo, que tienen la misma longitud que un marco de memoria principal. Si el segmento tiene menor longitud que la página, el segmento ocupará sólo una página. Desde el punto de vista del programador, una dirección lógica también está formada por un número de segmento y un desplazamiento en el segmento. Desde el punto de vista del sistema, el desplazamiento del segmento se ve como un número de página dentro del segmento y un desplazamiento dentro de la página. Cada proceso tiene una tabla de segmentos y varias tablas de páginas (una por cada segmento).
  • 67. 4. Gestión de memoria virtual Es una técnica que permite al S.O. la ejecución de procesos que no se encuentran completamente cargados en memoria. Una de las principales ventajas de este esquema es que los programas pueden tener un tamaño mayor que la propia memoria física.
  • 68. Fundamentos  Sólo partes del proceso necesitan estar en memoria para su ejecución.  Una ventaja es que el espacio de direcciones lógicas puede ser mayor que el espacio de direcciones físicas.  Facilita la tarea de programación porque el programador ya no se debe preocupar por la cantidad de memoria física disponible.  Se podrían ejecutar más programas al mismo tiempo aprovechando el uso del procesador sin incrementar el tiempo de respuesta.  Permite compartir espacios de direcciones entre procesos.  Se requiere mecanismos para traer paginas de disco a memoria y retirar paginas de memoria para pasrlas a disco. La memoria virtual suele implementarse usando esquemas como: – Paginación por demanda – Segmentación por demanda
  • 69. Administración de memoria virtual  Políticas de carga (Fetch). ➔ Cuando traer una pagina/segmento a memoria  Politicas de colocación (Placement). ➔ Donde colocar una pagina/segmento a memoria  Politicas de reemplazo (Replacement). ➔ Si la memoria principal está llena, se debe decidir cual página/segmento se debe reemplazar
  • 70. Políticas de carga Paginación por demenada La memoria virtual basada en paginación por demanda solo se cargan las paginas que sean necesarias de tal forma que las paginas no necesarias jamas se cargan a memoria.  Se requiere menos memoria  La respuesta es más rápida  Puede haber más procesos en memoria La herramienta que usa el S.O para traer una página a memoria o llevarla a disco se llama Paginador conocida tambien como intercambiador perezoso.
  • 72. ¿Dentro del esquema de paginación, que pasa si quiere accesar a una página que no está en memoria?  La respuesta es que ocurre un fallo de página  Un fallo de pagina sucede cuando un proceso en ejecución intenta accesar a una dirección lógica de una página que no está cargada en memoria  Si ocurre un fallo de página se provoca una interrupción al S.O de fallo de página para que se encargue de subir la pagina solicitada.  Cuando se carga la página el bit de estado en la tabla de paginas cambia a 1 indicando que la pagina está en memoria.
  • 73. Fallo de página Bit de estado En cada entrada de la tabla de páginas hay un bit de validez (v/1 Þ en memoria, i/0 Þ no en memoria o acceso ilegal) Al comienzo el bit de validez es inicializado a i en todas las entradas Ejemplo de tabla de páginas: Durante la traducción de direcciones, si el bit de validez de la entrada de la tabla de páginas es i Þ fallo de página
  • 74. Esquema de una tabla de páginas cuando algunas páginas no se encuentran en memoria principal
  • 75. ¿Que hace el S.O cuando existe un fallo de página? Cuando existe un fallo de pagina el procedimiento a seguir es sencillo: 1. Se comprueba en la tabla de páginas del proceso (PCB) si la referencia era un acceso a memoria válido o invalido. 2. Si la referencia era inválida, se aborta el proceso. Si la referencia es válida y la pagina no está en memoria, se la debe cargar. 3. Buscamos un marco libre 4. Cargamos la página desde disco al marco asignado 5. Completada la carga, modificamos la tabla de paginas cambiando el bit a válido. 6. Reinicia la instrucción que fué interrumpida o causó el fallo de página
  • 76. Esquema de los pasos para tratar un fallo de página
  • 77. Políticas de colocación Para paginación es trivial, ya que todos los marcos de pagina son iguales y por lo tanto la pagina podría ser colocada en cualquiera de ellos. Para segmentación y debido a que sus segmentos son de tamaño variable se debe utilizar mecanismos o algoritmos de colocación como:  Primer Ajuste  Mejor Ajuste  Peor Ajuste
  • 78. ¿Que pasa si no existe un marco de página libre?  La respuesta es que se debe seguir alguna política de reemplazo.  Mediante algun algoritmo el S.O decide que página retirar de memoria para dejar el marco libre.  Es necesario que el algoritmo que se use para el reemplazo de páginas no genere muchos fallos de pa ina para futuras referencias, ǵ osea debe retirar la pagina adecuada.
  • 79. Políticas de reemplazo :  Aleatorio (RANDOM)  Mejor OPTIMA (OPT)  Primera en llegar, primera en salir (FIFO)  Menos recientemente utilizada (LRU)  Aproximaciones LRU  Referencia bit, segunda oportunidad, reloj  Algoritmos basados en contadores  Menos frecuentemente utilizada (LFU)  Mas frecuentemente utilizada (MFU)
  • 80. Conceptos clave String de referencia Es el registro de las páginas que han sido accesadas por un proceso.  Por ejemplo el PRS del proceso A es: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 La secuencia signifinicca que el proceso en ejecución accesó a la pag 1, luego a la 2, luego a la 3 y asi susecivamente.
  • 81. Conceptos clave Rendimiento de estrategias de reemplazo  Significa que cualquier estrategia de reempazo debe permitir el mejor rendimiento para la ejecución del proceso.  EL rendimiento está dado por R = 1 – F donde: F = # de fallos de pagina / # total de referencias  Cualquier estrategia que se aplique dependera PRS que indica el historial de acceso a las paginas y esto influirá directamente sobre el rendimiento.
  • 82. Algoritmo Optimo  Es el mejor que existe  Consiste en reemplazar la página que no va ha ser utilizada por el período más largo de tiempo.  Significa que cuando se llenó la memoria, se debe tomar una decisión en base al historial del PRS con el fin escoger la pagina más distante o la que menos voy accesar más adelante.
  • 85. Algoritmo FIFO  Este algorimo tomo en cuenta el orden de llegada por lo tanto la primera pagina en llegar es la primera página en salir.  Ejemplo con 3 marcos libres
  • 87. Algoritmo LRU (Menos recientemente utilizada)  Este algorimo se b asa en el tiempo de ejecución, ya que analiza desde el tiempo actual hacia atrás cual es la página mas lejana o la que menos recientemente he utilizado.  Ejemplo con 3 marcos libres
  • 89. Ejercicio  Usar FIFO y LRU para 4 marcos de página
  • 92. 4. Asignación de marcos libres n ¿Cuantos marcos libres asiganamos a cada proceso? n La respuesta es los marcos necesarios de acuerdo a las nececidades de los procesos. n Una razón fundamental de asignar de marcos necesarios es el rendieminto, ya que mientras se reduce el numero de marcos asignados a un proceso incrementa la tasa de fallos de página y el tiempo de ejecución del proceso tambien aumenta. n Existe dos algoritmos principales de asignación: • Asignación equitativa • Asignación proporcional
  • 93. 4.1 Asignación equitativa n Consiste en repartir los m marcos libres entre n procesos para que cada proceso tenga un número igual de márcos. n Por ejemplo: Si hay 100 marcos libres y 5 procesos: # marcos x proceso = 100 / 2 = 20
  • 94. 4.2 Asignación proporcional n Consiste en repartir los m marcos libres entre n procesos de acuerdo al tamaño de los procesos. n Por ejemplo: Si hubiera 64 marcos libres y dos procesos, el uno de 10 páginas y el otro de 127 páginas: m = å tamaño del proceso s p i i = S s i = número total de marcos a p s = = ´ S m i asignación para i i = = = = ´ » 64 59 64 10 127 10 127 137 64 5 137 m s 1 2 s a 1 2 = ´ » a n En conclusión podemos decir que tanto con la asignación equitativa como con la proporcional el número de marcos por proceso puede variar de acuerdo al nivel de multiprogramación
  • 95. 4.3 Asignación global y local n Si hay múltiples procesos compitiendo por los marcos, podemos clasificar los algoritmos de sustitución de páginas en dos categorías amplias: sustitución global y sustitución local. – Sustitución Global (Se selecciona un marco de sustitución de entre un conjunto de todos los marcos asignados; es decir cualquier proceso puede quitar un marco de otro proceso) – Sustitución Local (Cada proceso solo puede sustituir el marco; dentro del conjunto de marcos asignados al mismo) n Se puede concluir entonces que con sustitución local el numero de marcos asignados a un proceso no varia, mientras que con sustitución global el número de marcos incrementa.
  • 96. 5. Sobrepaginación n Si el # de marcos asignados a un proceso de baja prioridad cae por debajo del #mínimo requerido por el sistema; se dice entonces que el proceso no tiene el # de marcos que nececita para soportar las páginas que está usando activamente y por lo tanto generará rapidamente una y otra vez sucecivos fallos de pagina. n A esta alta actividad de páginación se la conoce como sobrepaginación, ya que se invierte mas tiempo recargando páginas que ejecutando el proceso.
  • 97. 5.1 Solución a la Sobrepaginación ?
  • 98. Fin de la unidad Gracias.