Sistemas Operativos 3 Y 4 Unidad
MarisolRoman3 de Junio de 2013
4.378 Palabras (18 Páginas)574 Visitas
Unidad 3.- Administracion de memoria
3.1.-Politica y filosofía de administración de memoria
Filosofía
La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamano. Cada localidad de almacenamiento tiene asignada una direccion que la identifica.
Una de las funciones basicas que debe implementar un SO es la Administracion de la Memoria para tener un control sobre los lugares donde estan almacenados los datos y procesos que actualmente se estan utilizando.
Sea cual sea es esquema de organizacion del almacenamiento que se adopte para un sistema especifico es necesario decidir que estrategias se deben utilizar para obtener un rendimiento optimo.
Políticas
FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de procesos listos, si un proceso llega al procesador sale hasta que termine. La politica FIFO actualmente no se usa como el esquema principal de un sistema, pero si por ejemplo cuando se usa una politica de prioridades y hay procesos con la misma prioridad, a estos se les podria aplicar FIFO. (Ver figura (1))
Figura 3.1.1
Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se les asigna una cantidad limitada de tiempo (CUANTUM) en el procesador, si no termina en ese lapso se manda al final de la lista de procesos listos. (Ver figura(2))
SJF (Shortest job first - Prioridad del trabajo mas corto): Se ejecuta primero el proceso en espera que tiene el menor tiempo estimado. SJF favorece a los procesos cortos, ya que los largos podrian llegar a rezagarse mucho tiempo e incluso nunca ejecutarse. (Ver Figura(3))
Figura 3.1.3
SRT (Sortest remaining time scheduling ? Tiempo restante mas corto. En SJF una vez que un proceso comienza su ejecucion continua hasta terminar. En SRT, un proceso en ejecucion puede ser desposeido por uno nuevo de menor tiempo de ejecucion. (Ver Figura(4))
Figura 3.1.4
HRN: (highest response ratio next ? Prioridad de la tasa de respuesta mas alta): Politica no apropiativa que corrige el retraso excesivo de procesos grandes que produce el SJF, para asi no caer en un favoritismo excesivo por los procesos cortos, lo logra usando una formula basada en el tiempo de espera y el tiempo de servicio, con lo cual la prioridad de cada trabajo no solo esta en funcion del tiempo de servicio sino tambien del tiempo que ha esperado para ser atendido.(Ver Figura(5))
3.2.- Memoria Real
La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos.
Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la informacion contenida en ella es de mas rapido acceso.
Solo la memoria cache es mas rapida que la principal, pero su costo es a su vez mayor.
Cuando no existe memoria virtual no hay diferenciacion entre el espacio de direcciones y la memoria real; el espacio de direcciones que puede ser usado en los programas tiene identico tamano al espacio de memoria real posible. Si se utiliza memoria virtual, el espacio de direcciones disponibles para los programas es aquel determinado por el tamano de la memoria virtual implementada y no el espacio de direcciones provisto por la memoria real disponible (el espacio de la memoria virtual sera mayor que el de la memoria real).
La organización y administración de la “memoria principal”, “memoria primaria” o “memoria real” de un sistema ha sido y es uno de los factores mas importantes en el diseño de los S. O. (Ver la figura 3.2.1)
Los términos “memoria” y “almacenamiento” se consideran equivalentes.
Los programas y datos deben estar en el almacenamiento principal para:
• Poderlos ejecutar.
• Referenciarlos directamente
3.3- Organización de memoria virtual
Memoria Virtual
La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una maquina.Esta ilusión permite que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria física.
La memoria virtual ha llegado a ser un componente esencial de la mayoría de los S.O actuales. Y como en un instante dado, en la memoria solo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener mas procesos en la memoria.
La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física.
pedvazvid.tripod.com/organizacion_de_memoria.htm
ORGANIZACIÓN DE MEMORIA VIRTUAL
“Almacenamiento virtual” significa la capacidad de direccional un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de determinado sistema de computación.
Los métodos más comunes de implementación son mediante:
• Técnicas de “paginación”
• Técnicas de “segmentación”
• Una combinación de ambas técnicas.
Las direcciones generadas por los programas en su ejecución no son, necesariamente, aquellas contenidas en el almacenamiento primario (memorial real), ya que las direcciones virtuales suelen seleccionase dentro de un número mucho mayor de direcciones que las disponibles dentro del almacenamiento primario.
Evolución de las organizaciones de almacenamiento
La evolución en las organizaciones de almacenamiento puede reunirse como sigue:
• Real: Sistemas dedicados a un solo usuario.
• Real: Sistemas de multiprogramación en memoria real:
• Multiprogramación en partición Fija: Absoluta. Relocalizable (Reubicable). Multiprogramación en partición variable.
• Virtual: Multiprogramación en almacenamiento virtual: Paginación pura. Segmentación pura. Combinación paginación / segmentación.
PAGINACIÓN
La paginación consiste en considerar el espacio de direcciones lógicas de cada proceso como un conjunto de bloques de tamaño consistente llamados paginas. Cada dirección lógica manejada para un proceso estará conformada por un par de valores.
La memoria física se administra implementando bloques de tamaño consistente denominados marcos. Obviamente el tamaño de un marco debe ser igual al tamaño de una página. Por lo general el tamaño designado para los marcos y páginas es pequeño.
Frecuentemente se diferencia entre la paginación pura y la combinación de paginación y segmentación.
Las páginas se transfieren del almacenamiento secundario al primario en bloques llamados “marcos de páginas”.
• Tienen el mismo tamaño.
• Comienzan en direcciones del almacenamiento real que son múltiplos enteros del tamaño fijo de la página.
• Podrá colocarse una nueva página dentro de cualquier marco de página o celda de página disponible.
La traducción dinámica de direcciones incluye:
Un proceso en ejecución hace referencia en dirección virtual “V= (p, d)”. Un mecanismo de transformación de paginas busca la pagina “p” en la tabla de paginas y determina si la “p” se encuentra en el marco de pagina “p”. La dirección de almacenamiento real se forma por la concatenación de “p” y “d”.
La tabla de mapa de páginas debe indicar si se encuentra o no en el almacenamiento primario la pagina referenciada:
• En caso afirmativo donde esta en la memoria real.
• En caso negativo donde puede estar en el almacenamiento secundario.
La dirección de almacenamiento primario “a”, donde comienza el marco de pagina “p”, (suponiendo un tamaño de pagina “p”), esta dada por: “a = (p)(p)”, se supone marcos de pagina numerados 0,1,2, etc.
SEGMENTACIÓN
Este método consiste en la asignación de bloques de memoria de tamaño variable, llamados segmentos. El tamaño de cada segmento será el requerido según la petición, por ejemplo el tamaño del proceso a cargar. El tamaño máximo para un segmento estará determinado por la capacidad de direccionamiento del hardware de la computadora, esto es, de cuantos bits se dispone par almacenar una dirección. El acceso a cada elemento individual (byte), en la memoria se hace mediante una dirección de memoria que se integra por dos elementos:
• Una dirección de segmento.
• Una de desplazamiento.
La combinación (suma) de la dirección de segmento y la de desplazamiento generan la dirección de memoria absoluta a acceder.
En los sistemas de segmentación un programa y sus datos pueden ocupar varios bloques separados de almacenamiento real.
Los bloques:
• No necesitan ser de igual tamaño.
• Los bloques separados no necesitan ser adyacentes.
• Deben de estar compuestos de posiciones contiguas de almacenamiento.
• Se complica la protección de bloques de memoria de un proceso de usuario.
• Es más difícil limitar el rango de acceso de cualquier programa.
Un esquema posible de protección es el uso de claves de protección del almacenamiento: las claves están bajo el control estricto del S.O. un programa de usuario, a quien corresponde una cierta clave en la C.P.U, solo puede hacer referencia a los otros bloques
...