0% encontró este documento útil (0 votos)
185 vistas14 páginas

Gestión de Memoria en SO

El documento habla sobre la gestión de la memoria en sistemas operativos. Explica que la memoria se divide en varios niveles jerárquicos como registros, caché, memoria principal y disco duro. También describe los objetivos de la gestión de memoria como asignar espacio a procesos, proteger la memoria de otros procesos y compartir memoria cuando sea necesario. Finalmente, detalla algunas técnicas como reasignación, protección y organización lógica y física de la memoria.

Cargado por

Brayan Anzola
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
185 vistas14 páginas

Gestión de Memoria en SO

El documento habla sobre la gestión de la memoria en sistemas operativos. Explica que la memoria se divide en varios niveles jerárquicos como registros, caché, memoria principal y disco duro. También describe los objetivos de la gestión de memoria como asignar espacio a procesos, proteger la memoria de otros procesos y compartir memoria cuando sea necesario. Finalmente, detalla algunas técnicas como reasignación, protección y organización lógica y física de la memoria.

Cargado por

Brayan Anzola
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

GESTION DE MEMORIA

PARTICIONES ESTATICA DE MEMORIA DE TAMAÑO FIJO

BRAYAN VALENTIN EDIMBERTO ANZOLA PEREZ

JAIME MONTOYA SANCHEZ

DIEGO ANDRES ARIAS MORENO

UNIVERSIDAD LIBRE DE COLOMBIA – SECCIONAL CUCUTA


SISTEMAS OPERATIVO
INGENIERIA EN TECNOLOGÍAS DE LA INFORMACIÓN Y LAS
COMUNICACIONES
SAN JOSÉ DE CÚCUTA
2019
TABLA DE CONTENIDO

1. MEMORIA
2. MEMORIA REAL
3. MEMORIA VIRTUAL
4. JERARQUICA DE LA MEMORIA
5. REGISTRO
6. MEMORIA CACHE
7. MEMORIA PRINCIPAL
8. DISCO DURO (CON EL MECANISMO DE MEMORIA VIRTUAL
9. ELEMENTOS Y OBJETIVOS DE LA GESTIÓN DE MEMORIA.
10. REASIGNACIÓN
11. PROTECCIÓN
12. MEMORIA COMPARTIDA
13. ORGANIZACIÓN LÓGICA
14. ORGANIZACIÓN FÍSICA
15. REUBICACIÓN DE MEMORIA.
16. PROTECCIÓN Y USO COMPARTIDO
17. PARTICIONES FIJAS
MEMORIA
La memoria es uno de los principales recursos de la computadora, la cual debe de
administrarse con mucho cuidado. Aunque actualmente la mayoría de los sistemas
de cómputo cuentan con una alta capacidad de memoria, de igual manera las
aplicaciones actuales tienen también altos requerimientos de memoria, lo
que sigue generando escasez de memoria en los sistemas multitarea y/o
multiusuario.
La parte del sistema operativo que administra la memoria se llama administrador
de memoria y su labor consiste en llevar un registro de las partes de memoria que
se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a
los procesos cuando éstos la necesiten y liberándola cuando terminen, así como
administrar el intercambio entre la memoria principal y el disco en los casos en los
que la memoria principal no le pueda dar capacidad a todos los procesos que
tienen necesidad de ella.
Los sistemas de administración de memoria se pueden clasificar en dos tipos: los
que desplazan los procesos de la memoria principal al disco y viceversa durante la
ejecución y los que no.
El propósito principal de una computadora es el de ejecutar programas, estos
programas, junto con la información que accesan deben de estar en la memoria
principal (al menos parcialmente) durante la ejecución.
Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener
varios procesos a la vez en la memoria principal, para lo cual dispone de varias
opciones de administración tanto del procesador como de la memoria. La
selección de uno de ellos depende principalmente del diseño del hardware para el
sistema. A continuación, se observarán los puntos correspondientes a la
administración de la memoria.
Memoria real
La memoria real o principal es en donde son ejecutados los programas y procesos
de una computadora y es el espacio real que existe en memoria para que se
ejecuten los procesos. Por lo general esta memoria es de mayor costo que la
memoria secundaria, pero el acceso a la información contenida en ella es de más
rápido acceso. Solo la memoria cache es más rápida que la principal, pero su
costo es a su vez mayor.
Memoria virtual
El término memoria virtual se asocia a dos conceptos que normalmente a parecen
unidos:
1. El uso de almacenamiento secundario para ofrecer al conjunto de las
aplicaciones la ilusión de tener más memoria RAM de la que realmente hay en el
sistema. Esta ilusión de existe tanto a nivel del sistema, es decir, teniendo en
ejecución más aplicaciones de las que realmente caben en la memoria principal,
sin que por ello cada aplicación individual pueda usar más memoria de la que
realmente hay, o incluso de forma más general, ofreciendo a cada aplicación más
memoria de la que existe físicamente en la máquina.
2. Ofrecer a las aplicaciones la ilusión de que están solas en el sistema, y que, por
lo tanto, pueden usar el espacio de direcciones completo.  Esta técnica facilita
enormemente la generación de código, puesto que el compilador no tiene por qué
preocuparse sobre dónde residirá la aplicación cuando se ejecute.
Jerarquía de la memoria
Nivel 0: Registros
Nivel 1: Memoria caché
Nivel 2: Memoria principal
Nivel 3: Disco duro (con el mecanismo de memoria virtual)
REGISTRO- memoria de alta velocidad y poca capacidad, integrada en el cpu,
que permite guardar y acceder a valores muy usados, generalmente en
operaciones matemáticas. Están en la cumbre de la jerarquía de memoria, y son la
manera más rápida que tiene el sistema de almacenar datos. Se miden
generalmente por el número de bits que almacenan; "registro de 8 bits" o "registro
de 32 bits". Se implementan en un banco de registros Los CPU’s tienen además
otros registros usados con un propósito específico, como el contador de programa.
MEMORIA CACHÉ- tipo especial de memoria que se sitúa entre el cpu y la RAM
para almacenar datos que se usan frecuentemente. Agiliza la transmisión de datos
entre el CPU y la memoria principal. Es de acceso directo y mucho más rápida que
la RAM.
MEMORIA PRINCIPAL-Son circuitos integrados capaces de almacenar
información digital, a los que tiene acceso el CPU. Poseen una menor capacidad
de almacenamiento que la memoria secundaria, pero una velocidad millones de
veces superior. Hay dos tipos: o ROM (Read Only Memory) "Memoria de solo
lectura" que almacenan códigos de programa grabados de fábrica. (BIOS) o RAM
(Random Access Memory) "Memoria de acceso aleatorio", almacena datos que
pueden ser escritos y borrados atendiendo a los procesos de computación.
"Aleatorio" indica que sus localidades pueden ser accedidas directamente, dando
rapidez a los procesos. El CPU direcciona las posiciones de la RAM para poder
acceder a los datos almacenados en ellas y para colocar los resultados de las
operaciones.
MEMORIA SECUNDARIA- dispositivo encargado de almacenar información de
forma permanente.

ELEMENTOS Y OBJETIVOS DE LA GESTIÓN DE MEMORIA.


Se denomina gestión de memoria al acto de gestionar la memoria de un
dispositivo informático. De forma simplificada se trata de proveer mecanismos
para asignar secciones de memoria a los programas que las solicitan, y a la vez,
liberar las secciones de memoria que ya no se utilizan para que estén disponibles
para otros programas. El proceso de asignación de memoria a los programas que
las solicitan es llamado por algunos “alocar” (del inglés “allocate” que significa
asignar) pero la palabra “alocar” tiene otro significado para el diccionario de la
lengua de la Real Academia Española. La gestión de la memoria principal de un
ordenador es una tarea de suma importancia para el funcionamiento del mismo.
Los sistemas de memoria virtual separan las direcciones de memoria utilizadas
por un proceso de las direcciones físicas reales, permitiendo la separación de
procesos e incrementando la cantidad efectiva de memoria de acceso aleatorio
utilizando la paginación. La calidad de la gestión de la memoria es crucial para las
prestaciones del sistema.
El recolector de basura es la asignación y liberación automática de los recursos de
memoria para un programa. La implementación suele ser a nivel del lenguaje de
programación en contraposición a la gestión manual de memoria, que asigna y
libera los recursos de memoria de un ordenador de forma explícita.
La memoria física de un sistema se divide en dos categorías:
memoria de acceso aleatorio: comprende circuitos integrados y es, en
consecuencia, muy veloz.
memoria de almacenamiento masivo: comprende dispositivos magnéticos (disco
duro, cintas magnéticas, etcétera) y es mucho más lenta.
La memoria física consiste en un área de almacenamiento temporal para los
programas y los datos que se usan. A grandes rasgos, mientras más grande sea
el espacio de memoria, más aplicaciones se podrán ejecutar al mismo tiempo.
Además, mientras más rápida sea la memoria, más rápida será la reacción del
sistema. Por eso, el sistema operativo debe estar organizado de manera lo
suficientemente eficiente como para obtener el mejor rendimiento posible.
Características
Los sistemas de gestión de memoria de sistemas operativos multitarea
normalmente tratan con las siguientes tareas.

REASIGNACIÓN
En los sistemas con memoria virtual, los programas en la memoria deben ser
capaz de residir en diferentes partes de la memoria en diferentes momentos. Esto
se debe a que cuando el programa se cambió de nuevo en la memoria después de
ser intercambiado por un tiempo que no siempre se puede colocar en el mismo
lugar. La unidad de gestión de memoria virtual también debe hacer frente a la
concurrencia. gestión de memoria en el sistema operativo por lo tanto debe ser
capaz de trasladar los programas en la memoria y manejar referencias de la
memoria y las direcciones en el código del programa para que siempre apuntan a
la ubicación correcta en la memoria.
PROTECCIÓN
Los procesos no deberían poder referenciar la memoria de otros procesos sin
permiso, para evitarlo existe la protección de memoria, que evita que código
malicioso o erróneo de un programa interfiera con la operación de otros programas
en ejecución.
MEMORIA COMPARTIDA
Aunque la memoria utilizada por diferentes procesos suele estar protegida,
algunos procesos puede que sí tengan que compartir información y, para ello, han
de acceder la misma sección de memoria. La memoria compartida es una de las
técnicas más rápidas para posibilitar la comunicación entre procesos.
ORGANIZACIÓN LÓGICA
Los programas a menudo están organizados en módulos, algunos de los cuales
pueden ser compartidos por diferentes programas, algunos son de sólo-lectura y
otros contienen datos que se pueden modificar. La gestión de memoria es
responsable de manejar esta organización lógica, que se contrapone al espacio de
direcciones físicas lineales. Una forma de lograrlo es mediante la segmentación de
memoria.
ORGANIZACIÓN FÍSICA
La memoria suele dividirse en un almacenamiento primario de alta velocidad y uno
secundario de menor velocidad. La gestión de memoria del sistema operativo se
ocupa de trasladar la información entre estos dos niveles de memoria.

REUBICACIÓN DE MEMORIA.
El concepto de reubicación de memoria, se refiere a la capacidad de cargar y
ejecutar un programa dado, en un lugar arbitrario de la memoria.
Durante ejecuciones diferentes de un mismo programa, pueden ser asignadas
direcciones de carga diferentes, por tanto, es preciso distinguir, una dirección
lógica o virtual, que es la que percibe el usuario, de una dirección física o real, que
es el lugar de la memoria, donde el programa y sus datos son almacenados,
durante una determinada ejecución.
Más específicamente, podríamos decir, que las direcciones lógicas o virtuales son
identificaciones usadas para referenciar la información, dentro del espacio de
direcciones de un proceso, mientras que las direcciones físicas, designan la
posición actual de la memoria real, donde los elementos de información son
almacenados en tiempo de ejecución.
Dependiendo de cuando y como tiene lugar, la proyección desde el espacio de
direcciones lógicas o virtuales, hacia el espacio de direcciones físicas o reales, en
un esquema de reubicación dado, la reubicación del programa, puede ser
considerada como estática o dinámica.
La reubicación estática implica, que la reubicación es llevada a cabo, durante la
carga del programa en memoria, por un programa que se denomina cargador
reubicable.
El programa traductor normalmente prepara él modulo objeto, suponiendo que la
dirección física cero, es la dirección de comienzo del programa.
Cuando el programa es cargado en la memoria por el módulo del sistema
operativo denominado cargador, todas las posiciones del programa, que necesitan
reubicación, son modificadas de acuerdo con la dirección física de la memoria,
que le ha sido asignada al proceso.
Una vez que el proceso está en memoria los valores que necesitan reubicación,
no se distinguen de aquellos que no la necesitan, por lo tanto, los valores de
reubicación se pierden después de la carga y un programa reubicable
estáticamente, ejecutado en parte en un área de memoria, no puede ser
trasladado a otra y esperar que continúe ejecutándose correctamente.
En consecuencia, en sistemas con reubicación estática, un proceso que fue
descargado dinámicamente, debe ser cargado, en la misma partición de memoria,
donde estaba situado, antes de que se realizara la descarga dinámica.
La reubicación dinámica, implica que la proyección del espacio de direcciones
lógicas o virtuales, en el espacio de direcciones físicas o reales, es llevado a cabo
en tiempo de ejecución, normalmente con alguna asistencia del hardware de la
máquina.
Los procesos imagen en sistemas con reubicación dinámica, se preparan también,
suponiendo que la dirección de comienzo es la dirección lógica o virtual cero y se
cargan en la memoria sin ninguna modificación debida a la reubicación.
Cuando dichos procesos son ejecutados, todas sus referencias a memoria son
reubicadas durante la ejecución de las instrucciones, antes de que se acceda a la
memoria física o real. Este proceso es implementado, por medio de un registro
base, que contiene la dirección física de la memoria, donde está cargado el
proceso y este valor se obtiene de la correspondiente tabla de descripción de
particiones (PDT).
Cada referencia a memoria generada por la ejecución del proceso, se convierte en
la correspondiente dirección física, con solo sumarle el contenido del registro
base.
Un proceso imagen preparado suponiendo que la dirección de comienzo es la
dirección lógica o virtual cero, se mantendrá inalterada, antes y después de ser
cargado en la memoria.
La reubicación dinámica, hace posible mover un proceso parcialmente ejecutado
en un área de memoria a otra, sin que se produzcan inconvenientes de
direccionamiento, en los accesos a las instrucciones y datos en el nuevo espacio.
Esta característica es muy provechosa para mantener la descarga dinámica, sin
tener que ligar los procesos a las particiones y por tanto, podrá ser utilizado en el
particionamiento dinámico, que estudiaremos posteriormente.
PROTECCIÓN Y USO COMPARTIDO.
La integridad o la protección de un sistema de multiprogramado, depende entre
otras cosas, del aislamiento de los distintos espacios de direcciones, es decir no
solamente, el sistema operativo debe ser protegido de intromisiones no
autorizadas por parte de los procesos de usuario, sino que cada proceso, debe
estar prevenido contra los accesos que accidentalmente o intencionadamente se
puedan realizar en áreas de memoria asignadas a otros procesos.
El acceso incontrolado al espacio de memoria de un proceso, además de causar
frecuentes problemas en el funcionamiento del sistema, se pueden producir
interacciones no deseadas entre procesos que están intermitentes y que son
difíciles de detectar, ya que las consecuencias pueden manifestarse mucho tiempo
después, de que el proceso deteriorado haya abandonado el sistema, produciendo
de esta manera, errores en otros procesos.
Estas consideraciones nos indican que las operaciones multiusuario, no deberían
ser proporcionadas en sistemas que no dispongan de un adecuado sistema de
protección de memoria.
Normalmente, para un sistema de particionamiento estático, la protección de
memoria puede estar implementada por los mecanismos generales de protección
por software, basados en la utilización de registros base y registros límite, que
proporcionan el debido aislamiento de los espacios de direcciones existentes,
tanto al sistema operativo como a los restantes procesos.
Otro método de protección es por hardware, que consiste en grabar los derechos
de acceso en el propio espacio de la propia memoria. El método de un bit por cada
dirección de memoria, ya descrito anteriormente, no es apropiado para los
sistemas de multiprogramados, porque se pueden separar solamente dos
espacios de direcciones distintos.
Este problema puede ser resuelto, añadiendo más bits para designar la identidad
de cada dirección de memoria, pero esto sería muy costoso. Una versión más
económica, consiste en asociar varios bits a la protección de grandes bloques de
memoria, así por ejemplo, algunos sistemas utilizan cuatro bits, denominados
clave de protección, por cada bloque de memoria de 1 Kb, 2 kb, 4 kb, etc. De esta
manera, cuando el proceso es cargado en memoria, su identidad es grabada en
los bits de protección de los bloques que ocupa.
La validación de las referencias de memoria es establecida en tiempo de
ejecución, comparando la identidad del proceso que se está ejecutando, con el
contenido de los bits de protección del bloque de memoria, que está siendo
accedido, por lo tanto, si no coinciden, el acceso se considerará ilegal.
Al sistema operativo se le asigna una clave maestra única, es decir cero, que le da
acceso sin ninguna restricción a todos los bloques de memoria.
La manera más fácil de implementar el uso compartido, es confiar los objetos
compartidos al sistema operativo, ya que la utilización del sistema operativo para
controlar el acceso a los recursos compartidos y el mecanismo para invocar los
servicios del sistema operativo, no necesitan incorporar ningún suministro
adicional, para soportar el uso compartido.
Esta forma tan simple de abordar esta cuestión, no es muy conveniente por las
razones que exponen a continuación:
Estimula el crecimiento del sistema operativo.
El código adicional que se incorpora al sistema operativo, consigue el mismo nivel
de fiabilidad y privilegio que tiene el núcleo, cuyo comportamiento es sumamente
fiable.
El fragmento de código que se obtiene, veda todas las reglas del desarrollo,
prueba y mantenimiento de la programación.
Normalmente la mayoría de los sistemas, permiten la incorporación de rutinas
escritas por el usuario dentro del sistema operativo, pero solamente durante el
proceso de generación del sistema, por lo tanto, no siendo de esta manera, el uso
compartido en los sistemas de particionamiento fijo de la memoria es bastante
difícil, por la utilización de los mecanismos de protección expuestos anteriormente,
basados fundamentalmente en el aislamiento de los distintos espacios de
direcciones.
Una solución sencilla del problema, pero altamente costosa, es tener una copia
física de los objetos compartidos, en cada espacio de direcciones de los procesos
que los utilizan, de esta manera, no hay accesos comunes, es decir, cada proceso
se ejecuta usando su proyección local de los objetos compartidos, por lo tanto,
cuando se hace una modificación en el objeto compartido, esta debe ser
propagada por todas las copias, para guardar la consistencia entre ellas.
El sistema operativo se encarga de copiar los datos compartidos, desde el espacio
de direcciones del proceso en ejecución a todas las particiones que participan.
Realmente esta solución no tiene mucho sentido, ya que no proporciona ningún
ahorro de memoria.
PARTICIONES FIJAS

El primer intento para posibilitar la multiprogramación fue la creación de


particiones fijas o estáticas, en la memoria principal, una partición para cada tarea.
El tamaño de la partición se especificaba al encender el sistema, cada partición
podía re-configurarse al volver a encender el sistema o reiniciar el sistema.
Este esquema introdujo un factor esencial, la protección del espacio de memoria
para la tarea. Una vez asignada una partición a una tarea, no se permitía que
ninguna otra tarea entrara en sus fronteras. Este esquema de partición es más
flexible que la de usuario único, porque permite que varios programas estén en
memoria al mismo tiempo.
figura 1. http://sistemasopers.blogspot.com/2015/09/particiones-fijas-y-dinamicas.html

Ventajas:
- Simplicidad
- Resolución de direcciones en tiempo de carga
- Registro base (no requiere siquiera de un registro limite)
- Puede limitarse simplemente con un espacio de direccionamiento acorde en el
compilador.

Desventajas 
- Rigidez
- Grado de multiprocesamiento limitado
      - Si hay menos de 7 procesos, se desperdician recursos.
      - Si hay más de 7, tienen que esperar a que se les abra espacio.
- Desperdicio de espacio (Fragmentación interna)
    - Al asignarse la memoria en bloques fijos, un proceso pequeño podría
desperdiciar mucho espacio 
Asignación de las particiones fijas
La asignación de las particiones fijas consiste en darle un espacio de memoria es
decir una partición a un proceso que necesite ejecutarse, es decir:
Figura 2. http://sistemasopers.blogspot.com/2015/09/particiones-fijas-y-dinamicas.html
Ahora bien, se necesitan ejecutar estos procesos o tareas, lo que se hace es
empezar por la primera partición que va de 30 a 50, esta partición tiene un espacio
de 20 (50-30=20), como se asignan las tareas por orden de llegada entonces la
primera que se debe asignar es la tarea 1 que pesa 50, por lo tanto, se busca en
la memoria una partición con esa capacidad.
En este ejemplo seria la partición que hay entre 80 a 200, donde tiene un espacio
de 120, a esta partición se le asignara la tarea 1 (t1). Quedaría de la siguiente
manera:
  

Figura 3. http://sistemasopers.blogspot.com/2015/09/particiones-fijas-y-dinamicas.html

Al ingresar la tarea 1 en la partición vemos que queda un espacio de sobra en esa


partición la cual es 70 (120-50=70) a esto se le llama fragmentación. La
fragmentación es la memoria que se desperdicia, es un espacio que se está
usando, pero no se está ocupando del todo.

La fragmentación es la memoria que queda desperdiciada al usar los métodos de


gestión de memoria que se vieron en los métodos anteriores. Tanto el primer
ajuste, como el mejor y el peor producen fragmentación externa. La fragmentación
es generada cuando durante el reemplazo de procesos quedan huecos entre dos
o más procesos de manera no contigua y cada hueco no es capaz de soportar
ningún proceso de la lista de espera. La fragmentación puede ser:
Fragmentación Externa: Existe el espacio total de memoria para satisfacer un
requerimiento, pero no es contigua.
Fragmentación Interna: La memoria asignada puede ser ligeramente mayor que la
requerida; esta referencia es interna a la partición, pero no se utiliza.
La fragmentación externa se puede reducir mediante la compactación para colocar
toda la memoria libre en un solo gran bloque, pero esta sólo es posible si la
relocalización es dinámica y se hace en tiempo de ejecución.
Se hace el mismo proceso con la tarea 2:

Figura 4. http://sistemasopers.blogspot.com/2015/09/particiones-fijas-y-dinamicas.html
Ahora con la t3,la tarea 3 pesa 80 y si observamos la imagen nos daremos cuenta
de que no hay ninguna partición que tenga un espacio en la memoria de 80, por lo
que se dice que esta tarea queda en cola es decir que queda en espera mientras
se desocupa una partición que tenga ese espacio.
lo siguiente es terminar la tarea 4 y la tarea 5 que quedarían así:

Figura 5. http://sistemasopers.blogspot.com/2015/09/particiones-fijas-y-dinamicas.html
Des asignación para particiones fijas:
Las tareas salen de la memoria por el tiempo de ejecución, es fácil de comprender
ya que si una tarea termino lo único que hace es salir y dejar la partición libre es
decir:
Vamos a utilizar el ejemplo anterior y supondremos que la tarea 4 ya se ejecuto lo
que se hace es quitarla y queda el espacio libre, para poder asignar otra tarea.

Figura 6. http://sistemasopers.blogspot.com/2015/09/particiones-fijas-y-dinamicas.html
REFERENCIA
bautista, j. (2019). TRABAJO UNIDAD 3 SISTEMAS OPERATIVOS EQUIPO 6. Retrieved 7
November 2019, from
https://www.academia.edu/9472266/TRABAJO_UNIDAD_3_SISTEMAS_OPERATIVOS_EQUIPO_6

Particiones fijas y dinamicas. (2016). Retrieved 7 November 2019, from


http://sistemasopers.blogspot.com/2015/09/particiones-fijas-y-dinamicas.html

Unidad 5. GESTIÓN DE LA MEMORIA. (2013). Retrieved 7 November 2019, from


https://sistemasoperativosfesaragon.wordpress.com/unidad-5-gestion-de-la-memoria/

También podría gustarte