administración de memoria y archivos

28
ADMINISTRACIÓN DE MEMORIA Y ARCHIVOS Unidad III

Transcript of administración de memoria y archivos

Page 1: administración de memoria y archivos

ADMINISTRACIÓN DE MEMORIA Y ARCHIVOSUnidad III

Page 2: administración de memoria y archivos

ADMINISTRACIÓN DE MEMORIA

Page 3: administración de memoria y archivos

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

Page 4: administración de memoria y archivos

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.

Page 5: administración de memoria y archivos

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)

Page 6: administración de memoria y archivos

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).

Page 7: administración de memoria y archivos

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:

Page 8: administración de memoria y archivos

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.

Page 9: administración de memoria y archivos

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:

Page 10: administración de memoria y archivos

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.

Page 11: administración de memoria y archivos

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

Page 12: administración de memoria y archivos

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

Page 13: administración de memoria y archivos

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

Page 14: administración de memoria y archivos

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

Page 15: administración de memoria y archivos

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

Page 16: administración de memoria y archivos

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.

Page 17: administración de memoria y archivos

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

Page 18: administración de memoria y archivos

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

Page 19: administración de memoria y archivos

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

Page 20: administración de memoria y archivos

ADMINISTRACIÓN DE ARCHIVOS

ADMINISTRACIÓN DE ARCHIVOS

ADMINISTRACIÓN DE ARCHIVOS

Page 21: administración de memoria y 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).

Page 22: administración de memoria y archivos

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

Page 23: administración de memoria y 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.

Page 24: administración de memoria y archivos

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

Page 25: administración de memoria y archivos

ESTRUCTURA DE LOS SISTEMAS DE ARCHIVOS

Page 26: administración de memoria y 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.

Page 27: administración de memoria y archivos

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.

Page 28: administración de memoria y archivos

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.