3. 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
4. A. Espacios lógicos independientes
A 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.
5. 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 desperdiciada
Restos (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)
6. 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)
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).
7. 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
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:
8. Pá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 0
TP 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.
9. 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ñas
Mejor rendimiento
de dispositivos de
E/S
Compromiso (entre
2K y 16K)
Tamaño de página
La elección de tamaño de página está condicionada por diversos factores, entre los que hay
que conseguir equilibrio:
10. 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.
12. Procesador P D
Marco 1
Marco 2
Marco 3
Marco 4
Marco 5
Marco 6
Marco 7
Marco 8
P
Memoria
Tabla de páginas
Marco 5
D
RPBTP
RLTP
M D
13. 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
14. 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
15. 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 80x86
mov eax, ds:esi
Para localizar el dato se utiliza el selector DS y el desplazamiento SI
Los segmentos pueden tener tamaños diferentes
16. 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.
18. Gestióndememoria18
Procesador S D
Base 1
Base 2
Base 3
Base 4
Base 5
Base 6
Base 7
Base 8
S
Memoria
Límite 1
Límite 2
Límite 3
Límite 4
Límite 5
Límite 6
Límite 7
Límite 8
<
Tabla de segmentos
+
¡¡¡ Error !!!
Base 5
D
RPBTS
RLTS
19. 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
21. 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).
22. 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.
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
23. • 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.
24. 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
25.
26. 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.
27. 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.
28. 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.