SlideShare una empresa de Scribd logo
1 de 166
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 1
25/03/2022
Administración de memoria y
sistemas de archivos
Unidad 3
Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo
para uso de los cursos de Sistemas Operativos
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 2
25/03/2022
Objetivo general de la Unidad 3
Identificar la administración de memoria y sistemas de
archivos por parte del sistema operativo, mediante el
análisis de ejercicios de segmentación de memoria, para
comprender el funcionamiento de la administración de
recursos del computador.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 3
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 4
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 5
25/03/2022
Memoria principal
La memoria principal (RAM) es un importante recurso que
debe administrarse con cuidado. Aunque actualmente una
computadora doméstica promedio tiene 10,000 veces más
memoria que la IBM 7094, la computadora más grande en
el mundo a principios de la década de 1960.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 6
25/03/2022
Memoria principal
¿Que es lo que todo programador quisiera?
- Memoria privada.
- De tamaño y rapidez infinitas.
- Que también sea no volátil.
- Barata también.
Por desgracia, la tecnología no proporciona tales
memorias en estos momentos.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 7
25/03/2022
Memoria principal
¿Cuál es la segunda opción?
A través de los años se ha elaborado el concepto de jerarquía de
memoria, de acuerdo con el cual, las computadoras tienen:
- Unos cuantos megabytes de memoria caché, muy rápida, costosa y
volátil.
- Unos cuantos gigabytes de memoria principal, de mediana velocidad,
a precio mediano y volátil.
- Unos cuantos terabytes de almacenamiento en disco lento, económico
y no volátil.
- El almacenamiento removible, como los DVDs y las memorias USB.
• El trabajo del sistema operativo es abstraer esta jerarquía en un
modelo útil y después administrarla.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 8
25/03/2022
Jerarquía de memoria
Cuando se desciende la
jerarquía ocurre:
a) Menor costo por bit
b) Mayor capacidad
c) Menor velocidad
d) Disminución de la frecuencia
de acceso a la memoria por
parte del procesador
Principio de
localidad
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 9
25/03/2022
¿Por qué funciona la jerarquía de memoria?
• Principio de localidad
Los programas acceden a una
porción relativamente pequeña del
espacio de direcciones en algún
instante de tiempo.
Espacio de direcciones
0
Probabilidad
De referencia
❖ Localidad temporal
o Si un dato es referenciado, tiende a ser referenciado de nuevo
en un tiempo próximo (ciclos o subrutinas)
❖ Localidad espacial
o Si un dato es referenciado, los datos con direcciones cercanas
tienden a ser referenciados pronto (tablas o matrices)
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 10
25/03/2022
Jerarquía de memoria de una computadora
• Haciendo uso del principio de localidad:
– Presenta al usuario tanta memoria como esté disponible con la
tecnología más económica.
– Provee acceso con la velocidad disponible con la tecnología
más rápida.
Control
Datapath
Secondary
Storage
(Disk)
Processor
Registers
Main
Memory
(DRAM)
Second
Level
Cache
(SRAM)
On-Chip
Cache
1s 10,000,000s
(10s ms)
10s 100s
100B
GB
Tamaño
(bytes):
KB MB
Tertiary
Storage
(Tape)
10,000,000,000s
(10s sec)
TB
Velocidad (ns):
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 11
25/03/2022
Clasificación de memoria
Memoria RAM (Random-Access Memory)
– Todas las memorias mostradas son de acceso aleatorio
– Leer y escribir datos rápidamente en ellas
– Volátil. Almacenamiento temporal
Tipos de
memoria RAM
Dinámica. Está hecha con celdas que
almacenan los datos como cargas
en los condensadores.
Estática. Almacenan los datos utilizando
configuraciones de compuertas
que forman biestables (flip-flops)
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 12
25/03/2022
Memoria RAM dinámica y estática
Acceso aleatorio: el tiempo de acceso es el mismo para
todas las localidades
–DRAM: Memoria de acceso aleatorio dinámica
• Alta densidad, requiere poca energía, económica,
• Lenta, dinámica: Necesita ser “refrescada”
regularmente (1-2% de ciclos)
–SRAM: Memoria de acceso aleatoria estática
• Baja densidad, requiere más energía, cara,
• Rápida, estática: El contenido durará mientras esté alimentada
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 13
25/03/2022
Memoria ROM
Las memorias ROM (Read-Only Memory):
• Contiene un padrón permanente de datos que
no puede alterarse.
• Aplicaciones: microprogramación, subrutinas de
biblioteca para funciones de uso frecuente,
programas del sistema, tablas de funciones.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 14
25/03/2022
Tipos de memoria ROM
• PROM. Es no volátil y sólo se puede escribir en ella una sola
vez. El proceso de escritura se lleva a cabo eléctricamente y
puede realizarlo el suministrador o el cliente con
posterioridad.
• EPROM: Memoria de sólo lectura programable borrable
– Antes de escribir una operación, todas las celdas
de almacenamiento deben ser borradas al estado
inicial exponiendo el chip a radiación ultravioleta.
Mas cara que la PROM, pero tiene la ventaja de
que puede ser alterada múltiples veces.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 15
25/03/2022
Tipos de memoria ROM
EEPROM: Memoria de sólo lectura programable
y borrable eléctricamente.
– Puede ser escrita sin borrar contenido anterior. Sólo el o
los bytes direccionados son actualizados.
– La operación de escritura toma mucho más tiempo que la
de lectura.
– Combina la ventaja de no-volatibilidad con la flexibilidad
de ser actualizable usando controles de bus ordinarios,
direcciones y línea de datos.
– Es más cara que la EPROM y puede almacenar menos
bits por chip.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 16
25/03/2022
Tipos de memoria ROM
• Flash
– Nombrada así por la velocidad a la cual puede ser
reprogramada.
– Es intermedia entre la EPROM y la EEPROM en costo y
funcionalidad.
– Mucho más rápida que la EPROM.
– Puede borrar bloques específicos de memoria.
– No provee borrado a nivel de bytes.
– Tiene la densidad alta de las EPROM.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 17
25/03/2022
Clasificación de memorias
Tipo de
memoria
Categoría Borrado Mecanismo
de escritura
Volati-
bilidad
RAM Lectura-escritura Eléctricamente Eléctricamente Volátil
ROM Sólo lectura No es posible Máscaras No volátil
PROM " " Eléctricamente "
EPROM Lectura-frecuente Luz ultravioleta " "
EEPROM " Eléctricamente " "
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 18
25/03/2022
Memoria principal y registro
• Un programa debe ser cargado (de disco) a memoria
y colocado en un proceso para ser ejecutado
• La memoria principal y los registros son el único tipo
de almacenamiento que el CPU puede accesar
directamente
• El acceso a un registro ocurre en un tick del reloj del
CPU (o en menos)
• Acceso a memoria puede tomar muchos ciclos
• La velocidad de la caché se encuentra entre la
memoria principal y los registros
• Es requerido protección de memoria para asegurar su
correcta operación
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 19
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 20
25/03/2022
Abstracción de memoria
Sin abstracción de memoria.
La abstracción más simple de memoria es ninguna abstracción. Las
primeras computadoras mainframe (antes de 1960), las primeras
minicomputadoras (antes de 1970) y las primeras computadoras
personales (antes de 1980) no tenían abstracción de memoria. Cada
programa veía simplemente la memoria física.
MOV REGISTRO1, 1000
El modelo de programación que se presentaba al programador era
simplemente la memoria física.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 21
25/03/2022
Abstracción de memoria
Sin abstracción de memoria.
Forma simple de organizar la memoria sin abstracción.
El sistema operativo puede
estar en la parte
inferior de la memoria en la
RAM.
Este modelo se utilizó antes en
las mainframes y
minicomputadoras, pero
actualmente casi no se emplea.
Programa
de Usuario
SO en
RAM
0xFFF…
0
(a)
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 22
25/03/2022
El sistema operativo puede
estar en la ROM, en la parte
superior de la memoria.
Este modelo se utiliza en
algunas computadoras de
bolsillo y sistemas embebidos.
Sin abstracción de memoria.
Forma simple de organizar la memoria sin abstracción.
Abstracción de memoria
Programa
de Usuario
SO en
ROM
0xFFF…
0
(b)
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 23
25/03/2022
Abstracción de memoria
Los controladores(drivers) de
dispositivos pueden estar en la
parte superior de la memoria en
una ROM y el resto del sistema
en RAM más abajo.
Este modelo fue utilizado por
las primeras computadoras
personales.
Sin abstracción de memoria.
Forma simple de organizar la memoria sin abstracción.
Programa
de Usuario
SO en RAM
Controladores
de disp en ROM
0xFFF…
0
(c)
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 24
25/03/2022
Abstracción de memoria
Los modelos (a) y (c)
tienen la desventaja
de que un error en el
programa de usuario
puede borrar el
sistema operativo,
posiblemente con
resultados
desastrosos.
Sin abstracción de memoria.
Forma simple de organizar la memoria sin abstracción.
Programa
de Usuario
SO en
RAM
0xFFF…
0
(a)
Programa
de Usuario
SO en RAM
Controladores
de disp en ROM
0xFFF…
0
(c)
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 25
25/03/2022
Abstracción de memoria
Sin abstracción de memoria.
Cuando el sistema se organiza de esta forma, por lo
general se puede ejecutar sólo un proceso a la vez.
- Tan pronto como el usuario teclea un comando, el
sistema operativo copia el programa solicitado del disco
a la memoria y lo ejecuta.
- Cuando termina el proceso, el sistema operativo
muestra un carácter indicador de comando y espera un
nuevo comando.
- Cuando recibe el comando, carga un nuevo programa
en memoria, sobrescribiendo el primero.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 26
25/03/2022
Abstracción de memoria
Sin abstracción de memoria.
No obstante, aun sin abstracción de memoria es posible
ejecutar varios programas al mismo tiempo.
Lo que el sistema operativo debe hacer es guardar todo el
contenido de la memoria en un archivo en disco, para
después traer y ejecutar el siguiente programa.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 27
25/03/2022
Abstracción de memoria
Una abstracción de memoria: Espacio de direcciones.
Hay que resolver dos problemas para permitir que haya
varias aplicaciones en memoria al mismo
tiempo sin que interfieran entre sí:
- Protección.
- Reubicación.
El espacio de direcciones es una solución porque crea un
tipo de memoria abstracta para que los programas vivan ahí.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 28
25/03/2022
Abstracción de memoria
Una abstracción de memoria: Espacio de direcciones.
Un espacio de direcciones es el conjunto de direcciones que puede
utilizar un proceso para direccionar la memoria.
Registros base y límite.
La solución sencilla utiliza una versión muy simple de la reubicación
dinámica.
Lo que hace es asociar el espacio de direcciones de cada proceso
sobre una parte distinta de la memoria física.
Cuando se utilizan estos registros, los programas se cargan en
ubicaciones consecutivas de memoria en donde haya espacio y sin
reubicación durante la carga.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 29
25/03/2022
Abstracción de memoria
Una abstracción de memoria: Espacio de direcciones.
Registros base y límite: Definen el espacio de direcciones lógicas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 30
25/03/2022
Una abstracción de
memoria: Espacio de
direcciones.
Cuando se ejecuta un
proceso, el registro base se
carga con la dirección física
donde empieza el
programa en memoria y el
registro límite se carga con
la longitud del programa.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 31
25/03/2022
Asociación de Instrucciones y Datos a Memoria
• Puede ocurrir en tres etapas diferentes:
– Tiempo de compilación: Si la posición de memoria
se conoce a priori, se puede generar código absoluto;
recompilar si la dir. inicial cambia
• Ej.: MS-DOS programas .COM
– Tiempo de carga: Se genera código relocalizable si
la dir. de memoria no se sabe en tiempo de
compilación; dirs. asignadas en load time
– Tiempo de ejecución: Si un proceso puede ser
movido durante su ejecución de un segmento de
memoria a otro, la asociación se posterga a tiempo de
ejecución. Se necesita soporte de HW
• Usado por la mayoría de los SOs actuales
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 32
25/03/2022
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 33
25/03/2022
Espacio de Direcciones(Address Space)
El espacio de direcciones es el espacio en memoria asignado al proceso. Aquí se
encuentra el código del proceso y los datos que este utiliza.
Desde el punto de vista del proceso, el Address Space es la única memoria existente en el
sistema, no pudiendo acceder a direcciones foráneas.
En el caso de sistemas sin paginación, el espacio de direcciones no puede ser particionado en
páginas, y ser cargado por partes o llevado parcialmente a swap; resultando en que el bloque
de memoria esta realmente presente ya sea en RAM o disco.
Address Space
Código
Datos
Stack
Registros
Cuando se tiene paginación, entonces el
espacio de direcciones es dividido en páginas,
y resultando en que no todo este en RAM,
sino solo una porción. A este concepto de un
espacio que realmente no esta por completo
ni en memoria, ni en disco; se le denomina
Espacio de Direcciones Virtual.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 34
25/03/2022
Espacio de Direcciones Físico vs. Lógico
• Conceptos
– Dirección lógica – generada por el CPU; también
llamada dirección virtual
– Dirección física – dirección vista por la unidad de
memoria
• Direcciones lógicas y físicas son las mismas en
los esquemas de tiempo de compilación y
tiempo de carga; difieren en el esquema de
tiempo de ejecución
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 35
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 36
25/03/2022
Administrador de memoria
La parte del sistema operativo que administra la jerarquía
de memoria se conoce como administrador de
memoria.
• Llevar el registro de cuáles partes de la memoria están
en uso.
• Asignar memoria a los procesos cuando la
necesiten.
• Desasignarla cuando terminen.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 37
25/03/2022
Administración de Memoria Básica
Monoprogramación sin intercambio ni paginación
- Solo 1 programa a la vez en la memoria
- Cuando termina el programa puede ejecutarse el siguiente
Programa
de Usuario
SO en
RAM
0xFFF…
0
Programa
de Usuario
SO en
ROM
0xFFF…
0
Programa
de Usuario
SO en RAM
Controladores
de disp en ROM
0xFFF…
0
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 38
25/03/2022
Multiprogramación con Particiones Fijas
- La RAM se divide en varios espacios de tamaños variables para poder contener
procesos de largos distintos
- Particiones pequeñas pueden ser utilizadas pro procesos interactivos dependientes del
Input del usuario
- Particiones más grandes son utilizadas por procesos mas intensivos en CPU
Partición 4
Partición 3
Partición 2
Partición 1
Sistema
Operativo
800k
700k
400k
200k
100k
0
Partición 4
Partición 3
Partición 2
Partición 1
Sistema
Operativo
800k
700k
400k
200k
100k
0
Administración de Memoria Básica
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 39
25/03/2022
Reubicación
- Cuando se utiliza el esquema de multiprogramación, se debe resolver el problema de
resolver la dirección real de la instrucción que se está ejecutando.
- Cada programa al enlazarse produce direcciones relativas dentro del código. Estas
deben resolverse a direcciones absolutas dentro de la memoria tomando en cuenta la
partición en que se encuentra. Esto se conoce como reubicación.
Partición 4
Partición 3
Partición 2
Partición 1
Sistema
Operativo
800k
700k
400k
200k
100k
0
100
0
Procedimiento que
se encuentra en la
dirección 100
relativa del
programa
100 + 409.600 = 409.700
400k = byte 409.600
Administración de Memoria Básica
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 40
25/03/2022
Protección
- Al tener multiprogramación se genera el problema de poder asegurar que los
programas de usuario no puedan tener acceso a los datos o código de otros
procesos. Este es el problema de protección.
Partición 4
Partición 3
Partición 2
Partición 1
Sistema
Operativo
800k
700k
400k
200k
100k
0
Registro Base
Registro Límite Al hacer un acceso a memoria, el SO
toma el valor del registro base y lo suma
a la dirección solicitada.
paddr = vaddr + regBase
Si el resultado no excede el valor del
registro límite, entonces se permite el
acceso.
paddr = dirección física (real)
vaddr = dirección virtual
Administración de Memoria Básica
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 41
25/03/2022
Intercambio
Cuando los procesos que se están activos en un sistema sobrepasan en tamaño a la
memoria disponible, los excedentes deben mantenerse en disco y traerse a la memoria en
forma dinámica para que se ejecuten.
El intercambio consiste en mover procesos completos desde la memoria a disco y
viceversa. El proceso se trae a memoria principal, se ejecuta por un periodo de tiempo y
luego se guarda en disco hasta que sea su turno nuevamente.
S.O.
A
S.O.
A
B
S.O.
A
B
C
S.O.
B
C
S.O.
B
C
D
S.O.
C
D
A
Memoria disponible
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 42
25/03/2022
Problemas:
• Los procesos en este esquema son de tamaño fijo
• Deja espacios entre procesos que son pueden ser utilizados. Este fenómeno se conoce
como fragmentación externa, dado que se producen fragmentos de memoria inútiles
afuera de los procesos.
• Dado que los programas se mueven de posición en el tiempo, el SO debe poder manejar
un esquema de reubicación y protección más complejo que los modelos anteriores.
S.O.
S.O.
A
S.O.
S.O.
A
B
S.O.
S.O.
A
B
C
S.O.
S.O.
B
C
S.O.
S.O.
B
C
D
S.O.
S.O.
C
D
A
Intercambio
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 43
25/03/2022
S.O.
B
C
D
Compactación
- Consiste en mover los procesos hacia la parte baja de la memoria,
agrupando los espacios libres de memoria. Así se logra poder colocar más
procesos.
- El problema es que el proceso de compactación toma MUCHO tiempo.
S.O.
B
C
D
Intercambio
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 44
25/03/2022
S.O.
A
B
Asignación de memoria con procesos de tamaño variable
- Al tener procesos cuyo segmento de datos puede crecer el problema de la asignación
de memoria se complejiza, pues el SO debe cuidar de dejar espacio para la expansión,
de lo contrario se gastará mucho tiempo liberando espacio cada vez que se quiera más
memoria.
- El heap es el espacio de datos de un proceso que puede ir creciendo a medida que se
ejecuta. El SO debe asignar algún espacio para que este pueda crecer, el cual no es
ocupado de inmediato. Este efecto de desperdiciar memoria al interior del proceso se
conoce como fragmentación interna.
Programa de B
Heap de B
Stack de B
Espacio libre
propio de B
Intercambio
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 45
25/03/2022
Ubicación de un proceso dentro de la memoria
- Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno
nuevo, se debe escoger en que lugar disponible se le colocará.
Método del primer ajuste
El proceso se coloca en el primer lugar disponible de la memoria partiendo de la parte
baja de la misma.
S.O.
Memoria RAM
0 100 300 600 800
A B D
C
S.O.
Memoria RAM
0 100 300 600 800
A B
C
Intercambio
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 46
25/03/2022
Ubicación de un proceso dentro de la memoria
- Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno
nuevo, se debe escoger en que lugar disponible se le colocará.
Siguiente del primer ajuste
El proceso se coloca en la siguiente posición disponible donde el proceso quepa, desde
la última ubicación que realizó. Si llega al final, comienza de nuevo en el cero.
S.O.
Memoria RAM
0 100 300 600 800
A B D
C E
S.O.
Memoria RAM
0 100 300 600 800
A B D
C
E
Intercambio
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 47
25/03/2022
Ubicación de un proceso dentro de la memoria
- Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno
nuevo, se debe escoger en que lugar disponible se le colocará.
Mejor Ajuste
El proceso se coloca en el espacio libre que más se ajuste al tamaño.
F
S.O.
Memoria RAM
0 100 300 600 800
A B D
C E
S.O.
Memoria RAM
0 100 300 600 800
A B D
C E F
Intercambio
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 48
25/03/2022
Ubicación de un proceso dentro de la memoria
- Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno
nuevo, se debe escoger en que lugar disponible se le colocará.
Peor Ajuste
El proceso se coloca en el espacio libre más grande disponible.
F
S.O.
Memoria RAM
0 100 300 600 800
A B D
C E
S.O.
Memoria RAM
0 100 300 600 800
A B D
C E F
Intercambio
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 49
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 50
25/03/2022
Memoria Virtual
Introducción
- Los programas realizan accesos a la memoria indicando direcciones virtuales (lugar
donde creen esta el dato que requieren) a las cuales desean acceder. Estas direcciones
conforman el espacio de direcciones virtuales del proceso, que es el conjunto de
memoria que conceptualmente esta asociado al proceso.
- Las direcciones virtuales no pueden ser enviadas directamente a la memoria pues no
corresponden a la verdadera posición. Estas son convertidas en direcciones físicas
(posición real dentro del chip de RAM) por la MMU (Memory Management Unit - Unidad
de Manejo de Memoria).
CPU
MMU RAM Discos
CPU envía direcciones
virtuales a la MMU
MMU envía direcciones
físicas a la memoria
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 51
25/03/2022
Paginación
- Consiste en dividir el espacio de direcciones virtual en unidades de tamaño invariante
llamadas páginas.
- Los marcos de página son la correspondencia de una página en la memoria física, es
decir, el espacio en la RAM donde realmente esta la página, teniendo ambos el mismo
tamaño. De esta forma, todas las unidades de transferencia de datos desde y hacia la
RAM se hacen en el tamaño de una página.
Proceso A Proceso A
Proceso A RAM
Página
Marco de
Página
Memoria Virtual
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 52
25/03/2022
Tabla de Páginas
- La relación entre las paginas (espacio de direcciones virtual) y los marcos de páginas
(memoria física) está dada por la Tabla de páginas. Esta se encuentra almacenada en la
memoria RAM
X
2
3
X
7
X
X
0
5
X
X
6
4
X
1
X
(pagina 15) 60k – 64k
56k – 60k
52k – 56k
52k – 48k
48k – 44k
44k – 40k
40k – 36k
36k – 32k
32k – 28k
28k – 24k
24k – 20k
20k – 16k
16k – 12k
12k – 8k
8k – 4k
(página 0) 4k – 0k
Espacio
De
Direcciones
Virtual
2
3
7
0
5
6
4
1
32k – 28k
28k – 24k
24k – 20k
20k – 16k
16k – 12k
12k – 8k
8k – 4k
4k – 0k
Memoria
RAM
Tabla de Páginas
Marco de
Página
Página
Memoria Virtual
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 53
25/03/2022
Conversión de direcciones
- Al momento que un proceso realiza un acceso a memoria, se debe convertir la dirección virtual
entrante en la dirección física, consultando la tabla de páginas. Para convertir se debe:
- Ubicar la página a la que pertenece la dirección virtual: vaddr / Tamaño Página (DIV ENTERA)
- Ubicar el marco de página al que corresponde
- Calcular el desplazamiento: vaddr – (N°Pag * Tamaño Página)
- Sumar el desplazamiento a la dirección base del marco de página
Ejemplo: Dirección virtual (vaddr): 36777
Tamaño de página: 4096b
Página = 36777 / 4096 (DIV ENTERA) = 8
Marco de la página 8 = 0
Desplazamiento = 36777 – (8 * 4096) = 4009
Dirección Física (paddr) = 0 * 4096 + 4009 = 4009
36864
(Pág. 8)
32768
0
4096
0
desplazamiento
4009
paddr
0
36777
vaddr
Memoria Virtual
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 54
25/03/2022
Fallos de página
- En la tabla de páginas existe un bit de validez por cada página, que indica si esta está
presente en la memoria principal o no.
- Un fallo de página ocurre cuando se solicita una página del espacio de direcciones
virtual y esta no tiene marco de página asignado, es decir, no tiene correspondencia en
la memoria física.
- Al ocurrir un fallo de página, la MMU emite una interrupción “Page Fault” provocando
trap al sistema para poder manejar la situación
- El sistema operativo toma el control, cargando la página desde el disco duro a la
memoria reanudando el proceso luego de eso. Si no hay memoria disponible, se debe
llevar uno o más marcos de páginas al disco para liberar espacio.
0
X
X
2
3
X
1
X
32k – 28k
28k – 24k
24k – 20k
20k – 16k
16k – 12k
12k – 8k
8k – 4k
4k – 0k
Espacio
De
Direcciones
Virtual
2
3
0
1
16k – 12k
12k – 8k
8k – 4k
4k – 0k
Memoria
RAM
Memoria Virtual
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 55
25/03/2022
0
X
X
2
3
X
1
X
32k – 28k
28k – 24k
24k – 20k
20k – 16k
16k – 12k
12k – 8k
8k – 4k
4k – 0k
Espacio
De
Direcciones
Virtual
2
3
0
1
16k – 12k
12k – 8k
8k – 4k
4k – 0k
Memoria
RAM
TRAP AL
SISTEMA
OPERATIVO
Acceso
dirección 27688
Hay marcos
Libres?
0
X
2
3
X
1
X
2
3
0
1
X
Se carga la página
a memoria
Se lleva una o más
páginas a disco
Proceso
continua
si
no
Memoria Virtual
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 56
25/03/2022
Estructura de la tabla de Páginas
Tabla de Páginas
bit cache
bit solicitada
Bit modificada
Bits protección
Bit validez
Número
De
Marco
De
Página
Indica al sistema operativo si realiza cache de la página.
Útil cuando la página contiene estados de dispositivos.
Indica si la página ha sido usada. Útil para ayudar al SO a
elegir cuales páginas le conviene mandar a disco.
Indica si la página ha sido modificada desde que entró a la memoria.
Ayuda al SO a determinar si debe guardarla al sacarla de la RAM.
Indica los permisos que se tienen sobre la página. 3 bits:
R = permiso de lectura
W = permiso de escritura
X = permiso de ejecución
Indica si la página tiene un márco de página valido (esta en RAM)
Contiene el numero del marco de página donde está esta página.
El valor no tiene importancia si el bit de validez esta en cero.
Memoria Virtual
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 57
25/03/2022
Tabla de Páginas dentro de la MMU
1 1 0 0 1 1 0 0 0 1 0 0 1 0 0
0 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0
Pág Virtual Marco Validez
15 001 1
14 0
13 101 1
12 111 1
11 0
10 100 1
9 011 1
8 0
7 0
6 110 1
5 0
4 010 1
3 0
2 0
1 000 1
0 0
N° de Página Desplazamiento
Dirección
Virtual
(vaddr)
Dirección
Física
(paddr)
0110x0 = 6
Espacio de
direcciones
virtual de 16bits
(64kb)
Memoria de 32kb
(15bits necesarios)
Memoria Virtual
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 58
25/03/2022
Tablas de Páginas Multinivel
TP1 TP2 Desplazamiento
32bits
10bits 10bits 12bits
Páginas de 4kb
Tabla de página
de primer nivel
(…)
1023
0
Tabla de
página de
segundo nivel
A páginas
(vaddr)
Memoria Virtual
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 59
25/03/2022
TLB: Translation Lookaside buffer
- El Búfer de consulta para traducción (TLB), contiene la misma estructura de la tabla
de páginas. Contiene muy pocas entradas (8 – 64) con la información de las últimas
páginas solicitadas.
- Acelera las consultas considerablemente pues busca simultáneamente en todas las
entradas de la TLB la página solicitada. Si se encuentra, se reemplaza el numero de
marco directamente. Si no esta, se produce una consulta ordinaria a la tabla de página,
agregando la información a la TLB.
CPU
MMU
TLB
Consulta a la
Tabla de páginas
vaddr
FalloTLB
Encontrado en TLB
paddr
Memoria Virtual
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 60
25/03/2022
Tablas de páginas Invertidas
- Solución en los sistemas de 64bits donde el espacio de direcciones virtual es 264,
Ej: con páginas de 4kb (212) se requieren de 252 posiciones
si cada entrada de la tabla de páginas requiere 8 bytes:
23 * 252 = 255 = 3,6 * 1016 bytes
-Consiste en tener una entrada por cada marco de memoria real en lugar de una por cada
página del espacio de direcciones virtual.
Tabla de páginas tradicional
con las 264 entradas
256Mb en páginas de
4kb = 216 posiciones
216-1
0
Tabla de hash
indexada por hash
sobre pag viartual
Página Marco
Memoria Virtual
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 61
25/03/2022
Tablas de páginas Invertidas: Consideraciones
-Al estar ahora indexada por número de marco, no es posible buscar usando los bits
superiores de la vaddr.
- Al buscar el marco al que corresponde la página se debe ir a mirar la memoria donde
esta almacenada la Tabla de Páginas.
-Es necesario el uso de la TLB para poder agilizar el proceso.
Memoria Virtual
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 62
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 63
25/03/2022
Algoritmos de Reemplazo de Páginas
Generalidades
- Al ocurrir un fallo de página, el sistema operativo debe cargar a memoria la página que
contiene la dirección de memoria solicitada. Si no existe lugar disponible en la memoria,
entonces se deberá desalojar algunas para hacer espacio.
- Desalojar páginas poco usadas es mas conveniente que desalojar otras más populares,
pues es muy probable que se deban traer de vuelta las más utilizadas.
- Se debe tener el cuidado sobre que hacer con las páginas de acuerdo a si han sido
modificadas o no. Una página no modificada se puede acceder desde su ubicación inicial
en el disco. Una página modificada debe ser escrita a disco para no perderla.
RAM ?
Swap
Eliminacion
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 64
25/03/2022
Casos de desalojo de páginas
- Páginas No Modificadas, Solo Lectura: se eliminan pues pueden ser re-leídas desde su
posición original en el disco. (Ej: segmento de codigo)
- Páginas Modificadas, que no han salido a swap: se escriben al swap para no perderlas
(Ej: stack)
- Páginas No Modificadas, que han salido a swap: se verifica si la ubicación en swap es
válida, si lo es, no elimina.
- Páginas Modificadas: se escriben a swap.
Algoritmos de Reemplazo de Páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 65
25/03/2022
Algoritmo Óptimo
- Caso utópico en el cual se selecciona para desalojo la página que se referenciará más
lejos en el tiempo, postergando así el fallo de página hasta el máximo.
- Imposible de Implementar pues supone el conocimiento de que páginas serán solicitadas
por el proceso, a priori.
Página 1
Tiempos de referencia:
123, 1002, 2099, 4009, 10000
Página 2
Tiempos de referencia:
11, 20000, 22444, 22443
Página 3
Tiempos de referencia:
1000, 1001, 1002, 1003
Página 4
Tiempos de referencia:
500, 11000, 11001, 23000
Página 5
Tiempos de referencia:
123, 1002, 2099, 4009, 10000
Página Entrante
A desalojar
Algoritmos de Reemplazo de Páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 66
25/03/2022
NRU: Not Recently Used – No usadas recientemente
- En este método cada página contiene 2 bits que permite decidir cual página desalojar:
- R (bit solicitado): Se enciende cuando se realiza un acceso a esta página
- M (bit modificado): Se enciende cuando se escribe en la página.
- Se establecen así 4 clases de acuerdo al valor de los bits:
- Clase 0: No solicitado, No Modificado
- Clase 1: No solicitado, Modificado
- Clase 2: Solicitado, No Modificado
- Clase 3: Solicitado, Modificado
- El algoritmo escoje una página partiendo desde las con clase menor.
- El sistema operativo en cada interrupción de reloj cambia el estado del bit R, para
poder identificar cuales páginas son accedidas constantemente durante el quantum.
Algoritmos de Reemplazo de Páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 67
25/03/2022
NRU: Not Recently Used – No usadas recientemente
Pag Bit R Bit M
0 0 0
1 0 0
2 0 0
3 0 0
Estado de la tabla de páginas en t0
Quantum
Pag Bit R Bit M
0 1 1
1 1 0
2 0 0
3 1 1
Estado de la tabla de páginas en t1
Durante el siguiente cuantum se hacen
accesos a las páginas 0 y 1, luego se
pide la página 4 que no esta presente y
se provoca un Page Fault.
El SO apaga todos los bits R para
poder determinar cuales de las
páginas han sido ocupadas
Pag Bit R Bit M
0 0 1
1 0 0
2 0 0
3 0 1
Estado de la tabla de páginas en t2
Quantum
Pag Bit R Bit M
0 1 1
1 1 0
2 0 0
3 0 1
Estado de la tabla de páginas en t3
Durante el quantum se acceden las
páginas 0, 1 y 3; y se escribe en las
0 y 3
Será desalojada
Algoritmos de Reemplazo de Páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 68
25/03/2022
FIFO: First In First Out
- Simplemente se escoge para desalojo la página que entró primero a la memoria.
- Al ser un método mecánico sin mayor análisis, puede desalojar páginas muy utilizadas.
Pág 1 Pág 2 Pág 3 Pág 4 Pág 5
Pág 1 Pág 2 Pág 3 Pág 4
Pág 1 Pág 2 Pág 3
Pág 1 Pág 2
Pág 1
Pág 6 Pág 2 Pág 3 Pág 4 Pág 5
Pág 6 Pág 7 Pág 3 Pág 4 Pág 5
Pág 6 Pág 7 Pág 8 Pág 4 Pág 5
t0
t1
t2
t3
t4
t5
t6
t7
Memoria de 5 marcos
Algoritmos de Reemplazo de Páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 69
25/03/2022
Second Chance – Segunda Oportunidad
- Modificación de FIFO que permite evitar el problema de desalojar una página que sea
muy utilizada.
- Las páginas se mantienen ordenadas en el orden en que llegaron a la memoria, en
una lista enlazada por ejemplo.
- Cada vez que se elige una página como candidato para desalojar, se mira su bit de
uso (R).
- Si esta en 1, se apaga, se coloca la página al final y se sigue con la siguiente
(dándole así una segunda oportunidad).
- Si esta en 0, se escoge esa página para el desalojo.
- A diferencia de NRU, el SO solo resetea el bit a cero cuando esta buscando una
página para desalojar, y no en cada interrupción de reloj.
Algoritmos de Reemplazo de Páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 70
25/03/2022
Second Chance – Segunda Oportunidad
Pág 1 1 Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0
En FIFO la
Página 1 saldría
0
Orden de entrada a la memoria
Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 0
0
Pág 2 0
Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 0
Se mira la primera página (la más vieja). Tiene su bit
de uso en 1, por lo tanto se le da otra oportunidad. Se
setea en cero R, y se pasa a la cola
Idem al caso anterior
Al encontrarse una página con el bit en cero, se
escoge para desalojo.
En el caso de que todas las páginas hayan tenido el
bit de uso en cero, este algoritmo degrada en FIFO.
Algoritmos de Reemplazo de Páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 71
25/03/2022
Tipo Reloj (Clock)
- Muy similar a Second Chance, también utiliza el bit de uso para entregar una segunda
oportunidad a las páginas antes de desalojarlas.
-Las páginas son colocadas en una lista enlazada circular que el sistema operativo va
revisando secuencialmente como la manecilla de un reloj.
- Si la página tiene bit R = 1, lo apaga y sigue con la página siguiente.
- Si la página tiene bit R = 0, la desaloja.
Pág 1 1
Pág 2 0
Pág 3 0
Pág 4 0
Bit R = 1, se apaga y
se sigue con el
siguiente
Pág 1 0
Pág 2 0
Pág 3 0
Pág 4 0
Bit R = 0
Se desaloja la
página
Algoritmos de Reemplazo de Páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 72
25/03/2022
2 0 4 3 1
2
0
1
4
3
100
150
120
40
60
LRU: Least Recentely Used – Menos Recientemente Usada
- Algoritmo que busca desalojar la página que lleva mas tiempo sin usarse, tomando como base que las
más usadas, seguirán siendo solicitadas en el futuro.
- Se puede implementar a través de:
- Lista enlazada: el sistema mantiene una lista de las páginas en memoria. Cada vez que se
referencia una página, se mueve el nodo al final de la lista. Al momento de ocurrir un fallo de
página se escoge la primera página de la lista.
- Contador: El sistema mantiene un contador por página que se aumenta en cada interrupción de
reloj. Al ocurrir un fallo de página se escoge la página con el contador con el menor valor.
2 0 1 4 3
2 0 4 3 1
Acceso página 1
Acceso página 5 → fallo de página
2
0
1
4
3
100
0
120
40
60
Acceso
página 1
En t=150
2
0
1
4
3
100
150
120
40
60
Acceso
página 5
En t=160
Página a desalojar
Página a desalojar
Algoritmos de Reemplazo de Páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 73
25/03/2022
Working Set – Set de trabajo
- Empíricamente los procesos al ejecutarse no hacen referencia a todas sus páginas constantemente. Sucede que en
cualquier fase de la ejecución el proceso exhibe una localidad de referencia, es decir, accede a un subconjunto
pequeño de la totalidad de sus páginas
- Formalmente se denomina Conjunto de Trabajo al conjunto de páginas que está utilizando en un momento dado.
Este no es fijo, y cambia periódicamente a medida que el proceso se ejecuta.
- Si no existe memoria disponible en el sistema para contener el conjunto de trabajo de un proceso, este generará
muchos fallos de páginas en un número reducido de instrucciones. A este fenómeno se le denomina Thrasing o
Hiperpaginación.
- El algoritmo Working Set se basa en lograr mantener en memoria las páginas que se consideran dentro del conjunto
de trabajo para así reducir al máximo la cantidad de Page Faults.
- Para establecer el conjunto se puede usar uno de los siguientes métodos:
- Páginas referenciadas en los k últimos accesos a memoria, aquellas que no están en el conjunto pueden ser
desalojadas
- k últimas páginas referenciadas, idem caso anterior
- Usar el tiempo virtual de ejecución (tiempo real que ha ocupado el proceso en CPU) para determinar la
edad de la página. Aquellas que sobrepasan una edad máxima T se consideran fuera del conjunto y pueden ser
desalojadas. (RECOMENDADO)
- Se asume se tiene hardware que enciende los bits R y M adecuadamente.
- El bit R se apara en cada interrupción de reloj, actualizando el tiempo de acceso a aquellas páginas cuyo bit R es 1.
Algoritmos de Reemplazo de Páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 74
25/03/2022
Working Set – Set de trabajo
- Usando un set de trabajo con T = 50
Accesos a
páginas 1,2,4
durante quantum
2
0
1
4
3
50
50
60
15
60
Pág Ult Uso R
0
0
0
0
0
tVirtual = 80
WS = {0, 1, 2, 4}
2
0
1
4
3
50
110
110
15
110
Pág Ult Uso R
0
0
0
0
0
WS = {1, 2, 4}
tVirtual = 110
2
0
1
4
3
50
50
60
15
60
Pág Ult Uso R
0
1
1
0
1
tVirtual = 110
WS = {0, 1, 2, 4} Páginas que
pueden ser
desalojadas
Algoritmos de Reemplazo de Páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 75
25/03/2022
Modelamiento del reemplazo de páginas
Anomalía de Belady
- Caso donde agregar marcos a la memoria de un proceso aumenta la cantidad de fallos de página, en
lugar de disminuirlos.
- Ej: sean 2 sistemas con reemplazo de páginas por FIFO con 3 y 4 marcos respectivamente, con los
accesos a páginas: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4.
Secuencia de acceso 0 1 2 3 0 1 4 0 1 2 3 4
Mas reciente 0 1 2 3 0 1 4 4 4 2 3 3
0 1 2 3 0 1 1 1 4 2 2
Mas antigua 0 1 2 3 0 0 0 1 4 4
P P P P P P P P P 9 Page Faults
Secuencia de acceso 0 1 2 3 0 1 4 0 1 2 3 4
Mas reciente 0 1 2 3 3 3 4 0 1 2 3 4
0 1 2 2 2 3 4 0 1 1 3
0 1 1 1 2 3 4 0 1 2
Mas antigua 0 0 0 1 2 3 4 0 1
P P P P P P P P P P 10 Page Faults
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 76
25/03/2022
Algoritmos de pila
- Se denomina cadena de referencias a la secuencia de páginas que solicita un proceso durante su
ejecución.
- Se llaman algoritmos de pila aquellos cuya cadena de referencia de páginas que están en memoria
para un numero m de marcos de memoria, es subconjunto de m + 1, es decir, en usando m + 1 marcos
tenemos las misma páginas que con m más una adicional, considerando un arreglo M con tantas
posiciones como páginas tiene el proceso.
Cadena de ref. 0 2 1 3 5 4 3 1
Paginas 0 2 1 3 5 4 3 1
En 0 2 1 3 5 4 3
Memoria 0 2 1 3 5 4
Páginas 0 2 1 1 5
En 0 2 2 2
Swap 0 0 0
P P P P P P P
Cadena de ref. 0 2 1 3 5 4 3 1
Paginas 0 2 1 3 5 4 3 1
En 0 2 1 3 5 4 3
Memoria 0 2 1 3 5 4
0 2 1 1 5
Páginas En 0 2 2 2
Swap 0 0 0
P P P P P P
Un marco
más
M
Modelamiento del reemplazo de páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 77
25/03/2022
Cadena de distancias
- En el caso de los algoritmos de pila, la referencia a una página puede abstraerse como la
distancia desde la parte superior de la pila donde se colocó la página.
- La cadena de distancias lleva el conteo de la cantidad de veces que se ha accedido a
páginas en cada una de las posibles distancias, considerando que
Cadena de ref. 0 2 1 3 5 4 3 1
Paginas 0 2 1 3 5 4 3 1
En 0 2 1 3 5 4 3
Memoria 0 2 1 3 5 4
Páginas 0 2 1 1 5
En 0 2 2 2
Swap 0 0 0
Página 3 no esta
presente, por lo tanto
su distancia es Infinita
Ahora la página 3
estaba en la 3
posición antes de su
referencia.
Distancia = 3
Página 1 estaba en la 4
posicion cuando fue
referenciada.
Distancia = 4
C1 = 0
Cadena de Distancias
C2 = 0
C3 = 1
C4 = 1
C5 = 0
C6 = 0
C∞ = 6
Modelamiento del reemplazo de páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 78
25/03/2022
Predicción de la tasa de fallos de página
- La cadena de distancias permite apreciar claramente la cantidad de fallos de página que habrán con
una determinada cadena de referencias usando una cantidad de marcos de memoria. Utilizando la
siguiente fórmula se puede obtener el vector F, que contiene la cantidad de fallos de página con las
condiciones dadas:
Ej:
Cadena de Distancias
C1 = 4
C2 = 4
C3 = 2
C4 = 3
C5 = 0
C6 = 2
C∞ = 6

+
=
+
=  C
C
F
n
m
k
k
m
1
m = marcos de página
n = número de páginas del proceso
F1 = 17
F2 = 13
F3 = 11
F4 = 8
F5 = 8
F6 = 6
F∞ = 6
C2 + C3 + C4 + C5 + C6 + C∞
C3 + C4 + C5 + C6 + C∞
C4 + C5 + C6 + C∞
C5 + C6 + C∞
C6 + C∞
C∞
Fallos de
página con 2
marcos
En este caso aumentar un
marco no aporta a la
disminución de fallos de página
Modelamiento del reemplazo de páginas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 79
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 80
25/03/2022
Aspectos de diseño de sistemas con paginación
Asignación local v/s global
- Cuando existen múltiples procesos ejecutándose, entonces nace el problema sobre si
aplicar el algoritmo de reemplazo de páginas localmente sobre el conjunto de marcos
asignados al proceso que genera el fallo de páginas, o globalmente sobre el total de los
marcos de memoria.
- El método local no permite que el conjunto de trabajo crezca, pudiendo fácilmente producir
thrashing.
- El método global permite ajustar el tamaño del working set. Introduce el uso de un nuevo
algoritmo de reemplazo de páginas: PPF: Page Fault Frequency.
- El algoritmo de Frecuencia de Fallos de Página analiza la cantidad de fallos de página por
proceso, entregando más marcos a aquellos con altas tasas de Page Fault, y quitando a
aquellos con bajo número de fallos.
Marcos de Página asignados
Fallos
de
página
Nivel Máximo
Nivel Mínimo
A2
A0
A1
B1
B0
50
50
40
15
60
Pág Ult Uso
B4
B2
B3
C1
C0
30
70
60
25
25
Seleccionada usando política local
Ej: A requiere un marco adicional
Seleccionada usando política global
Grafico análisis PPF
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 81
25/03/2022
Tamaño de la página
- Es elegido por el sistema operativo, aun cuando el hardware pueda estar diseñado para
trabajar con otro tamaño.
Ej: SO con páginas de 1Kb, HW con páginas de 512b, el SO trabajará siempre con 2
páginas de HW por cada de software.
- Reducir el tamaño de la página, reduce la fragmentación interna pues se desperdicia
menos memoria en la última página; sin embargo esto aumenta el tamaño de la tabla de
páginas haciendo más engorro el trabajo con esta.
Ej: Proceso de 25kb
13 Páginas de 2Kb 7 Páginas de 4Kb
Desperdicio: 1kb Desperdicio: 3kb
25 Páginas de 1Kb
Desperdicio: 0kb
Aspectos de diseño de sistemas con paginación
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 82
25/03/2022
Tamaño de la página
- La memoria en juego corresponde al tamaño de la tabla de páginas y al desperdiciado en
la última página del proceso.
- Asumiendo que en promedio se pierde la mitad de la última página, se puede modelar la
cantidad esta cantidad de memoria a través de la siguiente fórmula:
Podemos minimizar entonces la cantidad de memoria en juego con el tamaño de página
como parámetro derivando e igualando a cero, dado que la segunda derivada es negativa
para cualquier valor de p entero positivo.
2
p
p
e
s
+
 Siendo: s = el tamaño promedio de los procesos
e = el tamaño de 1 entrada de la tabla de páginas
p = el tamaño de 1 página
0
2
1
2
=
+

−
p
e
s
e
s
p 
= 2
Aspectos de diseño de sistemas con paginación
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 83
25/03/2022
Páginas Compartidas
- Si se ejecuta varias veces el mismo proceso en memoria, es muy conveniente
compartir las páginas de este, en lugar de duplicarlas.
- El problema más complejo es cuando se comparten páginas de datos, dado que 2
procesos de un mismo programa pueden tener datos diferentes por lo que se debe
permitir esta distinción.
- El mecanismo utilizado por los sistemas *nix (unix, linux, bsd, etc) es el copy on write
o copiar al escribir. Cuando se realiza la syscall fork para crear un proceso hijo:
- El SO crea una nueva tabla de páginas para este, pero no copia ninguna página,
sino que apunta a las páginas del proceso padre.
- A continuación se marcan todas las páginas de ambas tablas con read-only.
- Al intentar uno de los procesos de modificar una página, se produce un trap al SO
que duplica la página para que ambos procesos puedan trabajar de forma
independiente, se quita el read-onlyy se continúa la ejecución.
Aspectos de diseño de sistemas con paginación
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 84
25/03/2022
Páginas Compartidas
Proceso A
2
0
1
4
3
1
3
6
2
7
Pág Marco R
0
0
1
1
1
Proceso Hijo de A
2
0
1
4
3
1
3
6
2
7
Pág Marco R
0
0
0
0
0
fork
Proceso A
2
0
1
4
3
1
3
6
2
7
Pág Marco R
0
0
0
0
0
Proceso Hijo de A
2
0
1
4
3
1
3
6
10
7
Pág Marco R
0
0
0
1
0
El proceso hijo de A intenta de
escribir en la página 3. El SO
duplica la página en otro marco y
permite la modificación
Aspectos de diseño de sistemas con paginación
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 85
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 86
25/03/2022
Segmentación
• Como mejorar la utilización de la memoria
– Partes de cada proceso
• Código – programa y tal vez librerías compartidas
• Datos – asignado y heap
• Stack
– Solución
• Dividir el proceso en piezas lógicas. SEGMENTACION
• Conjunto múltiple de registros límite y base
• Llamados registros de segmento
• Ventajas
– Segmentos de código no necesita ser enviado a
swap. Puede ser compartido
– Stack y heap pueden crecer – podrían requerir swap
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 87
25/03/2022
Segmentación
• No es necesario que todos los segmentos de
todos los programas tengan la misma
longitud.
• Existe una longitud máxima de segmento.
• Un dirección lógica segmentada consta de
dos partes, un número de segmento y un
desplazamiento.
• Como consecuencia del empleo de
segmentos de distinto tamaño, la
segmentación resulta similar a la partición
dinámica.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 88
25/03/2022
Vista del Usuario para los programas
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 89
25/03/2022
Vista lógica de la segmentación
1
3
2
4
1
4
2
3
Espacio de usuario Espacio de memoria físico
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 90
25/03/2022
Segmentación
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 91
25/03/2022
Segmentación
• Dirección lógica:
<número de segmento, offset>,
• Tabla de segmentos – mapea a direcciones
físicas. Cada entrada de la tabla tiene
– Base
– Límite
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 92
25/03/2022
Búsqueda de un segmento
segmento 0
segmento 1
segmento 2
segmento 3
segmento 4
Memoria física
segmento #
+
Dirección virtual
<?
?
no
si
offset
base
limit
Tabla de segmentos
Índice del
segmento
Dirección
física
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 93
25/03/2022
Segmentación
• Protección. Cada entrada en la tabla de segmentos
incluye:
– Bit de validación = 0  segmento ilegal
– Privilegios read/write/execute
• Bits de protección asociados con segmentos; código se
puede compartir a nivel de segmento.
• Los segmentos son de tamaños distintos. Por lo tanto la
asignación de memoria corresponde a una asignación
dinámica
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 94
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 95
25/03/2022
TOP y HTOP
• Ambos nos permiten una mirada rápida y detallada de
nuestro sistema, mostrando una lista detallada de los
procesos en ejecución, indicándonos el consumo del CPU,
RAM, tiempo de ejecución, PID (identificador de procesos) ,
etcétera.
• Diferencias: el informe de HTOP esta potenciado, ya que
además cuenta con menús para tener un control más claro de
los procesos, opción para matar procesos sin necesidad de
salir del mismo, y más.
• TOP esta siempre presente, para usar HTOP toca hacer una
instalación extra.
TOP HTOP
1
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 96
25/03/2022
TOP y HTOP
• PR – PRI indica la prioridad del proceso.
• NI indica el valor nice del proceso, a menor valor priodidad más
alta.
• VIRT indica el uso de memoria virtual.
• RES indica la memoria física usada.
• SHR indica la memoria compartida usada en el proceso.
• S muestra el estado de un proceso, estos pueden variar entre:
• D – espera no interrumpible
• R – En ejecución
• S – en espera
• T – En seguimiento o Detenido
• Z – Proceso en estado zombie
• %CPU porcentaje de uso del CPU
• %MEM porcentaje de uso de la memoria RAM
• COMMAND comando con que se inicio el proceso
1
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 97
25/03/2022
FREE
• Sirve para determinar la cantidad de memoria y
espacio de intercambio disponible en el sistema.
Si incluimos la etiqueta -t , se podrá calcular la
cantidad total de memoria virtual.
• La columna free indica el numero de kilobytes
libres del sistema. Los valores que se encuentran
por debajo del 3% de la cantidad total indicaran
que hay problemas.
2
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 98
25/03/2022
SWAPON
• Se utiliza para determinar exactamente
que archivos y particiones se utilizan
como espacio de intercambio.
3
$ swapon -s
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 99
25/03/2022
VMSTAT
• Nos muestra información
resumida sobre la paginación
y el intercambio, además de
las interrupciones y los
bloques de I/O.
• Dado que es un comando que
se encuentra presente en
muchos sistemas UNIX y
Unix-Like (FreeBSD, Linux,
Solaris ) puede variar en
pequeñas cosas en la
sintaxis, revisen el [$man
vmstat] si fuera necesario.
4
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 100
25/03/2022
PROCINFO
• Este es un comando que mejora en mucho la
información mostrada por vmstat, el inconveniente es
que no esta presente en todas las distribuciones por
default, así que es probable que tengan que instalarlo,
en el caso de Manjaro fue así.
• procinfo no tiene un sistema especial para recopilar
información sobre el sistema , se limita a dar formato
a los datos que se encuentran en los archivos del
sistema /proc. Sin el seria difícil interpretar el
contenido de los archivos de /proc.
$ sudo pacman -S procinfo
5
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 101
25/03/2022
PROCINFO
Es de gran
ayuda ya que
de cierta
forma anula la
información
que se obtiene
de los
comandos
free, uptime y
vmstat,
digamos un
todo en uno.
5
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 102
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 103
25/03/2022
Introducción
Relativo a la perduración de la información, un Sistema Operativo debería proveer
funcionalidades para:
• Almacenar una cantidad muy grande de información
• La información debe sobrevivir a la terminación del proceso que la usa
• Existir la capacidad de que múltiples procesos accedan a la información de forma concurrente.
Los sistemas de archivos son aquellos que deben proveer estas capacidades al S.O. Para su
comprensión, se pueden dividir en 2 partes:
Perspectiva del usuario: la forma en que se muestran y estructuran los archivos en cuanto a
su uso y manipulación (archivos, directorios, funciones de administración, etc).
Implementación: como se escriben los datos realmente a la unidad de almacenamiento.
S.O.
/home/usuario/archivo.txt
open(“archivo.txt”)
C:windowscalc.exe
Dispositivo
I/O
Usuario Implementación
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 104
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 105
25/03/2022
Definición – Archivos
“Mecanismo de abstracción que permite almacenar información en un dispositivo y leerla
después (…) de tal modo que el usuario no tenga que enterarse de los detalles de cómo y
dónde está almacenada la información, y de cómo funcionan en realidad los discos”
-- A. Tannenbaum
NombreDeArchivo.extensión
-El nombre de archivo puede estar restringido a un largo máximo, por ejemplo:
- MSDOS: 8 para el nombre, 3 para la extensión
- NTFS y ext*: 255 en el total (nombre + extensión)
-La extensión “puede” ser usada para determinar el tipo de archivo:
-En sistemas windows determina el contenido del archivo y la aplicación encargada de
manejarlo. Aquí se suele tener solo 1 extensión: archivo.zip.
-En linux y similares es un ayuda a los usuario para determinar el contenido, pero no es
estricto ni establecido por sistema. Aquí se suele tener varias extensiones: archivo.tar.gz
-En general se acepta cualquier carácter en el nombre excepto NUL (0), aunque algunos
sistemas restringen el conjunto aunque la implementación del sistema de archivos lo soporte.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 106
25/03/2022
Estructura - Archivos
Los archivos internamente pueden ser estructurados o libres.
Libres
Los archivos son simplemente secuencia de bytes. Permite la mayor versatilidad, dado que
cada usuario puede establecer como desea almacenar los datos.
Estructurados
Los archivos tienen una organización interna a través de la cual deben ser accedidos los
datos. Útil cuando el sistema de archivos maneja siempre los datos en estructuras rígidas,
dado que acelera el proceso, pero poco conveniente porque amarra al usuario a dicha
estructura.
Sucesión
de bytes
Sucesión
de registros
F M T
C N O
A
Árbol
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 107
25/03/2022
Ejecutables - Archivos
La estructura de los archivos ejecutables varia dependiendo del sistema en el que
sea compilado y linkeado el programa.
Una estructura ejemplo de un archivo ejecutable puede ser:
El número mágico permite al S.O determinar si el ejecutable es válido, comparándolo con el o los
valores que tiene el sistema como válido. En NachOS por ejemplo es el binario 0xbadfad.
Número Mágico
Tamaño de código
Tamaño de datos
Tamaño de BSS
Tamaño de tabla de símbolos
Punto de ingreso
Tabla de Símbolos
Datos
Encabezado
(Header)
Tamaño en bytes que mide el segmento de código
Tamaño en bytes que mide el segmento de datos embedidos en el ejecutable
Tamaño en bytes que mide el segmento de variables no inicializadas (Ej: int a[1000] )
Tamaño en bytes que tiene la tabla de símbolos
Posición del Program Counter al inicio (punto de inicio del programa)
Segmento de código. Contiene las instrucciones que son ejecutadas por la CPU.
Segmento de datos. Contiene datos que están embedidos en el archivo ejecutable que son
utilizados por este.
Código
La tabla de símbolos es un elemento opcional que sirve al debug de un proceso. Contiene el listado
de identificadores del programa (variables, procesos), los cuales permiten depurar un programa en
ejecución.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 108
25/03/2022
Atributos - Archivos
Los sistemas de archivos guardan, además del nombre del archivo y sus datos, información
como fecha, hora, usuario, permisos, etc; los cuales se denominan atributos.
Algunos de los atributos que puede guardar un sistema de archivos son:
Protección Permisos que el dueño del archivo establece sobre el archivo.
En linux los permisos básicos se establecen en la terna XXX para el usuario,
grupo y otros respectivamente con los valores {0: nada, 1: ejecución,
2: escritura, 4: lectura} que se suman para combinar permisos.
Password Clave de protección del archivo
Dueño Usuario del sistema dueño del archivo
Oculto Bit que indica si el archivo figura en la lista normal de archivos.
Temporal Bit que indica si eliminar el archivo al terminar el proceso que lo creo.
Indicadores de Bloqueo Permiten establecer protecciones sobre parte o todo el archivo para que
modificaciones concurrentes de varios procesos se hagan de forma
adecuada.
Longitud del registro En archivos con registros, indica el largo de cada registro
Tamaño actual Tamaño actual del archivo en bytes.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 109
25/03/2022
Accediendo a un archivo
• Acceso Secuencial
– Leer todos los bytes/registros desde el inicio
– Sin saltarse a otros lugares
• Pero, se puede volver al inicio del archivo
– Convenientes para cintas magnéticas
– Usado a menudo cuando se necesita todo el archivo
• Acceso Aleatorio
– Leer bytes (o registros) en cualquier orden
– Esencial para las BD
– Leer puede ser …
• Mover el marcador de archivo (buscar), luego leer o …
• Leer y entonces mover el marcador de archivo
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 110
25/03/2022
File operations
• Create: make a new file
• Delete: remove an
existing file
• Open: prepare a file to
be accessed
• Close: indicate that a
file is no longer being
accessed
• Read: get data from a
file
• Write: put data to a file
• Append: like write, but
only at the end of the
file
• Seek: move the
“current” pointer
elsewhere in the file
• Get attributes: retrieve
attribute information
• Set attributes: modify
attribute information
• Rename: change a
file’s name
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 111
25/03/2022
Using file system calls
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 112
25/03/2022
Using file system calls, continued
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 113
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 114
25/03/2022
Directorios
De manera de poder organizar los archivos, muchos
sistemas de archivos tienen directorios o carpetas; los
cuales también pueden ser archivos.
De su utilización se derivan los conceptos de:
-Directorio Raíz: aquel que contiene al resto del
sistema de archivos. En linux es explicito (/), en
windows está escondido detrás de las unidades lógicas
(??)
-Directorio de trabajo: directorio en el cual se esta
ejecutando un proceso, como por ejemplo el interprete
de comandos. Este se simboliza con un punto (.).
-Ruta absoluta: ubicación de un archivo o directorio
indicando su posición explicitando todos los directorios
desde el directorio raíz al elemento. Ej:
/usr/local/nachos/code/build.linux/nachos.
-Ruta relativa: ubicación de un archivo o directorio
indicando su posición respecto al directorio de trabajo
actual.
Ej: ../build.linux/nachos
-Directorio Padre: aquel en el cual es contenido un
directorio. Se simboliza con punto doble (..).
Estilo
Unix
/
usr/
home/
local/
share/
jmakuc/
cmolina/
??
C: D:
Documents And Settings
Temp
Windows
Videos
mp3
Películas
Estilo
Windows
Las entradas X: se
denominan unidades
y representan a
particiones de los
discos
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 115
25/03/2022
Single-level directory systems
• One directory in the file system
• Example directory
– Contains 4 files (foo, bar, baz, blah)
– owned by 3 different people: A, B, and C
• Problem: what if user B wants to create a file called foo?
Root
directory
A
foo
A
bar
B
baz
C
blah
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 116
25/03/2022
Two-level directory system
• Solves naming problem: each user has her own directory
• Multiple users can use the same file name
• By default, users access files in their own directories
• Extension: allow users to access files in others’ directories
Root
directory
A
foo
A
bar
B
foo
B
baz
A B C
C
bar
C
foo
C
blah
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 117
25/03/2022
Hierarchical directory system
Root
directory
A
foo
A
Mom
B
foo
B
foo.tex
A B C
C
bar
C
foo
C
blah
A
Papers
A
Photos
A
Family
A
sunset
A
sunset
A
os.tex
A
kids
B
Papers
B
foo.ps
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 118
25/03/2022
Unix directory tree
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 119
25/03/2022
What’s in a directory?
• Two types of information
– File names
– File metadata (size, timestamps, etc.)
• Basic choices for directory information
– Store all information in directory
• Fixed size entries
• Disk addresses and attributes in directory entry
– Store names & pointers to index nodes (i-nodes)
games attributes
mail attributes
news attributes
research attributes
games
mail
news
research
attributes
attributes
attributes
attributes
Storing all information
in the directory
Using pointers to
index nodes
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 120
25/03/2022
Directory structure
• Structure
– Linear list of files (often itself stored in a file)
• Simple to program
• Slow to run
• Increase speed by keeping it sorted (insertions are slower!)
– Hash table: name hashed and looked up in file
• Decreases search time: no linear searches!
• May be difficult to expand
• Can result in collisions (two files hash to same location)
– Tree
• Fast for searching
• Easy to expand
• Difficult to do in on-disk directory
• Name length
– Fixed: easy to program
– Variable: more flexible, better for users
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 121
25/03/2022
Handling long file names in a directory
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 122
25/03/2022
Sharing files
Root
directory
A
foo
?
???
B
foo
A B C
C
bar
C
foo
C
blah
A
Papers
A
Photos
A
Family
A
sunset
A
sunset
A
os.tex
A
kids
B
Photos
B
lake
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 123
25/03/2022
Solution: use links
• A creates a file, and inserts into her directory
• B shares the file by creating a link to it
• A unlinks the file
– B still links to the file
– Owner is still A (unless B explicitly changes it)
a.tex
Owner: A
Count: 1
a.tex
Owner: A
Count: 2
b.tex
Owner: A
Count: 1
b.tex
A A B B
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 124
25/03/2022
Operations on directories
• Create: make a new
directory
• Delete: remove a
directory (usually must
be empty)
• Opendir: open a
directory to allow
searching it
• Closedir: close a
directory (done
searching)
• Readdir: read a
directory entry
• Rename: change the
name of a directory
– Similar to renaming a file
• Link: create a new entry
in a directory to link to
an existing file
• Unlink: remove an entry
in a directory
– Remove the file if this is
the last link to this file
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 125
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 126
25/03/2022
Organización del Sist. Archivos - Implementación
En sistemas de archivos de discos, estos deben considerar la estructura básica: particiones o
volúmenes.
Disco entero
MBR Partición 1 Partición 2 Partición 3 Partición 4
Partición: división lógica de una unidad de disco, también denominada volúmen en sistemas Windows.
MBR: Master Boot Record o Registro Maestro de Arranque. Es leído y ejecutado por la BIOS al encenderse el
computador.
Tabla de Particiones: Contiene la información de donde comienza y termina cada partición en el disco. Cada
partición puede tener un sistema de archivos diferente.
Bloque de arranque: primer bloque de cada partición. Contiene la información de cómo arrancar el Sistema
Operativo contenido en ella. Al ejecutarse el MBR, este busca los bloques de arranque para ejecutarlos. Si no
existe S.O. en una partición, se deja el bloque en blanco por provisión.
Físicamente podemos distinguir:
Cilindro: disco físico. Ej: 1 diskette tiene 1 cilindro, mientras que un disco duro puede tener varios.
Pistas: divisiones concéntricas del disco. Un disco removible de 3.5” tiene en formato simple 18 pistas.
Sectores: unidad atómica en la que se divide un disco para acceder a él en múltiplos de esta. Ej: 512b
Bloques: agrupación de sectores que realiza el sistema operativo, denominado cluster en sistemas Windows.
El acceso al disco que realiza el S.O. se hace en esta unidad.
Tabla de particiones
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 127
25/03/2022
Organización del Sist. Archivos - Implementación
Físicamente se puede distinguir:
Cilindro: disco físico. Ej: 1 diskette tiene 1 cilindro, mientras que un disco duro puede tener varios.
Pistas: divisiones concéntricas del disco. Un disco removible de 3.5” tiene en formato simple 18 pistas.
Sectores: unidad atómica en la que se divide un disco para acceder a él en múltiplos de esta. Ej: 512b
Bloques: agrupación de sectores que realiza el sistema operativo, denominado cluster en sistemas
Windows. El acceso al disco que realiza el S.O. se hace en esta unidad.
Fuente: http://maettig.com/?page=Studium/FAT32
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 128
25/03/2022
Organización del Sist. Archivos - Implementación
En sistemas de archivos de discos, estos deben considerar la estructura básica: particiones o volúmenes.
Disco entero
MBR Partición 1 Partición 2 Partición 3 Partición 4
Cada partición debe contener la información de todos los archivos (y directorios si corresponde) que
alberga. Esta información es almacenada en sectores al inicio del volúmen, cuya estructura varía
considerablemente entre sistemas de archivos, aunque conceptualmente se puede graficar como sigue.
Tabla de particiones
Bloque de arranque Metadatos Archivos y Directorios
El sector de metadatos
contiene la información
respecto de donde y como
están almacenados los
archivos en la partición.
Número Mágico que
identifica sistema de
archivos que contiene
la partición
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 129
25/03/2022
Implementación de archivos - Implementación
Asignación Contigua
Se entrega espacio continuo en el disco a los archivos. Su ventaja es la implementación
simple y el buen desempeño en lectura. La desventaja es el fragmentación excesiva y
compleja dado que se DEBE escribir cada archivo como un todo cada vez. Si se elimina
un archivo se requiere otro de igual tamaño para no desperdiciar lugar, o reubicar los
archivos para hacer espacio a un archivo más grande.
Asignación por Lista Enlazada
Los archivos se mantienen como una lista enlazada de bloques en el disco. Permite que un archivo no
deba estar contiguo en el disco y elimina la fragmentación del disco dado que se pueden utilizar todos
los bloques. Su mayor problema es el acceso aleatorio, pues el S.O. debe ir buscando nodo por nodo la
dirección del siguiente, hasta llegar al que necesita. Por otra parte ahora la cantidad de datos
almacenada en un bloque ya no es potencia de 2, complicando el panorama para la implementación de
página, por ejemplo.
Arch. A Arch. B Arch. C Arch.D Arch. A Arch. C Arch.D
Bloque 0 Bloque 1 Bloque 2 Bloque 3
Bloque 7 en disco Bloque 1 en disco Bloque 5 en disco Bloque 2 en disco
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 130
25/03/2022
Implementación de archivos - Implementación
Nodos-i
Consiste en asociar a cada archivo una estructura de
datos llamada “i-node” (nodo índice).
Esta estructura contiene las direcciones de los
bloques en disco que componen al archivo.
La mayor ventaja es que solo es necesario tener en
memoria las estructuras de los archivos abiertos,
pues estas son las únicas que se necesitan para el
acceso aleatorio. Para solucionar el problema de que
la cantidad de bloques de un archivo no queda en un
solo i-node, se agrega al final de este la posibilidad
de enlazar en la última posición a un bloque que
contenga más direcciones (solo direcciones)
Asignación por Lista Enlazada empleando tabla en
la memoria
Toma el apuntador que antes estaba dentro del bloque
en disco, y lo traslada a una tabla exclusivamente para
ese efecto. De esta forma el bloque se llena de datos y
poder acceder aleatoriamente al archivo es más
simple pues no requiere de accesos a disco dado que
todos los datos están juntos en memoria
A esto se le conoce como FAT, File Allocation Table.
Bloque Físico Sgte Bloque
0
1 5
2 -1
3
4
5 2
6
7 1
Inicio del
archivo
Término del
archivo
Atributos del archivo
Dirección del bloque 0
Dirección del bloque 1
Dirección del bloque 2
Dirección del bloque 3
Dirección del bloque 4
Dirección del bloque 5
Dirección del bloque 6
Dirección del bloque 7
Dirección bloque con más direcc.
Bloque de disco
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 131
25/03/2022
Control de bloques libres - Implementación
Mapas de bits
Se crea un mapa donde se representa a cada bloque disponible
con 1 bit. Es muy eficiente en espacio dado que utiliza 1 bit en
lugar de 1 palabra, excepto cuando el disco esta lleno, caso en
el cual la lista es más pequeña. Al igual que la lista, se puede
dejar solo una porción del mapa en memoria y el resto en disco;
teniendo una ventaja adicional, puesto que las asignaciones
realizadas con el bloque en memoria serán a bloques cercanos,
reduciendo el overhead de acceso a disco.
Uno de los problema importantes que debe tratar el sistema de archivos, es la
administración de los bloques libres. Sin importar cual método se emplee, se suelen usar
bloques libres del disco para colocar la estructura que los maneja.
Listas Enlazadas Libres
Se utiliza una lista enlazada de bloques de disco que contienen
números de bloques libres. Se almacenan tantos números como
se pueda en cada bloque. Para agilizar el proceso de búsqueda
de un bloque libre, se mantiene uno o más bloques en memoria,
dejando el resto en disco. La desventaja es que cuando el bloque
esta por llenarse puede provocar muchas operaciones de I/O al
buscar otro bloque, producto de una seguidilla de creaciones y
eliminaciones de archivos y directorios.
387
123
32
33
433
766
7
56
321
3
54
55
56
57
77
9
12
987
976
765
433
654
543
21
0 1 0 0 0
0
0
0
0 0 1 1 1 1
0 0
0 1
0
0 1 1 0
0 1 1 0
1
0 0
1
0 0
1
0 0
1
0 0
1
0 0
0
0 1
0 0
0 1 1
0
0 1
0
0
1 1 1
0 0
0
0 1
0 0
0 0 1 1
1 0
0 1
0 0
1
1
0 0
1
0 0
0
0 0
0
0
0 1
0 0 0 1
1 1 0
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 132
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 133
25/03/2022
Administración del espacio en disco
• Por lo general los archivos se almacenan en disco, así que la
administración del espacio en disco es una cuestión
importante para los diseñadores de sistemas de archivos.
• Hay dos estrategias generales posibles para almacenar un
archivo de n bytes:
– (a) se asignan n bytes consecutivos de espacio en disco, o
– (b) el archivo se divide en varios bloques (no necesariamente)
contiguos
• El caso (a) tiene el problema obvio de que si un archivo crece,
probablemente tendrá que moverse en el disco
• Por esta razón, casi todos los sistemas de archivos dividen los
archivos en bloques de tamaño fijo que no necesitan ser
adyacentes, es decir, el caso (b)
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 134
25/03/2022
Tamaño de bloque
• Tener un tamaño de bloque grande significa que
cada archivo (incluso un archivo de 1 byte) ocupa
un cilindro completo. También significa que los
pequeños archivos desperdician una gran
cantidad de espacio en disco.
• Por otro lado, un tamaño de bloque pequeño
significa que la mayoría de los archivos abarcarán
varios bloques y por ende, necesitan varias
búsquedas y retrasos rotacionales para leerlos, lo
cual reduce el rendimiento.
• Por ende, si la unidad de asignación es
demasiado grande, desperdiciamos espacio; si es
demasiado pequeña, desperdiciamos tiempo
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 135
25/03/2022
Administrar el espacio en disco
• La curva sólida (escala del lado izquierdo) da la velocidad de datos del
disco.
• La curva punteada (escala del lado derecho) da la eficiencia del
espacio de disco.
• Todos los archivos son de 4 KB.
El tamaño más cercano al
punto en el que se cruzan
las dos curvas es 64 KB,
pero la velocidad de datos
es de sólo 6.6 MB/seg y la
eficiencia del espacio es de
aproximadamente 7%;
ninguno de estos dos
valores son buenos.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 136
25/03/2022
Administrar el espacio en disco
• Las dos curvas se pueden comprender de la siguiente
manera.
– El tiempo de acceso para un bloque está completamente
dominado por el tiempo de búsqueda y el retraso rotacional,
dado que se van a requerir 9 mseg para acceder a un bloque,
entre más datos se obtengan será mejor.
– En consecuencia, la velocidad de datos aumenta casi en
forma lineal con el tamaño de bloque (hasta que las
transferencias tardan tanto que el tiempo de transferencia
empieza a ser importante).
– Además, los bloques pequeños son malos para el
rendimiento pero buenos para el uso del espacio en el
disco.
• Históricamente, los sistemas de archivos han elegido
tamaños en el rango de 1 KB a 4 KB, pero con discos que
ahora exceden a 1 TB, podría ser mejor incrementar el
tamaño de bloque a 64 KB y aceptar el espacio en disco
desperdiciado.
– El espacio en disco ya no escasea en estos días
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 137
25/03/2022
Cuotas de disco
• Para evitar que los usuarios ocupen demasiado
espacio en disco, los sistemas operativos multiusuario
proporcionan un mecanismo para imponer las cuotas
de disco.
• La idea es que el administrador del sistema asigne a
cada usuario una cantidad máxima de archivos y
bloques y que el sistema operativo se asegure de que
los usuarios no excedan sus cuotas.
• Cuando un usuario abre un archivo, los atributos y las
direcciones de disco se localizan y se colocan en una
tabla de archivos abiertos en la memoria principal.
– Entre los atributos hay una entrada que indica quién es el
propietario. Cualquier aumento en el tamaño del archivo
se tomará de la cuota del propietario.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 138
25/03/2022
Cuotas de disco
• Una segunda tabla contiene el registro de
cuotas para cada usuario con un archivo
actualmente abierto, aun si el archivo fue
abierto por alguien más.
– Esta tabla es un extracto de un archivo de
cuotas en el disco para los usurarios cuyos
archivos están actualmente abiertos.
– Cuando todos los archivos se cierran, el
registro se escribe de vuelta en el archivo de
cuotas.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 139
25/03/2022
Cuotas de disco
• El registro de cuotas se lleva en una tabla de
cuotas, usuario por usuario
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 140
25/03/2022
Desfragmentación de discos
• Cuando el sistema operativo se instala por primera vez, los
programas y archivos que necesita se instalan en forma
consecutiva, empezando al principio del disco, cada uno
siguiendo directamente del anterior.
• A medida que transcurre el tiempo se crean y eliminan archivos,
generalmente el disco se fragmenta mucho, con archivos y
huecos esparcidos por todas partes.
• Como consecuencia, cuando se crea un nuevo archivo, los
bloques que se utilizan para éste pueden estar esparcidos por
todo el disco, lo cual produce un rendimiento pobre.
• El rendimiento se puede restaurar moviendo archivos para
hacerlos contiguos y colocando todo el espacio libre (o al menos
la mayoría) en una o más regiones contiguas en el disco.
– Windows tiene un programa llamado defrag, el cual realiza esto. Los
usuarios de Windows deben ejecutarlo en forma regular.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 141
25/03/2022
Desfragmentación de discos
• La desfragmentación funciona mejor en los sistemas de
archivos que tienen una buena cantidad de espacio libre en
una región continua al final de la partición.
– Este espacio permite al programa de desfragmentación
seleccionar archivos fragmentados cerca del inicio de la
partición, copiando todos sus bloques al espacio libre.
• Esta acción libera un bloque contiguo de espacio cerca del
inicio de la partición en la que se pueden colocar los archivos
originales u otros en forma contigua.
– Después, el proceso se puede repetir con el siguiente pedazo
de espacio en el disco y así en lo sucesivo.
– Algunos archivos no se pueden mover, incluyendo el archivo de
paginación, el de hibernación y el registro por bitácora, ya que la
administración requerida para ello es más problemática de lo
que ayuda
• Los sistemas de archivos de Linux (en especial ext2 y ext3)
por lo general sufren menos por la desfragmentación que los
sistemas Windows debido a la forma en que se seleccionan
los bloques de disco, por lo que raras veces se requiere una
desfragmentación manual.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 142
25/03/2022
Contenido
• ADMINISTRACIÓN DE LA MEMORIA
– Memoria principal
– Abstracción de memoria
– Sistema de gestión de
memoria
– Memoria virtual
– Algoritmo de reemplazo de
páginas
– Diseño para los sistemas de
paginación
– Segmentación de memoria.
– Comandos para
administración de memoria.
• SISTEMAS DE ARCHIVOS
– Archivos
– Directorios
– Implementación de un sistema
de archivo
– Administración y optimización de
un sistema de archivo
– Ejemplos de sistemas de archivos
• S.O. DE PROPÓSITO ESPECÍFICO
– Caso de estudio Linux
– Caso de estudio Windows
– Caso de estudio Embebidos
(Android).
– Sistemas Operativos en la Nube.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 143
25/03/2022
Introducción - NTFS
NTFS o New Technology File System, es el sistema de archivos de la línea NT de los sistema MS Windows.
Fue diseñado desde cero, pensado para reemplazar a la familia de FAT eliminando todas las limitaciones de
este, y pensando en poder extenderlo fácilmente en el futuro.
Conceptualmente NTFS ve todo en el sistema como un archivo, incluyendo a los metadatos. El corazón de
tal esquema es la MFT (Master File Table) que contiene la información de donde están los archivos y sus
atributos. Aunque esta respaldada en un %, si se daña los datos de todo el volumen se perderán.
Utiliza bitmaps para determinar los bloques (clusters) libres en el disco, e indexa los directorios a través de
árboles B+.
Tamaño máximo de volumen 16EiB (Exibibyte – 1060)
Tamaño máximo de archivo Teórico 16EiB
Tamaño máximo de archivo implementación
actual
16TiB (Tebibye – 1040)
Número máximo de archivo 232 – 1
Largo nombre de archivo 255 caracteres
Fechas 01/01/1601 – 28/05/60056
Compresión de datos LZ77 (zip) desde WinNT 3.51
Encriptación de datos XDES (Win2000), 3DES (WinXP), AES
(Win2003)
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 144
25/03/2022
Esquema General - NTFS
Ejemplo Esquema partición NTFS
Partition
Boot Record
MFT
Archivos
de Sistema
Área de archivos
Boot Partition Record
En los primeros 8kb se contiene la información sobre el volumen (tipo de partición, largo,
etc), junto con el bloque de código básico para iniciar al sistema operativo. Contiene tambien
un puntero a la MFT.
MFT – Master File Table
La Tabla Maestra de archivos contiene el donde y como están almacenados los archivos,
junto con todos los atributos asociados a estos.
Archivos de Sistema
Contienen la información sobre los datos y operaciones que se realizan sobre el sistema de
archivos: espacio libre, log de transaccionalidad, etc.
Área de archivos
Donde realmente se almacenan los datos del usuario.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 145
25/03/2022
Master File Table - NTFS
# Filename Nombre Descripción
0 $MFT Master File Table Puntero a si mismo para consistencia del modelo.
1 $MFTMirr Master File Tabla Mirror Puntero donde se encuentra el respaldo de la MFT. Solo se respaldan los
registros más importante. En NT3.5 se ubica a la mitad de la partición, en
versiones posteriores al final.
2 $LogFile Log File Archivo de log de transacciones sobre el volumen.
3 $Volume Volume Descriptor Contiene información crucial sobre la partición en si: versión NTFS, nombre, etc.
4 $AttrDef Attribute Definition Table Nombres y tipos de los atributos que tendrá cada archivo.
5 $ Root Directory Puntero a donde parte el directorio raíz del sistema.
6 $Bitmap Cluster Allocation Bitmap Mapa que muestra los clusters (bloques) disponibles
7 $Boot Volume Boot Code Puntero al segmento que contiene el código de arranque, en el caso de que esta
sea una partición activa (booteable)
8 $BadClus Bad Cluster File Lista de todos los bloques “malos” del disco, para no volver a utilizarlos.
9 $Secure Security File Contiene descriptores únicos para cada archivo del volumen
10 $UpCase Upper Case Table Tabla de conversiones mayúsculas/minúsculas en UNICODE.
11 $Extend NTFS Extensions Usado por varias extensiones como quotas, reparse, identif. de objeto, etc.
La MFT contiene la información sobre todos los archivos dentro del volumen. Mantiene la dirección en disco
donde esta el archivo, sus atributos, información de cómo securizar los datos, etc.
Las primeras 16 posiciones corresponden a entradas a archivos que implementan el sistema de archivos y
están reservadas. Desde la 11 a la 15 no se utilizan y están para provisión. Desde el #16 en adelante se
pueden tener entradas para archivos de usuario.
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 146
25/03/2022
Master File Table Entry - NTFS
Atributo Descripción
Información estándar Bits indicadores, marcas de hora, etc.
Nombre de archivo En UNICODE
Descriptor de Seguridad Obsoleto. Ver $Extend $Secure
Lista de atributos Ubicación de registros MFT adicionales, si se necesitan
Identificador de Objeto Identificador de archivo de 64bits (teoricamente único en el mundo)
Punto de reanálisis Para montajes y enlaces simbólicos
Nombre de Volumen Nombre de este volumen (usado por $Volumne)
Información de volumen Versión del volumen (usado por $Volume)
Raíz índice Se usa para directorios
Asignación de índice Se usa en directorios muy grandes
Mapa de bits Usado en directorios muy grandes
Flujo utilitario de registro Controla las entradas en $LogFile
Datos Datos de flujo; puede repetirse
Atributos
Básicos
Al crearse el volumen en el formato, se reserva espacio para que la
MFT pueda crecer (alrededor del 12% del disco por defecto). Este
espacio aunque esta libre, no es utilizado sino hasta que no queda más
espacio disponible en el disco. En el caso de que la MFT crezca
mucho, puede particionarse y colocar una porción en otro lugar del
disco. El tamaño de una entrada de la MFT puede variar entre 1.024 y
4.096 bytes, estando de la mano el tamaño del cluster.
Cada registro de la MFT contiene un encabezado o header que
permite identificar la entrada, junto con indicar la cantidad de bytes
usados, contador de referencias, etc
A continuación vienen una serie de atributos compuestos por un encabezado de atributo y el atributo en si. El primero indica
donde parte el atributo y cuando mide, el segundo contiene el valor
Fuente: http://dbserver.kaist.ac.kr/~yjlee/Courses/CS230/ntfs/NTFS-3.html
Sistemas Operativos Carrera de Software
Ph.D. Franklin Parrales 147
25/03/2022
Master File Table Entry, Atributos - NTFS
Siguiendo la misma filosofía de generizar las estructuras de datos, en un archivo todo es un atributo, hasta
los datos; los cuales pueden estar almacenados en una entrada de la MFT, en varias o incluso en “data
runs” fuera de la MFT.
Atributos residentes
Son aquellos que se encuentran en el registro inicial del archivo y no desbordan fuera de el
Atributos no Residentes
Son aquellos que no están presentes en el registro inicial del archivo dado que están o en otra entrada de la
MFT o en un data run.
Data runs o Extents (extensiones)
Conjunto de bloques (2kb – 4kb) alocados por NTFS para contener atributos que son muy largos para estar
en un registro de la MFT.
Fuente: http://dbserver.kaist.ac.kr/~yjlee/Courses/CS230/ntfs/NTFS-3.html
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos

Más contenido relacionado

La actualidad más candente

SO - Administración de Memoria
SO - Administración de MemoriaSO - Administración de Memoria
SO - Administración de MemoriaLuis Eraso
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPUEduardo Suarez
 
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Dj Mada - Tres Valles, Veracruz
 
Procesos Planificacion de los Sistemas Operativos
 Procesos Planificacion de los Sistemas Operativos Procesos Planificacion de los Sistemas Operativos
Procesos Planificacion de los Sistemas OperativosG Hoyos A
 
Ejemplos de proyectos al modelo en cascada
Ejemplos de proyectos  al modelo en cascadaEjemplos de proyectos  al modelo en cascada
Ejemplos de proyectos al modelo en cascadaaics-1986-13-saraguro
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)Yadith Miranda Silva
 
Concurrencia interbloqueo e inanición
Concurrencia interbloqueo e inaniciónConcurrencia interbloqueo e inanición
Concurrencia interbloqueo e inaniciónjhonfgarcia
 
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREPSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREFranklin Parrales Bravo
 
Segmentación Memoria Virtual
Segmentación Memoria VirtualSegmentación Memoria Virtual
Segmentación Memoria VirtualAna Brooks
 
Acceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAAcceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAErika Rodríguez
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidosVictor Reyes
 

La actualidad más candente (20)

SO - Administración de Memoria
SO - Administración de MemoriaSO - Administración de Memoria
SO - Administración de Memoria
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
Planificacion cpu
Planificacion cpuPlanificacion cpu
Planificacion cpu
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
 
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
 
Procesos Planificacion de los Sistemas Operativos
 Procesos Planificacion de los Sistemas Operativos Procesos Planificacion de los Sistemas Operativos
Procesos Planificacion de los Sistemas Operativos
 
Ejemplos de proyectos al modelo en cascada
Ejemplos de proyectos  al modelo en cascadaEjemplos de proyectos  al modelo en cascada
Ejemplos de proyectos al modelo en cascada
 
Algoritmo del baquero
Algoritmo del baqueroAlgoritmo del baquero
Algoritmo del baquero
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivos
 
Concurrencia interbloqueo e inanición
Concurrencia interbloqueo e inaniciónConcurrencia interbloqueo e inanición
Concurrencia interbloqueo e inanición
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREPSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
 
SERVICIOS DEL SISTEMA OPERATIVO
SERVICIOS DEL SISTEMA OPERATIVOSERVICIOS DEL SISTEMA OPERATIVO
SERVICIOS DEL SISTEMA OPERATIVO
 
Segmentación Memoria Virtual
Segmentación Memoria VirtualSegmentación Memoria Virtual
Segmentación Memoria Virtual
 
Acceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAAcceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMA
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Procesos e hilos_parte_3
Procesos e hilos_parte_3Procesos e hilos_parte_3
Procesos e hilos_parte_3
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 

Similar a SO Unidad 3: Administración de memoria y sistemas de archivos

Memoria ram
Memoria ramMemoria ram
Memoria ramStarionT
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoriaRayzeraus
 
Inf 324 01 06 Memoria
Inf 324 01 06  MemoriaInf 324 01 06  Memoria
Inf 324 01 06 Memoriajuanvaldez981
 
Curso Infraestructura Hosting y cloud Computing
Curso Infraestructura Hosting y cloud Computing Curso Infraestructura Hosting y cloud Computing
Curso Infraestructura Hosting y cloud Computing Abserver
 
Arquitectura de memorias RAM, ROM Y CACHE
Arquitectura de memorias RAM, ROM Y CACHEArquitectura de memorias RAM, ROM Y CACHE
Arquitectura de memorias RAM, ROM Y CACHEYESENIA CETINA
 
Memoria de un computador
Memoria de un computadorMemoria de un computador
Memoria de un computadorEdictor7
 
La memoria ram
La memoria ramLa memoria ram
La memoria ramiturbide92
 
4 memoria
4 memoria4 memoria
4 memoriaKRNFORD
 
Presentacin1 170301214724mm-170313222255-1loperaza
Presentacin1 170301214724mm-170313222255-1loperazaPresentacin1 170301214724mm-170313222255-1loperaza
Presentacin1 170301214724mm-170313222255-1loperazaAdriana Rodriguez
 
inf 324 01 06 memoria
inf 324 01 06 memoriainf 324 01 06 memoria
inf 324 01 06 memoriajuanvaldez981
 
Tipos de memoria del computador - Compendio
Tipos de memoria del computador - CompendioTipos de memoria del computador - Compendio
Tipos de memoria del computador - CompendioJose Diaz Silva
 
Trabajo modalidad práctica
Trabajo modalidad prácticaTrabajo modalidad práctica
Trabajo modalidad prácticaDianaYDiego
 
Memorias_y_Elementos_de_Entrada_y_Salida_Unidad_4.pptx
Memorias_y_Elementos_de_Entrada_y_Salida_Unidad_4.pptxMemorias_y_Elementos_de_Entrada_y_Salida_Unidad_4.pptx
Memorias_y_Elementos_de_Entrada_y_Salida_Unidad_4.pptxElChadu
 

Similar a SO Unidad 3: Administración de memoria y sistemas de archivos (20)

Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Memoria ram
Memoria ramMemoria ram
Memoria ram
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Inf 324 01 06 Memoria
Inf 324 01 06  MemoriaInf 324 01 06  Memoria
Inf 324 01 06 Memoria
 
Memoria virtual
Memoria  virtualMemoria  virtual
Memoria virtual
 
Curso Infraestructura Hosting y cloud Computing
Curso Infraestructura Hosting y cloud Computing Curso Infraestructura Hosting y cloud Computing
Curso Infraestructura Hosting y cloud Computing
 
Arquitectura de memorias RAM, ROM Y CACHE
Arquitectura de memorias RAM, ROM Y CACHEArquitectura de memorias RAM, ROM Y CACHE
Arquitectura de memorias RAM, ROM Y CACHE
 
Piramide memorias
Piramide memoriasPiramide memorias
Piramide memorias
 
Memoria de un computador
Memoria de un computadorMemoria de un computador
Memoria de un computador
 
La memoria ram
La memoria ramLa memoria ram
La memoria ram
 
4 memoria
4 memoria4 memoria
4 memoria
 
Presentacin1 170301214724mm-170313222255-1loperaza
Presentacin1 170301214724mm-170313222255-1loperazaPresentacin1 170301214724mm-170313222255-1loperaza
Presentacin1 170301214724mm-170313222255-1loperaza
 
MEMORIA
MEMORIAMEMORIA
MEMORIA
 
inf 324 01 06 memoria
inf 324 01 06 memoriainf 324 01 06 memoria
inf 324 01 06 memoria
 
Tipos de memoria del computador - Compendio
Tipos de memoria del computador - CompendioTipos de memoria del computador - Compendio
Tipos de memoria del computador - Compendio
 
Proyectomemoria
ProyectomemoriaProyectomemoria
Proyectomemoria
 
Entrega
Entrega Entrega
Entrega
 
Trabajo modalidad práctica
Trabajo modalidad prácticaTrabajo modalidad práctica
Trabajo modalidad práctica
 
Memorias_y_Elementos_de_Entrada_y_Salida_Unidad_4.pptx
Memorias_y_Elementos_de_Entrada_y_Salida_Unidad_4.pptxMemorias_y_Elementos_de_Entrada_y_Salida_Unidad_4.pptx
Memorias_y_Elementos_de_Entrada_y_Salida_Unidad_4.pptx
 
PC tipos de memorias RAM
 PC tipos de memorias RAM PC tipos de memorias RAM
PC tipos de memorias RAM
 

Más de Franklin Parrales Bravo

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaFranklin Parrales Bravo
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebFranklin Parrales Bravo
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaFranklin Parrales Bravo
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosFranklin Parrales Bravo
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebFranklin Parrales Bravo
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaFranklin Parrales Bravo
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasFranklin Parrales Bravo
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosFranklin Parrales Bravo
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosFranklin Parrales Bravo
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosFranklin Parrales Bravo
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosFranklin Parrales Bravo
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraFranklin Parrales Bravo
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareFranklin Parrales Bravo
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software Franklin Parrales Bravo
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosFranklin Parrales Bravo
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosFranklin Parrales Bravo
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosFranklin Parrales Bravo
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosFranklin Parrales Bravo
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoFranklin Parrales Bravo
 

Más de Franklin Parrales Bravo (20)

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en Cuenca
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería Web
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicua
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
 
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modeladoMOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuida
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidas
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgos
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidos
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectos
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestra
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilos
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a Objetos
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y Enrutamiento
 

Último

Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 

Último (7)

Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 

SO Unidad 3: Administración de memoria y sistemas de archivos

  • 1. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 1 25/03/2022 Administración de memoria y sistemas de archivos Unidad 3 Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para uso de los cursos de Sistemas Operativos
  • 2. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 2 25/03/2022 Objetivo general de la Unidad 3 Identificar la administración de memoria y sistemas de archivos por parte del sistema operativo, mediante el análisis de ejercicios de segmentación de memoria, para comprender el funcionamiento de la administración de recursos del computador.
  • 3. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 3 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 4. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 4 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 5. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 5 25/03/2022 Memoria principal La memoria principal (RAM) es un importante recurso que debe administrarse con cuidado. Aunque actualmente una computadora doméstica promedio tiene 10,000 veces más memoria que la IBM 7094, la computadora más grande en el mundo a principios de la década de 1960.
  • 6. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 6 25/03/2022 Memoria principal ¿Que es lo que todo programador quisiera? - Memoria privada. - De tamaño y rapidez infinitas. - Que también sea no volátil. - Barata también. Por desgracia, la tecnología no proporciona tales memorias en estos momentos.
  • 7. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 7 25/03/2022 Memoria principal ¿Cuál es la segunda opción? A través de los años se ha elaborado el concepto de jerarquía de memoria, de acuerdo con el cual, las computadoras tienen: - Unos cuantos megabytes de memoria caché, muy rápida, costosa y volátil. - Unos cuantos gigabytes de memoria principal, de mediana velocidad, a precio mediano y volátil. - Unos cuantos terabytes de almacenamiento en disco lento, económico y no volátil. - El almacenamiento removible, como los DVDs y las memorias USB. • El trabajo del sistema operativo es abstraer esta jerarquía en un modelo útil y después administrarla.
  • 8. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 8 25/03/2022 Jerarquía de memoria Cuando se desciende la jerarquía ocurre: a) Menor costo por bit b) Mayor capacidad c) Menor velocidad d) Disminución de la frecuencia de acceso a la memoria por parte del procesador Principio de localidad
  • 9. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 9 25/03/2022 ¿Por qué funciona la jerarquía de memoria? • Principio de localidad Los programas acceden a una porción relativamente pequeña del espacio de direcciones en algún instante de tiempo. Espacio de direcciones 0 Probabilidad De referencia ❖ Localidad temporal o Si un dato es referenciado, tiende a ser referenciado de nuevo en un tiempo próximo (ciclos o subrutinas) ❖ Localidad espacial o Si un dato es referenciado, los datos con direcciones cercanas tienden a ser referenciados pronto (tablas o matrices)
  • 10. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 10 25/03/2022 Jerarquía de memoria de una computadora • Haciendo uso del principio de localidad: – Presenta al usuario tanta memoria como esté disponible con la tecnología más económica. – Provee acceso con la velocidad disponible con la tecnología más rápida. Control Datapath Secondary Storage (Disk) Processor Registers Main Memory (DRAM) Second Level Cache (SRAM) On-Chip Cache 1s 10,000,000s (10s ms) 10s 100s 100B GB Tamaño (bytes): KB MB Tertiary Storage (Tape) 10,000,000,000s (10s sec) TB Velocidad (ns):
  • 11. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 11 25/03/2022 Clasificación de memoria Memoria RAM (Random-Access Memory) – Todas las memorias mostradas son de acceso aleatorio – Leer y escribir datos rápidamente en ellas – Volátil. Almacenamiento temporal Tipos de memoria RAM Dinámica. Está hecha con celdas que almacenan los datos como cargas en los condensadores. Estática. Almacenan los datos utilizando configuraciones de compuertas que forman biestables (flip-flops)
  • 12. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 12 25/03/2022 Memoria RAM dinámica y estática Acceso aleatorio: el tiempo de acceso es el mismo para todas las localidades –DRAM: Memoria de acceso aleatorio dinámica • Alta densidad, requiere poca energía, económica, • Lenta, dinámica: Necesita ser “refrescada” regularmente (1-2% de ciclos) –SRAM: Memoria de acceso aleatoria estática • Baja densidad, requiere más energía, cara, • Rápida, estática: El contenido durará mientras esté alimentada
  • 13. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 13 25/03/2022 Memoria ROM Las memorias ROM (Read-Only Memory): • Contiene un padrón permanente de datos que no puede alterarse. • Aplicaciones: microprogramación, subrutinas de biblioteca para funciones de uso frecuente, programas del sistema, tablas de funciones.
  • 14. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 14 25/03/2022 Tipos de memoria ROM • PROM. Es no volátil y sólo se puede escribir en ella una sola vez. El proceso de escritura se lleva a cabo eléctricamente y puede realizarlo el suministrador o el cliente con posterioridad. • EPROM: Memoria de sólo lectura programable borrable – Antes de escribir una operación, todas las celdas de almacenamiento deben ser borradas al estado inicial exponiendo el chip a radiación ultravioleta. Mas cara que la PROM, pero tiene la ventaja de que puede ser alterada múltiples veces.
  • 15. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 15 25/03/2022 Tipos de memoria ROM EEPROM: Memoria de sólo lectura programable y borrable eléctricamente. – Puede ser escrita sin borrar contenido anterior. Sólo el o los bytes direccionados son actualizados. – La operación de escritura toma mucho más tiempo que la de lectura. – Combina la ventaja de no-volatibilidad con la flexibilidad de ser actualizable usando controles de bus ordinarios, direcciones y línea de datos. – Es más cara que la EPROM y puede almacenar menos bits por chip.
  • 16. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 16 25/03/2022 Tipos de memoria ROM • Flash – Nombrada así por la velocidad a la cual puede ser reprogramada. – Es intermedia entre la EPROM y la EEPROM en costo y funcionalidad. – Mucho más rápida que la EPROM. – Puede borrar bloques específicos de memoria. – No provee borrado a nivel de bytes. – Tiene la densidad alta de las EPROM.
  • 17. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 17 25/03/2022 Clasificación de memorias Tipo de memoria Categoría Borrado Mecanismo de escritura Volati- bilidad RAM Lectura-escritura Eléctricamente Eléctricamente Volátil ROM Sólo lectura No es posible Máscaras No volátil PROM " " Eléctricamente " EPROM Lectura-frecuente Luz ultravioleta " " EEPROM " Eléctricamente " "
  • 18. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 18 25/03/2022 Memoria principal y registro • Un programa debe ser cargado (de disco) a memoria y colocado en un proceso para ser ejecutado • La memoria principal y los registros son el único tipo de almacenamiento que el CPU puede accesar directamente • El acceso a un registro ocurre en un tick del reloj del CPU (o en menos) • Acceso a memoria puede tomar muchos ciclos • La velocidad de la caché se encuentra entre la memoria principal y los registros • Es requerido protección de memoria para asegurar su correcta operación
  • 19. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 19 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 20. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 20 25/03/2022 Abstracción de memoria Sin abstracción de memoria. La abstracción más simple de memoria es ninguna abstracción. Las primeras computadoras mainframe (antes de 1960), las primeras minicomputadoras (antes de 1970) y las primeras computadoras personales (antes de 1980) no tenían abstracción de memoria. Cada programa veía simplemente la memoria física. MOV REGISTRO1, 1000 El modelo de programación que se presentaba al programador era simplemente la memoria física.
  • 21. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 21 25/03/2022 Abstracción de memoria Sin abstracción de memoria. Forma simple de organizar la memoria sin abstracción. El sistema operativo puede estar en la parte inferior de la memoria en la RAM. Este modelo se utilizó antes en las mainframes y minicomputadoras, pero actualmente casi no se emplea. Programa de Usuario SO en RAM 0xFFF… 0 (a)
  • 22. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 22 25/03/2022 El sistema operativo puede estar en la ROM, en la parte superior de la memoria. Este modelo se utiliza en algunas computadoras de bolsillo y sistemas embebidos. Sin abstracción de memoria. Forma simple de organizar la memoria sin abstracción. Abstracción de memoria Programa de Usuario SO en ROM 0xFFF… 0 (b)
  • 23. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 23 25/03/2022 Abstracción de memoria Los controladores(drivers) de dispositivos pueden estar en la parte superior de la memoria en una ROM y el resto del sistema en RAM más abajo. Este modelo fue utilizado por las primeras computadoras personales. Sin abstracción de memoria. Forma simple de organizar la memoria sin abstracción. Programa de Usuario SO en RAM Controladores de disp en ROM 0xFFF… 0 (c)
  • 24. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 24 25/03/2022 Abstracción de memoria Los modelos (a) y (c) tienen la desventaja de que un error en el programa de usuario puede borrar el sistema operativo, posiblemente con resultados desastrosos. Sin abstracción de memoria. Forma simple de organizar la memoria sin abstracción. Programa de Usuario SO en RAM 0xFFF… 0 (a) Programa de Usuario SO en RAM Controladores de disp en ROM 0xFFF… 0 (c)
  • 25. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 25 25/03/2022 Abstracción de memoria Sin abstracción de memoria. Cuando el sistema se organiza de esta forma, por lo general se puede ejecutar sólo un proceso a la vez. - Tan pronto como el usuario teclea un comando, el sistema operativo copia el programa solicitado del disco a la memoria y lo ejecuta. - Cuando termina el proceso, el sistema operativo muestra un carácter indicador de comando y espera un nuevo comando. - Cuando recibe el comando, carga un nuevo programa en memoria, sobrescribiendo el primero.
  • 26. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 26 25/03/2022 Abstracción de memoria Sin abstracción de memoria. No obstante, aun sin abstracción de memoria es posible ejecutar varios programas al mismo tiempo. Lo que el sistema operativo debe hacer es guardar todo el contenido de la memoria en un archivo en disco, para después traer y ejecutar el siguiente programa.
  • 27. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 27 25/03/2022 Abstracción de memoria Una abstracción de memoria: Espacio de direcciones. Hay que resolver dos problemas para permitir que haya varias aplicaciones en memoria al mismo tiempo sin que interfieran entre sí: - Protección. - Reubicación. El espacio de direcciones es una solución porque crea un tipo de memoria abstracta para que los programas vivan ahí.
  • 28. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 28 25/03/2022 Abstracción de memoria Una abstracción de memoria: Espacio de direcciones. Un espacio de direcciones es el conjunto de direcciones que puede utilizar un proceso para direccionar la memoria. Registros base y límite. La solución sencilla utiliza una versión muy simple de la reubicación dinámica. Lo que hace es asociar el espacio de direcciones de cada proceso sobre una parte distinta de la memoria física. Cuando se utilizan estos registros, los programas se cargan en ubicaciones consecutivas de memoria en donde haya espacio y sin reubicación durante la carga.
  • 29. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 29 25/03/2022 Abstracción de memoria Una abstracción de memoria: Espacio de direcciones. Registros base y límite: Definen el espacio de direcciones lógicas
  • 30. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 30 25/03/2022 Una abstracción de memoria: Espacio de direcciones. Cuando se ejecuta un proceso, el registro base se carga con la dirección física donde empieza el programa en memoria y el registro límite se carga con la longitud del programa.
  • 31. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 31 25/03/2022 Asociación de Instrucciones y Datos a Memoria • Puede ocurrir en tres etapas diferentes: – Tiempo de compilación: Si la posición de memoria se conoce a priori, se puede generar código absoluto; recompilar si la dir. inicial cambia • Ej.: MS-DOS programas .COM – Tiempo de carga: Se genera código relocalizable si la dir. de memoria no se sabe en tiempo de compilación; dirs. asignadas en load time – Tiempo de ejecución: Si un proceso puede ser movido durante su ejecución de un segmento de memoria a otro, la asociación se posterga a tiempo de ejecución. Se necesita soporte de HW • Usado por la mayoría de los SOs actuales
  • 32. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 32 25/03/2022
  • 33. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 33 25/03/2022 Espacio de Direcciones(Address Space) El espacio de direcciones es el espacio en memoria asignado al proceso. Aquí se encuentra el código del proceso y los datos que este utiliza. Desde el punto de vista del proceso, el Address Space es la única memoria existente en el sistema, no pudiendo acceder a direcciones foráneas. En el caso de sistemas sin paginación, el espacio de direcciones no puede ser particionado en páginas, y ser cargado por partes o llevado parcialmente a swap; resultando en que el bloque de memoria esta realmente presente ya sea en RAM o disco. Address Space Código Datos Stack Registros Cuando se tiene paginación, entonces el espacio de direcciones es dividido en páginas, y resultando en que no todo este en RAM, sino solo una porción. A este concepto de un espacio que realmente no esta por completo ni en memoria, ni en disco; se le denomina Espacio de Direcciones Virtual.
  • 34. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 34 25/03/2022 Espacio de Direcciones Físico vs. Lógico • Conceptos – Dirección lógica – generada por el CPU; también llamada dirección virtual – Dirección física – dirección vista por la unidad de memoria • Direcciones lógicas y físicas son las mismas en los esquemas de tiempo de compilación y tiempo de carga; difieren en el esquema de tiempo de ejecución
  • 35. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 35 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 36. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 36 25/03/2022 Administrador de memoria La parte del sistema operativo que administra la jerarquía de memoria se conoce como administrador de memoria. • Llevar el registro de cuáles partes de la memoria están en uso. • Asignar memoria a los procesos cuando la necesiten. • Desasignarla cuando terminen.
  • 37. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 37 25/03/2022 Administración de Memoria Básica Monoprogramación sin intercambio ni paginación - Solo 1 programa a la vez en la memoria - Cuando termina el programa puede ejecutarse el siguiente Programa de Usuario SO en RAM 0xFFF… 0 Programa de Usuario SO en ROM 0xFFF… 0 Programa de Usuario SO en RAM Controladores de disp en ROM 0xFFF… 0
  • 38. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 38 25/03/2022 Multiprogramación con Particiones Fijas - La RAM se divide en varios espacios de tamaños variables para poder contener procesos de largos distintos - Particiones pequeñas pueden ser utilizadas pro procesos interactivos dependientes del Input del usuario - Particiones más grandes son utilizadas por procesos mas intensivos en CPU Partición 4 Partición 3 Partición 2 Partición 1 Sistema Operativo 800k 700k 400k 200k 100k 0 Partición 4 Partición 3 Partición 2 Partición 1 Sistema Operativo 800k 700k 400k 200k 100k 0 Administración de Memoria Básica
  • 39. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 39 25/03/2022 Reubicación - Cuando se utiliza el esquema de multiprogramación, se debe resolver el problema de resolver la dirección real de la instrucción que se está ejecutando. - Cada programa al enlazarse produce direcciones relativas dentro del código. Estas deben resolverse a direcciones absolutas dentro de la memoria tomando en cuenta la partición en que se encuentra. Esto se conoce como reubicación. Partición 4 Partición 3 Partición 2 Partición 1 Sistema Operativo 800k 700k 400k 200k 100k 0 100 0 Procedimiento que se encuentra en la dirección 100 relativa del programa 100 + 409.600 = 409.700 400k = byte 409.600 Administración de Memoria Básica
  • 40. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 40 25/03/2022 Protección - Al tener multiprogramación se genera el problema de poder asegurar que los programas de usuario no puedan tener acceso a los datos o código de otros procesos. Este es el problema de protección. Partición 4 Partición 3 Partición 2 Partición 1 Sistema Operativo 800k 700k 400k 200k 100k 0 Registro Base Registro Límite Al hacer un acceso a memoria, el SO toma el valor del registro base y lo suma a la dirección solicitada. paddr = vaddr + regBase Si el resultado no excede el valor del registro límite, entonces se permite el acceso. paddr = dirección física (real) vaddr = dirección virtual Administración de Memoria Básica
  • 41. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 41 25/03/2022 Intercambio Cuando los procesos que se están activos en un sistema sobrepasan en tamaño a la memoria disponible, los excedentes deben mantenerse en disco y traerse a la memoria en forma dinámica para que se ejecuten. El intercambio consiste en mover procesos completos desde la memoria a disco y viceversa. El proceso se trae a memoria principal, se ejecuta por un periodo de tiempo y luego se guarda en disco hasta que sea su turno nuevamente. S.O. A S.O. A B S.O. A B C S.O. B C S.O. B C D S.O. C D A Memoria disponible
  • 42. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 42 25/03/2022 Problemas: • Los procesos en este esquema son de tamaño fijo • Deja espacios entre procesos que son pueden ser utilizados. Este fenómeno se conoce como fragmentación externa, dado que se producen fragmentos de memoria inútiles afuera de los procesos. • Dado que los programas se mueven de posición en el tiempo, el SO debe poder manejar un esquema de reubicación y protección más complejo que los modelos anteriores. S.O. S.O. A S.O. S.O. A B S.O. S.O. A B C S.O. S.O. B C S.O. S.O. B C D S.O. S.O. C D A Intercambio
  • 43. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 43 25/03/2022 S.O. B C D Compactación - Consiste en mover los procesos hacia la parte baja de la memoria, agrupando los espacios libres de memoria. Así se logra poder colocar más procesos. - El problema es que el proceso de compactación toma MUCHO tiempo. S.O. B C D Intercambio
  • 44. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 44 25/03/2022 S.O. A B Asignación de memoria con procesos de tamaño variable - Al tener procesos cuyo segmento de datos puede crecer el problema de la asignación de memoria se complejiza, pues el SO debe cuidar de dejar espacio para la expansión, de lo contrario se gastará mucho tiempo liberando espacio cada vez que se quiera más memoria. - El heap es el espacio de datos de un proceso que puede ir creciendo a medida que se ejecuta. El SO debe asignar algún espacio para que este pueda crecer, el cual no es ocupado de inmediato. Este efecto de desperdiciar memoria al interior del proceso se conoce como fragmentación interna. Programa de B Heap de B Stack de B Espacio libre propio de B Intercambio
  • 45. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 45 25/03/2022 Ubicación de un proceso dentro de la memoria - Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno nuevo, se debe escoger en que lugar disponible se le colocará. Método del primer ajuste El proceso se coloca en el primer lugar disponible de la memoria partiendo de la parte baja de la misma. S.O. Memoria RAM 0 100 300 600 800 A B D C S.O. Memoria RAM 0 100 300 600 800 A B C Intercambio
  • 46. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 46 25/03/2022 Ubicación de un proceso dentro de la memoria - Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno nuevo, se debe escoger en que lugar disponible se le colocará. Siguiente del primer ajuste El proceso se coloca en la siguiente posición disponible donde el proceso quepa, desde la última ubicación que realizó. Si llega al final, comienza de nuevo en el cero. S.O. Memoria RAM 0 100 300 600 800 A B D C E S.O. Memoria RAM 0 100 300 600 800 A B D C E Intercambio
  • 47. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 47 25/03/2022 Ubicación de un proceso dentro de la memoria - Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno nuevo, se debe escoger en que lugar disponible se le colocará. Mejor Ajuste El proceso se coloca en el espacio libre que más se ajuste al tamaño. F S.O. Memoria RAM 0 100 300 600 800 A B D C E S.O. Memoria RAM 0 100 300 600 800 A B D C E F Intercambio
  • 48. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 48 25/03/2022 Ubicación de un proceso dentro de la memoria - Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno nuevo, se debe escoger en que lugar disponible se le colocará. Peor Ajuste El proceso se coloca en el espacio libre más grande disponible. F S.O. Memoria RAM 0 100 300 600 800 A B D C E S.O. Memoria RAM 0 100 300 600 800 A B D C E F Intercambio
  • 49. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 49 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 50. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 50 25/03/2022 Memoria Virtual Introducción - Los programas realizan accesos a la memoria indicando direcciones virtuales (lugar donde creen esta el dato que requieren) a las cuales desean acceder. Estas direcciones conforman el espacio de direcciones virtuales del proceso, que es el conjunto de memoria que conceptualmente esta asociado al proceso. - Las direcciones virtuales no pueden ser enviadas directamente a la memoria pues no corresponden a la verdadera posición. Estas son convertidas en direcciones físicas (posición real dentro del chip de RAM) por la MMU (Memory Management Unit - Unidad de Manejo de Memoria). CPU MMU RAM Discos CPU envía direcciones virtuales a la MMU MMU envía direcciones físicas a la memoria
  • 51. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 51 25/03/2022 Paginación - Consiste en dividir el espacio de direcciones virtual en unidades de tamaño invariante llamadas páginas. - Los marcos de página son la correspondencia de una página en la memoria física, es decir, el espacio en la RAM donde realmente esta la página, teniendo ambos el mismo tamaño. De esta forma, todas las unidades de transferencia de datos desde y hacia la RAM se hacen en el tamaño de una página. Proceso A Proceso A Proceso A RAM Página Marco de Página Memoria Virtual
  • 52. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 52 25/03/2022 Tabla de Páginas - La relación entre las paginas (espacio de direcciones virtual) y los marcos de páginas (memoria física) está dada por la Tabla de páginas. Esta se encuentra almacenada en la memoria RAM X 2 3 X 7 X X 0 5 X X 6 4 X 1 X (pagina 15) 60k – 64k 56k – 60k 52k – 56k 52k – 48k 48k – 44k 44k – 40k 40k – 36k 36k – 32k 32k – 28k 28k – 24k 24k – 20k 20k – 16k 16k – 12k 12k – 8k 8k – 4k (página 0) 4k – 0k Espacio De Direcciones Virtual 2 3 7 0 5 6 4 1 32k – 28k 28k – 24k 24k – 20k 20k – 16k 16k – 12k 12k – 8k 8k – 4k 4k – 0k Memoria RAM Tabla de Páginas Marco de Página Página Memoria Virtual
  • 53. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 53 25/03/2022 Conversión de direcciones - Al momento que un proceso realiza un acceso a memoria, se debe convertir la dirección virtual entrante en la dirección física, consultando la tabla de páginas. Para convertir se debe: - Ubicar la página a la que pertenece la dirección virtual: vaddr / Tamaño Página (DIV ENTERA) - Ubicar el marco de página al que corresponde - Calcular el desplazamiento: vaddr – (N°Pag * Tamaño Página) - Sumar el desplazamiento a la dirección base del marco de página Ejemplo: Dirección virtual (vaddr): 36777 Tamaño de página: 4096b Página = 36777 / 4096 (DIV ENTERA) = 8 Marco de la página 8 = 0 Desplazamiento = 36777 – (8 * 4096) = 4009 Dirección Física (paddr) = 0 * 4096 + 4009 = 4009 36864 (Pág. 8) 32768 0 4096 0 desplazamiento 4009 paddr 0 36777 vaddr Memoria Virtual
  • 54. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 54 25/03/2022 Fallos de página - En la tabla de páginas existe un bit de validez por cada página, que indica si esta está presente en la memoria principal o no. - Un fallo de página ocurre cuando se solicita una página del espacio de direcciones virtual y esta no tiene marco de página asignado, es decir, no tiene correspondencia en la memoria física. - Al ocurrir un fallo de página, la MMU emite una interrupción “Page Fault” provocando trap al sistema para poder manejar la situación - El sistema operativo toma el control, cargando la página desde el disco duro a la memoria reanudando el proceso luego de eso. Si no hay memoria disponible, se debe llevar uno o más marcos de páginas al disco para liberar espacio. 0 X X 2 3 X 1 X 32k – 28k 28k – 24k 24k – 20k 20k – 16k 16k – 12k 12k – 8k 8k – 4k 4k – 0k Espacio De Direcciones Virtual 2 3 0 1 16k – 12k 12k – 8k 8k – 4k 4k – 0k Memoria RAM Memoria Virtual
  • 55. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 55 25/03/2022 0 X X 2 3 X 1 X 32k – 28k 28k – 24k 24k – 20k 20k – 16k 16k – 12k 12k – 8k 8k – 4k 4k – 0k Espacio De Direcciones Virtual 2 3 0 1 16k – 12k 12k – 8k 8k – 4k 4k – 0k Memoria RAM TRAP AL SISTEMA OPERATIVO Acceso dirección 27688 Hay marcos Libres? 0 X 2 3 X 1 X 2 3 0 1 X Se carga la página a memoria Se lleva una o más páginas a disco Proceso continua si no Memoria Virtual
  • 56. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 56 25/03/2022 Estructura de la tabla de Páginas Tabla de Páginas bit cache bit solicitada Bit modificada Bits protección Bit validez Número De Marco De Página Indica al sistema operativo si realiza cache de la página. Útil cuando la página contiene estados de dispositivos. Indica si la página ha sido usada. Útil para ayudar al SO a elegir cuales páginas le conviene mandar a disco. Indica si la página ha sido modificada desde que entró a la memoria. Ayuda al SO a determinar si debe guardarla al sacarla de la RAM. Indica los permisos que se tienen sobre la página. 3 bits: R = permiso de lectura W = permiso de escritura X = permiso de ejecución Indica si la página tiene un márco de página valido (esta en RAM) Contiene el numero del marco de página donde está esta página. El valor no tiene importancia si el bit de validez esta en cero. Memoria Virtual
  • 57. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 57 25/03/2022 Tabla de Páginas dentro de la MMU 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 Pág Virtual Marco Validez 15 001 1 14 0 13 101 1 12 111 1 11 0 10 100 1 9 011 1 8 0 7 0 6 110 1 5 0 4 010 1 3 0 2 0 1 000 1 0 0 N° de Página Desplazamiento Dirección Virtual (vaddr) Dirección Física (paddr) 0110x0 = 6 Espacio de direcciones virtual de 16bits (64kb) Memoria de 32kb (15bits necesarios) Memoria Virtual
  • 58. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 58 25/03/2022 Tablas de Páginas Multinivel TP1 TP2 Desplazamiento 32bits 10bits 10bits 12bits Páginas de 4kb Tabla de página de primer nivel (…) 1023 0 Tabla de página de segundo nivel A páginas (vaddr) Memoria Virtual
  • 59. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 59 25/03/2022 TLB: Translation Lookaside buffer - El Búfer de consulta para traducción (TLB), contiene la misma estructura de la tabla de páginas. Contiene muy pocas entradas (8 – 64) con la información de las últimas páginas solicitadas. - Acelera las consultas considerablemente pues busca simultáneamente en todas las entradas de la TLB la página solicitada. Si se encuentra, se reemplaza el numero de marco directamente. Si no esta, se produce una consulta ordinaria a la tabla de página, agregando la información a la TLB. CPU MMU TLB Consulta a la Tabla de páginas vaddr FalloTLB Encontrado en TLB paddr Memoria Virtual
  • 60. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 60 25/03/2022 Tablas de páginas Invertidas - Solución en los sistemas de 64bits donde el espacio de direcciones virtual es 264, Ej: con páginas de 4kb (212) se requieren de 252 posiciones si cada entrada de la tabla de páginas requiere 8 bytes: 23 * 252 = 255 = 3,6 * 1016 bytes -Consiste en tener una entrada por cada marco de memoria real en lugar de una por cada página del espacio de direcciones virtual. Tabla de páginas tradicional con las 264 entradas 256Mb en páginas de 4kb = 216 posiciones 216-1 0 Tabla de hash indexada por hash sobre pag viartual Página Marco Memoria Virtual
  • 61. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 61 25/03/2022 Tablas de páginas Invertidas: Consideraciones -Al estar ahora indexada por número de marco, no es posible buscar usando los bits superiores de la vaddr. - Al buscar el marco al que corresponde la página se debe ir a mirar la memoria donde esta almacenada la Tabla de Páginas. -Es necesario el uso de la TLB para poder agilizar el proceso. Memoria Virtual
  • 62. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 62 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 63. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 63 25/03/2022 Algoritmos de Reemplazo de Páginas Generalidades - Al ocurrir un fallo de página, el sistema operativo debe cargar a memoria la página que contiene la dirección de memoria solicitada. Si no existe lugar disponible en la memoria, entonces se deberá desalojar algunas para hacer espacio. - Desalojar páginas poco usadas es mas conveniente que desalojar otras más populares, pues es muy probable que se deban traer de vuelta las más utilizadas. - Se debe tener el cuidado sobre que hacer con las páginas de acuerdo a si han sido modificadas o no. Una página no modificada se puede acceder desde su ubicación inicial en el disco. Una página modificada debe ser escrita a disco para no perderla. RAM ? Swap Eliminacion
  • 64. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 64 25/03/2022 Casos de desalojo de páginas - Páginas No Modificadas, Solo Lectura: se eliminan pues pueden ser re-leídas desde su posición original en el disco. (Ej: segmento de codigo) - Páginas Modificadas, que no han salido a swap: se escriben al swap para no perderlas (Ej: stack) - Páginas No Modificadas, que han salido a swap: se verifica si la ubicación en swap es válida, si lo es, no elimina. - Páginas Modificadas: se escriben a swap. Algoritmos de Reemplazo de Páginas
  • 65. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 65 25/03/2022 Algoritmo Óptimo - Caso utópico en el cual se selecciona para desalojo la página que se referenciará más lejos en el tiempo, postergando así el fallo de página hasta el máximo. - Imposible de Implementar pues supone el conocimiento de que páginas serán solicitadas por el proceso, a priori. Página 1 Tiempos de referencia: 123, 1002, 2099, 4009, 10000 Página 2 Tiempos de referencia: 11, 20000, 22444, 22443 Página 3 Tiempos de referencia: 1000, 1001, 1002, 1003 Página 4 Tiempos de referencia: 500, 11000, 11001, 23000 Página 5 Tiempos de referencia: 123, 1002, 2099, 4009, 10000 Página Entrante A desalojar Algoritmos de Reemplazo de Páginas
  • 66. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 66 25/03/2022 NRU: Not Recently Used – No usadas recientemente - En este método cada página contiene 2 bits que permite decidir cual página desalojar: - R (bit solicitado): Se enciende cuando se realiza un acceso a esta página - M (bit modificado): Se enciende cuando se escribe en la página. - Se establecen así 4 clases de acuerdo al valor de los bits: - Clase 0: No solicitado, No Modificado - Clase 1: No solicitado, Modificado - Clase 2: Solicitado, No Modificado - Clase 3: Solicitado, Modificado - El algoritmo escoje una página partiendo desde las con clase menor. - El sistema operativo en cada interrupción de reloj cambia el estado del bit R, para poder identificar cuales páginas son accedidas constantemente durante el quantum. Algoritmos de Reemplazo de Páginas
  • 67. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 67 25/03/2022 NRU: Not Recently Used – No usadas recientemente Pag Bit R Bit M 0 0 0 1 0 0 2 0 0 3 0 0 Estado de la tabla de páginas en t0 Quantum Pag Bit R Bit M 0 1 1 1 1 0 2 0 0 3 1 1 Estado de la tabla de páginas en t1 Durante el siguiente cuantum se hacen accesos a las páginas 0 y 1, luego se pide la página 4 que no esta presente y se provoca un Page Fault. El SO apaga todos los bits R para poder determinar cuales de las páginas han sido ocupadas Pag Bit R Bit M 0 0 1 1 0 0 2 0 0 3 0 1 Estado de la tabla de páginas en t2 Quantum Pag Bit R Bit M 0 1 1 1 1 0 2 0 0 3 0 1 Estado de la tabla de páginas en t3 Durante el quantum se acceden las páginas 0, 1 y 3; y se escribe en las 0 y 3 Será desalojada Algoritmos de Reemplazo de Páginas
  • 68. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 68 25/03/2022 FIFO: First In First Out - Simplemente se escoge para desalojo la página que entró primero a la memoria. - Al ser un método mecánico sin mayor análisis, puede desalojar páginas muy utilizadas. Pág 1 Pág 2 Pág 3 Pág 4 Pág 5 Pág 1 Pág 2 Pág 3 Pág 4 Pág 1 Pág 2 Pág 3 Pág 1 Pág 2 Pág 1 Pág 6 Pág 2 Pág 3 Pág 4 Pág 5 Pág 6 Pág 7 Pág 3 Pág 4 Pág 5 Pág 6 Pág 7 Pág 8 Pág 4 Pág 5 t0 t1 t2 t3 t4 t5 t6 t7 Memoria de 5 marcos Algoritmos de Reemplazo de Páginas
  • 69. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 69 25/03/2022 Second Chance – Segunda Oportunidad - Modificación de FIFO que permite evitar el problema de desalojar una página que sea muy utilizada. - Las páginas se mantienen ordenadas en el orden en que llegaron a la memoria, en una lista enlazada por ejemplo. - Cada vez que se elige una página como candidato para desalojar, se mira su bit de uso (R). - Si esta en 1, se apaga, se coloca la página al final y se sigue con la siguiente (dándole así una segunda oportunidad). - Si esta en 0, se escoge esa página para el desalojo. - A diferencia de NRU, el SO solo resetea el bit a cero cuando esta buscando una página para desalojar, y no en cada interrupción de reloj. Algoritmos de Reemplazo de Páginas
  • 70. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 70 25/03/2022 Second Chance – Segunda Oportunidad Pág 1 1 Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0 En FIFO la Página 1 saldría 0 Orden de entrada a la memoria Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 0 0 Pág 2 0 Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 0 Se mira la primera página (la más vieja). Tiene su bit de uso en 1, por lo tanto se le da otra oportunidad. Se setea en cero R, y se pasa a la cola Idem al caso anterior Al encontrarse una página con el bit en cero, se escoge para desalojo. En el caso de que todas las páginas hayan tenido el bit de uso en cero, este algoritmo degrada en FIFO. Algoritmos de Reemplazo de Páginas
  • 71. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 71 25/03/2022 Tipo Reloj (Clock) - Muy similar a Second Chance, también utiliza el bit de uso para entregar una segunda oportunidad a las páginas antes de desalojarlas. -Las páginas son colocadas en una lista enlazada circular que el sistema operativo va revisando secuencialmente como la manecilla de un reloj. - Si la página tiene bit R = 1, lo apaga y sigue con la página siguiente. - Si la página tiene bit R = 0, la desaloja. Pág 1 1 Pág 2 0 Pág 3 0 Pág 4 0 Bit R = 1, se apaga y se sigue con el siguiente Pág 1 0 Pág 2 0 Pág 3 0 Pág 4 0 Bit R = 0 Se desaloja la página Algoritmos de Reemplazo de Páginas
  • 72. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 72 25/03/2022 2 0 4 3 1 2 0 1 4 3 100 150 120 40 60 LRU: Least Recentely Used – Menos Recientemente Usada - Algoritmo que busca desalojar la página que lleva mas tiempo sin usarse, tomando como base que las más usadas, seguirán siendo solicitadas en el futuro. - Se puede implementar a través de: - Lista enlazada: el sistema mantiene una lista de las páginas en memoria. Cada vez que se referencia una página, se mueve el nodo al final de la lista. Al momento de ocurrir un fallo de página se escoge la primera página de la lista. - Contador: El sistema mantiene un contador por página que se aumenta en cada interrupción de reloj. Al ocurrir un fallo de página se escoge la página con el contador con el menor valor. 2 0 1 4 3 2 0 4 3 1 Acceso página 1 Acceso página 5 → fallo de página 2 0 1 4 3 100 0 120 40 60 Acceso página 1 En t=150 2 0 1 4 3 100 150 120 40 60 Acceso página 5 En t=160 Página a desalojar Página a desalojar Algoritmos de Reemplazo de Páginas
  • 73. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 73 25/03/2022 Working Set – Set de trabajo - Empíricamente los procesos al ejecutarse no hacen referencia a todas sus páginas constantemente. Sucede que en cualquier fase de la ejecución el proceso exhibe una localidad de referencia, es decir, accede a un subconjunto pequeño de la totalidad de sus páginas - Formalmente se denomina Conjunto de Trabajo al conjunto de páginas que está utilizando en un momento dado. Este no es fijo, y cambia periódicamente a medida que el proceso se ejecuta. - Si no existe memoria disponible en el sistema para contener el conjunto de trabajo de un proceso, este generará muchos fallos de páginas en un número reducido de instrucciones. A este fenómeno se le denomina Thrasing o Hiperpaginación. - El algoritmo Working Set se basa en lograr mantener en memoria las páginas que se consideran dentro del conjunto de trabajo para así reducir al máximo la cantidad de Page Faults. - Para establecer el conjunto se puede usar uno de los siguientes métodos: - Páginas referenciadas en los k últimos accesos a memoria, aquellas que no están en el conjunto pueden ser desalojadas - k últimas páginas referenciadas, idem caso anterior - Usar el tiempo virtual de ejecución (tiempo real que ha ocupado el proceso en CPU) para determinar la edad de la página. Aquellas que sobrepasan una edad máxima T se consideran fuera del conjunto y pueden ser desalojadas. (RECOMENDADO) - Se asume se tiene hardware que enciende los bits R y M adecuadamente. - El bit R se apara en cada interrupción de reloj, actualizando el tiempo de acceso a aquellas páginas cuyo bit R es 1. Algoritmos de Reemplazo de Páginas
  • 74. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 74 25/03/2022 Working Set – Set de trabajo - Usando un set de trabajo con T = 50 Accesos a páginas 1,2,4 durante quantum 2 0 1 4 3 50 50 60 15 60 Pág Ult Uso R 0 0 0 0 0 tVirtual = 80 WS = {0, 1, 2, 4} 2 0 1 4 3 50 110 110 15 110 Pág Ult Uso R 0 0 0 0 0 WS = {1, 2, 4} tVirtual = 110 2 0 1 4 3 50 50 60 15 60 Pág Ult Uso R 0 1 1 0 1 tVirtual = 110 WS = {0, 1, 2, 4} Páginas que pueden ser desalojadas Algoritmos de Reemplazo de Páginas
  • 75. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 75 25/03/2022 Modelamiento del reemplazo de páginas Anomalía de Belady - Caso donde agregar marcos a la memoria de un proceso aumenta la cantidad de fallos de página, en lugar de disminuirlos. - Ej: sean 2 sistemas con reemplazo de páginas por FIFO con 3 y 4 marcos respectivamente, con los accesos a páginas: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4. Secuencia de acceso 0 1 2 3 0 1 4 0 1 2 3 4 Mas reciente 0 1 2 3 0 1 4 4 4 2 3 3 0 1 2 3 0 1 1 1 4 2 2 Mas antigua 0 1 2 3 0 0 0 1 4 4 P P P P P P P P P 9 Page Faults Secuencia de acceso 0 1 2 3 0 1 4 0 1 2 3 4 Mas reciente 0 1 2 3 3 3 4 0 1 2 3 4 0 1 2 2 2 3 4 0 1 1 3 0 1 1 1 2 3 4 0 1 2 Mas antigua 0 0 0 1 2 3 4 0 1 P P P P P P P P P P 10 Page Faults
  • 76. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 76 25/03/2022 Algoritmos de pila - Se denomina cadena de referencias a la secuencia de páginas que solicita un proceso durante su ejecución. - Se llaman algoritmos de pila aquellos cuya cadena de referencia de páginas que están en memoria para un numero m de marcos de memoria, es subconjunto de m + 1, es decir, en usando m + 1 marcos tenemos las misma páginas que con m más una adicional, considerando un arreglo M con tantas posiciones como páginas tiene el proceso. Cadena de ref. 0 2 1 3 5 4 3 1 Paginas 0 2 1 3 5 4 3 1 En 0 2 1 3 5 4 3 Memoria 0 2 1 3 5 4 Páginas 0 2 1 1 5 En 0 2 2 2 Swap 0 0 0 P P P P P P P Cadena de ref. 0 2 1 3 5 4 3 1 Paginas 0 2 1 3 5 4 3 1 En 0 2 1 3 5 4 3 Memoria 0 2 1 3 5 4 0 2 1 1 5 Páginas En 0 2 2 2 Swap 0 0 0 P P P P P P Un marco más M Modelamiento del reemplazo de páginas
  • 77. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 77 25/03/2022 Cadena de distancias - En el caso de los algoritmos de pila, la referencia a una página puede abstraerse como la distancia desde la parte superior de la pila donde se colocó la página. - La cadena de distancias lleva el conteo de la cantidad de veces que se ha accedido a páginas en cada una de las posibles distancias, considerando que Cadena de ref. 0 2 1 3 5 4 3 1 Paginas 0 2 1 3 5 4 3 1 En 0 2 1 3 5 4 3 Memoria 0 2 1 3 5 4 Páginas 0 2 1 1 5 En 0 2 2 2 Swap 0 0 0 Página 3 no esta presente, por lo tanto su distancia es Infinita Ahora la página 3 estaba en la 3 posición antes de su referencia. Distancia = 3 Página 1 estaba en la 4 posicion cuando fue referenciada. Distancia = 4 C1 = 0 Cadena de Distancias C2 = 0 C3 = 1 C4 = 1 C5 = 0 C6 = 0 C∞ = 6 Modelamiento del reemplazo de páginas
  • 78. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 78 25/03/2022 Predicción de la tasa de fallos de página - La cadena de distancias permite apreciar claramente la cantidad de fallos de página que habrán con una determinada cadena de referencias usando una cantidad de marcos de memoria. Utilizando la siguiente fórmula se puede obtener el vector F, que contiene la cantidad de fallos de página con las condiciones dadas: Ej: Cadena de Distancias C1 = 4 C2 = 4 C3 = 2 C4 = 3 C5 = 0 C6 = 2 C∞ = 6  + = + =  C C F n m k k m 1 m = marcos de página n = número de páginas del proceso F1 = 17 F2 = 13 F3 = 11 F4 = 8 F5 = 8 F6 = 6 F∞ = 6 C2 + C3 + C4 + C5 + C6 + C∞ C3 + C4 + C5 + C6 + C∞ C4 + C5 + C6 + C∞ C5 + C6 + C∞ C6 + C∞ C∞ Fallos de página con 2 marcos En este caso aumentar un marco no aporta a la disminución de fallos de página Modelamiento del reemplazo de páginas
  • 79. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 79 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 80. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 80 25/03/2022 Aspectos de diseño de sistemas con paginación Asignación local v/s global - Cuando existen múltiples procesos ejecutándose, entonces nace el problema sobre si aplicar el algoritmo de reemplazo de páginas localmente sobre el conjunto de marcos asignados al proceso que genera el fallo de páginas, o globalmente sobre el total de los marcos de memoria. - El método local no permite que el conjunto de trabajo crezca, pudiendo fácilmente producir thrashing. - El método global permite ajustar el tamaño del working set. Introduce el uso de un nuevo algoritmo de reemplazo de páginas: PPF: Page Fault Frequency. - El algoritmo de Frecuencia de Fallos de Página analiza la cantidad de fallos de página por proceso, entregando más marcos a aquellos con altas tasas de Page Fault, y quitando a aquellos con bajo número de fallos. Marcos de Página asignados Fallos de página Nivel Máximo Nivel Mínimo A2 A0 A1 B1 B0 50 50 40 15 60 Pág Ult Uso B4 B2 B3 C1 C0 30 70 60 25 25 Seleccionada usando política local Ej: A requiere un marco adicional Seleccionada usando política global Grafico análisis PPF
  • 81. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 81 25/03/2022 Tamaño de la página - Es elegido por el sistema operativo, aun cuando el hardware pueda estar diseñado para trabajar con otro tamaño. Ej: SO con páginas de 1Kb, HW con páginas de 512b, el SO trabajará siempre con 2 páginas de HW por cada de software. - Reducir el tamaño de la página, reduce la fragmentación interna pues se desperdicia menos memoria en la última página; sin embargo esto aumenta el tamaño de la tabla de páginas haciendo más engorro el trabajo con esta. Ej: Proceso de 25kb 13 Páginas de 2Kb 7 Páginas de 4Kb Desperdicio: 1kb Desperdicio: 3kb 25 Páginas de 1Kb Desperdicio: 0kb Aspectos de diseño de sistemas con paginación
  • 82. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 82 25/03/2022 Tamaño de la página - La memoria en juego corresponde al tamaño de la tabla de páginas y al desperdiciado en la última página del proceso. - Asumiendo que en promedio se pierde la mitad de la última página, se puede modelar la cantidad esta cantidad de memoria a través de la siguiente fórmula: Podemos minimizar entonces la cantidad de memoria en juego con el tamaño de página como parámetro derivando e igualando a cero, dado que la segunda derivada es negativa para cualquier valor de p entero positivo. 2 p p e s +  Siendo: s = el tamaño promedio de los procesos e = el tamaño de 1 entrada de la tabla de páginas p = el tamaño de 1 página 0 2 1 2 = +  − p e s e s p  = 2 Aspectos de diseño de sistemas con paginación
  • 83. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 83 25/03/2022 Páginas Compartidas - Si se ejecuta varias veces el mismo proceso en memoria, es muy conveniente compartir las páginas de este, en lugar de duplicarlas. - El problema más complejo es cuando se comparten páginas de datos, dado que 2 procesos de un mismo programa pueden tener datos diferentes por lo que se debe permitir esta distinción. - El mecanismo utilizado por los sistemas *nix (unix, linux, bsd, etc) es el copy on write o copiar al escribir. Cuando se realiza la syscall fork para crear un proceso hijo: - El SO crea una nueva tabla de páginas para este, pero no copia ninguna página, sino que apunta a las páginas del proceso padre. - A continuación se marcan todas las páginas de ambas tablas con read-only. - Al intentar uno de los procesos de modificar una página, se produce un trap al SO que duplica la página para que ambos procesos puedan trabajar de forma independiente, se quita el read-onlyy se continúa la ejecución. Aspectos de diseño de sistemas con paginación
  • 84. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 84 25/03/2022 Páginas Compartidas Proceso A 2 0 1 4 3 1 3 6 2 7 Pág Marco R 0 0 1 1 1 Proceso Hijo de A 2 0 1 4 3 1 3 6 2 7 Pág Marco R 0 0 0 0 0 fork Proceso A 2 0 1 4 3 1 3 6 2 7 Pág Marco R 0 0 0 0 0 Proceso Hijo de A 2 0 1 4 3 1 3 6 10 7 Pág Marco R 0 0 0 1 0 El proceso hijo de A intenta de escribir en la página 3. El SO duplica la página en otro marco y permite la modificación Aspectos de diseño de sistemas con paginación
  • 85. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 85 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 86. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 86 25/03/2022 Segmentación • Como mejorar la utilización de la memoria – Partes de cada proceso • Código – programa y tal vez librerías compartidas • Datos – asignado y heap • Stack – Solución • Dividir el proceso en piezas lógicas. SEGMENTACION • Conjunto múltiple de registros límite y base • Llamados registros de segmento • Ventajas – Segmentos de código no necesita ser enviado a swap. Puede ser compartido – Stack y heap pueden crecer – podrían requerir swap
  • 87. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 87 25/03/2022 Segmentación • No es necesario que todos los segmentos de todos los programas tengan la misma longitud. • Existe una longitud máxima de segmento. • Un dirección lógica segmentada consta de dos partes, un número de segmento y un desplazamiento. • Como consecuencia del empleo de segmentos de distinto tamaño, la segmentación resulta similar a la partición dinámica.
  • 88. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 88 25/03/2022 Vista del Usuario para los programas
  • 89. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 89 25/03/2022 Vista lógica de la segmentación 1 3 2 4 1 4 2 3 Espacio de usuario Espacio de memoria físico
  • 90. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 90 25/03/2022 Segmentación
  • 91. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 91 25/03/2022 Segmentación • Dirección lógica: <número de segmento, offset>, • Tabla de segmentos – mapea a direcciones físicas. Cada entrada de la tabla tiene – Base – Límite
  • 92. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 92 25/03/2022 Búsqueda de un segmento segmento 0 segmento 1 segmento 2 segmento 3 segmento 4 Memoria física segmento # + Dirección virtual <? ? no si offset base limit Tabla de segmentos Índice del segmento Dirección física
  • 93. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 93 25/03/2022 Segmentación • Protección. Cada entrada en la tabla de segmentos incluye: – Bit de validación = 0  segmento ilegal – Privilegios read/write/execute • Bits de protección asociados con segmentos; código se puede compartir a nivel de segmento. • Los segmentos son de tamaños distintos. Por lo tanto la asignación de memoria corresponde a una asignación dinámica
  • 94. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 94 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 95. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 95 25/03/2022 TOP y HTOP • Ambos nos permiten una mirada rápida y detallada de nuestro sistema, mostrando una lista detallada de los procesos en ejecución, indicándonos el consumo del CPU, RAM, tiempo de ejecución, PID (identificador de procesos) , etcétera. • Diferencias: el informe de HTOP esta potenciado, ya que además cuenta con menús para tener un control más claro de los procesos, opción para matar procesos sin necesidad de salir del mismo, y más. • TOP esta siempre presente, para usar HTOP toca hacer una instalación extra. TOP HTOP 1
  • 96. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 96 25/03/2022 TOP y HTOP • PR – PRI indica la prioridad del proceso. • NI indica el valor nice del proceso, a menor valor priodidad más alta. • VIRT indica el uso de memoria virtual. • RES indica la memoria física usada. • SHR indica la memoria compartida usada en el proceso. • S muestra el estado de un proceso, estos pueden variar entre: • D – espera no interrumpible • R – En ejecución • S – en espera • T – En seguimiento o Detenido • Z – Proceso en estado zombie • %CPU porcentaje de uso del CPU • %MEM porcentaje de uso de la memoria RAM • COMMAND comando con que se inicio el proceso 1
  • 97. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 97 25/03/2022 FREE • Sirve para determinar la cantidad de memoria y espacio de intercambio disponible en el sistema. Si incluimos la etiqueta -t , se podrá calcular la cantidad total de memoria virtual. • La columna free indica el numero de kilobytes libres del sistema. Los valores que se encuentran por debajo del 3% de la cantidad total indicaran que hay problemas. 2
  • 98. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 98 25/03/2022 SWAPON • Se utiliza para determinar exactamente que archivos y particiones se utilizan como espacio de intercambio. 3 $ swapon -s
  • 99. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 99 25/03/2022 VMSTAT • Nos muestra información resumida sobre la paginación y el intercambio, además de las interrupciones y los bloques de I/O. • Dado que es un comando que se encuentra presente en muchos sistemas UNIX y Unix-Like (FreeBSD, Linux, Solaris ) puede variar en pequeñas cosas en la sintaxis, revisen el [$man vmstat] si fuera necesario. 4
  • 100. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 100 25/03/2022 PROCINFO • Este es un comando que mejora en mucho la información mostrada por vmstat, el inconveniente es que no esta presente en todas las distribuciones por default, así que es probable que tengan que instalarlo, en el caso de Manjaro fue así. • procinfo no tiene un sistema especial para recopilar información sobre el sistema , se limita a dar formato a los datos que se encuentran en los archivos del sistema /proc. Sin el seria difícil interpretar el contenido de los archivos de /proc. $ sudo pacman -S procinfo 5
  • 101. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 101 25/03/2022 PROCINFO Es de gran ayuda ya que de cierta forma anula la información que se obtiene de los comandos free, uptime y vmstat, digamos un todo en uno. 5
  • 102. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 102 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 103. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 103 25/03/2022 Introducción Relativo a la perduración de la información, un Sistema Operativo debería proveer funcionalidades para: • Almacenar una cantidad muy grande de información • La información debe sobrevivir a la terminación del proceso que la usa • Existir la capacidad de que múltiples procesos accedan a la información de forma concurrente. Los sistemas de archivos son aquellos que deben proveer estas capacidades al S.O. Para su comprensión, se pueden dividir en 2 partes: Perspectiva del usuario: la forma en que se muestran y estructuran los archivos en cuanto a su uso y manipulación (archivos, directorios, funciones de administración, etc). Implementación: como se escriben los datos realmente a la unidad de almacenamiento. S.O. /home/usuario/archivo.txt open(“archivo.txt”) C:windowscalc.exe Dispositivo I/O Usuario Implementación
  • 104. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 104 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 105. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 105 25/03/2022 Definición – Archivos “Mecanismo de abstracción que permite almacenar información en un dispositivo y leerla después (…) de tal modo que el usuario no tenga que enterarse de los detalles de cómo y dónde está almacenada la información, y de cómo funcionan en realidad los discos” -- A. Tannenbaum NombreDeArchivo.extensión -El nombre de archivo puede estar restringido a un largo máximo, por ejemplo: - MSDOS: 8 para el nombre, 3 para la extensión - NTFS y ext*: 255 en el total (nombre + extensión) -La extensión “puede” ser usada para determinar el tipo de archivo: -En sistemas windows determina el contenido del archivo y la aplicación encargada de manejarlo. Aquí se suele tener solo 1 extensión: archivo.zip. -En linux y similares es un ayuda a los usuario para determinar el contenido, pero no es estricto ni establecido por sistema. Aquí se suele tener varias extensiones: archivo.tar.gz -En general se acepta cualquier carácter en el nombre excepto NUL (0), aunque algunos sistemas restringen el conjunto aunque la implementación del sistema de archivos lo soporte.
  • 106. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 106 25/03/2022 Estructura - Archivos Los archivos internamente pueden ser estructurados o libres. Libres Los archivos son simplemente secuencia de bytes. Permite la mayor versatilidad, dado que cada usuario puede establecer como desea almacenar los datos. Estructurados Los archivos tienen una organización interna a través de la cual deben ser accedidos los datos. Útil cuando el sistema de archivos maneja siempre los datos en estructuras rígidas, dado que acelera el proceso, pero poco conveniente porque amarra al usuario a dicha estructura. Sucesión de bytes Sucesión de registros F M T C N O A Árbol
  • 107. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 107 25/03/2022 Ejecutables - Archivos La estructura de los archivos ejecutables varia dependiendo del sistema en el que sea compilado y linkeado el programa. Una estructura ejemplo de un archivo ejecutable puede ser: El número mágico permite al S.O determinar si el ejecutable es válido, comparándolo con el o los valores que tiene el sistema como válido. En NachOS por ejemplo es el binario 0xbadfad. Número Mágico Tamaño de código Tamaño de datos Tamaño de BSS Tamaño de tabla de símbolos Punto de ingreso Tabla de Símbolos Datos Encabezado (Header) Tamaño en bytes que mide el segmento de código Tamaño en bytes que mide el segmento de datos embedidos en el ejecutable Tamaño en bytes que mide el segmento de variables no inicializadas (Ej: int a[1000] ) Tamaño en bytes que tiene la tabla de símbolos Posición del Program Counter al inicio (punto de inicio del programa) Segmento de código. Contiene las instrucciones que son ejecutadas por la CPU. Segmento de datos. Contiene datos que están embedidos en el archivo ejecutable que son utilizados por este. Código La tabla de símbolos es un elemento opcional que sirve al debug de un proceso. Contiene el listado de identificadores del programa (variables, procesos), los cuales permiten depurar un programa en ejecución.
  • 108. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 108 25/03/2022 Atributos - Archivos Los sistemas de archivos guardan, además del nombre del archivo y sus datos, información como fecha, hora, usuario, permisos, etc; los cuales se denominan atributos. Algunos de los atributos que puede guardar un sistema de archivos son: Protección Permisos que el dueño del archivo establece sobre el archivo. En linux los permisos básicos se establecen en la terna XXX para el usuario, grupo y otros respectivamente con los valores {0: nada, 1: ejecución, 2: escritura, 4: lectura} que se suman para combinar permisos. Password Clave de protección del archivo Dueño Usuario del sistema dueño del archivo Oculto Bit que indica si el archivo figura en la lista normal de archivos. Temporal Bit que indica si eliminar el archivo al terminar el proceso que lo creo. Indicadores de Bloqueo Permiten establecer protecciones sobre parte o todo el archivo para que modificaciones concurrentes de varios procesos se hagan de forma adecuada. Longitud del registro En archivos con registros, indica el largo de cada registro Tamaño actual Tamaño actual del archivo en bytes.
  • 109. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 109 25/03/2022 Accediendo a un archivo • Acceso Secuencial – Leer todos los bytes/registros desde el inicio – Sin saltarse a otros lugares • Pero, se puede volver al inicio del archivo – Convenientes para cintas magnéticas – Usado a menudo cuando se necesita todo el archivo • Acceso Aleatorio – Leer bytes (o registros) en cualquier orden – Esencial para las BD – Leer puede ser … • Mover el marcador de archivo (buscar), luego leer o … • Leer y entonces mover el marcador de archivo
  • 110. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 110 25/03/2022 File operations • Create: make a new file • Delete: remove an existing file • Open: prepare a file to be accessed • Close: indicate that a file is no longer being accessed • Read: get data from a file • Write: put data to a file • Append: like write, but only at the end of the file • Seek: move the “current” pointer elsewhere in the file • Get attributes: retrieve attribute information • Set attributes: modify attribute information • Rename: change a file’s name
  • 111. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 111 25/03/2022 Using file system calls
  • 112. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 112 25/03/2022 Using file system calls, continued
  • 113. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 113 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 114. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 114 25/03/2022 Directorios De manera de poder organizar los archivos, muchos sistemas de archivos tienen directorios o carpetas; los cuales también pueden ser archivos. De su utilización se derivan los conceptos de: -Directorio Raíz: aquel que contiene al resto del sistema de archivos. En linux es explicito (/), en windows está escondido detrás de las unidades lógicas (??) -Directorio de trabajo: directorio en el cual se esta ejecutando un proceso, como por ejemplo el interprete de comandos. Este se simboliza con un punto (.). -Ruta absoluta: ubicación de un archivo o directorio indicando su posición explicitando todos los directorios desde el directorio raíz al elemento. Ej: /usr/local/nachos/code/build.linux/nachos. -Ruta relativa: ubicación de un archivo o directorio indicando su posición respecto al directorio de trabajo actual. Ej: ../build.linux/nachos -Directorio Padre: aquel en el cual es contenido un directorio. Se simboliza con punto doble (..). Estilo Unix / usr/ home/ local/ share/ jmakuc/ cmolina/ ?? C: D: Documents And Settings Temp Windows Videos mp3 Películas Estilo Windows Las entradas X: se denominan unidades y representan a particiones de los discos
  • 115. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 115 25/03/2022 Single-level directory systems • One directory in the file system • Example directory – Contains 4 files (foo, bar, baz, blah) – owned by 3 different people: A, B, and C • Problem: what if user B wants to create a file called foo? Root directory A foo A bar B baz C blah
  • 116. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 116 25/03/2022 Two-level directory system • Solves naming problem: each user has her own directory • Multiple users can use the same file name • By default, users access files in their own directories • Extension: allow users to access files in others’ directories Root directory A foo A bar B foo B baz A B C C bar C foo C blah
  • 117. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 117 25/03/2022 Hierarchical directory system Root directory A foo A Mom B foo B foo.tex A B C C bar C foo C blah A Papers A Photos A Family A sunset A sunset A os.tex A kids B Papers B foo.ps
  • 118. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 118 25/03/2022 Unix directory tree
  • 119. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 119 25/03/2022 What’s in a directory? • Two types of information – File names – File metadata (size, timestamps, etc.) • Basic choices for directory information – Store all information in directory • Fixed size entries • Disk addresses and attributes in directory entry – Store names & pointers to index nodes (i-nodes) games attributes mail attributes news attributes research attributes games mail news research attributes attributes attributes attributes Storing all information in the directory Using pointers to index nodes
  • 120. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 120 25/03/2022 Directory structure • Structure – Linear list of files (often itself stored in a file) • Simple to program • Slow to run • Increase speed by keeping it sorted (insertions are slower!) – Hash table: name hashed and looked up in file • Decreases search time: no linear searches! • May be difficult to expand • Can result in collisions (two files hash to same location) – Tree • Fast for searching • Easy to expand • Difficult to do in on-disk directory • Name length – Fixed: easy to program – Variable: more flexible, better for users
  • 121. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 121 25/03/2022 Handling long file names in a directory
  • 122. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 122 25/03/2022 Sharing files Root directory A foo ? ??? B foo A B C C bar C foo C blah A Papers A Photos A Family A sunset A sunset A os.tex A kids B Photos B lake
  • 123. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 123 25/03/2022 Solution: use links • A creates a file, and inserts into her directory • B shares the file by creating a link to it • A unlinks the file – B still links to the file – Owner is still A (unless B explicitly changes it) a.tex Owner: A Count: 1 a.tex Owner: A Count: 2 b.tex Owner: A Count: 1 b.tex A A B B
  • 124. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 124 25/03/2022 Operations on directories • Create: make a new directory • Delete: remove a directory (usually must be empty) • Opendir: open a directory to allow searching it • Closedir: close a directory (done searching) • Readdir: read a directory entry • Rename: change the name of a directory – Similar to renaming a file • Link: create a new entry in a directory to link to an existing file • Unlink: remove an entry in a directory – Remove the file if this is the last link to this file
  • 125. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 125 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 126. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 126 25/03/2022 Organización del Sist. Archivos - Implementación En sistemas de archivos de discos, estos deben considerar la estructura básica: particiones o volúmenes. Disco entero MBR Partición 1 Partición 2 Partición 3 Partición 4 Partición: división lógica de una unidad de disco, también denominada volúmen en sistemas Windows. MBR: Master Boot Record o Registro Maestro de Arranque. Es leído y ejecutado por la BIOS al encenderse el computador. Tabla de Particiones: Contiene la información de donde comienza y termina cada partición en el disco. Cada partición puede tener un sistema de archivos diferente. Bloque de arranque: primer bloque de cada partición. Contiene la información de cómo arrancar el Sistema Operativo contenido en ella. Al ejecutarse el MBR, este busca los bloques de arranque para ejecutarlos. Si no existe S.O. en una partición, se deja el bloque en blanco por provisión. Físicamente podemos distinguir: Cilindro: disco físico. Ej: 1 diskette tiene 1 cilindro, mientras que un disco duro puede tener varios. Pistas: divisiones concéntricas del disco. Un disco removible de 3.5” tiene en formato simple 18 pistas. Sectores: unidad atómica en la que se divide un disco para acceder a él en múltiplos de esta. Ej: 512b Bloques: agrupación de sectores que realiza el sistema operativo, denominado cluster en sistemas Windows. El acceso al disco que realiza el S.O. se hace en esta unidad. Tabla de particiones
  • 127. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 127 25/03/2022 Organización del Sist. Archivos - Implementación Físicamente se puede distinguir: Cilindro: disco físico. Ej: 1 diskette tiene 1 cilindro, mientras que un disco duro puede tener varios. Pistas: divisiones concéntricas del disco. Un disco removible de 3.5” tiene en formato simple 18 pistas. Sectores: unidad atómica en la que se divide un disco para acceder a él en múltiplos de esta. Ej: 512b Bloques: agrupación de sectores que realiza el sistema operativo, denominado cluster en sistemas Windows. El acceso al disco que realiza el S.O. se hace en esta unidad. Fuente: http://maettig.com/?page=Studium/FAT32
  • 128. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 128 25/03/2022 Organización del Sist. Archivos - Implementación En sistemas de archivos de discos, estos deben considerar la estructura básica: particiones o volúmenes. Disco entero MBR Partición 1 Partición 2 Partición 3 Partición 4 Cada partición debe contener la información de todos los archivos (y directorios si corresponde) que alberga. Esta información es almacenada en sectores al inicio del volúmen, cuya estructura varía considerablemente entre sistemas de archivos, aunque conceptualmente se puede graficar como sigue. Tabla de particiones Bloque de arranque Metadatos Archivos y Directorios El sector de metadatos contiene la información respecto de donde y como están almacenados los archivos en la partición. Número Mágico que identifica sistema de archivos que contiene la partición
  • 129. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 129 25/03/2022 Implementación de archivos - Implementación Asignación Contigua Se entrega espacio continuo en el disco a los archivos. Su ventaja es la implementación simple y el buen desempeño en lectura. La desventaja es el fragmentación excesiva y compleja dado que se DEBE escribir cada archivo como un todo cada vez. Si se elimina un archivo se requiere otro de igual tamaño para no desperdiciar lugar, o reubicar los archivos para hacer espacio a un archivo más grande. Asignación por Lista Enlazada Los archivos se mantienen como una lista enlazada de bloques en el disco. Permite que un archivo no deba estar contiguo en el disco y elimina la fragmentación del disco dado que se pueden utilizar todos los bloques. Su mayor problema es el acceso aleatorio, pues el S.O. debe ir buscando nodo por nodo la dirección del siguiente, hasta llegar al que necesita. Por otra parte ahora la cantidad de datos almacenada en un bloque ya no es potencia de 2, complicando el panorama para la implementación de página, por ejemplo. Arch. A Arch. B Arch. C Arch.D Arch. A Arch. C Arch.D Bloque 0 Bloque 1 Bloque 2 Bloque 3 Bloque 7 en disco Bloque 1 en disco Bloque 5 en disco Bloque 2 en disco
  • 130. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 130 25/03/2022 Implementación de archivos - Implementación Nodos-i Consiste en asociar a cada archivo una estructura de datos llamada “i-node” (nodo índice). Esta estructura contiene las direcciones de los bloques en disco que componen al archivo. La mayor ventaja es que solo es necesario tener en memoria las estructuras de los archivos abiertos, pues estas son las únicas que se necesitan para el acceso aleatorio. Para solucionar el problema de que la cantidad de bloques de un archivo no queda en un solo i-node, se agrega al final de este la posibilidad de enlazar en la última posición a un bloque que contenga más direcciones (solo direcciones) Asignación por Lista Enlazada empleando tabla en la memoria Toma el apuntador que antes estaba dentro del bloque en disco, y lo traslada a una tabla exclusivamente para ese efecto. De esta forma el bloque se llena de datos y poder acceder aleatoriamente al archivo es más simple pues no requiere de accesos a disco dado que todos los datos están juntos en memoria A esto se le conoce como FAT, File Allocation Table. Bloque Físico Sgte Bloque 0 1 5 2 -1 3 4 5 2 6 7 1 Inicio del archivo Término del archivo Atributos del archivo Dirección del bloque 0 Dirección del bloque 1 Dirección del bloque 2 Dirección del bloque 3 Dirección del bloque 4 Dirección del bloque 5 Dirección del bloque 6 Dirección del bloque 7 Dirección bloque con más direcc. Bloque de disco
  • 131. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 131 25/03/2022 Control de bloques libres - Implementación Mapas de bits Se crea un mapa donde se representa a cada bloque disponible con 1 bit. Es muy eficiente en espacio dado que utiliza 1 bit en lugar de 1 palabra, excepto cuando el disco esta lleno, caso en el cual la lista es más pequeña. Al igual que la lista, se puede dejar solo una porción del mapa en memoria y el resto en disco; teniendo una ventaja adicional, puesto que las asignaciones realizadas con el bloque en memoria serán a bloques cercanos, reduciendo el overhead de acceso a disco. Uno de los problema importantes que debe tratar el sistema de archivos, es la administración de los bloques libres. Sin importar cual método se emplee, se suelen usar bloques libres del disco para colocar la estructura que los maneja. Listas Enlazadas Libres Se utiliza una lista enlazada de bloques de disco que contienen números de bloques libres. Se almacenan tantos números como se pueda en cada bloque. Para agilizar el proceso de búsqueda de un bloque libre, se mantiene uno o más bloques en memoria, dejando el resto en disco. La desventaja es que cuando el bloque esta por llenarse puede provocar muchas operaciones de I/O al buscar otro bloque, producto de una seguidilla de creaciones y eliminaciones de archivos y directorios. 387 123 32 33 433 766 7 56 321 3 54 55 56 57 77 9 12 987 976 765 433 654 543 21 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0
  • 132. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 132 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 133. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 133 25/03/2022 Administración del espacio en disco • Por lo general los archivos se almacenan en disco, así que la administración del espacio en disco es una cuestión importante para los diseñadores de sistemas de archivos. • Hay dos estrategias generales posibles para almacenar un archivo de n bytes: – (a) se asignan n bytes consecutivos de espacio en disco, o – (b) el archivo se divide en varios bloques (no necesariamente) contiguos • El caso (a) tiene el problema obvio de que si un archivo crece, probablemente tendrá que moverse en el disco • Por esta razón, casi todos los sistemas de archivos dividen los archivos en bloques de tamaño fijo que no necesitan ser adyacentes, es decir, el caso (b)
  • 134. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 134 25/03/2022 Tamaño de bloque • Tener un tamaño de bloque grande significa que cada archivo (incluso un archivo de 1 byte) ocupa un cilindro completo. También significa que los pequeños archivos desperdician una gran cantidad de espacio en disco. • Por otro lado, un tamaño de bloque pequeño significa que la mayoría de los archivos abarcarán varios bloques y por ende, necesitan varias búsquedas y retrasos rotacionales para leerlos, lo cual reduce el rendimiento. • Por ende, si la unidad de asignación es demasiado grande, desperdiciamos espacio; si es demasiado pequeña, desperdiciamos tiempo
  • 135. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 135 25/03/2022 Administrar el espacio en disco • La curva sólida (escala del lado izquierdo) da la velocidad de datos del disco. • La curva punteada (escala del lado derecho) da la eficiencia del espacio de disco. • Todos los archivos son de 4 KB. El tamaño más cercano al punto en el que se cruzan las dos curvas es 64 KB, pero la velocidad de datos es de sólo 6.6 MB/seg y la eficiencia del espacio es de aproximadamente 7%; ninguno de estos dos valores son buenos.
  • 136. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 136 25/03/2022 Administrar el espacio en disco • Las dos curvas se pueden comprender de la siguiente manera. – El tiempo de acceso para un bloque está completamente dominado por el tiempo de búsqueda y el retraso rotacional, dado que se van a requerir 9 mseg para acceder a un bloque, entre más datos se obtengan será mejor. – En consecuencia, la velocidad de datos aumenta casi en forma lineal con el tamaño de bloque (hasta que las transferencias tardan tanto que el tiempo de transferencia empieza a ser importante). – Además, los bloques pequeños son malos para el rendimiento pero buenos para el uso del espacio en el disco. • Históricamente, los sistemas de archivos han elegido tamaños en el rango de 1 KB a 4 KB, pero con discos que ahora exceden a 1 TB, podría ser mejor incrementar el tamaño de bloque a 64 KB y aceptar el espacio en disco desperdiciado. – El espacio en disco ya no escasea en estos días
  • 137. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 137 25/03/2022 Cuotas de disco • Para evitar que los usuarios ocupen demasiado espacio en disco, los sistemas operativos multiusuario proporcionan un mecanismo para imponer las cuotas de disco. • La idea es que el administrador del sistema asigne a cada usuario una cantidad máxima de archivos y bloques y que el sistema operativo se asegure de que los usuarios no excedan sus cuotas. • Cuando un usuario abre un archivo, los atributos y las direcciones de disco se localizan y se colocan en una tabla de archivos abiertos en la memoria principal. – Entre los atributos hay una entrada que indica quién es el propietario. Cualquier aumento en el tamaño del archivo se tomará de la cuota del propietario.
  • 138. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 138 25/03/2022 Cuotas de disco • Una segunda tabla contiene el registro de cuotas para cada usuario con un archivo actualmente abierto, aun si el archivo fue abierto por alguien más. – Esta tabla es un extracto de un archivo de cuotas en el disco para los usurarios cuyos archivos están actualmente abiertos. – Cuando todos los archivos se cierran, el registro se escribe de vuelta en el archivo de cuotas.
  • 139. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 139 25/03/2022 Cuotas de disco • El registro de cuotas se lleva en una tabla de cuotas, usuario por usuario
  • 140. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 140 25/03/2022 Desfragmentación de discos • Cuando el sistema operativo se instala por primera vez, los programas y archivos que necesita se instalan en forma consecutiva, empezando al principio del disco, cada uno siguiendo directamente del anterior. • A medida que transcurre el tiempo se crean y eliminan archivos, generalmente el disco se fragmenta mucho, con archivos y huecos esparcidos por todas partes. • Como consecuencia, cuando se crea un nuevo archivo, los bloques que se utilizan para éste pueden estar esparcidos por todo el disco, lo cual produce un rendimiento pobre. • El rendimiento se puede restaurar moviendo archivos para hacerlos contiguos y colocando todo el espacio libre (o al menos la mayoría) en una o más regiones contiguas en el disco. – Windows tiene un programa llamado defrag, el cual realiza esto. Los usuarios de Windows deben ejecutarlo en forma regular.
  • 141. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 141 25/03/2022 Desfragmentación de discos • La desfragmentación funciona mejor en los sistemas de archivos que tienen una buena cantidad de espacio libre en una región continua al final de la partición. – Este espacio permite al programa de desfragmentación seleccionar archivos fragmentados cerca del inicio de la partición, copiando todos sus bloques al espacio libre. • Esta acción libera un bloque contiguo de espacio cerca del inicio de la partición en la que se pueden colocar los archivos originales u otros en forma contigua. – Después, el proceso se puede repetir con el siguiente pedazo de espacio en el disco y así en lo sucesivo. – Algunos archivos no se pueden mover, incluyendo el archivo de paginación, el de hibernación y el registro por bitácora, ya que la administración requerida para ello es más problemática de lo que ayuda • Los sistemas de archivos de Linux (en especial ext2 y ext3) por lo general sufren menos por la desfragmentación que los sistemas Windows debido a la forma en que se seleccionan los bloques de disco, por lo que raras veces se requiere una desfragmentación manual.
  • 142. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 142 25/03/2022 Contenido • ADMINISTRACIÓN DE LA MEMORIA – Memoria principal – Abstracción de memoria – Sistema de gestión de memoria – Memoria virtual – Algoritmo de reemplazo de páginas – Diseño para los sistemas de paginación – Segmentación de memoria. – Comandos para administración de memoria. • SISTEMAS DE ARCHIVOS – Archivos – Directorios – Implementación de un sistema de archivo – Administración y optimización de un sistema de archivo – Ejemplos de sistemas de archivos • S.O. DE PROPÓSITO ESPECÍFICO – Caso de estudio Linux – Caso de estudio Windows – Caso de estudio Embebidos (Android). – Sistemas Operativos en la Nube.
  • 143. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 143 25/03/2022 Introducción - NTFS NTFS o New Technology File System, es el sistema de archivos de la línea NT de los sistema MS Windows. Fue diseñado desde cero, pensado para reemplazar a la familia de FAT eliminando todas las limitaciones de este, y pensando en poder extenderlo fácilmente en el futuro. Conceptualmente NTFS ve todo en el sistema como un archivo, incluyendo a los metadatos. El corazón de tal esquema es la MFT (Master File Table) que contiene la información de donde están los archivos y sus atributos. Aunque esta respaldada en un %, si se daña los datos de todo el volumen se perderán. Utiliza bitmaps para determinar los bloques (clusters) libres en el disco, e indexa los directorios a través de árboles B+. Tamaño máximo de volumen 16EiB (Exibibyte – 1060) Tamaño máximo de archivo Teórico 16EiB Tamaño máximo de archivo implementación actual 16TiB (Tebibye – 1040) Número máximo de archivo 232 – 1 Largo nombre de archivo 255 caracteres Fechas 01/01/1601 – 28/05/60056 Compresión de datos LZ77 (zip) desde WinNT 3.51 Encriptación de datos XDES (Win2000), 3DES (WinXP), AES (Win2003)
  • 144. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 144 25/03/2022 Esquema General - NTFS Ejemplo Esquema partición NTFS Partition Boot Record MFT Archivos de Sistema Área de archivos Boot Partition Record En los primeros 8kb se contiene la información sobre el volumen (tipo de partición, largo, etc), junto con el bloque de código básico para iniciar al sistema operativo. Contiene tambien un puntero a la MFT. MFT – Master File Table La Tabla Maestra de archivos contiene el donde y como están almacenados los archivos, junto con todos los atributos asociados a estos. Archivos de Sistema Contienen la información sobre los datos y operaciones que se realizan sobre el sistema de archivos: espacio libre, log de transaccionalidad, etc. Área de archivos Donde realmente se almacenan los datos del usuario.
  • 145. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 145 25/03/2022 Master File Table - NTFS # Filename Nombre Descripción 0 $MFT Master File Table Puntero a si mismo para consistencia del modelo. 1 $MFTMirr Master File Tabla Mirror Puntero donde se encuentra el respaldo de la MFT. Solo se respaldan los registros más importante. En NT3.5 se ubica a la mitad de la partición, en versiones posteriores al final. 2 $LogFile Log File Archivo de log de transacciones sobre el volumen. 3 $Volume Volume Descriptor Contiene información crucial sobre la partición en si: versión NTFS, nombre, etc. 4 $AttrDef Attribute Definition Table Nombres y tipos de los atributos que tendrá cada archivo. 5 $ Root Directory Puntero a donde parte el directorio raíz del sistema. 6 $Bitmap Cluster Allocation Bitmap Mapa que muestra los clusters (bloques) disponibles 7 $Boot Volume Boot Code Puntero al segmento que contiene el código de arranque, en el caso de que esta sea una partición activa (booteable) 8 $BadClus Bad Cluster File Lista de todos los bloques “malos” del disco, para no volver a utilizarlos. 9 $Secure Security File Contiene descriptores únicos para cada archivo del volumen 10 $UpCase Upper Case Table Tabla de conversiones mayúsculas/minúsculas en UNICODE. 11 $Extend NTFS Extensions Usado por varias extensiones como quotas, reparse, identif. de objeto, etc. La MFT contiene la información sobre todos los archivos dentro del volumen. Mantiene la dirección en disco donde esta el archivo, sus atributos, información de cómo securizar los datos, etc. Las primeras 16 posiciones corresponden a entradas a archivos que implementan el sistema de archivos y están reservadas. Desde la 11 a la 15 no se utilizan y están para provisión. Desde el #16 en adelante se pueden tener entradas para archivos de usuario.
  • 146. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 146 25/03/2022 Master File Table Entry - NTFS Atributo Descripción Información estándar Bits indicadores, marcas de hora, etc. Nombre de archivo En UNICODE Descriptor de Seguridad Obsoleto. Ver $Extend $Secure Lista de atributos Ubicación de registros MFT adicionales, si se necesitan Identificador de Objeto Identificador de archivo de 64bits (teoricamente único en el mundo) Punto de reanálisis Para montajes y enlaces simbólicos Nombre de Volumen Nombre de este volumen (usado por $Volumne) Información de volumen Versión del volumen (usado por $Volume) Raíz índice Se usa para directorios Asignación de índice Se usa en directorios muy grandes Mapa de bits Usado en directorios muy grandes Flujo utilitario de registro Controla las entradas en $LogFile Datos Datos de flujo; puede repetirse Atributos Básicos Al crearse el volumen en el formato, se reserva espacio para que la MFT pueda crecer (alrededor del 12% del disco por defecto). Este espacio aunque esta libre, no es utilizado sino hasta que no queda más espacio disponible en el disco. En el caso de que la MFT crezca mucho, puede particionarse y colocar una porción en otro lugar del disco. El tamaño de una entrada de la MFT puede variar entre 1.024 y 4.096 bytes, estando de la mano el tamaño del cluster. Cada registro de la MFT contiene un encabezado o header que permite identificar la entrada, junto con indicar la cantidad de bytes usados, contador de referencias, etc A continuación vienen una serie de atributos compuestos por un encabezado de atributo y el atributo en si. El primero indica donde parte el atributo y cuando mide, el segundo contiene el valor Fuente: http://dbserver.kaist.ac.kr/~yjlee/Courses/CS230/ntfs/NTFS-3.html
  • 147. Sistemas Operativos Carrera de Software Ph.D. Franklin Parrales 147 25/03/2022 Master File Table Entry, Atributos - NTFS Siguiendo la misma filosofía de generizar las estructuras de datos, en un archivo todo es un atributo, hasta los datos; los cuales pueden estar almacenados en una entrada de la MFT, en varias o incluso en “data runs” fuera de la MFT. Atributos residentes Son aquellos que se encuentran en el registro inicial del archivo y no desbordan fuera de el Atributos no Residentes Son aquellos que no están presentes en el registro inicial del archivo dado que están o en otra entrada de la MFT o en un data run. Data runs o Extents (extensiones) Conjunto de bloques (2kb – 4kb) alocados por NTFS para contener atributos que son muy largos para estar en un registro de la MFT. Fuente: http://dbserver.kaist.ac.kr/~yjlee/Courses/CS230/ntfs/NTFS-3.html