filesystem Flashcards

(237 cards)

1
Q

¿Qué es un file system?

A

Es una abstracción del sistema operativo que provee datos persistentes con un nombre.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué permite hacer un sistema de archivos a los usuarios?

A

Permite organizar sus datos para que persistan a lo largo del tiempo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué significa que los datos sean persistentes?

A

Que se almacenan hasta que son borrados explícita o accidentalmente, incluso si hay una falla de energía.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Por qué es importante que los archivos tengan un nombre?

A

Para que los humanos puedan identificarlos fácilmente y los programas puedan compartir información entre sí.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué decisiones de diseño tomó el sistema de archivos de Unix?

A

Estructura jerárquica, tratamiento consistente de archivos, crear y borrar archivos, crecimiento dinámico, protección de datos y tratar dispositivos como archivos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué es una estructura jerárquica en un sistema de archivos?

A

Una forma de organizar archivos en forma de árbol, donde los directorios pueden contener otros archivos y directorios.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Cómo ven los programas a los archivos?

A

Como secuencias (streams) de bytes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué se asume sobre el formato o codificación de los archivos a nivel de system calls?

A

Nada; los archivos son simplemente secuencias de bytes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué tres permisos define el esquema de UNIX para archivos?

A

Read, write y execute.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué tres clases de usuarios define UNIX?

A

Owner, grupo y todos los demás.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué significa que ‘todo es un archivo’ en UNIX?

A

Que incluso dispositivos como discos, terminales o CDs se tratan como archivos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué ventaja trae tratar dispositivos como archivos?

A

Permite un acceso y manejo de permisos unificado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué es un archivo?

A

Una colección de datos con un nombre específico.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué proporciona un archivo respecto al dispositivo de almacenamiento?

A

Una abstracción de más alto nivel y un nombre significativo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué es la metadata de un archivo?

A

Información acerca del archivo que es comprendida por el SO, como tamaño, fecha de modificación, propietario y permisos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Qué son los datos de un archivo desde el punto de vista del sistema operativo?

A

Un arreglo de bytes sin tipo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Qué comando permite ver la metadata de un archivo en formato legible?

A

ls -lh (u otros comandos similares)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

¿Qué es un inodo?

A

Una estructura que almacena información (metadata) sobre un archivo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

¿Qué no contiene un inodo?

A

Los datos del archivo en sí.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

¿Qué sí contiene un inodo?

A

Metadata como tamaño, propietario, permisos, tiempos, enlaces y punteros a bloques de datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

¿Qué representa un dentry?

A

La relación entre un nombre de archivo y su inodo correspondiente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

¿Qué contiene un directorio?

A

Una lista de dentries.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

¿Cuál es la función principal de un dentry?

A

Ayudar a resolver nombres y rutas a sus inodos correspondientes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

¿Puede haber más de un dentry apuntando al mismo inodo?

A

Sí, eso se llama hard link.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
¿Un dentry apunta a otro dentry?
No, solo apunta a inodos.
26
¿Un inodo apunta a otros inodos?
No, solo apunta a bloques de datos.
27
¿Cómo se implementa el sistema jerárquico de archivos?
Un dentry puede apuntar a un inodo tipo directorio, que apunta a datos que contienen más dentries.
28
¿Qué tipo especial de archivo es un directorio en Unix?
Un archivo normal cuyo contenido es una lista de dentries.
29
¿Cómo se llama el componente que vincula un proceso con un archivo abierto?
La tabla de archivos abiertos (open file table).
30
¿Qué contiene la tabla de archivos abiertos?
File descriptors que apuntan a inodos y un offset para lectura/escritura.
31
¿Qué es el offset en un archivo abierto?
Es el cursor que indica dónde se va a leer o escribir a continuación.
32
¿Qué tipos de objetos puede representar un inodo en Linux?
Archivos regulares, directorios, enlaces simbólicos, etc., definidos en el campo mode.
33
¿Cuál es la diferencia entre inodo y dentry?
El inodo guarda metadata y punteros a datos; el dentry relaciona nombres con inodos.
34
¿Cómo se forma la jerarquía del filesystem?
A través de directorios que contienen dentries que apuntan a inodos tipo directorio.
35
¿Qué elementos forman las abstracciones del sistema de archivos?
Inodos que apuntan a datos y dentries que apuntan a inodos.
36
¿Un inodo puede apuntar a otro inodo?
No, nunca.
37
¿Un dentry puede apuntar a otro dentry?
No, nunca.
38
¿Cómo se trata un directorio en Unix?
Como un archivo normal que contiene dentries.
39
¿Qué es el Virtual File System (VFS)?
Es el subsistema del kernel que implementa la interfaz de archivos y sistemas de archivos para programas corriendo en modo usuario.
40
¿Qué habilita el uso del VFS a los programas?
Habilita a los programas a usar system calls como open(), read() y write() sin preocuparse por el hardware subyacente.
41
¿Qué logran los sistemas de archivos al basarse en VFS?
Pueden coexistir e interoperar.
42
¿Por qué es importante el VFS en sistemas Unix?
Porque permite que los programas accedan a archivos de diferentes sistemas de archivos usando una misma interfaz.
43
¿Qué tipo de interfaz proporciona el FileSystem Abstraction Layer?
Una interfaz genérica para cualquier tipo de sistema de archivos.
44
¿Qué permite la capa de abstracción del VFS a Linux?
Soportar múltiples sistemas de archivos con características y comportamientos diferentes.
45
¿Qué proporciona el VFS como modelo común?
Un modelo común de archivos que representa cualquier característica general de los sistemas de archivos.
46
¿Qué hacen los filesystems con respecto al VFS?
Adaptan su visión y operaciones para cumplir con las expectativas del VFS.
47
¿Qué operaciones básicas deben soportar todos los filesystems según el VFS?
Operaciones como abrir archivos, acceder a directorios y otras funciones generales.
48
¿Qué logra el kernel al utilizar VFS?
Manejar múltiples tipos de sistemas de archivos de forma limpia y sencilla.
49
¿Qué estructuras u objetos modela el VFS?
Super bloque, inodo, dentry y file.
50
¿Qué representa el objeto super bloque en VFS?
Representa un sistema de archivos.
51
¿Qué representa el objeto inodo en VFS?
Representa un archivo determinado.
52
¿Qué representa el objeto dentry en VFS?
Una entrada de directorio, componente de un path.
53
¿Qué representa el objeto file en VFS?
Un archivo abierto por un proceso.
54
¿Qué son las super_operations en VFS?
Métodos que aplica el kernel sobre un sistema de archivos, como write_inode() o sync_fs().
55
¿Qué son las inode_operations en VFS?
Métodos que aplica el kernel sobre un archivo, como create() o link().
56
¿Qué son las dentry_operations en VFS?
Métodos aplicados por el kernel sobre una entrada de directorio, como d_compare() y d_delete().
57
¿Qué son las file_operations en VFS?
Métodos aplicados por el kernel sobre un archivo abierto, como read() y write().
58
¿Qué función cumple VFS respecto al hardware?
Aísla a las system calls del hardware subyacente mediante una capa de abstracción.
59
¿Qué característica del VFS permite que diferentes sistemas de archivos trabajen juntos?
La existencia de una interfaz común y genérica para representar archivos y directorios.
60
¿Cómo se representan los dispositivos en el sistema?
Como archivos especiales de tipo DEVICE.
61
¿Qué system calls se utilizan para operar dispositivos?
Las mismas que para archivos normales, como open(), read() y write().
62
¿Qué componente interactúa con los drivers en el sistema?
El VFS.
63
¿Qué hacen los drivers en relación al hardware?
Implementan las operaciones de bajo nivel que interactúan directamente con el hardware.
64
¿Dónde suelen encontrarse los archivos especiales que representan dispositivos?
En el directorio /dev.
65
¿Qué representa /dev/sda?
El primer disco duro en el sistema.
66
¿Qué representa /dev/sda1?
La primera partición del primer disco duro.
67
¿Qué representa /dev/ttyS0?
Un puerto serie (similar a los puertos COM en Windows).
68
¿Qué representa /dev/loop0?
Un dispositivo de bucle que permite tratar un archivo como si fuera un disco.
69
¿Qué hace /dev/null?
Descarta cualquier dato que se le escriba.
70
¿Qué proporciona /dev/random?
Números aleatorios.
71
¿Cuáles son los dos tipos fundamentales de dispositivos en Unix?
Dispositivos de bloque y dispositivos de carácter.
72
¿Qué otro tipo de dispositivo existe además de bloque y carácter?
Dispositivos de red (aunque no se vinculan al filesystem).
73
¿Qué hacen los dispositivos de carácter?
Transfieren datos byte a byte, sin almacenamiento en bloques.
74
¿Qué ejemplos de dispositivos de carácter hay?
Terminales, puertos serie y algunas impresoras.
75
¿Dónde se encuentran los dispositivos de carácter en el sistema?
En /dev, por ejemplo /dev/ttyS0.
76
¿Qué hacen los dispositivos de bloque?
Transfieren datos en bloques de tamaño fijo, útiles para almacenamiento masivo.
77
¿Qué ejemplos de dispositivos de bloque hay?
Discos duros, SSDs y memorias USB.
78
¿Dónde se encuentran los dispositivos de bloque en el sistema?
En /dev, por ejemplo /dev/sda.
79
¿Qué números se usan para vincular dispositivos al filesystem?
Números mayor (major) y menor (minor).
80
¿Qué indica el número mayor (major)?
El driver que maneja un grupo específico de dispositivos.
81
¿Qué indica el número menor (minor)?
Un dispositivo específico dentro del grupo gestionado por un driver.
82
¿Qué system call se usa para crear archivos especiales que representan dispositivos?
mknod.
83
¿Qué indica la 'c' en la llamada mknod?
Que se trata de un dispositivo de carácter.
84
¿Qué indica la 'b' en la llamada mknod?
Que se trata de un dispositivo de bloque.
85
¿Qué hace el programa udev respecto a los nodos de dispositivos?
Monitorea y crea dinámicamente los nodos de dispositivo.
86
¿Qué tipo de inodos crea mknod?
Inodos de tipo Block device o Character device.
87
¿Qué se monta cuando se usa el comando mount con un dispositivo?
El sistema de archivos contenido en el dispositivo de bloques.
88
¿Qué indica el parámetro -t en mount?
El tipo de filesystem que se está montando (ej: ext4).
89
¿Qué representa /mnt/mi_directorio en el comando mount?
El punto de montaje donde se colocará el filesystem.
90
¿Qué se monta con el comando: mount -t ext4 /dev/sda1 /mnt/mi_directorio?
Un sistema de archivos ext4 contenido en /dev/sda1, montado en /mnt/mi_directorio.
91
¿Existen filesystems que no correspondan a dispositivos físicos?
Sí, existen filesystems completamente virtuales.
92
¿Qué es procfs?
Un filesystem virtual que proporciona información sobre procesos y el sistema directamente desde el kernel.
93
¿Qué comando permite montar el filesystem virtual procfs?
mount -t proc proc /proc.
94
¿Dónde se puede consultar qué otros filesystems virtuales existen?
En el directorio /proc.
95
¿Qué diferencia principal hay entre dispositivos de bloque y de carácter?
Los de bloque transfieren datos en bloques, los de carácter lo hacen byte a byte.
96
¿Qué comando se usa para listar los dispositivos presentes en /dev?
ls /dev.
97
¿Qué representa un archivo especial de tipo DEVICE?
Una interfaz entre el sistema de archivos y un dispositivo físico.
98
¿Quién define los números major y minor para un dispositivo?
El administrador del sistema, aunque udev suele gestionarlos automáticamente.
99
¿En qué dos clases se pueden dividir las syscalls de archivos?
- Las que operan sobre los archivos propiamente dichos. - Las que operan sobre los metadatos de los archivos.
100
¿Qué hace la system call open()?
Convierte el nombre de un archivo en una entrada de la tabla de descriptores de archivos y devuelve el descriptor más pequeño disponible.
101
¿Qué tipo de flags se pueden pasar a open()?
Flags como O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, O_TRUNC, y pueden combinarse entre sí.
102
¿Qué hace creat()?
Equivale a llamar a open() con los flags O_CREAT|O_WRONLY|O_TRUNC.
103
¿Qué hace la system call close()?
Cierra un file descriptor. Si ya está cerrado, devuelve un error.
104
¿Qué hace read()?
Lee hasta un número dado de bytes desde un archivo, comenzando en la posición actual del file descriptor.
105
¿Qué tipos de datos usan los argumentos de read()?
Usa size_t para el tamaño del buffer y ssize_t para el valor devuelto.
106
¿Cuál es la cantidad máxima de bytes que se pueden transferir con read() en Linux?
Hasta 0x7ffff000 (2,147,479,552) bytes.
107
¿Qué hace write()?
Escribe hasta una determinada cantidad de bytes desde un buffer a un archivo referenciado por el file descriptor.
108
¿Puede write() escribir menos bytes que los indicados?
Sí, si no hay suficiente espacio o si se encuentra un límite como RLIMIT_FSIZE o una señal interrumpe la escritura.
109
¿Qué hace lseek()?
Reposiciona el offset de un archivo abierto según el parámetro whence (SEEK_SET, SEEK_CUR o SEEK_END).
110
¿Para qué sirve dup()?
Duplica un file descriptor, devolviendo el menor descriptor disponible que apunta al mismo archivo.
111
¿En qué se diferencia dup2() de dup()?
dup2() permite especificar el nuevo file descriptor en lugar de usar el más pequeño disponible.
112
¿Qué comparten los descriptores duplicados por dup()?
Comparten el mismo archivo abierto, offset y flags de estado.
113
¿Qué es la tabla per-process de file descriptors?
Es una tabla que mantiene el kernel por cada proceso, con entradas para cada file descriptor abierto por ese proceso.
114
¿Qué almacena la tabla global de open files?
Offset actual, flags de estado, modo de acceso y una referencia al i-nodo del archivo.
115
¿Qué almacena la tabla de i-nodos del sistema de archivos?
Tipo de archivo, puntero a locks sobre el archivo y otras propiedades.
116
¿Qué es un hard link?
Es cuando más de un dentry apunta al mismo inodo.
117
¿Qué es un soft link?
Es un archivo especial que contiene la ruta al archivo de destino.
118
¿Qué system call crea un hard link?
link().
119
¿Qué característica tienen los nombres creados con link()?
Se comportan igual que el nombre original y no es posible distinguir cuál fue creado primero.
120
¿Qué system call crea un soft link?
symlink().
121
¿Puede haber hard links a directorios?
No, normalmente no están permitidos por razones de seguridad y coherencia del sistema de archivos.
122
¿Qué hace unlink()?
Elimina un nombre de un archivo del sistema de archivos, y si es el último y no está abierto, borra el archivo completamente.
123
¿Qué hace mkdir()?
Crea un nuevo directorio en el sistema de archivos.
124
¿Qué hace rmdir()?
Elimina un directorio vacío del sistema de archivos.
125
¿Qué hace opendir()?
Abre y devuelve un stream (DIR*) que permite leer un directorio.
126
¿Qué hace readdir()?
Devuelve la próxima entrada del directorio como una estructura con información del archivo.
127
¿Qué hace closedir()?
Cierra un stream de tipo DIR* abierto con opendir().
128
¿Qué hace stat()?
Devuelve información detallada sobre un archivo sin requerir permisos sobre el archivo, pero sí sobre los directorios en su path.
129
¿Qué contiene la estructura struct dirent?
Incluye al menos el nombre del archivo (d_name) y el número de i-nodo (d_fileno).
130
¿Qué hace access()?
Chequea si un proceso tiene permisos sobre un archivo (existencia, lectura, escritura, ejecución).
131
¿Qué hace chmod()?
Cambia los bits de modo de acceso de un archivo.
132
¿Qué hace chown()?
Cambia el id del propietario y el grupo de un archivo.
133
¿Qué valores se pueden pasar a access()?
F_OK, R_OK, W_OK, X_OK, que pueden combinarse con '|'.
134
¿Qué representa d_name en struct dirent?
Es el nombre del archivo, null-terminated, garantizado por POSIX.
135
¿Qué hace la system call link() en términos de inodos?
Asocia otro nombre (dentry) al mismo inodo, creando así un hard link.
136
¿Por qué no hay soft links a inodos directamente?
Porque los soft links contienen la ruta al archivo destino, no apuntan directamente a un inodo.
137
¿Qué significa que un archivo tenga múltiples hard links?
Que varios nombres en el sistema de archivos apuntan al mismo inodo.
138
¿Qué pasa si se hace unlink() a un archivo con varios hard links?
Solo se elimina un nombre; el archivo sigue existiendo mientras haya otros links o esté abierto.
139
¿Qué ocurre si se hace unlink() al último link de un archivo y no está abierto por ningún proceso?
El archivo se elimina completamente del sistema de archivos.
140
¿Qué es vsfs?
Es un Very Simple File System, una versión simplificada de un sistema de archivos tipo UNIX.
141
¿Qué dos aspectos fundamentales deben entenderse para pensar en un sistema de archivos?
La estructura de datos del sistema de archivos y el método de acceso.
142
¿Cómo guarda la información el sistema de archivos vsfs?
Emplea una estructura simple que parece un arreglo de bloques.
143
¿Qué función cumple el método de acceso en un sistema de archivos?
Relaciona las llamadas del sistema como open(), read(), write() con la estructura del sistema de archivos.
144
¿Cuál es el objetivo principal del diseño de un filesystem?
Construir la abstracción de archivo sobre un medio de almacenamiento basado en bloques.
145
¿Qué contiene todo sistema de archivos?
Una estructura de índice para ubicar los bloques del archivo y un mapa de espacio libre para asignar bloques.
146
¿Qué tamaño tienen los bloques en vsfs?
4 kBytes.
147
¿Cómo se ve la partición de un sistema de archivos simple?
Como una partición de N bloques numerados de 0 a N-1, cada uno de 4 KB.
148
¿Qué ocupa la mayor parte del espacio en un filesystem?
Los datos de los usuarios.
149
¿Cómo se llama la región del disco que guarda los datos de los usuarios?
Data region.
150
¿Qué es la metadata en un sistema de archivos?
Información como qué bloques pertenecen a un archivo y el tamaño del archivo.
151
¿Dónde se guarda la metadata en un sistema de archivos unix-like?
En una estructura llamada inodo.
152
¿Qué es la tabla de inodos?
Un array de inodos almacenado en el disco.
153
¿Cuánto ocupa usualmente un inodo?
128 o 256 bytes.
154
¿Cuántos inodos se pueden guardar en un bloque de 4KB si cada inodo ocupa 256 bytes?
16 inodos por bloque.
155
¿Cuántos inodos puede tener el sistema si hay 5 bloques de inodos?
80 inodos.
156
¿Cuál es la cantidad máxima de archivos que puede contener el sistema de archivos?
80 archivos, uno por cada inodo.
157
¿Qué estructura indica qué bloques e inodos están libres u ocupados?
Una estructura de asignación llamada bitmap.
158
¿Qué representa un 0 y un 1 en un bitmap?
0 indica que está libre y 1 que está ocupado.
159
¿Qué tipos de bitmap se utilizan en vsfs?
Uno para los datos (data bitmap) y otro para los inodos (inode bitmap).
160
¿Qué es el superbloque?
Es el único bloque que contiene información de todo el filesystem, como cantidad de inodos y bloques, inicio de la tabla de inodos y de los bitmaps.
161
¿Qué información contiene el superbloque?
Cantidad de inodos, cantidad de bloques, inicio de la tabla de inodos y de los bitmaps.
162
¿Qué crítica se hace al ejemplo del libro ARP respecto al número de inodos?
Que diseñar para 80 archivos en un disco de 64 bloques es un desperdicio, bastarían 4 bloques de inodos.
163
¿Cuál es el número máximo realista de archivos en el disco ejemplo?
56 archivos, porque no todos los bloques están disponibles para datos.
164
¿Qué es un inodo?
Una estructura almacenada en disco que contiene metadata sobre un archivo.
165
¿Qué es el inumber?
Es el número que identifica un inodo dentro del disco.
166
¿Cómo se accede a un inodo a partir de su inumber?
Calculando el offset: inumber * tamaño de inodo + dirección de inicio de la tabla de inodos.
167
¿Qué offset hay que calcular para acceder al inodo número 32 si cada inodo ocupa 256 bytes?
8192 bytes (32 * 256).
168
¿Dónde está el inodo número 32 si la tabla empieza en 12KB?
En la dirección 20 KB del disco (12KB + 8192 bytes).
169
¿Qué tamaño tiene el disco del ejemplo que se utiliza en el texto?
64 bloques de 4 KB cada uno.
170
¿Qué es un sistema de archivos unix-like?
Es un sistema de archivos basado en los principios de diseño de UNIX.
171
¿Qué significa FAT en el contexto de sistemas de archivos?
Significa File Allocation Table (tabla de asignación de archivos).
172
¿En qué década se implementó por primera vez el sistema de archivos FAT?
En los años 70.
173
¿Qué sistema operativo utilizó originalmente el sistema FAT?
MS-DOS y versiones tempranas de Windows.
174
¿Qué mejora introdujo FAT-32 respecto a FAT?
Soporte para volúmenes de hasta 2^32 - 1 bytes.
175
¿Qué contiene la FAT en el sistema de archivos?
Una tabla de entradas de 32 bits donde cada entrada apunta al siguiente bloque del archivo.
176
¿Cómo se organiza un archivo en FAT?
Como una lista enlazada de bloques en la tabla FAT.
177
¿Cómo se identifica si un bloque está libre en FAT?
Si FAT[i] es 0, el bloque i está libre.
178
¿Cómo se asignan bloques en algunas implementaciones de FAT?
Usan un algoritmo de ajuste siguiente que busca secuencialmente el próximo bloque libre.
179
¿Qué problema puede causar la asignación simple de bloques en FAT?
Fragmentación del archivo.
180
¿Qué herramienta mejora la localidad espacial en FAT?
El desfragmentador de disco.
181
¿Qué hace el desfragmentador en FAT (como en Windows XP)?
Reescribe los bloques de archivos para que estén contiguos en el disco.
182
¿Qué estructura de índice usa el Fast File System (FFS)?
Un índice multinivel en forma de árbol.
183
¿Qué permite el índice multinivel del FFS?
Localizar rápidamente cualquier bloque de un archivo, eficiente para archivos grandes y pequeños.
184
¿Cuántos punteros contiene típicamente un inodo en FFS?
15 punteros.
185
¿Qué tipo de punteros contiene un inodo de FFS?
12 punteros directos, uno indirecto, uno doblemente indirecto y uno triplemente indirecto.
186
¿Qué es un puntero indirecto en FFS?
Un puntero que apunta a un bloque que contiene más punteros a datos.
187
¿Qué tamaño de bloque y puntero se asume en FFS para los cálculos?
Bloques de 4 KB y punteros de 4 bytes.
188
¿Cuántos datos puede direccionar un puntero triple indirecto con bloques de 4KB?
Hasta 4 TB (4 KB × 1024^3).
189
¿Qué heurísticas usa FFS para mejorar la localidad?
Colocación de grupos de bloques y espacio de reserva.
190
¿Qué problema soluciona el buffer cache?
La lentitud de los discos al mantener bloques leídos en memoria principal.
191
¿Qué dos funciones tiene el buffer cache?
Sincronizar el acceso a bloques y almacenar bloques populares en memoria.
192
¿Qué reemplazó al buffer cache en Linux?
El page cache.
193
¿Cuál es la función del page cache en Linux?
Acelerar el acceso a archivos almacenando datos de disco en RAM.
194
¿Por qué se usa un B-Tree en filesystems?
Porque los sistemas de archivos trabajan con bloques y no con bytes, y el acceso a bloques superiores es más frecuente.
195
¿Qué ventaja tiene un B-Tree respecto a la caché?
Puede ser recorrido mayormente desde estructuras en RAM sin acceder al disco.
196
¿Qué tamaño de página usa Postgres?
8 KB.
197
¿Qué tamaño de página usa MySQL por defecto?
16 KB.
198
¿Qué hace la función write() en sistemas modernos?
Escribe datos al page cache, pero no garantiza persistencia en disco.
199
¿Qué función se debe usar para asegurar persistencia inmediata?
fsync() o fdatasync().
200
¿Qué sincroniza fsync()?
Los datos y la metadata del archivo.
201
¿Qué sincroniza fdatasync()?
Solo los datos del archivo, no la metadata.
202
¿Qué es mmap()?
Una llamada al sistema que mapea un archivo o dispositivo al espacio de direcciones de un proceso.
203
¿Qué permite mmap()?
Acceder a archivos como si fueran memoria, sin llamadas adicionales a read() o write().
204
¿mmap() garantiza persistencia por sí solo?
No, los cambios pueden perderse si no se sincronizan.
205
¿Qué función se usa para garantizar persistencia con mmap()?
msync().
206
¿Qué hace msync()?
Fuerza la sincronización de una región mapeada de memoria con el disco.
207
¿Qué sucede si varios procesos comparten un mapeo de archivo?
Comparten las mismas páginas físicas y los cambios se reflejan en el archivo.
208
¿Qué usos tiene el mapeo compartido de archivos?
E/S mediante memoria mapeada e IPC (comunicación entre procesos).
209
¿Qué otros niveles de buffering existen además del kernel?
Buffering a nivel usuario, como el de la biblioteca estándar de C o buffers propios del lenguaje.
210
¿Qué se debe recordar sobre los sistemas de caché?
Que existen varios niveles de caché, tanto en el usuario como en el kernel.
211
¿Qué es un kernel monolítico?
Es un tipo de kernel en el que el núcleo y la mayoría del sistema operativo (drivers, archivos, red, etc.) se ejecutan en el mismo espacio de memoria privilegiado.
212
¿Cuál es una ventaja del kernel monolítico?
Tiene un alto rendimiento y acceso rápido, ya que todo se ejecuta en el mismo espacio sin necesidad de mensajes entre componentes.
213
¿Cuál es una desventaja del kernel monolítico?
Un error en un driver puede colapsar todo el sistema, ya que todo corre con privilegios elevados.
214
¿Qué ejemplos de kernels monolíticos se mencionan?
Linux, Unix clásico (como BSD), MINIX original.
215
¿Qué es un microkernel?
Es un kernel que limita su funcionalidad a tareas esenciales y delega otras tareas (como drivers o sistema de archivos) a procesos en espacio de usuario.
216
¿Qué funciones realiza un microkernel?
Comunicación entre procesos (IPC), planificación de procesos (scheduling), gestión de interrupciones y memoria básica.
217
¿Dónde se ejecutan los servicios como drivers en un microkernel?
En el espacio de usuario, no en el núcleo.
218
¿Qué ventaja tiene un microkernel respecto al monolítico?
Mejora la estabilidad y seguridad al aislar componentes en espacio de usuario.
219
¿Qué desventaja puede tener un microkernel?
Puede tener menor rendimiento por la sobrecarga de comunicación entre componentes.
220
¿Qué ejemplos de microkernel se mencionan?
MINIX 3, QNX, GNU Hurd.
221
¿Qué es un kernel híbrido?
Es un kernel que combina características del monolítico y el microkernel, manteniendo un solo espacio de kernel pero con diseño modular.
222
¿Qué busca lograr un kernel híbrido?
Mantener el rendimiento del monolítico mientras mejora la modularidad y robustez.
223
¿Qué ejemplos de kernels híbridos se mencionan?
Microsoft Windows NT (y derivados como Windows XP y 10), Apple macOS (XNU kernel).
224
¿Qué es un nanokernel?
Es una versión más reducida que un microkernel, que solo abstrae el hardware y delega casi todo a capas superiores.
225
¿Dónde se suele usar un nanokernel?
En sistemas embebidos, virtualización o hipervisores.
226
¿Qué funciones cumple un nanokernel?
Solo proporciona lo mínimo: interrupciones, sincronización y temporización.
227
¿El nanokernel gestiona servicios del sistema operativo directamente?
No, no los gestiona directamente.
228
¿Qué es un exokernel?
Es un kernel minimalista que expone directamente el hardware a las aplicaciones, sin abstraerlo.
229
¿Cómo gestionan el hardware las aplicaciones en un exokernel?
Mediante bibliotecas de usuario llamadas libOS.
230
¿Qué objetivo tiene un exokernel?
Maximizar eficiencia y flexibilidad, permitiendo que las aplicaciones gestionen los recursos como deseen.
231
¿Dónde se utiliza típicamente un exokernel?
En contextos de investigación o prototipos internos.
232
¿Qué ejemplo se menciona de exokernel?
Exokernel del MIT.
233
¿Cuál es la diferencia principal entre un microkernel y un exokernel?
El microkernel abstrae funciones básicas del sistema, mientras que el exokernel expone directamente el hardware a las aplicaciones.
234
¿Qué tipo de kernel maximiza rendimiento sacrificando estabilidad?
El kernel monolítico.
235
¿Qué tipo de kernel sacrifica algo de rendimiento para ganar estabilidad y seguridad?
El microkernel.
236
¿Qué tipo de kernel intenta equilibrar rendimiento y modularidad?
El kernel híbrido.
237
¿Qué kernel tiene el diseño más minimalista en cuanto a funcionalidades?
El nanokernel.