Final Sistemas Operativos UTN FRBA 21/07/2007 RESUELTO 1

Anuncio
Final Sistemas Operativos
21/07/2007
RESUELTO
UTN FRBA
1. Cuando se abre por primera vez un archivo, ¿el sistema de gestión de archivos
carga en memoria el descriptor de archivos almacenado en disco, correspondiente a
dicho archivo?
Rta: Cierto. El descriptor guarda información acerca del archivo y es necesaria
para su gestión.
2. ¿Cuál de los planificadores es el encargado de bajar la tasa de multiprogramación
del sistema?
Rta: Planificador a largo plazo. Éste es el planificador que hace lo indicado.
3. En un sistema operativo que ofrezca mecanismos de suspensión y reanudación,
mediante un único cambio de estado ¿a que estado puede pasar un proceso que está
dormido?
Rta: Listo. Si despierta el proceso pasaría a este estado.
4. En un sistema operativo Microkernel la forma básica de comunicación entre
procesos (ó entre hilos) son las interrupciones a nivel software.
Rta: Falso. No son las interrupciones, son los mensajes.
Pág. 178, 1er.
párrafo de IPC.
5. El algoritmo de cifrado es el único que permite realizar varias sustituciones y
transformaciones sobre un texto claro
VERDADERO
Pag 136 5ta ed,
Ejercicios
Ejercicio 1:
Un proceso productor deposita los mensajes en un Buffer de 30 posiciones. Otro proceso
intermediario los retira y los procesa depositando los mensajes procesados en un Buffer de 5 posiciones. Luego
otros dos procesos C1 y C2 los retiran e Imprimen alternadamente, (C1, C2, C1, C2, C1, C2 etc.). Se pide realizar
la sincronizar de los 4 procesos utilizando solamente las primitivas de semáforos P() y V(), considerando que los
valores de los mismos son: vacío =30, lleno=0, vacío1 =5, lleno1 =0, a =1, b =0, mutex =1, Mutex1 = 1.
SOLUCIÓN
A
while(1)
{
m=producir()
P(vacío)
P(mutex)
depositar(m)
V(mutex)
V(lleno)
}
B
while(1)
{
P(lleno)
P(mutex)
m=retirar()
V(mutex)
V(vacío)
k=procesar(m)
P(vacío1)
P(mutex1)
depositar(k)
V(mutex1)
V(lleno1)
}
C1
while(1)
{
P(a)
P(lleno1)
P(mutex1)
k=retirar_k()
V(mutex1)
V(vacio1)
consumir(k)
V(b)
}
C2
while(1)
{
P(b)
P(lleno1)
P(mutex1)
k=retirar_k()
V(mutex1)
V(vacio1)
consumir(k)
V(a)
}
Se desea implementar un sistema de administración de memoria virtual mediante
paginación. El bus de direcciones es de 32 bits. La unidad mínima direccionable es un
byte. La cantidad de memoria RAM (real) instalada en el equipo puede ser variable. La
cantidad mínima de memoria es de 4 MB y se puede incrementar en potencias de 2 (es
decir 8 MB, 16MB, 32MB,etc..., hasta un máximo que por el momento no nos interasa).
El tamaño de la página es de 4KB y el del descriptor de página de 3 bytes. Se desea
Final Sistemas Operativos
21/07/2007
RESUELTO
UTN FRBA
poder controlar si se ha accedido a una página, si se ha modificado, así como también
poder protegerla de lectura, escritura y ejecución.Se supone que se dispone de
suficiente memoria secundaria para dar soporte a la memoria virtual y para un espacio
de direccionamiento único se pide:
1) Especifique los formatos de dirección lógica (virtual) y de descriptor de página.
2) Escriba el tamaño de la tabla de páginas (en bytes)
3) Escriba la cantidad máxima de memoria real que puede manejar este Sistema
(en bytes).
1)
Formato dirección lógica (virtual):
20 bits
12 bits
Número de Página.
Desplazamiento
Formato del descriptor de página:
6 bits 18 bits
P R M L E X Número Marco
Donde los bits P, R, M, L, E y X son respectivamente los de presencia, referencia, modificación,
protección de lectura, protección de escritura y protección de ejecución.
2) La tabla de páginas tendrá 220 entradas y como cada entrada ocupa 3 bytes el tamaño de la tabla sería de 3
MB.
3) Ya que el número máximo de marcos es de 218 marcos y cada marco es de 4 KB, la cantidad máxima de
memoria real será: 218 * 4 KB = 1 GB.
Se tienen dos discos uno con un file system tradicional Unix y el otro para backup con un file system BA32 de
500GB. Se Necesitan copiar 3 archivos del primer disco al segundo. El primer archivo tiene ocupado solo los 10
punteros directos del I-nodo, el segundo ocupa toda la estructura completa del i-nodo y el tercero ocupa los 10
punteros directos, todos los punteros de la indirección simple, todos los de la indirección doble y 70 dobles, con sus
respectivos simples completos de la indirección triple. El tamaño del bloque es de 1k y los punteros son de 32 bits.
El disco de backup trabaja con asignación contigua y tiene una estructura de directorios en un solo nivel que ocupa
los primeros 100 bloques (1 bloque =1 sector) del disco.
Cada entrada en el directorio tiene los siguientes campos con su respectivo tamaño.
nombre
30bytes
Nºbloque
comienzo
16bytes
NºBloque
finalización
16bytes
Tamaño en
Bytes
4bytes
fecha
hora
tipo
2bytes
2bytes
3bytes
Todavía no hay archivos grabados
Se pide :
a) Cuál es el tamaño de cada archivo en bytes.
b) Cuantas operaciones sobre el disco BA32 para hacer la copia.
c) Mostar el estado final en la estructura de directorio de BA32, para los 4 primeros campos.
RESPUESTA
Cantidad de punteros por bloque 1024/4=256
a)Tamaño del archivo A= 10*1K=10K
Tamaño del archivo B= 10*1K+256*1k+(256)2 *1k+(256)3 1K= 266k+ 64M+16G
Tamaño del archivo C= 10*1k+256 1K+ (256)2 *1k+70*(256)2 *1k
b) solo se puede copiar el archivo A de bido a que los otros dos superan el tamaño disponible en la
entrada del directorio (4G)
como el A ocupa 10k y l9os bloques son de 1 sector(512 Bytes) en este disco Î 20 bloques del disco BS32
para grabar + 1 bloque del directorio
operaciones 21
c)
A
101
120
10240
Descargar