Publicado el 30 de Enero del 2019
1.282 visualizaciones desde el 30 de Enero del 2019
252,3 KB
8 paginas
Creado hace 15a (11/03/2010)
1
SISTEMA DE FICHEROS
Problema 1.1
La cola de acceso a un disco tiene las siguientes peticiones (solamente indicaremos el cilindro afectado). 10,
200, 75, 32, 450, 123.
El tiempo de búsqueda es de 3 + 0,04∙x ms, siendo x el número de cilindros a recorrer.
Suponiendo que el disco se encuentra inicialmente en el cilindro 300 calcular la suma de los tiempos de
búsqueda para las siguientes políticas de planificación: FCFS, SSF y CSCAN
Problema 1.2
Sea un sistema de ficheros UNIX de direcciones de bloque de 32 bits.
Determinar el tamaño del máximo fichero para los siguientes casos: a) Bloque: 512 B, b) Bloque 4 KB
Suponiendo que el nodo-i del fichero es el único dato existente en memoria y que estamos en el caso de bloques
de 4KB, determinar el número de accesos a disco que son necesarios, en el peor caso, para acceder al byte situado
en la posición 3 Mbytes.
Problema 1.3
Sobre el árbol de directorios de la figura, indicar el número de accesos al disco necesario para realizar la
operación de apertura del fichero /Textos/Tipo/Sec1/Apl3 para su lectura en los siguientes supuestos:
● No existe ninguna información en la cache de bloques.
● Se acaba de abrir el fichero /Textos/Tipo/Sec2/Des con permisos de lectura y escrituras.
Directorio raíz
Textos
Div11
.Div2
Edit
Tipo
Distrib
Person
Client
Product
Almac
Simin
Mant
Sec1
Sec2
Sec1
Sec2
Sec3
Activ
Pasiv
Apl1
Apl2
Apl3
Des
PR1
PR2
PR3
Identificador
de directorio
Identificador
de fichero
ii Problemas de sistemas operativos
Problema 1.4
Se tiene un disco con sectores de 512 B y una capacidad de 150 GB. Se quiere dar formato a un sistema de
ficheros tipo UNIX para dicho disco. Suponiendo que:
● El tamaño del bloque es de 4 KB
● El tamaño medio de los ficheros a almacenar es de 100 KB.
Determinar el tamaño del nodo_i así como los tamaños de las zonas que componen el sistema de ficheros.
Determinar con precisión el tamaño máximo que podría tener un fichero en sistema.
Problema 1.5
Realizar una figura con las estructuras de información relativas al servidor de ficheros que existen después de
la secuencia siguiente:
● Proceso 1 Abre fichero /Textos/Tipo/Ses1/Apl3 para lectura. Dicho fichero tiene inicialmente un tamaño
de 45.567 B.
● Proceso 2 Abre fichero /Textos/Tipo/Ses1/Apl3 para lectura y escritura.
● Proceso 1 lee 400 B de Apl3.
● Proceso 2 Adelanta el puntero de posición de Apl3 en 20.
● Proceso 1 Crea un hijo, que será el proceso 3.
● Proceso 3 Escribe 12.560 B en Apl3.
Problema 1.6
Un fichero /home/juan/dat.txt tiene inicialmente el siguiente contenido, expresado como bytes en hexadecimal:
01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13
Se realiza la siguiente secuencia
- Proceso 1 abre el fichero fd = open(“/home/juan/dat.txt”, O_RDWR);
- Proceso 2 abre el fichero fd = open(“/home/juan/dat.txt”, O_RDWR);
- Proceso 1 crea un hijo, el proceso 3
- Proceso 2 ejecuta read(fd, buf, 5);
- Proceso 3 ejecuta lseek(fd,2,SEEK_CUR);
- Proceso 3 ejecuta write(fd, “FGTHIJ”, 6);
- Proceso 2 ejecuta lseek(fd,-9, SEEK_END);
- Proceso 2 ejecuta write(fd, “Esto es una prueba para ver que contenido”, 35);
Indicar el contenido final del fichero, así como su tamaño.
Problemas de sistemas operativos iii
Problema 1.7
El Sistema Operativo UNIX, gracias a la operación de montaje de una partición (que ha de contener un sistema
de ficheros simple), ofrece la visión de un único árbol de ficheros que realmente está soportado sobre varias
particiones. Este diseño plantea las siguientes limitaciones:
● No se puede realizar un enlace físico (link) entre dos nombres de fichero cuando pertenecen a
particiones distintas.
● Un fichero puede crecer como máximo hasta agotar el espacio de la partición a la que pertenece, pero
no puede extenderse sobre otras particiones, a pesar de que quede espacio libre en estas.
Se pide que, para cada una de estas limitaciones, discuta el porqué de la misma indicando las estructuras de
datos de los sistemas de ficheros que están involucradas.
Problema 1.8
Un determinado computador personal dispone de un único disco duro con dos Sistemas Operativos, un
Windows y un Linux. El gestor de arranque consulta al usuario con cuál Sistema Operativo desea arrancar en cada
momento. El disco duro está particionado como se muestra en la siguiente tabla, donde el campo punto de montaje
indica en que directorio se procede a montar esa partición cuando se arranca en Linux.
Partición
/dev/sda1
/dev/sda2
/dev/sda3
/dev/sda4
Tamaño
100 GiB
48 GiB
8 GiB
100 GiB
/home
Considere que hemos arrancado en Linux y ejecutamos el mandato:
cp /tmp/UnGiga.dat /home/C:/usuario/
Punto de montaje
/windows
/
Tipo de SF
FAT32
Linux UFS
Linux swap
Linus UFS
Siendo “C:” un enlace simbólico a “/windows/Documents and Settings/” (espacio para datos de
las cuentas de usuario en Windows), existiendo todas las rutas necesarias, y disponiendo el usuario de todos los
derechos necesarios.
a) Determine las secuencias de directorios que será necesario acceder durante la fase de decodificación de las
rutas de origen y destino de este mandato (llamadas open), indicando a cada paso el criterio para decidir
pasar de cada uno al siguiente.
b) Identifique qué datos y qué metadatos deberán ser manipulados (leídos o escritos) durante el bucle de copia
de datos propiamente dicho.
Problema 1.9
Un sistema de ficheros similar al de UNIX, presenta las siguientes características:
Representación de ficheros mediante nodos-i con 12 direcciones directas a bloque, un indirecto simple, un
indirecto doble y un indirecto triple y direcciones de bloques de 4 bytes. El tamaño del bloque del sistema de
ficheros es de 8 KB.
El sistema de ficheros emplea un cache de 4 MB con una política de reemplazo LRU.
Sobre este sistema se ejecuta el siguiente fragmento de código:
iv Problemas de sistemas operativos
#define DATA_SIZE
2048
#define N
5000
char buffer[DATA_SIZE];
int fd, i;
fd = open(“fichero”, O_RDWR);
for (i = 0 ; i < N; i++)
lseek(fd, 0, SEEK_SET);
for (i = 0 ; i < N; i++)
Close(fd);
read(fd, buffer, DATA_SIZE);
write(fd, buffer, DATA_SIZE);
Teniendo en cuenta que el fichero tiene un tamaño inicial de 16 MB, que la cache se encuentra inicialmente
vacía y que no se realiza ninguna operación de volcado (flush) durante el mencionado programa, se pide:
a) ¿Cuántos accesos a disco se producen durante los bucles de lectura y escritura utilizando una política de
actualización write-through (escritura inmediata)?
b) ¿Cuántos accesos se producirían si se utilizase una política de actualización write-back (escritura diferida)?
c) Calcule la tasa de aciertos a la cache que se produce durante el bucle de lectura.
Problema 1.10
Sean los códigos programa 1 y programa 2 que ejecutará el usuario jperez
/* Programa 1 */
int main (void) {
int fd; int pid; int cont;
fd = open (“/alfa”, O_RDWR);
cont = write(fd, “Escribo alfa”, strlen(“Escribo alfa”));
close(fd);
fd = open (“/beta/b4/tyz”, O_RDWR);
lseek(fd, 13,SEEK_SET);
cont = write(fd, “del ejemplo”, strlen(“del ejemplo”));
pid = fork();
/* PUNTO A */
switch (pid) {
case -1:
break;
case 0: /* hijo */
cont = write(fd, “del hijo”, strlen(“del hijo”));
/* PUNTO C */
break;
cont = write(fd, “del padre”, strlen(“del padre”));
default: /* padre */
/* PUNTO D */
}
return 0;
}
/* Programa 2 */
int main (void) {
int fd; int cont;
fd = open (“/beta/b4/tyz”, O_RDWR);
cont = write(fd, “Proceso 2 escribe”, strlen(“Proceso 2 escribe”));
/* PUNTO B */
close(fd);
return 0;
}
Problemas de sistemas operativos v
Suponiendo que el orden de ejecución es el siguiente:
◙ Proceso padre con código programa 1 ejecuta hasta el punto A
◙ El proceso con código programa 2 ejecuta hasta el punto B
◙ El proceso hijo con código programa 1 ejecuta hasta el punto C
◙ Vuelve a ejecutar el padre hasta el punto D
Y que los contenidos de algunas agrupaciones y nodos-i son los mostrados en las tablas adjuntas, se pide:
a) Establecer el esquema de directorios.
b) Indicar el tamaño de la agrupación
c) Indicar, para cada uno de los procesos, los valores devueltos por cada uno de los servicios del SO que
d) Indicar el contenido del fichero /alfa en el punto A y el contenido del fichero /beta/b4/tyz en los puntos A, B y
ejecuta.
C.
Agrupación
32
73
74
112
138
255
271
1300
2342
3207
3765
4731
6734
6777
15301
Contenido
. 2; .. 2; usr 121; alfa 243; bi 453; beta 54
. 417; .. 453 .....
. 628; .. 54; abc 742; tyz 375
. 412; .. 453 .....
. 453; .. 2; bi 430; apli1 412; apli2 417
¿Cómo se aplica la sección 3.3 del plan de seguridad .....
. 121; .. 2; prof1 301; prof2 317; prof3 371
. 301; .. 121 .....
CALLE SANDOVAL, 3 ......
. 430; .. 453 .....
Desde el punto de vista del usuario, la tabla Panel ....
El usuario jramirez está .......
. 54; .. 2: b1 621; b2 612; b3 614; b4 628
En el esquema correspondiente se representan estas líneas .....
Para el ejemplo de prueba se han propuesto 5 casos que ....
Nodo-i
2
54
121
243
301
317
371
375
412
417
430
453
612
614
621
Dueño (UID)
Root (0)
Root (0)
Root (0)
Root (0)
jperez
lgomez
rfung
jperez
Root (0)
Root (0)
Root (0)
Root (0)
lgomez
lgomez
lgomez
Permisos
rwx r-x r-x
rwx r-x r-x
rwx r-x r-x
rwx —- —-
rwx r-x r-x
rwx r-x r-x
rwx r-x r-x
rwx r-x r-x
rwx r-x r-x
rwx r-x r-x
rwx r-x r-x
rwx r-x r-x
rwx r-x r-x
rwx r-x r-x
rwx r-x r-x
Tipo
directorio
directorio
directorio
usuario
directorio
usuario
usuario
usuario
directorio
directorio
directorio
directorio
usuario
usuario
usuario
Agrupaciones
32
6734
271
4731
1300
255 y 257
15301 a 15305
6777 a 6779
112
73
3207
138
3765
4321 y 486
2342
Tamaño
180
180
150
653
300
1568
4354
2564
120
180
330
150
473
1324
875
SUID, SGID
vi Problemas de sistemas operativos
628
742
jperez
jperez
rwx r-x r-x
rwx r-x r-x
directorio
usuario
74
5701 a 5708
120
7432
Problema 1.11
Sea un sistema que utiliza páginas de 4KB y cuyos bloques de sistema de
Comentarios de: Sistema de Ficheros (0)
No hay comentarios