estructuras de hardware y de control

28
Estructuras de Hardware y de Control

Upload: jose-villalobos-rdz

Post on 18-Feb-2017

169 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Estructuras de hardware y de control

Estructuras de Hardware y de Control

Page 2: Estructuras de hardware y de control

IntroducciónUno de los aspectos más difíciles en el diseño de los sistemas operativos es el manejo de la memoria y a pesar de que esta ha crecido hasta alcanzar tamaños cercanos al gigabyte nunca hay la suficiente memoria para soportar los programas y las estructuras de datos de los procesos. Parafraseando la ley de Parkinson, “Programs and their data expand to fill the memory available to hold them”

Page 3: Estructuras de hardware y de control

Estructuras de Hardware y de Control

Los métodos de administración de la memoria principal, que no utilizan Memoria Virtual y esquemas de Paginación y Segmentación, es decir que llevan a las direcciones directamente al bus de la memoria, tienen un inconveniente: producen lo que se denomina fragmentación.

Page 4: Estructuras de hardware y de control

Estructuras de Hardware y de Control

Una parte central de las tareas del SO es el manejo de la memoria. Pero el SO se enfrenta a un problema que es la E/S de memoria ya que es un proceso lento por lo cual el SO debe administrar muy bien los tiempos de swapping de E/S. Para lograr que estos procesos no afecten fuertemente los tiempos de procesamiento de otros procesos se tienen diferentes técnicas y formas de manejo de la memoria virtual

Page 5: Estructuras de hardware y de control

Estructuras de Hardware y de Control

Al comparar la paginación y segmentación simple con la partición estática y dinámica se organizaron las bases en la gestión de la memoria. Las claves de esto son dos: la paginación y la segmentación. Todas las referencias a memoria en un proceso son direcciones lógicas que se traducen dinámicamente a direcciones físicas.

Un proceso puede dividirse en varias partes (páginas o segmentos) y no es necesario que sean contiguas en memoria principal durante ejecución debido a la combinación de la traducción dinámica de direcciones y el uso de tablas durante ejecución.

Page 6: Estructuras de hardware y de control

Memoria VirtualTiempo atrás las personas comenzaron a enfrentarse con el problema de que los programas eran demasiado grandes para caber en la memoria, la solución a este problema se le llamó overlay. Aunque el trabajo real de swapping de estos era hecho por el SO, la decisión de como dividir el programa para diferentes overlays era hecho por los programadores lo cual era muy tedioso y consumía mucho tiempo y no pasó mucho para que alguien pensara cómo pasar este trabajo a la computadora a lo cual se le llamo Memoria Virtual.

Page 7: Estructuras de hardware y de control

Memoria VirtualEsta memoria esta basada en el uso de paginación y la combinación de paginación y segmentación. También puede trabajar con sistemas de multiprogramación dando tiempos de espera para la E/S de la memoria necesaria dejando el procesador libre para otros programas. La memoria virtual es un mecanismo de manejo de memoria que es transparente para las aplicaciones ya que lo que hace es aparentar al programa que se tiene un espacio de memoria “ilimitado”

Page 8: Estructuras de hardware y de control

Hiperpaginación (Thrashing) Esta se produce cuando el procesador consume mas tiempo intercambiando fragmentos de memoria(cargando y eliminando paginas o segmentos) que ejecutando las instrucciones realizadas por el usuario. Esto se puede deber a un tamaño de paginas muy grande o muchas pequeñas con nulo o muy poco uso, por lo cual estas llenan la memoria principal y no se utilizan por completo.

Para evitar esto se crearon varios métodos como seria la cercanía de referencias

Page 9: Estructuras de hardware y de control

Cercanía de referencias Esta consiste en esencia en el intento del sistema operativo de adivinar o suponer en función de la historia reciente de los procesos que fragmentos se usaran con menor probabilidad en el futuro o cuales dejaron de ser necesarios y pueden ser eliminados sin afectar los procesos necesarios

Page 10: Estructuras de hardware y de control

PaginaciónEsquema básico de memoria virtual basado en paginación.•Cada proceso tiene su propia tabla de páginas. Cuando todas son cargadas en memoria principal, se crea y carga en memoria principal una tabla de páginas.•La tabla de páginas contiene en cada una de sus entradas el número de marco de la página correspondiente en memoria principal

Page 11: Estructuras de hardware y de control

PaginaciónComo sólo algunas de las páginas de un proceso pueden estar en memoria principal, se necesita un bit en cada entrada que indique si la página correspondiente está presente (P) en memoria principal. Si es así, la entrada incluye también el número de marco para esa página.

Otro bit de control es el bit de modificación (M). Indica si el contenido de la página correspondiente fue modificado desde su carga en memoria principal.

Page 12: Estructuras de hardware y de control

Estructura de la tabla de páginas

La mayoría de los esquemas de memoria virtual almacenan las tablas de páginas en memoria virtual en lugar de hacerlo en memoria real, lo cual significa que estas tablas de páginas están también sujetas a paginación como las otras páginas.

Cuando un proceso se está ejecutando, al menos una parte de su tabla de páginas debe estar en memoria principal, incluyendo la entrada de la tabla de páginas para la página actualmente en ejecución

Page 13: Estructuras de hardware y de control

Estructura de la tabla de páginas

Algunos procesadores usan un esquema a dos niveles para organizar grandes tablas de páginas.Hay un directorio de páginas en el que cada entrada indica a una tabla de páginas. Si la longitud del directorio de páginas es X y la longitud máxima de una tabla de páginas es Y, un proceso puede estar formado por hasta X*Y páginas.

Page 14: Estructuras de hardware y de control

Buffer de traducción adelantadaPara disminuir el tiempo de acceso a memoria, la mayoría de los esquemas de memoria virtual hacen uso de una cache especial para las entradas de la tabla de páginas, llamada buffer de traducción adelantada (TLB, Translation Lookaside Buffer).

Contiene las entradas de la tabla de páginas y los números de página más usados hace menos tiempo.

Page 15: Estructuras de hardware y de control

Buffer de traducción adelantadaDada una dirección virtual, el procesador examinará primero la TLB

Si la entrada de tabla de páginas buscada está presente, se obtiene el número de marco y se forma la dirección real.

Si no se encuentra la entrada de la tabla de páginas buscada, el procesador utiliza el número de página para buscar en la tabla de páginas del proceso y examinar la entrada correspondiente de la tabla de páginas.

Si se encuentra activo el bit P, el procesador puede obtener el número de marco de la entrada de la tabla de páginas para formar la dirección real. Cuando no está activo ocurre un error de acceso a memoria llamado fallo de página.

Page 16: Estructuras de hardware y de control

Tamaño de páginaFactores:•Fragmentación interna (en cuanto menor sea el tamaño de página, menor será la cantidad de fragmentación interna) Si se reduce esta, se optimiza el uso de memoria principal•Las características físicas de los dispositivos de memoria secundaria, que son de rotación, son propicias a tamaños de página mayores.

Page 17: Estructuras de hardware y de control

Tamaño de páginaPueden suceder dos fallos de página para una referencia a memoria:•Para traer la parte que se necesita de la tabla de paginas•Para traer la página del proceso•Si el tamaño de la página es pequeño, estarán en memoria principal muchas páginas para cada proceso y contendrá referencias más recientes del proceso.•Si el tamaño de la página se incrementa, cada página contendrá posiciones distantes de cualquier referencia reciente. (Empieza a aumentar la tasa de fallos)

Page 18: Estructuras de hardware y de control

Tamaño de página El tamaño de la página está relacionado con el tamaño de la memoria física principal, la memoria virtual se diseñó con el supuesto de que la física no es muy grande.

Si la memoria principal crece, el espacio de direcciones que se emplea también lo hace.

Page 19: Estructuras de hardware y de control

Tamaño de páginaTécnicas de programación empleadas:•De orientación a objetos fomentando el uso de varios módulos pequeños de programas y datos con referencias dispersas por un número de objetos relativamente grande en un periodo corto.•Las aplicaciones con varios hilos dan como resultado cambios bruscos en el flujo de instrucciones y referencias a memoria dispersas.

Page 20: Estructuras de hardware y de control

SegmentaciónConsecuencias de la memoria virtual•La segmentación permite contemplar la memoria como si constara de varios espacios de direcciones.•Con la memoria virtual el programador no tiene limitaciones de memoria impuestas por la principal.•Los segmentos pueden ser de diferente tamaño.

Page 21: Estructuras de hardware y de control

Consecuencias de la memoria virtual

Ventajas:•Simplifica el manejo de estructuras de datos crecientes•Permite modificar y recompilar los programas independientemente•Se presta a la compartición entre procesos.•Se presta a la protección

Page 22: Estructuras de hardware y de control

OrganizaciónEn el estudio de la segmentación simple, se llego a la conclusión de que cada proceso tiene su propia tabla de segmentos y que, cuando todos los segmentos se encuentran en memoria principal, la tabla de segmentos del proceso se crea y carga en memoria. En este caso sin embargo las entradas de la tabla de segmentos pasan a ser más complejas.

Page 23: Estructuras de hardware y de control

OrganizaciónPuesto que solo algunos de los segmentos de un proceso estarán en memoria principal, se necesita un bit en dada entrada de la tabla de segmentos para indicar si el segmento correspondiente está presente en memoria principal. Si el bit indica que el segmento esta en memoria, la entrada incluye también la dirección de comienzo y la longitud del segmento.

Page 24: Estructuras de hardware y de control

OrganizaciónAsí pues el mecanismo básico para leer una palabra de memoria supone la traducción de una dirección virtual o lógica formada por un número de segmentos y un desplazamiento, a una dirección física, mediante una tabla de segmentos. Puesto que la tabla de segmentos tiene longitud variable, en función del tamaño del proceso, no es posible suponer que quepa en registros.

Page 25: Estructuras de hardware y de control

Paginación y Segmentación Combinadas

Para combinar las ventajas de ambas, algunos sistemas están equipados con hardware del procesador y software del sistema operativo que las permiten.

En un sistema de paginación y segmentación combinadas, 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 tiene la misma longitud que un marco de memoria principal.

Page 26: Estructuras de hardware y de control

Protección y comparticiónUn esquema habitual consiste en usar una estructura de anillo de protección. Con este esquema, los anillos más interiores o con números menores gozan de mayores privilegios que los anillos externos o con números mayores. Normalmente el anillo 0 está reservado para las funciones del núcleo del sistema operativo y las aplicaciones están situadas en un nivel más alto. Algunas utilidades o servicios del sistema operativo pueden ocupar un anillo intermedio.

Page 27: Estructuras de hardware y de control

Protección y ComparticiónLos principios básicos del sistema de anillos son los siguientes:•Un programa puede acceder solo a datos que estén en el mismo anillo o en un anillo de menor privilegio.•Un programa puede hacer llamadas a servicios que residen en el mismo anillo o en anillos más privilegiados.

Page 28: Estructuras de hardware y de control

Bibliografía Stallings, William. 1997. Sistemas Operativos. 2ª Ed. Prentice Hall. España. Pp. 283-302

Stallings, William. 2008. Operating Systems Internals and Design Principles. 6ª Ed. Prentice Hall. Estados Unidos de América. Pp. 346-349

TanenBaum, Andrew S. 2006. Operating Systems Design and Implementation. 3ª Ed. Prentice Hall. Estados Unidos de América. p 410.

Universidad de Málaga. Departamento de Arquitectura de Computadores. Memoria Virtual. Disponible en: http://www.ac.uma.es/~sromero/so/Capitulo8.pdf