Your SlideShare is downloading. ×
Unidad3
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Unidad3

140
views

Published on

Presentación U3 de la materia de S.O

Presentación U3 de la materia de S.O


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
140
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. SISTEMAS OPERATIVOS I Unidad 3Administración de Memoria
  • 2. Lista de Jerarquía Registros Caché de nivel 1 (L1) Caché de nivel 2 (L2) Memoria Principal Caché de disco Disco Óptico Cinta
  • 3. Lista de Jerarquía
  • 4. Lista de Jerarquía
  • 5. Lista de Jerarquía Bits / US$ $/ 0.01 US$ US$ / Gbyte
  • 6. Rendimiento Tiempo de Acceso  El tiempo transcurrido entre presentar la dirección y obtener el dato Tiempo del ciclo de memoria  El tiempo puede ser requerido por la memoria para “recuperar” antes del siguiente acceso  El tiempo del ciclo es acceso + recuperación Tasa de transferencia  Velocidad a la cual los datos pueden ser movidos
  • 7. Administración de Memoria Al igual que con el CPU, los procesos también compiten por el uso de la memoria principal (RAM); ello conlleva que la memoria se comparta de forma eficiente Existen muchas estrategias de administración de memoria, cada una con sus pros y contras, pero lo que más determina cuál esquema utilizar es el diseño del hardware existente La memoria es un inmenso arreglo de bytes o palabras, que contiene tanto instrucciones como datos, y cada una tiene su propia dirección
  • 8. Espacio de DireccionesLógico y Físico Las direcciones que se utilizan dentro de un programa y que son relativas al inicio del mismo se conocen como Direcciones Lógicas ó Virtuales, mientras que a cada una de las posiciones de la memoria RAM se les denomina Direcciones Físicas La sección encargada de convertir las direcciones lógicas en físicas se llama Unidad de Manejo de Memoria (MMU), que es un disp. de hardware Los procesos nunca ven las direcciones físicas y la memoria nunca ve las direcciones lógicas
  • 9. Intercambio Cuando un proceso requiere ser transferido temporalmente al disco durante su ejecución por cuestiones de espacio o alguna otra razón, se debe realizar un Intercambio (Swap) El intercambio debe ser lo más rápido posible para que no afecte demasiado el desempeño, ya sea utilizando discos veloces o apartando secciones del disco de acceso rápido Si el enlazado fue al momento de la carga, los procesos deben recolocarse en la misma posición donde estaban originalmente para que no fallen
  • 10. Asignación Contigua Normalmente se divide la memoria en dos grandes particiones, colocando al sistema operativo en una y a los procesos del usuario en la otra Puesto que el vector de interrupciones debe estar en memoria baja, normalmente el sistema operativo también se coloca ahí Existen varios factores a tomar en cuenta:  Asignación con una sola partición  Asignación con múltiples particiones  Fragmentación externa e interna
  • 11. ASIGNACIÓN DE MEMORIA CLÁSICALos programas reciben del SO un espacio de memoria para su ejecución Monoprogramación MultiprogramaciónMemoria Memoria Programa Aprincipal principal Programa A Programa B Programa C Sistema Sistema operativo operativo
  • 12. Asignación con una SolaPartición En este esquema se asume que hay una sola partición para los procesos del usuario Para cada procesos, se utiliza un Registro de Reubicación y un Registro Límite El registro de reubicación contiene la dirección física en donde se colocó el proceso y el registro límite contiene el tamaño del intervalo asignado Las direcciones lógicas de un proceso no deberán ser mayor al límite; si lo llegan a ser, se levanta una trampa del sistema operativo Las direcciones físicas se obtienen: DF=DL+RR
  • 13. Asignación con una SolaPartición
  • 14. Asignación con MúltiplesParticiones En este método se manejan varias particiones, una para cada proceso existente En la forma más sencilla, cada partición es de tamaño fijo y la cantidad de procesos posible dependerá del número de particiones disponible Otra forma más general es utilizar particiones variable; para esto, el s.o. lleva un control de las regiones libres y ocupadas de la memoria Las regiones libres o disponibles se les llama también como huecos; de entrada, toda la memoria es un solo hueco
  • 15. Asignación con MúltiplesParticiones Conforme van llegando los procesos, se busca un hueco adecuado y se coloca ahí el proceso, actualizando las tablas correspondientes Hay tres métodos normales para asignar huecos a nuevos procesos:  Primer ajuste: se asigna el primer hueco que se encuentre y que tenga el tamaño mínimo necesario  Mejor ajuste: se asigna aquél hueco que tenga al menos el tamaño mínimo necesario, y que además sea el más pequeño de los encontrados  Peor ajuste: se asigna el hueco más grande de todos, siempre y cuando tenga el tamaño suficiente
  • 16. Asignación con MúltiplesParticiones – Ejemplo SO SO SO SO proceso 5 proceso 5 proceso 5 proceso 5 proceso 9 proceso 9 proceso 8 proceso 10 proceso 2 proceso 2 proceso 2 proceso 2
  • 17. Fragmentación Externa eInterna La fragmentación externa se da cuando se van asignando porciones de memoria a los procesos y entre ellas quedan pequeñas secciones sin ocupar En ocasiones, un proceso no se puede almacenar por falta de un segmento contiguo suficiente, pero si se sumaran todos los fragmentos dispersos sí se podría La fragmentación interna se presenta cuando se asignan particiones de tamaños mayores a los de los procesos y queda espacio sin ocupar
  • 18. Fragmentación Externa eInterna Una forma de evitar la fragmentación externa es la Compactación; en esta técnica, se relocalizan los procesos de tal manera que queden contiguos y resulte en un solo hueco grande al final La compactación sólo es posible si se utiliza enlazado dinamico (al momento de ejecución) Es importante evaluar el impacto de la compactación y analizar los algoritmos que se vayan a utilizar para ello; la compactación suele ser muy ineficiente y díficil de lograr adecuadamente
  • 19. SISTEMAS OPERATIVOSMemoria Virtual
  • 20. Antecedentes Los programas normalmente no ocupan al mismo tiempo toda la memoria que solicitan; esto porque el código está dividido en partes o por estructuras de datos parcialmente utilizadas Si se aprovecha esta característica, se pueden poner más procesos en memoria al mismo tiempo lo que ofrece varias ventajas:  Se elimina el límite de la memoria física  Se pueden ejecutar más programas a la vez  Se requiere menos E/S que si se intercambian en total Estas ventajas son propias de la Memoria Virtual
  • 21. Antecedentes – Esquema dela Memoria Virtual
  • 22. Mecanismos de Asignación de Memoria VirtualExisten tres estrategias de administración dela memoria virtual:  OBTENCIÓN  COLOCACIÓN  REMPLAZOLas estrategias de colocación delalmacenamiento sirven para determinar enque lugar del almacenamiento primario sedeben colocar los programas y datosentrantes.  MEJOR AJUSTE  PRIMER AJUSTE  PEOR AJUSTE
  • 23. Paginación Otra posible solución al problema de la fragmentación externa es permitir que el espacio de direcciones de los procesos no sea contiguo La Paginación (Paging) es una implementación de dicha solución La paginación evita el difícil problema de asignar porciones variables a los procesos o de utilizar intercambio constante y su consecuente fragmentación en disco Debido a estas ventajas y a su relativa facilidad de implementación, es de las técnicas más usadas
  • 24. Método Básico de Paginación La memoria física se divide en bloques de tamaño fijo llamados Marcos (Frames) y la memoria lógica se divide en bloques del mismo tamaño llamados Páginas (Pages) Cuando se va a ejecutar un proceso, se carga de disco a los marcos de memoria disponible; el disco también se divide en bloques del mismo tamaño que los marcos Cada dirección lógica se convierte en una combinación de no. de página y desplazamiento en la página; la MMU la convierte en dir. física
  • 25. Método Básico de Paginación v=(p,d) r=(f,d)
  • 26. Método Básico de Paginación El número de página se utiliza como un índice dentro de una Tabla de Páginas, la cual contiene la dirección base de cada uno de los marcos de la memoria física El tamaño de la página lo define el hardware Si se utiliza un esquema de paginación, no existe fragmentación externa, cualquier marco disponible se puede utilizar; lo que sí puede llegar a haber es algo de fragmentación interna Los marcos disponibles se administran por el sistema operativo mediante una Tabla de Marcos
  • 27. Soporte en Hardware para laTabla de Páginas Por lo general, se requiere una tabla de páginas para cada proceso, por lo que se requiere que se almacene un apuntador a ésta en el PCB Se podrían utilizar registros dedicados para almacenar la tabla, sin embargo, esto sólo funciona si son pocas entradas Otra posibilidad es la utilización de un registro especial de alta velocidad que guarda la posición en memoria donde se encuentra la tabla de cada proceso, y su valor cambia de un proceso a otro
  • 28. Páginas Compartidas Una ventaja adicional de la paginación es la capacidad de poder compartir páginas comunes entre varios procesos Esto se logra simplemente haciendo que las tablas de páginas de los procesos referencien a los mismos marcos Esto se puede utilizar para compartir código común (por ejemplo, varios usuarios utilizando un mismo programa) o para implementar un esquema de memoria compartida
  • 29. Segmentación La segmentación es un esquema de memoria en el que se hacen divisiones lógicas de un programa (por funciones, módulos o segmentos de datos), y en el que cada segmento puede tener una longitud variable Los segmentos se numeran de forma creciente y las instrucciones o datos se referencian en base al inicio del segmento Las direcciones lógicas de los procesos se forman entonces de unir el número de segmento con el desplazamiento dentro del segmento
  • 30. Segmentación 1 4 1 2 3 2 4 3 espacio del usuario espacio de memoria física
  • 31. Soporte en Hardware paraSegmentación La segmentación se implementa mediante una Tabla de Segmentos Esta tabla contiene en cada entrada una base de segmento y un límite de segmento La base es la posición en memoria física en la que se encuentra el segmento y el límite es el tamaño de segmento Cuando se busca una dirección lógica, en base al número de segmento se ubica la entrada y se obtiene la base; si el desplazamiento es mayor al límite se rechaza, si no se suma a la base
  • 32. Soporte en Hardware paraSegmentación v=(s,d)
  • 33. Segmentación – Ejemplo Asignación de memoria virtual Un solo segmento Varios segmentosMemoria Programa A Memoria Segmento 0 virtual virtual Segmento 1 Programa A Segmento 2 Sistema Sistema operativo operativo
  • 34. Protección y Compartimentode los Segmentos Al igual que con la paginación, se pueden agregar bits a las entradas de la tabla de segmentos para controlar la validez o el tipo de acceso permitido a cada uno Además, el hecho de que los segmentos tienen un significado lógico permite realizar verificaciones adicionales También se pueden compartir los segmentos, simplemente haciendo referencia en la tabla a la misma dirección física; si lo compartido es código, se debe cuidar que sea código reentrante
  • 35. Fragmentación de losSegmentos De la misma forma que con el esquema de particiones variables, hay que encontrar huecos de memoria libres y de tamaño adecuado para poderlos asignar a nuevos segmentos Para ello se utiliza ya sea el método de primer ajuste o el de mejor ajuste También se puede presentar fragmentación externa entre segmentos En general, si el tamaño promedio de los segmentos es pequeño, la fragmentación también
  • 36. Segmentación con Paginación Una solución más compleja pero que resuelve el problema de la fragmentación externa en la segmentación, es la segmentación con paginación Hay varias formas de implementarlo, aunque en general se realiza una paginación dentro de los segmentos Al asignar los segmentos como páginas completas, se elimina la fragmentación externa a cambio de un poco de fragmentación interna Se requiere un fuerte apoyo del hardware Formato v= (s, p, d)
  • 37. Paginación por Demanda Éste es el método tradicional con el que se implementa la memoria virtual En él, se suben a memoria sólo aquellas páginas que se determinan que se van a utilizar y conforme se van requiriendo Se requiere algún tipo de soporte de hardware para saber si una página está en memoria o en disco; normalmente se usa el bit de validez Si se intenta accesar a una página que no está en memoria, se genera una trampa y el s.o. toma el control
  • 38. Paginación por Demanda
  • 39. Desempeño de la Paginaciónpor Demanda El desempeño de la paginación por demanda se puede medir por medio del Tiempo de Acceso Efectivo Se calcula utilizando el tiempo de acceso a la memoria (tam) y el tiempo de procesar un fallo de página (tfp) Si p es la probabilidad de que se dé un fallo de página, al fórmula es: Tae=(1-p)(tam)+(p)(tfp) El tam normalmente está dado en nanosegundos, pero el tfp está dado en milisegundos (variable)
  • 40. Reemplazo de Páginas Si la cantidad de procesos en memoria es grande, eventualmente se da el caso de que ya no hay marcos libres para asignarse a páginas nuevas Lo que hay que hacer entonces es quitar una de las páginas en memoria y subir otra; a esto se le llama Reemplazo de Páginas Cuando se necesita un marco libre se checa si hay y si no, se busca un marco víctima para liberarlo Para acelerar este proceso se puede utilizar un Bit de Modificación, que indica cambio en el marco; si no se ha cambiado, no se requiere grabarlo
  • 41. Reemplazo de Páginas
  • 42. Algoritmos de Reemplazo dePáginas Existen varios algoritmos que tienen la tarea de indicar cuál página se selecciona como víctima La meta de estos algoritmos es conseguir una Frecuencia de Fallos de Página baja Para evaluar los algoritmos se utiliza una secuencia de referencias a páginas en memoria, y a la que se le llama Serie de Referencias Otro factor que se considera es el número de marcos libres; entre más marcos haya libres, menos fallos de página se darán Cadena de referencia a utilizar para pruebas: 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
  • 43. Algoritmo FIFO En este algoritmo se saca la página que tenga más tiempo en la memoria Se puede grabar el instante en el que se subió, pero lo más fácil es manejar una cola (FIFO) para indicar cuál es la más vieja Este algoritmo es fácil de entender y de implementar, pero su desempeño es pobre Este algoritmo presenta un fenómeno llamado Anomalía de Belady, y se presenta cuando aún teniendo más marcos libres se dan más fallos
  • 44. Algoritmo FIFO – Ejemplo
  • 45. Algoritmo Óptimo Un algoritmo óptimo es aquél que tenga la frecuencia de fallos más baja posible El criterio que se utiliza en este algoritmo es el siguiente: “reemplazar aquella página que vaya a durar más tiempo sin usarse” Siguiendo esta regla se garantiza la frecuencia más baja Sin embargo, es difícil de implementar pues se necesitaría saber de antemano qué páginas se van a solicitar, y eso no es posible Por eso se usa sólo para hacer comparaciones
  • 46. Algoritmo Óptimo – Ejemplo
  • 47. Algoritmo LRU El algoritmo LRU es un punto medio de los anteriores, y busca aquella página que se haya usado con mayor anterioridad (Least Recently Used, LRU), es decir, la que tenga más tiempo sin usarse Es una muy buena aproximación al óptimo y por ello es muy utilizada, aunque la dificultad estriba en cómo implementarla Se pueden utilizar dos esquemas (contadores o pilas), sin embargo requieren apoyo de hardware el cual normalmente no existe
  • 48. Algoritmo LRU – Ejemplo
  • 49. Algoritmos de Aproximación aLRU Puesto que casi nunca hay hardware para implementar correctamente el LRU, hay que usar algún tipo de aproximación aprovechando el hardware que sí esté disponible Algunos de ellos utilizan un Bit de Referencia, (que indica si se utilizó el marco) y/o el Bit de Modificación (que ya se vió) Los algoritmos de aproximación son:  Algoritmo con Bits de Referencia Adicionales  Algoritmo de Segunda Oportunidad  Algoritmo de Segunda Oportunidad Mejorado
  • 50. Algoritmo con Bits deReferencia Adicionales En este algoritmo se almacena un byte por cada página con un registro de los valores que ha tenido el bit de referencia durante un tiempo Lo que se hace es que utiliza un timer que cada cierto tiempo le da el control al s.o. y éste almacena el valor del bit de referencia de todas las páginas en un byte, usando un Shift Derecho Con este esquema, la página que tenga el número binario más chica es la LRU y ésa se escoge Si hay más de una con el mismo valor, se pueden bajar todas o se escoge la más vieja (FIFO)
  • 51. Algoritmo de SegundaOportunidad Este algoritmo es una modificación del Algoritmo FIFO, pero una vez que ya se seleccionó la víctima se checa si se ha usado y en dado caso se le da una segunda oportunidad y se escoge otra Cuando se selecciona una páginas se verifica si su bit de referencia está en 1 y si es así se escoge la siguiente en la cola; a la que se le dio la segunda oportunidad se le pone el bit en 0 y se reasigna su tiempo de llegada a la hora actual Usualmente se implementa con una cola circular
  • 52. Algoritmo de SegundaOportunidad – Ejemplo
  • 53. Algoritmo de SegundaOportunidad Mejorado En este algoritmo se maneja no sólo el bit de referencia sino también el bit de modificación, concatenándolos en ese orden con lo que se crean cuatro clases (en orden de mejor a peor):  Valor 00: no se ha usado ni se ha modificado  Valor 01: no se ha usado pero se modificó  Valor 10: se usó pero no se ha modificado  Valor 11: se usó y se modificó Se hace lo mismo que en el otro pero se recorre la cola hasta que se encuentra la página con el valor más pequeño; es posible que se den varias vueltas
  • 54. Algoritmo de Colocación dePáginas en Búfers Además de utilizar un algoritmo para seleccionar la víctima se pueden agregar otros procedimientos que mejoran el desempeño del reemplazo de páginas Este algortimo mantiene un conjunto de Marcos de Reserva que se utilizan al momento de asignar un marco Cuando ya se escogió un marco víctima se toma un marco de la reserva y se le asigna a la página nueva mientras que el víctima se libera; de esta forma el otro proceso entra más rápido
  • 55. Asignación de Marcos El asignar un marco libre a un proceso no siempre es una tarea trivial Normalmente la estrategia utilizada es asignar cualquier marco libre a los procesos del usuario Sin embargo, hay que considerar varios aspectos:  El número mínimo de marcos por proceso  Si se usa asignación equitativa o proporcional  Si se maneja asiganción global o local Estos aspectos son muy importantes cuando se mantienen muchos procesos en memoria
  • 56. Número Mínimo de Marcos Entre más pocos marcos tenga asignados un proceso más tiempo tardará en fallos de página Pero además de este efecto, hay que considerar cuál es la cantidad mínima que debe tener un proceso para que no vaya a causar algún error durante su ejecución por falta de marcos libres Este número lo determina el hardware y el conjunto y tipo de instrucciones de bajo nivel, y tiene que ver con la cantidad máxima de páginas que se pueden llegar a ocupar al mismo tiempo por una sola instrucción
  • 57. Preguntas ???