You are on page 1of 21

Ao de la Integracin Nacional y el Reconocimiento de Nuestra Diversidad

Facultad De Ingenieras Y Arquitectura /Escuela Profesional De Ingeniera De Sistemas e Informtica Tema: Planificacin de Procesos Curso: Sistemas Operativos Docente: Pedro David Coronado Rodriguez Ciclo: V Estudiante: Agero Guilln Betty Arotinco Pariona Paulina Espino Medina Joselyn Gonzales Pantigoso Cecilia Pea Aguado Mirtha

ICA- PER 2012

GESTION DE MEMORIA 1.-Concepto: Este conjunto de programas tiene la misin de asignar y controlar el almacenamiento en la memoria interna y externa de la computadora, especialmente la interna ya que es un recurso escaso y caro. El mdulo de gestin de memoria se encarga de asignar ciertas porciones de la memoria principal a los diferentes programas, mientras el resto de programas y datos se mantienen en los dispositivos de almacenamiento masivo. La forma mas comn de gestin de memoria es crear una memoria virtual utilizando los dispositivos de almacenamiento masivo. La memoria se puede dividir de diferentes modos: Por pginas: bloques de bytes de igual tamao para todos los procesos y tareas. Por segmentos: bloques de bytes con distinto tamao segn el proceso. Por segmentos paginados: segmentos de tamao distinto que se dividen a su vez en pginas de distinto tamao. Las tareas de gestin de memoria se dividen en dos grandes grupos: Gestin de memoria central: Segn se trate de un sistema operativo monoprogramado (un solo programa en ejecucin) o multiprogramado (varios programas en ejecucin simultneamente), existen multitud de mtodos de asignacin y control de la memoria central o interna. Los programas que controlan y gestionan la memoria interna asignan los espacios que deben ocupar los programas y datos estableciendo zonas de seguridad para que no se produzcan colisiones. Adems, en caso de sistemas operativos con memoria virtual donde se procesan programas que se van cargando parcialmente en la memoria, los programas de control gestionan la paginacin o segmentacin del programa para que el proceso no se interrumpa en ningn momento. Gestin de memoria secundaria: Este grupo de programas, tienen la misin de hacer ver al usuario el tratamiento de la informacin almacenada en la memoria externa, desde el punto de vista lgico ocultndole la realidad fsica. Por otra parte, un sistema puede mantener en un mismo instante un gran nmero de usuarios y procesos, y stos pueden estar solicitando y manejando continuamente archivos en memoria externa, en ocasiones hasta compartindolos, y por ello ser necesario la existencia de una serie de programas en el sistema operativo que nos aseguren el correcto funcionamiento.

2.-JERARQUIA DE MEMORIA Memorias: componentes de una computadora, dispositivos y medios de grabacin que retienen datos informticos durante algn intervalo de tiempo.

Definicin de Jerarqua Se conoce como jerarqua de memoria a la organizacin piramidal de la memoria en niveles, que tienen los ordenadores. Los puntos bsicos relacionados con la memoria pueden resumirse en: Cantidad: cuanto m s m e m o r i a h a y a d i s p o n i b l e , m s p o d r utilizarse. . Velocidad: optima para la memoria es la velocidad a la que elprocesador puede trabajar, de modo que no haya tiempos deespera entre clculo y clculo, utilizados para traer operandosoguardar resultados . Coste: No debe ser excesivo, para que sea factible construir unequipo accesible. Como puede esperarse los tres factores compiten entre s, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son vlidas:

A menor tiempo de acceso mayor coste A mayor capacidad mayor coste A mayor capacidad menor velocidad.

Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Los niveles que componen la jerarqua de memoria habitualmente son:
Nivel

0: Registros

Es una memoria de alta velocidad y poca capacidad, esta integrada en el microprocesador y permite guardar y acceder a valores m u y usados, por lo general en operaciones matemticas. Los registros se miden por lo general por el nmero de bits que almacena.

Tipos de registros:
De De De De De

datos: usados para guardar nmeros enteros. memoria: usados para guardar exclusivamente direcciones de memoria. propsito general: pueden guardar tanto datos como direcciones. coma flotante: usados para guardar datos en formato de coma flotante propsito especfico: guardan informacin especfica del estado del sistema. Constante: tiene valores creados por el hardware de solo lectura.

Nivel 1: Memoria cach:

Es una memoria rpida y pequea, situada entre la memoria principal y el microprocesador, especialmente diseada para contener informacin que se utiliza con frecuencia en un proceso con el fin de evitar accesos a otras memorias, reduciendo considerablemente el tiempo de acceso al ser ms rpida que el resto de la memoria principal.

Diagrama de una memoria cach de CPU. La memoria cach es una memoria en la que se almacena un serie dedatos para su rpido acceso. La memoria cach de unmicroprocesador es de tipo voltil (del tipo RAM), pero de una granvelocidad. Su objetivo es almacenar una serie de instrucciones y datos a los que el microprocesador accede continuamente, con el fin de que estosaccesos sean instantneos. Estas instrucciones y datos son aquellas alas que el procesador necesita estar accediendo de forma continua,por lo que para el rendimiento del procesador es imprescindible queeste acceso sea lo ms rpido y fluido posible. La operacin bsica de cach es:
Cuando

la CPU necesita accesar memoria, se revisa la cach. Si seencuentra la palabra en cache, se lee de la memoria rpida. Si lapalabra direccionada de la CPU no se encuentra en cach, se accesala memoria principal para leer la palabra. tres tipos diferentes de memoria cach para microprocesadores:

Hay

Cach de 1er nivel (L1): Integrada en el ncleo delmicroprocesador, trabajando a la misma velocidad que este.La cantidad de memoria cach L1 vara de unmicroprocesador a otro, estando normalmente entra los 64KBy los 256KB. Esta memoria suele a su vez estar dividida endos partes dedicadas, una para instrucciones y otra paradatos. Cach de 2 nivel (L2): Integrada en el microprocesador, nodirectamente en el ncleo, es algo ms lenta que la cach L1.La cach L2 suele ser mayor que la cach L1, pudiendo llegara superar los 2MB.Utilizacin est ms encaminada a programas que al sistema. Cach de 3er nivel (L3): Es un tipo de memoria cach mslenta que la L2, muy poco utilizada en la actualidad. En unprincipio esta cach estaba incorporada a la placa base, no almicroprocesador, y su velocidad de acceso era bastante mslenta que una cach de nivel 2 o 1, ya que si bien siguesiendo una memoria de una gran rapidez (muy superior a laRAM, y mucho ms en la poca en la que se utilizaba),depende de la comunicacin entre el microprocesador y laplaca base. La memoria cach es rpida, unas 5 6 veces ms que la DRAM (RAMdinmica), por eso su capacidad es mucho menor. Por eso su precioes elevado, hasta 10 20 veces ms que la memoria principaldinmica para la misma cantidad de memoria. Composicin interna La memoria cach est estructurado por celdas, donde cada celdaalmacena un byte. La entidad bsica de almacenamiento laconforman las filas, llamados tambin lneas de cach.Cuando se copia o se escribe informacin de la RAM por cadamovimiento siempre cubre una lnea de cach.La memoria cach tiene incorporado un espacio de almacenamientollamado Tag RAM, que indica a qu porcin de la RAM se hallaasociada cada lnea de cach, es decir, traduce una direccin de RAMen una lnea de cach concreta.

Nivel 2: Memoria principal Son circuitos integrados capaces de almacenar informacin digital, alos que tiene acceso el microprocesador del equipo de computacin.Poseen una menor capacidad de almacenamiento que la memoriasecundaria, pero una velocidad millones de veces superior. La memoria principal esta divida en: Memoria ROM: Memoria de slo lectura (ReadOnlyMemory) son utilizadascomo medio de almacenamiento de datos en las computadoras. Enella no se puede escribir y conserva intacta la informacinalmacenada, incluso en el caso de que se interrumpa la corriente(memora no voltil).

La ROM suele almacenar la configuracin del sistema o el programade arranque de la computadora. Uso principal: Reside en la distribucin de programas que estn estrechamenteligados al soporte fsico de la computadora, y que seguramente nonecesita actualizacin. La memoria RAM normalmente es ms rpida para lectura que la mayoria de las memorias ROM, por lo tanto el contenido ROM se sueletraspasar normalmente a la memoria RAM cuando se utiliza.

Memoria ROM El software de la ROM se divide en dos partes: a) Rutina de arranque: realiza el chequeo de los componentesde la computadora por ejemplo circuitos controladores de video,de acceso a memoria, el teclado, unidades de disco. Se encargade determinar cul es el hardware que est presente y de lapuesta a punto de la computadora. Mediante un programa deconfiguracin, el SETUP, lee una memoria llamada CMOS RAM(RAM de Semiconductor de xido metlico). sta puedemantener su contenido durante varios aos, aunque lacomputadora est apagada, con muy poca energa elctricasuministrada por una batera, guarda la fecha, hora, la memoriadisponible, capacidad de disco rgido, si tiene disquetera o no. Se encarga en el siguiente paso de realizar el booteo(arranque): lee un registro de arranque 'BR' (Boot Record) deldisco duro o de otra unidad (como CD, USB, etc), donde hay unprograma que carga el sistema operativo a la RAM. b) Rutina BIOS. Sistema bsico de entrada salida (Basic input output system): permanece activa mientras se est usando laPC. Permite la activacin de los perifricos de entrada/salida:teclado, monitor, etc. Memoria RAM La memoria de acceso aleatorio, o memoria de accesodirecto (Random Access Memory).Se compone de uno o ms chips y se utiliza como memoria de trabajo para programas y datos. Es un tipo de memoria temporal que pierdesus datos cuando se queda sin energa (al apagar la computadora),por lo cual es una memoria voltil.

Se trata de una memoria de semiconductor en la que se puede tantoleer como escribir informacin. Se utiliza normalmente como memoriatemporal para almacenar resultados intermedios y datos similares nopermanentes.Se dicen "de acceso aleatorio" o "de acceso directo" porque losdiferentes accesos son independientes entre s. Las RAMs se dividen en: Estticas: mantiene su contenido inalterado mientras estalimentada. Dinmica: la lectura es destructiva, es decir que la informacinse pierde al leerla, para evitarlo hay que restaurar lainformacin contenida en sus celdas, operacin denominadarefresco.

Memoria RAM
Nivel

3: Memorias flash

Es una tecnologa de almacenamiento derivada de la memoria EEPROM que permite la lecto-escritura de mltiples posiciones de memoria en la misma operacin. Gracias a ello, la tecnologa flash, siempre mediante impulsos elctricos, permite velocidades de funcionamiento muy superiores frente a la tecnologa EEPROM primigenia, que slo permita actuar sobre una nica celda de memoria en cada operacin de programacin. Se trata de la tecnologa empleada en los dispositivos pendrive.
Nivel

4: Disco duro

Un disco duro o disco rgido (en ingls hard disk drive) es un dispositivo de almacenamiento no voltil, que conserva la informacin aun con la prdida de energa, que emplea un sistema de grabacin magntica digital; es donde en la mayora de los casos se encuentra almacenado el sistema operativo de la computadora. Dentro de la carcasa hay una serie de platos metlicos apilados girando a gran velocidad. Sobre los platos se sitan los cabezales encargados de leer o escribir los impulsos magnticos. Hay distintos estndares para comunicar un disco duro con la computadora. Tambin existe otro tipo de discos denominados de estado slido que utilizan cierto tipo de memorias construidas con semiconductores para almacenar la informacin. El uso de esta clase de discos generalmente se limitaba a las supercomputadoras, por su elevado precio, aunque hoy en da ya se puede encontrar en el mercado unidades mucho ms econmicas de baja capacidad

(hasta 512GB) para el uso en computadoras personales (sobre todo porttiles). As, el cach de pista es una memoria de estado slido, tipo memoria RAM, dentro de un disco duro de estado slido.
Nivel

5: Cintas Magnticas Consideradas las ms lentas, con mayor capacidad. Nivel 6: Redes(Actualmente se considera un nivel ms de la jerarqua de memorias)

3.Asignacion de la Memoria Esttica La forma ms fcil de almacenar el contenido de una variable en memoria en tiempo de ejecucin es en memoria esttica o permanente a lo largo de toda la ejecucin del programa. -Los algoritmos ms utilizados son: Primer Ajuste y Mejor Ajuste. La eleccin entre estos dos mtodos implica escoger entre la velocidad de ejecucin y utilizacin de la memoria. Cabe indicar que ambos algoritmos deben buscar en las entradas de la TDP para identificar la particin que se ajuste ms exactamente. Las peticiones para asignar particiones pueden provenir de una de dos fuentes principalmente: 1) Las creaciones de nuevos procesos. 2) Las reactivaciones de procesos retirados de memoria. -No todos los objetos (variables) pueden ser almacenados estticamente.

Para que un objeto pueda ser almacenado en memoria esttica su tamao (nmero de bytes necesarios para su almacenamiento) ha de ser conocido en tiempo de compilacin, como consecuencia de esta condicin no podrn almacenarse en memoria esttica: * Los objetos correspondientes a procedimientos o funciones recursivas, ya que en tiempo de compilacin no se sabe el nmero de variables que sern necesarias. * Las estructuras dinmicas de datos tales como listas, rboles, etc. ya que el nmero de elementos que las forman no es conocido hasta que el programa se ejecuta. -Existen situaciones que impiden que se pueda asignar memoria a un proceso, las ms comunes son: 1) Ninguna particin es suficientemente grande para acomodar el nuevo proceso. 2) Todas las particiones estn asignadas. 3) Algunas particiones estn libres, pero ninguna de ellas es lo suficientemente grande para acomodar el proceso. *Las tcnicas de asignacin de memoria esttica son sencillas. A partir de una posicin sealada por un puntero de referencia se aloja el objeto X, y se avanza el puntero tantos bytes como sean necesarios para almacenar el objeto X. La asignacin de memoria puede hacerse en tiempo de compilacin y los objetos estn vigentes desde que comienza la ejecucin del programa hasta que termina. En los lenguajes que permiten la existencia de subprogramas, y siempre que todos los objetos de estos subprogramas puedan almacenarse estticamente se aloja en la memoria esttica un registro de activacin correspondiente a cada uno de los subprogramas. Estos registros de activacin contendrn las variables locales, parmetros formales y valor devuelto por la funcin. Dentro de cada registro de activacin las variables locales se organizan secuencialmente. Existe un solo registro de activacin para cada procedimiento y por tanto no estn permitidas las llamadas recursivas. El proceso que se sigue cuando un procedimiento p llama a otroq es el siguiente: 1. p evala los parmetros de llamada, en caso de que se trate de expresiones complejas, usando para ello una zona de memoria temporal para el almacenamiento intermedio. Por ejemplos, s la llamada a q es q((3*5)+(2*2),7)

las operaciones previas a la llamada propiamente dicha en cdigo mquina han de realizarse sobre alguna zona de memoria temporal. (En algn momento debe haber una zona de memoria que contenga el valor intermedio 15, y el valor intermedio 4 para sumarlos a continuacin). En caso de utilizacin de memoria esttica sta zona de temporales puede ser comn a todo el programa, ya que su tamao puede deducirse en tiempo de compilacin. 2. q inicializa sus variables y comienza su ejecucin. Dado que las variables estn permanentemente en memoria es fcil implementar la propiedad de que conserven o no su contenido para cada nueva llamada. Proteccin: Un SO debe estar protegido contra intervenciones no autorizadas de procesos de usuario y prohibir el acceso inadvertido a reas de de memoria asignadas a otros procesos. En los SO que utilizan registro base para la reubicacin, una prctica habitual es utilizar registros lmite (direccin virtual ms alta de un programa) para la proteccin. En el caso de que haya error se produce una llamada al SO. Los valores base y lmite de cada proceso se guardan normalmente en su BPC; en cada conmutacin de proceso estos registros son cargado con los valores requeridos por el nuevo proceso en ejecucin. Otro mtodo de proteccin es registrar los derechos de acceso en la propia memoria a travs de la utilizacin de claves mediante la cual pueden acceder sin restricciones a todos los bloques de memoria. Comparticin: El gestor de memoria debe permitir la comparticin de memoria entre procesos cooperativos. Hay tres tcnicas bsicas de comparticin en sistemas con particin fija de memoria: * Confiar los objetos compartidos al sistema operativo * Mantener mltiples copias de los objetos compartidos, una por cada particin participante. * Utilizar particiones de memoria compartidas. Proteccin: Para garantizar seguridad, el hardware puede trabajar con un par de registros base/lmite.

Registrar los derechos de acceso en la propia memoria A cada direccin se le aade un nmero de bits para identificar al propietario Problema: costoso Mejora: Asociar estos bits a bloques de memoria fsica Comprobacin: tiempo de ejecucin SO => Clave maestra nica que le da acceso sin restricciones a todos los bloques de memoria

4. MEMORIA DINAMICA La memoria dinmica, ms que un tipo de memoria es una manera de utilizarla. Consiste en declarar variables y eliminarlas cuando ya no sean necesarias, mediante subprogramas. La memoria dinmica es un espacio de almacenamiento que se puede solicitar en tiempo de ejecucin. Adems de solicitar espacios de almacenamiento, tambin podemos liberarlos (en tiempo de ejecucin) cuando dejemos de necesitarlos. Supongamos que nuestro programa debe manipular estructuras de datos de longitud desconocida. Un ejemplo simple podra ser el de un programa que lee las lneas de un archivo y las ordena. Por tanto, deberemos leer un nmeroindeterminado de lneas, y tras leer la ltima, ordenarlas. Una manera de manejar ese ``nmero indeterminado, sera declarar una constante MAX_LINEAS, darle un valor vergonzosamente grande, y declarar un array de tamao MAX_LINEAS. Esto, obviamente, es muy ineficiente (y feo). Nuestro programa no slo quedara limitado por ese valor mximo, sino que adems gastara esa enorme cantidad de memoria para procesar hasta el ms pequeo de los ficheros. La solucin consiste en utilizar memoria dinmica. La memoria dinmica es un espacio de almacenamiento que se solicita en tiempo de ejecucin. De esa manera, a medida que el proceso va necesitando espacio para ms lneas, va solicitando ms memoria al sistema operativo para guardarlas. El sistema operativo maneja la memoria gracias al uso de punteros, por la misma naturaleza del proceso nos impide conocer el tamao de la memoria

necesaria en el momento de compilar.Trabajar con punteros implica la no manipulacin de los datos en s, sino manejar las direcciones de memoria en la cuales estos residen. Una direccin de memoria es un identificador para una localizacin de memoria con la cual un programa informtico o un dispositivo de hardware pueden almacenar un dato para su posterior reutilizacin. Una forma comn de describir la memoria principal de un ordenador es como una coleccin de celdas que almacenan datos e instrucciones. Cada celda est identificada unvocamente por un nmero o direccin de memoria. Para poder acceder a una ubicacin especfica de la memoria, la CPU genera seales en el bus de direccin, que habitualmente tiene un tamao de 32 bits en la mayora de mquinas actuales. Un bus de direccin de 32 bits permite especificar a la CPU = 4.294.967.296 direcciones de memoria distintas.

4.-ASIGNACION DE MEMORIA A UN PROCESO Parte del Sistema Operativo encargada de asignar memoria a los procesos, tratar de repartir de forma eficiente la memoria para introducir tantos procesos como sea posible. Varios procesos podrn ejecutarse de forma concurrente teniendo en cuenta que: La memoria desaprovechada debe de ser la menor posible. 1. Evitando fragmentacin. 2. Memoria ocupada por varias copias de un mismo objeto. 3. Memoria ocupada por las estructuras de datos necesarias para la operacin del gestor de memoria. Debe de proporcionar proteccin y comparticin. No debe de perjudicar al rendimiento, debiendo minimizar: 1. Complejidad de los procesos en el tiempo. 2. Procesos suplementarios (tiempos) de acceso a memoria. 3.1.-En los sistemas de Monoprogramacin sin intercambio o paginacin Cuando solo se tiene un proceso que ocupe la memoria a la vez, el esquema de la administracin de la memoria es el ms sencillo que hay. Sin embargo, ste mtodo ya no tiene aplicacin en la actualidad, ya que era visto en las computadoras con sistemas operativos de un solo usuario y una sola tarea. El usuario introduca su disco a la computadora (por lo general, la mquina no contaba con disco duro) y ejecutaba su aplicacin, la cual acaparaba toda la mquina.

Fig.1. Ejemplos de distribucin de la memoria principal con un sistema operativo y un solo proceso de usuario La figura 1 muestra la organizacin de la memoria usando este sistema. La memoria se divide entre el sistema operativo y el proceso de un solo usuario. La ms conocida es la que muestra el inciso c, que es la usada por las PC de IBM. Los controladores de dispositivo los almacena en memoria ROM, en un bloque de 8K de la parte superior del espacio de direcciones de 1M. El ejemplo ms claro de este esquema es el que podemos ver en el sistema operativo MS-DOS, en que el usuario escribe un comando al sistema y al ejecutarse el sistema operativo lo carga a memoria desde el disco y realiza sus funciones. Cuando el proceso termina la memoria es liberada y le muestra al usuario el indicador de comandos (prompt) en la pantalla.

3.2.- En los sistemas de Multiprogramacin En un sistema de multiprogramacin la memoria debe ser compartida por varios procesos de cara a obtener una mayor utilizacin de los recursos del ordenador. Esto provoca que la gestin de la memoria se complique sustancialmente. En primer lugar, hay que llevar un recuento de las zonas de memoria ocupadas por los procesos. As, cuando un nuevo proceso entre en la memoria se le asignar una zona que estaba libre. Otro problema a resolver viene dado por el hecho de que en el momento de escribir un programa no se sabe en qu zona de memoria se ubicar, siendo posible que durante la vida de un proceso ste cambie varias veces de emplazamiento. Habr que tener en cuenta, tambin, la proteccin de las zonas de memoria ocupadas por los procesos, mxime en sistemas multiusuario donde los procesos pueden pertenecer a distintos usuarios. Las dos formas de gestin de memoria en los sistemas de multiprogramacin son: Particiones estticas Particiones dinmicas

3.2.1.-Particiones estticas Esta forma de gestin consiste en dividir la memoria en varias zonas, pudiendo ser cada zona de un tamao diferente. El tamao de las zonas podr ser modificado eventualmente por algn usuario responsable de la administracin del ordenador. Una vez implementada la particin, hay dos maneras de asignar los procesos a ella. La primera es mediante el uso de una cola nica (figura 2a) que asigna los procesos a los espacios disponibles de la memoria conforme se vayan desocupando. El tamao del hueco de memoria disponible es usado para localizar en la cola el primer proceso que quepa en l. Otra forma de asignacin es buscar en la cola el proceso de tamao mayor que se ajuste al hueco, sin embargo hay que tomar en cuenta que tal mtodo discrimina a los procesos ms pequeos. Dicho problema podra tener solucin si se asigna una particin pequea en la memoria al momento de hacer la particin inicial, el cual sera exclusivo para procesos pequeos.

(a)

(b) Fig. 2. (a) Particiones fijas en memoria con una cola nica de entrada. (b) Particiones fijas en memoria con colas exclusivas para cada tamao diferente de la particin. Esta idea nos lleva a la implementacin de otro mtodo para particiones fijas, que es el uso de diferentes colas independientes (figura 2b) exclusivas para cierto rango en el tamao de los procesos. De esta manera al llegar un proceso, ste sera asignado a la cola de tamao ms pequeo que la pueda aceptar. La desventaja en esta organizacin es que si una de las colas tiene una larga lista de procesos en espera, mientras otra cola est vaca, el sector de memoria asignado para ese tamao de procesos estara desperdicindose. 3.2.2.-Particiones Dinmicas

En este mtodo se va asignando la memoria dinmicamente a los procesos, conforme se introducen en la memoria. A cada proceso se le asigna exactamente la memoria que necesita.

Fig. 3. La asignacin de memoria cambia cuando el proceso llega o sale de la memoria. Las regiones sombreadas son memoria libre. En la figura 3 se ilustra cmo evoluciona la ocupacin de la memoria en un sistema de este tipo. Al principio slo se encuentra el proceso A en la memoria. Despus, se insertan los procesos B y C . En la figura 3-d A concluye. Luego, D entra y B sale. Por ltimo E entra. El sistema operativo lleva una tabla indicando cules partes de la memoria estn disponibles y cules estn ocupadas. Inicialmente, toda la memoria est disponible para los procesos de usuario y es considerado como un gran bloque o hueco nico de memoria. Cuando llega un proceso que necesita memoria, buscamos un hueco lo suficientemente grande para el proceso. Si encontramos uno, se asigna nicamente el espacio requerido, manteniendo el resto disponible para futuros procesos que requieran de espacio. Consideremos el ejemplo de la figura 4, en donde se cuenta un espacio reservado para el sistema operativo en la memoria baja de 400K y un espacio disponible para procesos de usuario de 2160K, siendo un total de memoria del sistema de 2560K. Dada la secuencia de procesos de la figura y usando un algoritmo de First Come First Served (FCFS) se puede asignar de inmediato memoria a los procesos P1, P2 y P3, creando el mapa de memoria de la figura 5(a) en el cual queda un hueco de 260K que ya no puede ser utilizado por el siguiente proceso dado que no es suficiente para abarcarlo.

Fig. 4. Ejemplo de una divisin inicial de memoria y una lista de trabajos.

Fig. 5. Ejemplo de asignacin de procesos en la memoria principal. Usando un proceso de asignacin Round-Robin con un quantum de 1 unidad de tiempo, el proceso P2 terminara en la unidad de tiempo 14, liberando esa cantidad de memoria, como se muestra en la figura 5(b). Entonces el sistema operativo checa la lista de trabajos y asigna el siguiente proceso que quepa en el espacio de memoria liberado. El proceso P4 produce el mapa de memoria que se muestra en la figura 5(c). El proceso P1 terminar en la unidad de tiempo 28 para producir el mapa de la figura 5(d) y entonces se asigna el proceso P5 generando el mapa de la figura 5(e).

Cuando a un proceso se le asigna un espacio y es cargado a la memoria principal, puede entonces competir para el uso del CPU. Con este mtodo de gestin de la memoria se evita el problema de la fragmentacin interna. Sin embargo, aparece el problema de la fragmentacin externa entre particiones, el cual se aprecia en la figura 3-f o en la ltima mapa de memoria de la figura 5. El problema consiste en que se creen huecos libres demasiado pequeos como para que quepan procesos, aunque la unin de todos esos huecos producira un hueco considerable, lo que acarrea el desperdicio de la memoria. Una posible solucin es la compactacin de la memoria, que consiste en desplazar todos los procesos hacia la parte inferior de la memoria mientras sea posible. Como la compactacin lleva mucho tiempo, a veces no se realiza, o se hace por la noche, en horas de poco uso del ordenador. Hay que tener en cuenta que el sistema debe detener todas sus actividades mientras realiza la compactacin. Ello puede ocasionar tiempos de respuesta irregulares para usuarios interactivos, y podra ser devastador en un sistema de tiempo real. Adems, con una combinacin normal de trabajos que cambia rpidamente, es necesario compactar a menudo. En este caso, los recursos del sistema que se consumen quiz no justifiquen las ventajas de la compactacin.

Fig. 6. Ejemplo de compactacin de huecos no adyacentes. En la figura 6 se muestra como se modifica el mapa de la memoria despus de compactar huecos no adyacentes generados despus de intercambios realizados en el ejemplo de la figura 5. El esquema de los registro base y lmite sigue siendo vlido para la reasignacin y la proteccin. Otro tema a tener en cuenta es la cantidad de memoria por asignar a un proceso recin creado. Si los procesos se crean con

un tamao fijo invariante, la asignacin es muy sencilla, se asigna exactamente lo que se necesite. Si, por el contrario, los segmentos de datos de los procesos pueden crecer, como es el caso de la asignacin dinmica de memoria a partir de una pila, que ocurre en muchos lenguajes de programacin, aparece un problema cuando un proceso intenta crecer. Si hay un hueco adyacente al proceso, ste puede ser asignado, y el proceso podr crecer hacia el hueco. Sin embargo, si el proceso es adyacente a otro proceso, el proceso de crecimiento deber ser desplazado a un hueco de la memoria lo suficientemente grande; o bien, habr que eliminarlo. Si es de esperar que la mayora de los procesos crezcan conforme se ejecuten, sera una buena idea asignar un poco de memoria adicional siempre que un proceso pase a la memoria, con el fin de reducir el gasto excesivo asociado con el traslado de procesos que ya no caben en su memoria asignada. En la figura 7-a vemos una configuracin de la memoria en la que se asign a dos procesos el espacio adicional para el crecimiento. Si los procesos pueden tener dos segmentos de crecimiento, como por ejemplo, el segmento de datos, que se utiliza como una pila, y el stack, se sugiere un mtodo alternativo, el de la figura 7-b. En esta figura se puede ver que cada proceso tiene un stack de crecimiento hacia abajo, en la parte superior de la memoria asignada a l; adems, tiene un segmento de datos justo encima del programa, el cual crece hacia arriba. La memoria entre ellos se puede utilizar para cualquiera de los segmentos. Si el espacio se agota, puede ocurrir que el proceso sea desplazado a un hueco con el espacio suficiente; o bien, ser aniquilado.

Fig.7 (a) Asignacin de espacio a un segmento de datos que crece (b) Asignacin de espacio a una pila y un segmento de datos que crece 3.2.3.- Estrategias de colocacin o asignacin

Ahora podemos preguntarnos: Cmo elige el SO en que porcin de memoria colocaremos un proceso? Existen varias estrategias: First fit: Asigna el primer agujero de memoria libre que satisface la necesidad. Best fit: Asigna el mejor agujero de memoria libre que exista en la memoria principal. Worst fit: Asigna en el agujero ms grande que exista en la memoria principal.

Estudios de simulacin han mostrado que first-fit y best-fit lograron mejores rendimientos en tiempo de asignacin y utilizacin de la memoria que la estrategia worst-fit. Veamos un ejemplo: Si quisiramos asignar a memoria un proceso de 212 kb, y tenemos los siguientes espacios libres (espacios en blanco):

Veamos en que hueco asigna al proceso cada estrategia:

4.-Reuso de memoria: Liberar memoria RAM. Tras haber ejecutado una o mltiples aplicaciones o juegos que hagan uso intensivo de los recursos del sistema, habremos detectado que Windows queda algo "tocado", mucho ms lento. Esto es debido a que los restos de las aplicaciones bloquean parte de la RAM que han utilizado, ocasionando lo que se llama "fragmentacin de memoria". Mediante un pequeo script podemos liberar esa memoria, forzando al ordenador a descargar el contenido de la memoria al archivo de intercambio de forma que recargue de nuevo toda la informacin activa en la memoria y deseche la informacin no til. Esto lo haremos de la siguiente forma: Abrimos el bloc de notas de Windows y dependiendo de la memoria de nuestro ordenador escribiremos los siguientes valores: Si tienes menos de 128 Mb de memoria RAM, escribes Mystring=(16000000) Si tienes 128 Mb de memoria RAM o ms escribes Mystring=(80000000) Ahora guarda este archivo en el lugar que quieras, con el nombre "liberar.vbe" (no te olvides poner la extensin vbe, ya que el nombre no importa puedes poner el que quieras). Ahora hacemos doble clic sobre el archivo que acabamos de crear y Windows refrescar la memoria RAM.

You might also like