Documentos de Académico
Documentos de Profesional
Documentos de Cultura
proteger los espacios de memoria utilizados (por ejemplo, evitar que un usuario
modifique una tarea realizada por otro usuario).
dividindose en diversas partes, las cuales pueden variar en tamao. Esta particin la puede
hacer el usuario en forma manual, al iniciar una sesin con la mquina.
Una vez implementada la particin, hay dos maneras de asignar los procesos a ella. La
primera es mediante el uso de una cola nica 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.
Participaciones variables
Este esquema fue originalmente usado por el sistema operativo IBM OS/360 (llamado
MFT), el cual ya no est en uso.
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.
PAGINACIN
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.
Una forma de implementar esta solucin es a travs del uso de un esquema de paginacin.
La paginacin evita el considerable problema de ajustar los pedazos de memoria de
tamaos variables que han sufrido los esquemas de manejo de memoria anteriores. Dado a
sus ventajas sobre los mtodos previos, la paginacin, en sus diversas formas, es usada en
muchos sistemas operativos.
Al utilizar la memoria virtual, las direcciones no pasan en forma directa al bus de memoria,
sino que van a una unidad administradora de la memoria (MMU Memory Management
Unit). Estas direcciones generadas por los programas se llaman direcciones virtuales y
conforman el hueco de direcciones virtuales. Este hueco se divide en unidades llamadas
pginas. Las unidades correspondientes en la memoria fsica se llaman marcos para pgina
o frames. Las pginas y los frames tienen siempre el mismo tamao.
SEGMENTACIN
Otra opcin para el manejo de la memoria es usar una forma de liberar al programador de la
tarea del control de las tablas en expansin y contraccin, de la misma forma que
la memoria virtual elimina la preocupacin por organizar el programa en una serie
de proyectos.
Esto se puede lograr dotando a la mquina de varios espacios independientes de direcciones
llamados segmentos. Cada segmento tiene una serie lineal de direcciones, desde 0 hasta
cierto mximo. La longitud de cada segmento puede variar de 0 hasta un mximo
permitido. Los distintos segmentos pueden tener y de hecho tienen por lo general,
longitudes distintas. Adems, la longitud de un segmento puede variar durante la ejecucin.
La longitud de un segmento de la pila puede crecer si algo entra a la pila y decrecer si algo
sale de ella.
Puesto que cada segmento constituye un espacio independiente de direcciones, los distintos
segmentos pueden crecer o reducirse en forma independiente sin afectar a los dems. En la
figura 13 podemos ver una lista de comparacin entre la paginacin y la segmentacin.
La segmentacin tambin facilita el uso de procedimientos o datos compartidos entre varios
procesos. Un ejemplo comn son las bibliotecas compartidas (Shared DLLs). Es frecuente
que las estaciones de trabajo modernas que ejecutan sistemas avanzados, con ventanas,
tengan bibliotecas grficas de tamao muy grande que se compilan casi en todos los
programas. En un sistema segmentado, la biblioteca grfica se puede colocar en un
segmento y compartirse entre varios procesos, sin necesidad de tenerla en el espacio de
direcciones de cada proceso.
Aunque tambin es posible tener bibliotecas compartidas sin los sistemas con paginacin
pura, es mucho ms complejo. De hecho, estos sistemas simulan la segmentacin.
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.
Muchas aplicaciones requieren acceso a ms informacin (cdigo y datos) que la que se
puede mantener en memoria fsica. Esto es as sobre todo cuando el sistema operativo
RAM se agota, el sistema se apoya en el fichero SWAP para realizar movimientos desde el
disco duro a la RAM y viceversa. De ese modo crean espacios en memoria fsica para ir
ejecutando las rdenes. Esto, evidentemente, hace que el sistema vaya ms lento.
Los sistemas de paginacin de memoria dividen los programas en pequeas partes o
pginas. Del mismo modo, la memoria es dividida en trozos del mismo tamao que las
pginas llamados marcos de pgina. De esta forma, la cantidad de memoria desperdiciada
por un proceso es el final de su ltima pgina, lo que minimiza la fragmentacin interna y
evita la externa. En un momento cualquiera, la memoria se encuentra ocupada con pginas
de diferentes procesos, mientras que algunos marcos estn disponibles para su uso. El
sistema operativo mantiene una lista de estos ltimos marcos, y una tabla por cada proceso,
donde consta en qu marco se encuentra cada pgina del proceso.