Вы находитесь на странице: 1из 11

UNIVERSIDAD DE CUENCA FACULTAD DE INGENIERIA

TRABAJO DE INVESTIGACION SISTEMAS OPERATIVOS TEMA: MEMORIA DEL SISTEMA OPERATIVO

NOMBRE: JUAN NACIPUCHA PROFESOR ING. JAIME VEINTIMILLA

FECHA: 24 DE OCTUBRE DE 2012

OBJETIVOS Conocer los diferentes tipos de memoria y su utilidad en un sistema operativo. Profundizar conceptos y usos de la paginacin y direccionamiento de la memoria en los sistemas. Definir los conceptos de memoria virtual y su relevancia. INTRODUCCIN Uno de los aspectos ms importantes para el estudio de los sistemas operativos, es el anlisis de la memoria que usa en sus diferentes etapas de funcionamiento y en los diferentes procesos que ejecuta. Por lo tanto, ampliaremos las definiciones de memoria expandida y memoria principal que son las utilizadas en procesos de un sistema, sus diferentes intervalos de bits de memoria en el que trabajan cada de ellas. Algoritmos de remplazo usados comnmente como es el caso de el algoritmo FIFO, reloj, y no usados recientemente. Y finalmente definiremos el tipo de memoria mas relevante y complejo de los sistemas operativos, que es el caso de la memoria virtual.

MEMORIA DEL SISTEMA OPERATIVO

TIPOS Y USOS DE LA MEMORIA. Existe una gran variedad de tipos de memoria o, mejor dicho, existen varias formas de denominar las distintas zonas de trabajo y almacenamiento de la memoria principal. De las que podemos destacar las siguientes:

Memoria convencional: La memoria convencional es la parte de la memoria RAM comprendida entre los 0 y los 640K. Estos 640K de memoria convencional son los utilizados por el sistema operativo DOS para cargar el sistema y los programas de usuario. Es la memoria utilizada por el DOS para almacenar la tabla de interrupciones del sistema, el ncleo del DOS (que son rutinas bsicas almacenadas en los ficheros I0.SYS y MSDOS.SYS), aquellas ordenes del fichero CONFIG.SYS que deben quedar residentes en memoria, controladores de dispositivos, el COMMAND.COM y los programas de usuario. Memoria Alta: Son los primeros 64 K de memoria extendida. En un equipo que cuente con memoria extendida, El programa Instalar instalara MS-DOS para que se ejecute en el rea de memoria alta, esto dejara ms memoria convencional disponible para los programas. Memoria Superior: Con este trmino se designan los 384 Kb comprendidos entre los 640 Kb y los 1.024 Kb. En esta zona de memoria se almacena la memoria de vdeo, las rutinas de la ROM-BIOS y otras rutinas del sistema. En la memoria superior existen huecos libres, es decir, direcciones de memoria no asignadas a ningn programa y que se encuentran dentro del rango de direcciones de la memoria base, por lo que son accesibles por el DOS. INIB. Las partes de la memoria superior que no se usan se llaman bloques de memoria superior (UMB); en un equipo 80386 o 80486, los bloques (UMB) se podrn utilizar para ejecutar controladores de dispositivos y programas residentes en memoria. Memoria de Video: La memoria de vdeo es la zona de la RAM donde se almacenan las combinaciones de bytes correspondiente a la informacin que se va ha mostrar en pantalla. Este tipo de memoria puede ser direccionada a travs de la memoria superior entre los 640K y los 768K. Memoria Extendida: Se considera como memoria extendida la zona de la memoria RAM que se encuentra por encima de los 1.024 Kb. Este tipo de memoria es propia de microprocesadores 80286, 80386, 80486 y Pentium. Los microprocesadores 80286 y 80386 tienen dos modos de funcionamiento: Modo real: Funcionan como un 8088 o un 8086, ya que nicamente tienen acceso a 1 Mb de memoria, no pudiendo hacer uso de la memoria extendida.

Modo protegido: Funcionan como un 80286 o 80386, pudiendo acceder a los 16 Mb o 4 Gb de memoria, para la carga y ejecucin de programas y para el almacenamiento de datos. Para utilizar la memoria extendida, el microprocesador tiene que trabajar en modo protegido, ya que slo trabajando en este modo se puede tener acceso a la memoria que se encuentra por encima de 1 Mb. Puesto que el DOS nicamente opera en modo real, para gestionar la memoria extendida se establece un estndar llamado XMS (eXtended Memory Specification), gracias al cual, los programas del DOS pueden utilizar memoria extendida. La memoria extendida slo puede ser aprovechada por programas diseados especficamente para ello. Un programa que administra el acceso a la memoria extendida, evita, por ejemplo, que dos programas utilicen la misma rea de la memoria al mismo tiempo. Este programa se llama "administrador de memoria extendida". MS-DOS cuenta con el administrador de memoria extendida estndar llamado HIMEM.SYS (tambin se encuentra en Windows 98). Se carga en el config.sys agregando la sintaxis: DEVICE=path/himem.sys en donde path es la ruta de acceso al archivo. Memoria expandida: Es la zona de la memoria RAM que queda fuera del rango de los 1.024 K, es decir, por encima de 1 Mb de memoria base. Es una memoria extra (adems de la convencional) que pueden utilizar algunas aplicaciones basadas en MS-DOS. La mayora de los equipos pueden acomodar memoria expandida. La memoria expandida se instala en una tarjeta de memoria expandida y viene incorporada a su administrador de memoria expandida. La especificacin de memoria expandida se encarga de realizar dos tareas: Dividir la memoria definida como memoria expandida en bloques de 16 K llamados pginas lgicas por encima de los 1.024 K. Crear un marco de pgina (page frame) de 64 K dentro del rango de los 0 K a los 1.024 K, comprendido normalmente entre los 832 K y los 896 K, que divide normalmente en cuatro bloques de 16 K llamados pginas fsicas. Este marco de pgina es accesible por el DOS al encontrarse en memoria superior. Debido a que un administrador de memoria expandida proporciona acceso a solo una cantidad limitada de memoria expandida a un tiempo, el uso de esta ser ms lento que el de la memoria extendida. Memoria Cache: La memoria cach es igual a la memoria principal. Sin embargo, fsicamente en la computadora es un componente distinto. Se puede definir como una memoria rpida y pequea, situada entre la memoria principal y el procesador, especialmente diseada para

contener informacin que se utiliza con frecuencia en un proceso con el fin de evitar accesos a otras memorias (principal), reduciendo considerablemente el tiempo de acceso al ser ms rpida que el resto de la memoria principal. Cuando el procesador lee datos o los almacena en la memoria principal, los datos tambin se almacenan en la memoria cach. Si el microprocesador los necesita de nuevo, los lee de la cach y no de la principal. Al ser sta muy rpida la velocidad se incrementa considerablemente. PAGINACION Paginacin es un tipo de almacenamiento a un solo nivel en donde el espacio de direcciones virtuales se divide en pginas del mismo tamao. La memoria principal se divide tambin en marcos o pginas fsicas del mismo tamao. Estos marcos son compartidos entre los distintos procesos que haya en el sistema, de forma que en cualquier momento un proceso dado tendr unas cuantas pginas residentes en la memoria principal (sus pginas activas) y el resto en la memoria secundaria (sus pginas inactivas). El mecanismo de paginacin cumple dos funciones: Llevar a cabo la transformacin de una direccin virtual a fsica, o sea, la determinacin de la pgina a la que corresponde una determinada direccin de un programa, as como del marco, si lo hay, que ocupa esta pgina. Para determinar la pgina a la que hace referencia un programa, los bits de mayor peso de la direccin se interpretan como el nmero de pgina, y los bits de menor peso como el nmero de palabra dentro de esta pgina. De ah que si el tamao de pgina es 2n, los n bits finales de la direccin representarn el nmero de palabra y los bits restantes del principio el nmero de pgina. El nmero total de bits en la direccin es suficiente para direccionar la totalidad de la memoria virtual. La transformacin de nmero de pgina y de palabra en la direccin fsica de memoria se realiza a travs de una tabla de pginas, cuyo p-simo elemento contiene la posicin p' del marco que contiene a la pgina. El nmero de palabra, w, se suma a p' para obtener la direccin buscada.

Transferir, cuando haga falta, pginas de la memoria secundaria a la memoria principal, y de la memoria principal a la memoria secundaria cuando ya no sean necesarias. Como el nmero de marcos (cantidad de memoria real) asignados a un proceso ser normalmente menor que el nmero de pginas que ste utiliza, es muy posible que una direccin del programa haga referencia a una pgina que no se encuentre en aquel momento en la memoria principal. En este caso el elemento correspondiente de la tabla de pginas estar vaco, provocando el hardware una interrupcin de "fallo de pgina" si se intenta acceder a ella. Esta interrupcin provoca que el control pase al software (al sistema operativo), para que ste inicie la transferencia de la pgina que falta desde la memoria secundaria a la memoria principal, y actualice de acuerdo con ello la tabla de pginas. El proceso en ejecucin se har no listo hasta que se haya completado esta transferencia. La posicin de las pginas en la memoria secundaria puede guardarse en una tabla separada o en la misma tabla de pginas. En este ltimo caso, es necesario un "bit de presencia" en cada elemento de la tabla de pginas, para indicar si la pgina se encuentra presente o no en la memoria principal, y si el campo de direcciones debe interpretarse como una direccin de marco, o bien como una direccin de la memoria secundaria. Proteccin: La proteccin de la memoria en un entorno paginado se consigue por medio de unos bits de proteccin asociados a cada pgina. Normalmente estos bits se mantienen en la tabla de pginas. Un bit puede definir que una pgina sea de lectura/escritura o de slo lectura. Cada referencia a memoria pasa a travs de la tabla de pginas para encontrar el nmero de marco correcto. Al tiempo que se calcula la direccin fsica, pueden verificarse los bits de proteccin para asegurar que no se escribe sobre una pgina de slo lectura. Una tentativa de escribir sobre una pgina de slo lectura ocasiona una excepcin hardware al sistema operativo (por violacin de acceso a una zona de la memoria principal). Esta concepcin de la proteccin puede ser extendida fcilmente para obtener una proteccin ms detallada. Podemos disponer de hardware que ofrezca proteccin de slo lectura, lectura-escritura o slo ejecucin. O bien, por medio de bits de proteccin independientes para cada tipo de acceso, puede permitirse cualquier combinacin de estos accesos, al tiempo que las tentativas ilegales generan una excepcin al sistema operativo. Algoritmo de remplazamiento FIFO: El algoritmo FIFO es fcil de comprender y programar, pero su rendimiento no siempre es bueno. La pgina remplazada puede ser un mdulo de asignacin de valores iniciales que se utiliz hace mucho tiempo y que ya no se necesita. Pero tambin puede contener una variable cuyo valor inicial se asign hace tiempo pero que se utiliza constantemente. Adems, este algoritmo presenta una irregularidad denominada anomala de Belady. Para ilustrarlo suponga que ahora tenemos la siguiente serie de referencias 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. En la figura se muestra la curva de fallos de pginas frente al nmero de marcos

disponibles. Sorprendentemente el nmero de fallos para cuatro marcos es mayor que para tres marcos. Esto significa que con el algoritmo FIFO la tasa de fallos pueden} aumentar al incrementar el nmero de marcos asignados.

Algoritmo de remplazo Reloj: Aunque la segunda oportunidad es un algoritmo razonable, es ineficiente e innecesario, puesto que desplaza las pginas en una lista. Un mejor diseo consiste en mantener las pginas en una lista circular, con la forma de un reloj, como se muestra en la figura. Una manecilla apunta hacia la pgina ms antigua.

Al ocurrir un fallo de pgina, se inspecciona la pgina a la que apunta la manecilla. Si su bit R vale 0, la pgina se retira de la memoria, se inserta la nueva pgina en su lugar en el reloj, y la manecilla avanza una posicin. Si R vale 1, este bit se pone a 0 y la manecilla avanza a la pgina siguiente. Este proceso contina hasta encontrar una pgina con R a cero. Algoritmo de remplazo no usado recientemente: La mayora de los ordenadores presentan los bits R (de referencia) y M (de modificacin) en las entradas de la tabla de pginas, siendo estos bits actualizados va hardware. Si el hardware no proporciona dichos bits, stos pueden ser simulados mediante el software. Para ello, cuando se inicia un proceso se sealan todas sus entradas en la tabla de pginas como si no estuvieran dentro de la memoria. Si se hace referencia a cualquier pgina, ocurre un fallo de pgina. El sistema operativo activa entonces el bit R (en sus propias tablas) y cambia la entrada de la tabla de pginas para que apunte hacia la pgina correcta, poniendo

dicha entrada en modo slo lectura (recordar los bits de permisos). El proceso retoma su ejecucin; si se escribe en la pgina, ocurre otra interrupcin por violacin de permisos, lo que permite al sistema operativo activar el bit M en sus tablas, cambiando los permisos de la pgina a lectura y escritura. Disponiendo de los citados bits R y M se puede construir el siguiente algoritmo: al iniciar un proceso, el sistema operativo asigna un valor 0 a los bits R y M de todas sus pginas. De manera peridica (cada interrupcin del reloj) se pone a cero el bit R, para distinguir las pginas que no tienen referencias recientes de las que s. Ante un fallo de pgina, el sistema operativo inspecciona todas las pginas y las divide en cuatro categoras, segn los valores actuales de los bits R y M: Clase 0: no referenciada, ni modificada (0,0). Clase 1: no referenciada, pero modificada (0,1). Clase 2: referenciada, pero no modificada (1,0). Clase 3: referenciada y modificada (1,1).

Aunque parece imposible la existencia de las pginas de la clase 1, este caso aparece cuando en una pgina de clase 3, una interrupcin del reloj pone a cero su bit R. Las interrupciones del reloj no provocan el poner a cero el bit M, puesto que esta informacin es necesaria para saber si hay que volver a escribir la pgina en el disco o no. El algoritmo NRU elimina una pgina de manera aleatoria de la primera clase no vaca con el nmero ms pequeo. Una hiptesis implcita de este algoritmo es que es mejor eliminar una pgina modificada sin referencias en al menos un intervalo del reloj (por lo general, de 20 mseg) que una pgina sin modificar de uso frecuente. Este algoritmo es fcil de comprender, tiene una implementacin eficiente y un rendimiento aceptable. DIRECCIONAMIENTO Cada computadora tiene cierta memoria principal que utiliza para mantener los programas en ejecucin. En un sistema operativo muy simple slo hay un programa a la vez en la memoria. Para ejecutar un segundo programa se tiene que quitar el primero y colocar el segundo en la memoria. Los sistemas operativos ms sofisticados permiten colocar varios programas en memoria al mismo tiempo. Para evitar que interfieran unos con otros (y con el sistema operativo), se necesita cierto mecanismo de proteccin. Aunque este mecanismo tiene que estar en el hardware, es controlado por el sistema operativo. El anterior punto de vista se relaciona con la administracin y proteccin de la memoria principal de la computadora. Aunque diferente, dado que la administracin del espacio de direcciones de los procesos est relacionada con la memoria, es una actividad de igual importancia. Por lo general, cada proceso tiene cierto conjunto de direcciones que puede utilizar, que generalmente van desde 0 hasta cierto valor mximo. En el caso ms simple, la mxima

cantidad de espacio de direcciones que tiene un proceso es menor que la memoria principal. De esta forma, un proceso puede llenar su espacio de direcciones y an as habr suficiente espacio en la memoria principal para contener todo lo necesario. Sin embargo, en muchas computadoras las direcciones son de 32 o 64 bits, con lo cual se obtiene un espacio de direcciones de 232 o 264 bytes, respectivamente. Qu ocurre si un proceso tiene ms espacio de direcciones que la memoria principal de la computadora, y desea usarlo todo? En las primeras computadoras, dicho proceso simplemente no poda hacer esto. Hoy en da existe una tcnica llamada memoria virtual, como se mencion antes, en la cual el sistema operativo mantiene una parte del espacio de direcciones en memoria principal y otra parte en el disco, moviendo pedazos de un lugar a otro segn sea necesario. En esencia, el sistema operativo crea la abstraccin de un espacio de direcciones como el conjunto de direcciones al que puede hacer referencia un proceso. El espacio de direcciones se desacopla de la memoria fsica de la mquina, pudiendo ser mayor o menor que la memoria fsica. La administracin de los espacios de direcciones y la memoria fsica forman una parte importante de lo que hace un sistema operativo, por lo cual el captulo 3 se dedica a este tema. MEMORIA VIRTUAL La memoria virtual utiliza dos niveles dela jerarqua de memoria: la memoria principal y una memoria respaldo (que suele ser el disco, aunque puede ser una memoria expandida). Sobre memoria de respaldo se establece mapa uniforme de memoria virtual. Las direcciones generadas por el procesador se refieren a este mapa virtual, pero sin embargo, los accesos reales se realizan sobre la memoria principal. Para su funcionamiento, la memoria virtual exige una gestin automtica de la parte de la jerarqua de memoria formada por los niveles de memoria principal y de disco. Insistimos en que la gestin de la memoria virtual es automtica y la realiza el sistema operativo con ayuda del hardware de la maquina. Esta gestin incluye toda la memoria principal y una parte de la memoria del disco, que sirve de respaldo a la memoria virtual. Los aspectos principales en los que se basa la memoria virtual son los siguientes: Las direcciones generadas por las instrucciones maquina, tanto para referirse a datos como a otras instrucciones, estn referidas al aspecto virtual, es decir, forman parte del mapa de la memoria virtual. En este sentido se suele decir que el proceso genera direcciones virtuales.

El mapa virtual asociado a un programa en ejecucin esta soportado fsicamente por una zona del disco, denominado de intercambio o swap, y por una zona de la memoria principal. Aunque el programa genera direcciones virtuales, para que este pueda ejecutarse, han de residir en memoria principal las instrucciones y los datos utilizados en cada momento. Si por ejemplo, un dato referido por una instruccin maquina no reside en la memoria principal es necesario realizar un trasvase de informacin entre el disco y la memoria principal antes de que el programa pueda seguir ejecutando. Los espacios virtuales y fsicos se dividen en pginas. Se denominan pginas virtuales a las pginas del espacio virtual, paginas de intercambio a las paginas residentes en el disco y marcos de pgina a los espacios en los que se divide la memoria principal. Cada marco de pgina es capaz de albergar una pgina virtual cualquiera, sin ninguna restriccin de direccionamiento. Existe una unidad hardware, denominada MMU(Memo Management Unit), que traduce las direcciones virtuales a direcciones de memoria principal. Aplicando lo anteriormente visto, se puede decir que esta traduccin se restringe a traducir el nmero de pginas virtuales en el correspondiente nmero de marco de pgina. Insistimos que esta traduccin hay que hacerla por hardware dada la alta velocidad a la que debe hacerse (una fraccin del tiempo de acceso de la memoria principal). Dado que en cada instante determinado solamente reside en memoria principal una fraccin de las pginas del programa, la traduccin no siempre es posible. Por tanto, la MMU producir una excepcin de fallo de pgina cuando est no este en memoria principal.

Los fallos de pgina son atendidos por el sistema operativo que se encarga de realizar la adecuada migracin de pginas, para traer la pgina requerida por el programa a un marco de pgina. Se denomina paginacin al proceso de migracin necesaria para atender los fallos de pgina. Finalmente conviene resaltar que el tamao del espacio virtual suele ser muy grande. En la actualidad se emplea direcciones de 32, 48 o hasta 64 bits, lo que significa espacios virtuales de 232, 248 y 264 bytes. Dado que los programas requieren en general mucho menos espacio, una de las funciones que realiza el sistema operativo es la asignacin de espacio virtual a los programas para su ejecucin. El programa no podra utilizar todo el

espacio virtual sino que ha de restringirse a la zona o zonas que le asigne el sistema operativo. En la siguiente figura se muestra que el espacio virtual reservado al programa A puede estar en una nica zona o puede estar dividida en varias zonas, que se denomina segmentos.

Una de las caractersticas importantes de los lenguajes de programacin actuales es que permiten la asignacin dinmica de memoria. Esto significa que no se conoce a priori la cantidad de memoria que necesitara el programa para su ejecucin. Por tanto, el sistema operativo ha de ser capaz o reducir el espacio asignado a un programa de acuerdo a las necesidades que vayan surgiendo en su ejecucin. CONCLUSIONES Al trmino de la presente investigacin, hemos podido definir correctamente los diferentes tipos de memoria que se usan en los sistemas operativos, as como, algoritmos de paginacin, que nos ayudan en la deteccin y correccin de errores tpicos en el momento de almacenamiento y busca de informacin o en el momento de ejecucin de algn proceso. Cabe recalcar que los temas investigados sern de gran ayuda para la asignatura, ya que, se estar usando constantemente estos trminos en los estudios de los diferentes sistemas operativos usados. Se puede establecer que la presente investigacin fue satisfactoria, al cumplir con todos los objetivos planteados para la misma. REFERENCIAS Sistemas operativos - DOS Memoria, ver pgina web: http://es.kioskea.net/contents/dos/dosmem.php3 Sistema operativo MS-DOS, ver pgina web: http://es.scribd.com/doc/54649388/8/Memoria-convencional-CONVENTIONALMEMORY Memoria Cach, ver pgina web: http://www.fismat.umich.mx/~elizalde/curso/node11.html Tipos de memoria, ver pgina web: http://www.masterhacks.20m.com/custom_40.html Sistemas Operativos, Magister David Luis La Red Martnez Sistemas Operativos Modernos, ANDREW S. TANENBAUM Sistemas Operativos, William Stallings