ADMINISTRACIÓN DE MEMORIA Y ARCHIVOSUnidad III
ADMINISTRACIÓN DE MEMORIA
La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección. Para que los programas puedan ser ejecutados es necesario que estén cargados en memoria principal
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.
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.
En sistemas con multiproceso, el S.O. debe “repartir” los recursos entre los procesos existentes:
Reparto de procesador: Gestión de procesos
Reparto de memoria: Gestión de memoria
OBJETIVOS DEL GESTOR DE MEMORIA
A. Espacios lógicos independientesA priori no se conoce la posición de memoria que ocupará un programa cuando vaya a ejecutarse (estado de ocupación de la memoria)Código en ejecutable genera referencias entre 0 y N
B. Protección entre procesos
La protección es diferente según sea un sistema Mono o Multi programado.•Sistema MonoProgramado: La intrusión se dará solamente entre el programa y el S.O.•Sistema MultiProgramado: La intrusión puede venir tanto de otros procesos como de otros usuarios además del riesgo del sistema Monoprogramado.
C. Compartición de Memoria (procesos ligeros)
La compartición de memoria entre procesos da soporte a la creación de procesos ligeros y está controlado por el S.O. Las direcciones lógicas de 2 o más procesos se corresponderán con una misma dirección física.
El mapa de memoria de un proceso no es homogéneo, ya que las regiones contienen diferentes tipos de información (código, datos y pila normalmente) y poseen diferentes características
E. Maximizar el grado de multiprogramación
D. Soporte de las regiones del proceso
El reparto de memoria debe ser tal que maximize el grado de multiprogramación para evitar el desperdicio de memoria
Memoria desperdiciadaRestos (huecos) inutilizables (fragmentación)
Tablas requeridas por gestor de memoria
Los procesos necesitan cada vez mapas más grandes: aplicaciones más novedosas, más recursos gráficos, más carga computacional....Para ello utiliza Memoria Virtual haciendo que el usuario disponga virtualmente de una enorme cantidad de memoria física
F. Mapas de memoria de un tamaño adecuado (normalmente grandes)
Elemento Clave: Proximidad referencial habitual de los procesos. Esta propiedad permite que un proceso puede funcionar disponiendo en memoria de una parte de su imagen de memoria (conjunto residente).
Objetivo final: conseguir que la información necesaria para un proceso (conjunto de trabajo) vaya ocupando la memoria principal según se va necesitando (es decir, conjunto de trabajo === conjunto residente)
MEMORIA VIRTUAL
La técnica de la MV se usa prácticamente en todos los SSOO modernos. Esta técnica se basa en transferir información entre memoria principal y memoria secundaria (por lo que involucra varios niveles de la jerarquía de memoria). Suele implementarse en un esquema de paginación (es decir, la unidad de información intercambiada entre los diferentes niveles de la jerarquía de memoria es la página).
a) Aumento del grado de multiprogramación. Por tanto, aumento en el rendimiento del sistema
b) Posibilidad de ejecutar programas más grandes que la MV disponible
VENTAJAS:
El uso de la MV no implica que se acelere la ejecución del programa (más bien al contrario, debido a la sobrecarga asociada a los movimientos de información entre
niveles de la jerarquía). Este mecanismo no es apropiado para sistemas de tiempo real.
La memoria virtual tiene que ser 1.5 veces el tamaño de la memoria RAM que tenemos instalada (como vimos en la primer imagen).
Por ejemplo:• 512 MB de RAM, 768 MB de Memoria Virtual• 1GB de RAM (1024 MB), 1.5GB de Memoria Virtual (1536MB)• 2GB de RAM (2048 MB), 3GB de Memoria Virtual (3072MB)
Para calcular los valores de la MV que debemos asignar hay que hacer el siguiente calculo:
PAGINACIÓNPágina: Zona contigua de memoria de determinado tamaño. (Por motivos de eficiencia se suele trabajar siempre con tamaños potencia de 2. Ej:4 KB.)
Típicamente la MMU usa dos tablas de páginas (TP):TP del usuario: Por ejemplo, direcciones lógicas que empiezan
por 0TP del sistema: Por ejemplo, direcciones lógicas que empiezan
por 1. Estas sólo se podrán usar en modo sistema.
La tabla de páginas (TP) relaciona cada página con el marco que la contiene. El hardware de traducción (MMU) usa la tabla de páginas para traducir direcciones
lógicas a físicas
Los marcos contendrán páginas de los procesos en ejecución
La memoria principal se considera dividida en marcos de página(tamaño de marco = tamaño de página).
El mapa de memoria del proceso se considera dividido en páginas.
Cada entrada de la tabla de páginas contendrá, además del número de marco asociado con la página:
Información de protección: tipo de acceso permitido RWX
Bit de página válida/inválida: para indicar si dicha entrada contiene una traducción asociada, es decir, si se corresponde realmente con un marco
Bit de página accedida (Ref): activado cuando se accede
Bit de página modificada (Mod): activado cuando se escribe
Bit de desactivación de caché: se usa cuando la entrada corresponde con direcciones de E/S
Potencia de 2 y múltiplo del tamaño del bloque de disco
Mejor pequeño por:
Menor fragmentación
Se ajusta mejor al conjunto de trabajo
Mejor grande por:
Tablas más pequeñasMejor rendimiento de dispositivos de
E/S
Compromiso (entre 2K y 16K)
Tamaño de páginaLa elección de tamaño de página está condicionada por diversos factores, entre los que hay
que conseguir equilibrio:
PAGINACION
El término memoria virtual se asocia normalmente con sistemas que emplean paginación, aunque también se puede usar memoria virtual basada en la segmentación. El uso de la paginación en la memoria virtual fue presentado por primera vez en el computador Atlas.
Cada proceso tiene su propia tabla de páginas y cuando carga todas sus páginas en la memoria principal, se crea y carga en la memoria principal una tabla de páginas. Cada entrada de la tabla de páginas contiene el número de marco de la página correspondiente en la memoria principal.
Puesto que sólo algunas de las páginas de un proceso pueden estar en la memoria principal, se necesita un bit en cada entrada de la tabla para indicar si la página correspondiente está presente (P) en la memoria principal o no. Si el bit indica que la página está en la memoria, la entrada incluye también el número de marco para esa página.
Otro bit de control necesario en la entrada de la tabla de páginas es el bit de modificación (M), para indicar si el contenido de la página correspondiente se ha alterado desde que la página se cargó en la memoria principal. Si no ha habido cambios, no es necesario escribir la página cuando sea sustituida en el marco que ocupa actualmente.
PAGINACIÓN (ESQUEMA LÓGICO)
Memoriafísica
Código
Espacio de direccionamiento virtual Espacio de direccionamiento real
MMU
A
Páginas
Marcos
BCDEFG A
B
C
D
MMU -> Memory Management Unit
PAGINACIÓN (HW)
Procesador P D
Marco 1Marco 2Marco 3Marco 4Marco 5Marco 6Marco 7Marco 8
P
Memoria
Tabla de páginas
Marco 5
D
RPBTP
RLTP
M D
PROBLEMAS DE LA PAGINACIÓN
Fragmentación interna
Si el número de páginas es grande, la zona de memoria ocupada por la TDP puede
ser excesiva
Ejemplo:• Tamaño de cada entrada de la TDP:
4 bytes• Espacio de direccionamiento: 32 bits• Páginas de 4 Kbytes• Tamaño de la TDP: 4 Mbytes
Solución• Tabla de páginas paginada• Se emplea un directorio de páginas
PROTECCIÓN Y USO COMPARTIDO
Protección basada en bits de acceso de las entradas
de la TDP
Compartir páginas es bastante sencillo• Basta con que dos o más
procesos tengan en una de sus entradas de la TDP la misma referencia a un marco
La paginación es gestionada por completo por el sistema operativo
La paginación elimina la fragmentación externa,
pero no la interna
Con página grande aumentamos la
fragmentación interna pero disminuimos el
tamaño de la TDP
SEGMENTACIÓN Es un esquema de gestión de memoria con varias ventajas:
Permite que los bloques de un proceso (código, datos, pila, DLLs, etc.) puedan estar situados en áreas de memoria no contiguas
Suministra reubicación dinámica Aporta protección y uso compartido
Las direcciones en estos sistemas tienen dos componentes: número de segmento y offset
En el 80x86mov eax, ds:esi
Para localizar el dato se utiliza el selector DS y el desplazamiento SI Los segmentos pueden tener tamaños diferentes
SEGMENTACION Implicaciones de la memoria virtual
La segmentación permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaños, incluso de forma dinámica. Las referencias a la memoria constan de una dirección de la forma (número de segmento, desplazamiento).Esta organización ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado:1. Simplifica la gestión de estructuras de datos crecientes. Si el programador no conoce a priori cuán larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo a menos que se permitan tamaños de segmentos dinámicos. Con memoria virtual segmentada, a la estructura de datos se le puede asignar a su propio segmento y el S.O expandirá o reducirá el segmento cuando se necesite.2. Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar o volver a montar el conjunto de programas por completo.3. Se presta a la compartición entre procesos. Un programador puede situar un programa de utilidades o una tabla de datos en un segmento que puede ser referenciado por otros procesos.4. Se presta a la protección. Puesto que un segmento puede ser construido para albergar un conjunto de procedimientos y datos bien definido, el programador o el administrador del sistema podrá asignar los permisos de acceso de la forma adecuada.
SEGMENTACIÓN (ESQUEMA LÓGICO)
MemoriafísicaCódigo
Espacio de direccionamiento virtual Espacio de direccionamiento real
Dátos
Datoscompartidos
PilaCódigo
Dátos
Datoscompartidos
Pila
MMU
Gestión de memoria
18
SEGMENTACIÓN (HW)
Procesador S D
Base 1Base 2Base 3Base 4Base 5Base 6Base 7Base 8
S
Memoria
Límite 1Límite 2Límite 3Límite 4Límite 5Límite 6Límite 7Límite 8
<
Tabla de segmentos
+¡¡¡ Error !!!
Base 5
D
RPBTS
RLTS
VENTAJAS E INCONVENIENTES
Ventajas:
• Elimina de fragmentación interna
• Permite el crecimiento dinámico de los segmentos
• Aporta protección y uso compartido
• Permite un enlace y carga dinámicos
Inconvenientes:
• Necesita compactación de memoria
• En sistemas antiguos se fijaba un tamaño máximo fijo para cada segmento
• Necesita hardware adicional
• Los bloques de memoria no son múltiplos enteros de los bloques que se traen desde el disco
ADMINISTRACIÓN DE ARCHIVOS
ADMINISTRACIÓN DE ARCHIVOS
ADMINISTRACIÓN DE ARCHIVOS
SISTEMA DE ARCHIVOS
Los sistemas de archivos o ficheros (filesystem en inglés), estructuran la información guardada en una unidad de almacenamiento (normalmente un disco duro de una computadora), que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos manejan su propio sistema de archivos.
Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores.El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados.
Los sistemas de archivos tradicionales proveen métodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de métodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en Unix) o renombrar enlaces padres (".." en Unix).
Es una unidad de organización que proporciona el SO. Por lo tanto son datos con un formato que el propio SO utiliza para localizar archivos.
DIRECTORIO
Objeto que relaciona de forma unívoca un nombre de archivo (dado por el usuario) con su descriptor interno
Organizan y proporcionan información sobre la estructuración de los sistemas de archivos
Una colección de listados que contienen información acerca de los archivos
CARACTERÍSTICAS PARA EL USUARIO
• Se acceden a través de llamadas al sistema operativo o de bibliotecas de utilidades
• Abstraen los dispositivos de almacenamiento físico.
• No están ligados al ciclo de vida de una aplicación particular.
• Nombres lógicos y estructurados.
• Conjunto de información estructurada de forma lógica según criterios de aplicación.
• Almacenamiento permanente de información. No desaparecen aunque se apague el computador.
CARACTERÍSTICAS PARA EL SSOO
El sistema de archivos es un servicio para los usuarios.
El acceso a los dispositivos es: •– Incómodo
Detalles físicos de los dispositivos
Dependiente de las direcciones físicas•No seguro
Si el usuario accede a nivel físico no tiene restricciones
Objetivos: •Proporcionar mecanismos de nombrado y localización de datos no volátiles.
•Ofrecer primitivas de acceso cómodas e independientes de
•Los detalles de los dispositivos físicos•Mecanismos de protección
ESTRUCTURA DE LOS SISTEMAS DE ARCHIVOS
SERVIDOR DE ARCHIVOS
Para proporcionar un acceso eficiente y sencillo a los dispositivos de
almacenamiento, todos los sistemas operativos tienen un servidor de
archivos que permite almacenar, buscar y leer datos fácilmente.
Dicho servidor de archivos tiene dos tipos de problemas de diseño muy
distintos entre sí:
Definir la visión de usuario del sistema de entrada/salida,
incluyendo servicios, archivos, directorios, sistemas de
archivos, entre otros.
Definir los algoritmos y estructuras de datos a utilizar
para hacer corresponder la visión del usuario con el
sistema físico de almacenamiento secundario.
ATRIBUTOS DEL ARCHIVO
Nombre: la única información en formato legible por una persona.
Identificación única del archivo y del usuario: descriptor interno del
archivo, dueño y grupo del archivo
Tipo de archivo: necesario en sistemas
que proporciona distintos formatos de
archivos.
Tamaño del archivo: número de bytes en el
archivo, máximo tamaño posible, entre
otros.
Protección: control de accesos y de las
operaciones sobre archivos.
Información temporal: de creación, de acceso,
de modificación, etc.
Información de control: archivo oculto, de sistema, normal o
directorio, etc.
Atributos extendidos:• Opciones especiales de escritura
(append only)• Resource fork: Información para la
aplicación con la que se crea o se manipula.
PERMISOS DE ACCESO A ARCHIVOS
De esta manera, se puede restringir o permitir el acceso de un determinado usuario a un archivo para su visualización de contenidos, modificación y/o ejecución (en caso de un archivo ejecutable
La mayoría de los sistema de archivos modernos permiten asignar permisos (o derechos de acceso) a los archivos para determinados usuarios y grupos de usuarios.
Top Related