Sistemas Operativos Ciclo VII Ingeniera Informtica y de Sistemas Universidad San Pedro Filial Huacho
1. Introduccin En la memoria fsica de un computador coexisten el sistema operativo, las rutinas de enlace dinmico y los programas de usuario. En los sistemas operativos modernos la gestin de memoria resuelve aspectos como:
La carga de programas y su ubicacin. Hay que establecer la correspondencia entre las direcciones lgicas del programa y su ubicacin fsica en memoria. La presencia simultnea de ms de un programa en memoria. La posibilidad de cargar rutinas en tiempo de ejecucin (rutinas de enlace dinmico1). La comparticin de espacios de memoria por varios programas. La ejecucin de programas que no caben completos en memoria. La gestin eficiente del espacio de memoria libre.
A lo largo de la historia, los sistemas operativos han ido introduciendo conceptos y mecanismos hasta llegar a ofrecer las caractersticas comentadas. Como el camino ha sido largo y son muchos los aspectos que se combinan hoy en da, conviene revisarlas polticas de gestin de memoria teniendo en cuenta las propiedades fundamentales que pueden ofrecer:
Numero de programas que pueden haber en memoria. Si los programas pueden salir y entrar de memoria durante su ejecucin. Si un programa debe ocupar posiciones consecutivas de memoria. Si un programa debe estar cargado entero para ejecutarse.
No todas las combinaciones de estas propiedades tienen sentido. Las polticas de gestin que se encuentran en los sistemas operativos a lo largo de la historia, a medida que se van eliminando restricciones, son las siguientes:
Programa nico, permanente, contiguo y entero: monitor residente. Varios programas, permanentes, contiguos y enteros: particionado fijo (MFT) variable (MVT). Programas no permanentes (swapping). Programas no contiguos: paginacin y segmentacin. Programas no contiguos y no enteros: enlace dinmico y memoria virtual.
2. Antecedentes
La memoria fsica es un conjunto de celdas referenciales por medio de una direccin lineal (Por ejemplo, de la 00000h a la FFFFFh) Para que un programa se ejecute, su cdigo y sus datos necesitan estar cargados en memoria (al menos en parte). En un sistema multitarea, la memoria se debe repartir entre los diferentes procesos. Las rutinas del sistema operativo tambin debern residir en memoria, en todo o en parte. Puede ser que la memoria principal no tenga capacidad suficiente para todos los procesos en ejecucin.
3. Objetivos del sistema de gestin de memoria
En un sistema con multiprogramacin, el sistema operativo debe encargarse de realizar un reparto transparente, eficiente y seguro de los distintos recursos de la mquina entre los diversos procesos, de forma que cada uno de ellos crea que tiene una mquina para l solo. Esto es, el sistema operativo debe permitir que los programadores desarrollen sus aplicaciones sin verse afectados por la posible coexistencia de su programa con otros durante su ejecucin.
En el caso del procesador esta multiplexacin se logra almacenando en el bloque de control de cada proceso el contenido de los registros del procesador correspondientes a dicho proceso, salvndolos y restaurndolos durante la ejecucin del mismo.
En el caso de la memoria, el sistema operativo, con el apoyo del hardware de gestin de memoria del procesador, debe repartir el almacenamiento existente proporcionando un espacio de memoria independiente para cada proceso y evitando la posible interferencia voluntaria o involuntaria de cualquier otro proceso.
Sea cual sea la poltica de gestin de memoria empleada en un determinado sistema, se pueden destacar las siguientes caractersticas como objetivos deseables del sistema de gestin de memoria:
Ofrecer a cada proceso un espacio lgico propio. Proporcionar proteccin entre los procesos. Permitir que los procesos compartan memoria. Dar soporte a las distintas regiones del proceso. Maximizar el rendimiento del sistema. Proporcionar a los procesos mapas de memoria muy grandes.
4. Sistemas Primitivos
Los sistemas operativos de los primeros computadores (o, ms recientemente, los sistemas operativos para los primeros ordenadores personales) almacenaban los programas de la manera ms simple en cuanto a soporte hardware (enteros y en posiciones fsicas contiguas), y en cuanto a necesidades de gestin (permanentes). Estas primeras polticas de gestin de memoria, que hoy en da nicamente pueden encontrarse en sistemas empotrados, son interesantes porque introducen conceptos y mecanismos a partir de los cuales se evoluciona hacia conceptos ms elaborados.
4.1. Monitor Residente
La primera forma de trabajo consista en cargar un nico programa en memoria. El encargado de hacerlo era el monitor residente, que actuaba como una especie de sistema operativo primitivo. La memoria se divida en dos partes, sistema operativo (monitor) y programa de usuario.
Funcionamiento:
Carga
Antes de comenzar la ejecucin, el operador del sistema deba agrupar tareas que fueran similares. Esto se deba a que los sistemas de cmputo no contaban con una gran cantidad de memoria, ni tampoco podan cargar rutinas de forma dinmica, por lo cual todas las rutinas deban ser cargadas en un momento inicial, anterior a la ejecucin. Al agrupar tareas similares, el operador poda cargar todas las rutinas (la idea es que la mayora fueran compartidas) que necesitaran las tareas y todos los datos de entrada de todas las tareas en la memoria principal.
Ejecucin
El monitor residente se encargaba de comenzar la ejecucin de la siguiente tarea, enlazndola con las rutinas compartidas y no compartidas que necesitaba utilizar, iniciando as la nueva ejecucin.
Evolucin
Los monitores residentes fueron reemplazados por los monitores de inicio, luego por los cargadores de inicio, luego por los BIOS, y finalmente por los ncleos de sistemas operativos
Se utilizaba un denominado registro barrera para proteccin
Los direccionamientos pueden ser absolutos. El cargador conoce el tamao del programa y lo carga a partir de una direccin fija. Apesar de ser un precursor de los sistemas modernos, no puede afirmarse que el monitor residente realice una administracin de memoria como la definimos hoy en da.
4.2. Particiones
El sistema operativo es capaz de gestionar la coexistencia de varios programas en memoria asignando a cada uno un espacio contiguo (particin). El particionado puede ser fijo o variable.
Como soporte hardware para proteccin requiere dos registros:
Registro lmite inferior (base). Registro lmite superior o registro longitud
Se requiere reubicacin en tiempo de carga. El cargador puede establecer direcciones absolutas (reubicacin esttica), o establecer direcciones relativas a un registro base (reubicacin dinmica). En particionado variable se requiere obligatoriamente reubicacin dinmica, como veremos.
4.2.1. Particionado Fijo
Obviamente el primer tipo de particionamiento y el ms sencillo. La memoria se divide en un conjunto de particiones de tamaos preestablecidos. Este mecanismo se denomina histricamente MFT (multiprogramacin con un nmero fijo de tareas).
En cada particin se ubica un nico programa. Las particiones pueden ser iguales o de diferentes tamaos. En este ltimo caso se aprovecha mejor la memoria, al poder almacenar un programa en la particin que mejor se ajuste a su tamao.
Dos consecuencias de este mecanismo son las siguientes:
El nmero de programas est limitado (grado fijo de multiprogramacin). Produce fragmentacin interna en cada particin (trozo de la particin desocupada).
Los programas se encolan para poder ser cargados en memoria. Existen dos alternativas:
Una cola por cada particin. Un programa se encola en la cola que le corresponde por su tamao. Tiene el inconveniente de que puede dejar fuera a un programa habiendo memoria libre para cargarlo.
Cola nica. Cuando un programa encuentra ocupada la particin que corresponde a su tamao cabe la posibilidad de asignarle una particin libre de tamao mayor, permitiendo incrementar el grado de multiprogramacin a costa de introducir fragmentacin interna. El sistema puede utilizar heursticos que maximicen el grado de multiprogramacin minimizando la fragmentacin, consistentes en alterar la disciplina de la cola buscando en ella los programas que se adapten mejor a los huecos disponibles, para minimizar la fragmentacin interna.
4.2.2. Particionada Variable
Como ya sabemos, MFT presenta problemas de fragmentacin interna. La alternativa es el particionado variable de la memoria, que se denomina MVT (multiprogramacin con un nmero variable de tareas). Ya es conocido que el particionado variable introduce fragmentacin externa al ir quedando huecos entre particiones a medida que finalizan programas. En estos huecos slo se pueden ubicar programas de menor tamao que el hueco, que cuando acaben dejarn un hueco an menor, y as sucesivamente. La necesidad de compactar implica reubicar dinmicamente el programa, requiriendo el soporte adecuado para ello. La carga de programas se gestiona mediante una nica cola. La memoria libre se representa bien con una lista de huecos, bien mediante un mapa de bits, aunque en este caso es conveniente definir una unidad de asignacin de memoria mayor que el byte para mantener el tamao del mapa en unas dimensiones razonables.
5. Swapping
Es un mecanismo para mover programas entre memoria principal y secundaria, normalmente disco (dispositivo se swap). Con swapping, los procesos pueden salir/entrar de/a memoria durante su tiempo de ejecucin. Normalmente, un proceso abandona la memoria para dejar espacio a otro. La funcin del sistema operativo que gestiona el intercambio entre disco y memoria se denomina intercambiador o swapper. La operacin de escribir el programa en disco se conoce como swap-out, mientras que leer el programa de disco se denomina swap-in.
El swapping aporta las siguientes ventajas:
Permite influir en la gestin de procesos para controlar el grado de multiprogramacin (planificacin a medio plazo). Proporciona flexibilidad en la gestin de la memoria, permitiendo una utilizacin ms eficiente del espacio. Para soportar swapping se requiere espacio para el intercambio en almacenamiento secundario, generalmente disco. Se puede utilizar un dispositivo especfico independiente, una particin del disco, o incluso compartir la misma del sistema de ficheros.
El direccionamiento de los programas debe ser relativo a un registro base (reubicacin dinmica). El swapper establece el nuevo valor del registro base para un proceso cada vez que lo carga en memoria. El sacar un programa de memoria est motivado por la necesidad de obtener espacio libre, generalmente para ejecutar otro programa (quizs uno ms prioritario). El swapper debe seleccionar cuidadosamente qu programas van a salir. Ya que, el swapping condiciona la planificacin de procesos, algunos de los criterios a aplicar para seleccionar el proceso a sacar estn relacionados con los parmetros de la planificacin.
Los criterios suelen ser:
El estado del proceso. Los programas bloqueados no plantean una necesidad inmediata de proceso. La prioridad del proceso. El tamao del programa. Los programas mayores liberan ms espacio al salir de memoria, pero ser ms costoso cargarlos de nuevo. El tiempo que el programa lleva en memoria.
6. Paginacin y Segmentacin
Paginacin
Es una tcnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones fsicas de igual tamao, denominadas marcos de pgina los programas se dividen en unidades lgicas, denominadas pginas, que tienen el mismo tamao que los marcos de pginas de esta forma, se puede cargar una pgina de informacin en cualquier marco de pgina. Las pginas sirven como unidad de almacenamiento de informacin y de transferencia entre memoria principal y memoria auxiliar o secundaria cada marco se identifica por la direccin de marco, que est en la posicin fsica de la primera palabra en el marco de pgina.
Para tener el control de las pginas, debe mantenerse una tabla en memoria que se denomina tabla de Mapas de Pagina (PMT) para cada uno de los procesos hasta ahora, los mtodos que hemos visto de la administracin de la memoria principal, nos han dejado con un problema: fragmentacin, (huecos en la memoria que no pueden usarse debido a lo pequeo de su espacio) lo que nos provoca un desperdicio de memoria principal.
Una posible solucin para la fragmentacin externa es permitir que espacio de direcciones lgicas lleve a cabo un proceso en direcciones no contiguas, as permitiendo al proceso ubicarse en cualquier espacio de memoria fsica que est disponible, aunque est dividida.
Veamos un ejemplo:
En la siguiente tabla muestra una posible configuracin de la memoria en un momento dado, con pginas de 4Kb. La forma en que se lleg a este estado puede haber sido la siguiente:
Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente 3, 2, 2 y 3 pginas.
Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente 3, 2, 2 y 3 pginas.
El programa A se carga en memoria (se le asignan los marcos 0, 1 y 2) El programa B se carga en memoria (se le asignan los marcos 3 y 4) El programa C se carga en memoria (se le asignan los marcos 5 y 6) El programa B termina, liberando sus pginas El programa D se carga en memoria (se le asignan los marcos 3 y 4 que usaba el proceso B y el marco 7 que permaneca libre)
De esta forma, las tablas simplificadas de cada proceso se ven de esta forma:
Sistemas de Paginacin / Segmentacin
Ofrecen las ventajas de las dos tcnicas de organizacin del almacenamiento virtual.
El tamao de los segmentos es mltiplo del de las pginas.
No es necesario que todas las pginas de un segmento se encuentren al mismo tiempo en el almacenamiento primario.
Las pginas de almacenamiento virtual, que son contiguas en este almacenamiento, no necesitan ser contiguas en el almacenamiento real.
El direccionamiento es tridimensional con una direccin de almacenamiento virtual v = (s,p,d):
s es el nmero del segmento. p es el nmero de pgina. d es el desplazamiento en la pgina donde se encuentra asignado el elemento deseado.
7. Enlace dinmico
La necesidad de ejecutar programas de tamao mayor que la memoria fsica disponible ha originado a lo largo de la historia la introduccin de sofisticados mecanismos de gestin de la ubicacin de programas en memoria. Un primer enfoque es el de dividir en programa en varios mdulos, denominados overlays o solapamientos, a partir de su estructura y cargar dinmicamente slo aquellos que se necesiten. La carga de un solapamiento la realiza una rutina de enlace, que se encarga tambin de seleccionar el(los) solapamiento(s) reemplazado(s), si se requiere espacio para la carga. Tradicionalmente, el programador determinaba qu rutinas constituan los solapamientos, construa la rutina de enlace y las tablas de rutinas de los solapamientos, y elaboraba el programa de forma que las llamadas a las rutinas de los solapamientos se llamasen a travs de la rutina de enlace. Tambin eran suyos los criterios de reemplazo de los solapamientos.
El enfoque alternativo al problema es la memoria virtual, ms general y completamente transparente al programador, al que dedicaremos la siguiente Seccin.
Sin embargo, una evolucin de los overlays ha quedado en los sistemas de hoy en da para cubrir un objetivo diferente del originalmente asignado a aquellos: las rutinas de enlace dinmico.
Una librera de enlace dinmico es un conjunto de rutinas agrupadas en mdulos que se cargan dinmicamente en el momento de la llamada, como ocurra en los overlays, pero de forma transparente al programa. El sistema operativo proporciona como soporte una llamada al sistema donde se especifica como parmetro la rutina de enlace dinmico a ejecutar. Cuando en un programa aparece una llamada a una rutina de este tipo, el montador, en vez de enlazar estticamente a la rutina en el cdigo ejecutable, enlaza a la llamada al sistema. Cuando esta llamada al sistema se ejecuta, comprueba si el mdulo que contiene la rutina especificada como parmetro est cargado en memoria. Si no lo est, lo carga y establece la referencia (indirecta) desde el programa. A esto se le llama montaje dinmico o en tiempo de ejecucin.
Se requiere una tabla que especifique el estado de cada mdulo de enlace dinmico (cargado o no) y la direccin de memoria donde se carga. En principio, hay que destinar un espacio de memoria especfico para los mdulos de enlace dinmico, y proporcionar una poltica de reemplazo, pero cuando se combina con memoria virtual, que es lo habitual hoy en da, el reemplazo se realiza pgina a pgina de forma integrada en el propio mecanismo de memoria virtual.
Aunque esta tcnica se podra utilizar con el mismo objetivo de los overlays, actualmente, ya que todos los sistemas tienen soporte de memoria virtual, el enlace dinmico se utiliza por otros motivos:
Los ficheros ejecutables de los programas almacenados en disco son ms pequeos. Esto tiene cierta importancia si se tiene en cuenta que hoy en da los programas hacen un amplio uso de rutinas que consumen un gran volumen de espacio, como por ejemplo las rutinas de tratamiento grfico.
Las rutinas de enlace dinmico cargadas en memoria se comparten por varios programas, lo que permite ahorrar espacio tambin en memoria.
El tiempo de carga de los programas, y por lo tanto su latencia, es menor.
Facilita la actualizacin de las aplicaciones. La instalacin de una nueva aplicacin aporta nuevas versiones de las libreras de enlace dinmico (por ejemplo, rutinas de tratamiento grfico ms elaborado) que sustituyen a las versiones antiguas, de lo que se benefician otras aplicaciones que usan dichas rutinas
8. Memoria Virtual
La memoria virtual es una tcnica de gestin de la memoria que permite que el sistema operativo disponga, tanto para el software de usuario como para s mismo, de mayor cantidad de memoria que est disponible fsicamente. La mayora de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria cach (tanto dentro como fuera del CPU), la memoria RAM y el disco duro. En ese orden, van de menor capacidad y mayor velocidad a mayor capacidad y menor velocidad.
Reduce la latencia en la ejecucin de los programas, al no tener stos que cargarse completamente para comenzar a ejecutarse.
Permite gestionar ms eficientemente la memoria fsica. Cualquier espacio libre, incluso una nica pgina, puede ser aprovechado para cargar un nuevo programa y comenzar a ejecutarlo. Por otra parte, si una pgina de un programa no se referencia durante la ejecucin, no habr que cargarla.
Al aumentar el grado de multiprogramacin a costa de reducir el nmero de pginas cargadas de cada programa, permite incrementar la eficiencia de la CPU en sistemas multiprogramados.
Ahora la independencia de los programas con respecto a la mquina es completa. Adems del direccionamiento virtual que aporta la paginacin, la cantidad de memoria fsica disponible para ejecutar el programa slo es relevante para la velocidad de ejecucin del programa.
8.1. Soporte hardware
Adems del soporte hardware para la traduccin de direcciones de los sistemas paginados, la memoria virtual requiere mecanismos de hardware adicional:
Espacio para paginacin en un dispositivo de almacenamiento secundario (disco). Bit de validez, V. Para cada entrada de la tabla de pginas es necesario un bit que indique si la pgina correspondiente est cargada en memoria o no. Trap de fallo de pgina. Cuando la pgina referenciada no est cargada en memoria, el mecanismo de interrupciones produce el salto a la rutina de tratamiento del fallo de pgina (que promover la carga de la pgina en memoria). A diferencia de una interrupcin normal, el fallo de pgina puede ocurrir en cualquier referencia a memoria durante la ejecucin de la instruccin, por lo que la arquitectura debe proporcionar los mecanismos adecuados para establecer un estado del procesador consistente antes de saltar a la rutina de tratamiento.
8.2. Carga de programas y reubicacin
El cargador carga la tabla de pginas del programa y una o ms pginas, estableciendo las direcciones de las pginas cargadas en las entradas de la tabla de pginas y los valores de los bits de validez. Almacena tambin las direcciones de disco donde se encuentran las pginas no cargadas en memoria. Como en paginacin, la reubicacin se hace independientemente para cada pgina, cuando stas se cargan tras un fallo de pgina.
Bsicamente, hay dos estrategias para cargar las pginas de un programa:
Cargar slo la primera pgina de cdigo y dejar que el resto se cargue por fallo de pgina (paginacin por demanda). Cargar un cierto nmero de pginas o todas, dependiendo de la memoria disponible y del tamao del programa (prepaginacin).
8.3. Gestin
El proceso de direccionamiento en un sistema de memoria virtual combina el mecanismo hardware de traduccin de direcciones siguiendo el mecanismo habitual de paginacin pura o combinada, con la intervencin del sistema operativo cuanto se produce un fallo de pgina. En la referencia a memoria se comprueba el estado del bit de validez. Si est activado, la pgina est cargada y el proceso de traduccin hardware acaba proporcionando la direccin fsica; en caso contrario, el trap de fallo de pgina aborta la ejecucin de la instruccin en curso9 y provoca el salto a la rutina de tratamiento del fallo de pgina, que ejecuta los siguientes pasos:
Si la direccin generada por el programa no es correcta10, se aborta la ejecucin del programa. Si se trata de una direccin correcta, se busca un marco de pgina libre en memoria donde cargar la pgina referenciada. Si no hay marcos libres, se consigue uno expulsando una pgina de memoria. La eleccin de sta (pgina vctima) se realiza mediante un algoritmo de reemplazo. El reemplazo de una pgina, que se estudiar ms adelante, implica escribir en disco la pgina vctima si sta hubiera sido modificada.
Se programa la lectura de la pgina referenciada en el dispositivo de paginacin. En los sistemas multiprogramados se produce un cambio de contexto: el proceso que ha provocado el fallo de pgina pasa a estado bloqueado y se planifica otro proceso.
Mientras el programa est bloqueado, se lee por acceso directo a memoria en el dispositivo de paginacin en donde la pgina buscada se carga en el marco libre seleccionado.
Finalizada la carga, se actualiza la entrada de la tabla de pginas y el bit de validez asociado. El proceso bloqueado por fallo de pgina pasa a preparado para ejecucin. Dependiendo de la poltica de planificacin de procesos, el proceso puede tener la oportunidad de entrar a ejecucin.
8.4. Reemplazo de Pginas
Como hemos visto, cuando se produce un fallo de pgina y no hay marcos libres es necesario liberar uno de los marcos de pgina ocupados para poder cargar la pgina referenciada. Los pasos a seguir son los siguientes:
Se selecciona la pgina vctima mediante un algoritmo de reemplazo que ejecute una poltica de reemplazo determinada.
Si la pgina vctima haba sido modificada durante su estancia en memoria, hay que escribirla en el dispositivo de paginacin (page- out). Si no, esta operacin no es necesaria. Para la gestin de pginas modificadas se asocia un bit de pgina modificada para cada marco de pgina, que se activa cada vez que se accede a memoria para escritura. Se pone a cero el bit de validez correspondiente a la pgina vctima en su tabla de pginas.
8.5. Polticas de reemplazo de pginas
Los criterios a seguir para implementar un algoritmo de reemplazo de pginas son fundamentalmente dos:
Minimizar el nmero de fallos de pgina, como se ha razonado en el apartado anterior. Explotar la localidad temporal de los programas ser fundamental.
Sencillez de implementacin. Un algoritmo complejo, como veremos, puede requerir intervencin adicional en los accesos a memoria, lo que implicar o prdida de rendimiento, o un hardware costoso, lo que a su vez redundar probablemente en prdida de rendimiento.
8.5.1. Poltica ptima
Este algoritmo tiene como finalidad retirar la pgina que vaya a ser referenciada ms tarde, por ejemplo si hay una pgina A que ser usada dentro de 10000 instrucciones, y una pgina B que ser usada dentro de 2800 instrucciones, se debera eliminar de la memoria la pgina A. Como se puede deducir, para esto el sistema operativo debera ver en cunto tiempo ser usada cada pgina en memoria y elegir la que est ms distante. El problema de este mtodo es que necesita conocimiento del futuro, por lo que es imposible su implementacin. Es un algoritmo terico. Se utiliza a los efectos comparativos con los algoritmos factibles de ser implementados para ver cul se aproxima ms a ste.
Puntos fundamentales:
Es el que produce menos fallos de pginas para cualquier cantidad de marcos. Se reemplaza la pgina que va a tardar ms tiempo en ser referenciada. No puede implementarse pues implicara conocer de antemano las pginas que va a referencia el proceso. Aunque no puede implementarse se utiliza como referencia para los dems algoritmos.
8.5.2. Poltica FIFO
En este mtodo, el sistema operativo slo tiene que guardar en orden las pginas que fueron cargadas, de modo que al necesitar hacer espacio pueda fcilmente elegir la primera pgina cargada. Se usa una cola, al cargar una pgina nueva se ingresa en el ltimo lugar. Aunque las colas FIFO son simples e intuitivas, no se comportan de manera aceptable en la aplicacin prctica, por lo que es raro su uso en su forma simple.
Presenta la anomala de Belady: para ciertos ejemplos concretos de cadenas de referencias a memoria es posible que al aumentar el nmero de marcos aumente el nmero de fallos de pgina
Ejemplo:
Solucin:
8.5.3. Poltica LRU
Reemplaza la pgina menos recientemente usada (Least Recently Used) Es como el ptimo pero con la cadena de referencias invertida en el tiempo Produce buenos resultados puesto que por el principio de localidad temporal, pginas referenciadas recientemente es probable que sean referenciadas prximamente Se adapta muy bien a la localidad del programa
Dos posibles implementaciones:
Contadores: Se asocia a cada pgina un contador que representa el instante en que fue referenciada, pudiendo determinar la que hace ms tiempo que no se referencia por el valor del contador Lista: Cada pgina referenciada se coloca al nal de una lista, la primera de la lista es la que hace ms tiempo que no se referencia Ninguna de las implementaciones es factible por la carga que supondra manejar los contadores (o la lista) con cada referencia a memoria
9. Conclusiones
En la memoria principal son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos.
La memoria virtual es aquella que le ofrece a las aplicaciones la ilusin de que estn solas en el sistema y que pueden usar el espacio de direcciones completo.
Las direcciones de memoria son de tres tipos: fsicas, lgicas y lineales.
El objetivo del intercambio es dar cabida a la ejecucin de ms aplicaciones de las que pueden residir simultneamente en la memoria del sistema.
La asignacin consiste en determinar cul espacio vaco en la memoria principal es el ms indicado para ser asignado a un proceso.
Las estrategias ms comunes para asignar espacios vacos (huecos) son: primer ajuste, mejor ajuste, peor ajuste.
La fragmentacin es la memoria que queda desperdiciada al usar los mtodos de gestin de memoria tal como la asignacin.
La fragmentacin puede ser interna o externa.
La paginacin es una tcnica de gestin de memoria en la cual el espacio de memoria se divide en secciones fsicas de igual tamao llamadas marcos de pgina, las cuales sirven como unidad de almacenamiento de informacin.
La segmentacin es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su divisin lgica; llevndose a cabo una agrupacin lgica de la informacin en bloques de tamao variable denominados segmentos.
Los Programas de Control Constituyen La Parte Del Sistema Operativo Dedicada A Coordinar El Funcionamiento de Todos Los Recursos y Elementos de La Computadora