Sistemas Operativos

1.    La Memoria
Administración de la memoria:
Organización de memoria es la forma como está organizada la memoria dentro de un sistema operativo y como le doy el máximo de rendimiento, posee dos clases de alojamientos.
1.            Alojamiento continuo: partición fija, partición variable
2.            Alojamiento disperso: paginación, segmentación, paginación +segmentación
Estrategias de administración de la memoria virtual:
1.            Fetch: demanda, anticipado, que traer de memoria secundaria a memoria primaria
2.            Colocación: al traer de memoria real a un segmento es para saber o decidir dónde colocarlo analizar si el espacio es suficiente o que proceso debo hacer para que este pueda ser guardado.
3.            Reemplazo: cambio de espacios de memoria, utilización y ubicación de la misma en el disco.
Primero debo decidir que debo mover del disco a la memoria, luego donde lo coloco y si no hay espacio decidir que saco para ingresar el nuevo proceso.
La memoria está catalogada en dos partes memoria real y memoria virtual
Memoria real: esquemas donde el requerimiento es continuo
Memoria virtual: alojamiento es disperso, dividir procesos en porciones pequeñas donde puedo ir cargándolo a media que se necesiten, la evolución partió de memoria continua y evoluciono hacia memoria virtual o disperso.
Hay una jerarquía de memoria donde se muestras  propia Velocidad, Tamaño, costo, el tamaño está asociado a su tamaño, son más lentos cuando son grandes y mucho más rápido cuando son pequeños.
2.    Alojamiento en la Memoria

3.1   Alojamiento Contiguo
Se refiere  a la capacidad de almacenar o brindar un alojamiento a un proceso lo utilizo cuando debo mover el proceso completo a memoria, este quiere decir pasar por completo d su localización dentro de la memoria.

3.2   Alojamiento Disperso
Se refiriere a la capacidad de brindar un alojamiento a un proceso fraccionado en diferentes partes de la memoria y se utiliza por partes asignándole una parte de la memoria para que se realice el proceso.
Que diferencia al alojamiento continuo del alojamiento disperso; en el almacenamiento contiguo el proceso debe ser cargado en su totalidad, mientras que en el disperso solo utilizo fragmentos del proceso y al ser almacenado este que en diferentes lugares de la memoria.

Encontramos dos clases de memoria una real y otra memoria virtual, en la memoria real la cual permite que un proceso sea cargado de forma contigua o en su totalidad
En  la memoria virtual se podría decir que el proceso se divide en varias partes y que ellas se le asignarían un tamaño de memoria según fuese su necesidad
Dentro de la evolución del control de la memoria los primeros se hicieron con procesos guardados en su totalidad, de los cuales se evoluciono al fragmentado es decir a trabajar procesos por partes también conocido como tipo disperso, este permite dividir o fraccionar el proceso y utilizarlo en pequeñas partes de la memoria
Las memorias pueden variar según su uso o según sea el propósito de su diseño, lo cual nos lleva a ciertos parámetros como lo son velocidad, tamaño y costo, cuando son muy grandes su velocidad es menor un ejemplo propicio seria la memoria cache.
La memoria es una frontera donde se puede utilizar directamente con la CPU y otros que solo pueden ser utilizados por medio de un controlador que será quien permita o autorice en qué momento se puede usar.
Los procesos tienen definidas las etapas hacia su ejecución como lo son la compilación, encadenamiento, carga.
En la compilación se produce el cargue del programa hacia la memoria; en el encadenamiento se produce la etiqueta del proceso para la identificación dentro del sistema, en el cargue las etiquetas son revalidadas lo cual permite su desplazamiento hacia el sistema.
Hay etiquetas o direcciones simbólicas las cuales están en la etapa de compilación, en la etapa de encadenamiento esas direcciones se convierten en direcciones físicas es decir en reales las cuales seran identificadas por el sistema y permitirán el transito del proceso por el sistema, ratificando que las direcciones relativas pasan hacer direcciones físicas al ser cargadas al sistema adecuadamente.
Se hace necesario tener un registro de las direcciones que utiliza la memoria y la asignación hacia un proceso, la dirección debe ser identificada y de esta forma sea dado el permiso para avanzar dentro de la memoria, esta se llama relocalizables que permite identificar la dirección MMU (Memoria Management Unit) el cual permite sumar el registro de localización con la dirección lógica utilizada por la CPU lo que nos enseña que el computador siempre ve direcciones lógicas.

3.    Particiones fijas
Existen dos procesos o técnicas que nos permiten utilizar la memoria de forma eficiente, Overlays y Swapping
La técnica Overlays: utilizada cuando el programa que quiero cargar solo puede utilizar una parte de la memoria según lo requiera no necesita aporte del sistema operativo.
La técnica Swapping: esta técnica se utiliza cuando no hay suficiente memoria para el proceso es decir debe ser cargado de forma completa, estos son movidos temporalmente hacia la memoria principal o a un disco. La desventaja es que se debe mover todo el proceso y esto genera demora en dicha actividad.
Posee dos movimientos tales como de memoria a disco o de disco a memoria; cuando se dirige de memoria a disco se llama swapping out, cuando se dirige de disco a memoria se denomina swapping in. El objetivo principal es mantener en disco la última parte del proceso la cual fue alterada por el proceso de mover de un lado a otro las cuales son detectadas por el sistema operativo, si no concuerdan se producirá un error  y no realizara el swapping out.
Las particiones pueden estar dadas en particiones fijas, cada partición y su tamaño puede ser  organizada desde la instalación del sistema operativo o lo puedo realizar en el momento que lo necesite, cada porción permite correr un proceso y cada partición permite independencia entre un proceso y otro que se ubica en otra partición.
Los procesos tienen un orden y para ello puedo designarles un espacio o un hueco dentro de la memoria,  para ello utilizo las colas donde se colocan los procesos en una fila y seran utilizados según se vayan liberando, para ello debo saber escoger la partición más apropiada para mi trabajo, debo organizar cada proceso con el fin de asignarle una partición adecuada, puedo tener una sola cola, o tener una cola para cada partición.
4.    Manejo de la Memoria
Cuando al realizar una partición y el proceso más pequeño que la participación realizada, se estaría desperdiciando parte de la memoria que no sería utilizable en otro proceso, esto se conoce como fragmentación interna.
Si este proceso sucede donde un proceso quiere o desea ingresar pero las particiones no pueden contenerlo a esto se le llama fragmentación externa.

5.    Particiones variables
Permite que las particiones sean dinámicas a la secuencia de ingreso  o salida de la memoria, asignándoles la memoria que ellos necesitan, por ello es muy necesario organizar adecuadamente las participaciones.
Al ingresar diferentes procesos dentro de las particiones quedaran huecos los cuales deben ser monitoreados por el sistema operativo, analizara dichos huecos para diversos objetivos uno de ellos colocar un proceso que quiero llevar a la memoria.
6.    Estrategias de colocación
Son el proceso de análisis de los huecos y colocar un proceso donde el quepa de la mejor forma y no haya pérdida de memoria.
Este posee tres tipos el Firs Fit, Best Fit y el Worst Fit.
En el Firs Fit: también llamado “primer ajuste”, colocando el proceso donde quepa. En este yo busco que la CPU se ejecute de forma rápida y así ocupar más al procesador no hay orden a los huecos.
En el Best Fit: también llamado “mejor ajuste”, colocando el proceso donde quede mejor. En este proceso yo busco utilizar adecuadamente la memoria buscando siempre la automatización y se usen al máximo los huecos de menor a mayor.
En el Worst Fit: también llamado “peor ajuste”, coloco el proceso en el hueco más grande. En este proceso organizo los huecos de mayoría menor.
7.    Compactación
Es una técnica que me permite utilizar y mover los huecos y de esta forma compactarlos en uno, movilizando los procesos de forma física dejando los huecos de forma contigua, al estar en el proceso de compactación no se puede efectuar ninguna otra función en el sistema operativo.
Cada sistema operativo debe estar diseñado para reconocer los huecos y realizar la compactación con el objetivo de utilizar mejor la capacidad de la memoria.
Se conoce con el nombre de aglutinamiento al proceso donde el sistema operativo es capaz de analizar y concluir que dos huecos están de forma contigua y así utilizarlos como uno solo, si el sistema operativo no es capaz de realizar este proceso se dice que no tiene la función de aglutinamiento.
8.    Protección de Memoria
El sistema operativo debe restringir que un proceso no utilice información de otro proceso, a menos que ellos tengan conexión entre sí.
Se utiliza un registro base y un registro limite todas las direcciones son confrontadas contra esos registros y así localizan su lugar donde esta almacenada.

Se realiza un chequeo comparando la dirección base con la dirección limite y si cumple con las dos puede acceder a la memoria, si son contrarias reportara un intruso o ingreso no permitido en ese momento se detiene el sistema operativo abortado el programa. 

No hay comentarios.:

Publicar un comentario