PDF de programación - 100 ejercicios resueltos de sistemas operativos

Imágen de pdf 100 ejercicios resueltos de sistemas operativos

100 ejercicios resueltos de sistemas operativosgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 15 de Febrero del 2018)
8.300 visualizaciones desde el 15 de Febrero del 2018
2,0 MB
140 paginas
Creado hace 14a (19/03/2010)
00 Ejercicios resueltos
de Sistemas Operativos

José Ribelles Miguel
José Martínez Sotoca
Pedro García Sevilla

Departament De llenguatges i sistemes informàtics

Codi d’assignatura IG

J. Ribelles / J. Martínez / P. García - ISBN: 978-84-693-048-7



00 Ejercicios resueltos de Sistemas Operativos - UJI

Edita: Publicacions de la Universitat Jaume I. Servei de Comunicació i Publicacions
Campus del Riu Sec. Edifici Rectorat i Serveis Centrals. 07 Castelló de la Plana
http://www.tenda.uji.es e-mail: [email protected]

Col·lecció Sapientia, 30
www.sapientia.uji.es

ISBN: 978-84-693-048-7


Aquest text està subjecte a una llicència Reconeixement-NoComercial-CompartirIgual de Creative
Commons, que permet copiar, distribuir i comunicar públicament l’obra sempre que especifique
l’autor i el nom de la publicació i sense objectius comercials, i també permet crear obres derivades,
sempre que siguen distribuïdes amb aquesta mateixa llicència.
http://creativecommons.org/licenses/by-nc-sa/.5/es/deed.ca

J. Ribelles / J. Martínez / P. García - ISBN: 978-84-693-048-7



00 Ejercicios resueltos de Sistemas Operativos - UJI















.
.
.
.
.
.
.
.

. . . . . . . . . . . . . . . . . . . . . . .
.
. . . . . . . . . . . . . . . . . . . . . . . .
.
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. .

15
15
19

1
1
8
13

´Indice general
´Indice general

Prefacio


1. Procesos e Hilos
.
.
.
.
1.1. Procesos .
.
1. Procesos e Hilos
1.2. Planificaci´on .
.
.
1.3. Hilos .
.
.
.
.
.
1.1. Procesos .
.
.
1.2. Planificaci´on .
.
1.3. Hilos .
.
2.1. Tuber´ıas .
.
.
.
2.2. Sem´aforos .
.
.

.
.

.
.

.

.

.

.

.

.

2. Comunicaci´on y Sincronizaci´on de Procesos

2. Comunicaci´on y Sincronizaci´on de Procesos
3. Gesti´on de Archivos y Directorios

2.1. Tuber´ıas .
.
3.1. Sistemas de Archivos . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Sem´aforos .
3.2. Archivos y Directorios
. . . . . . . .

.
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

29
29
31

.
.
. .

3. Gesti´on de Archivos y Directorios
4. Gesti´on de Memoria
.

3.1. Sistemas de Archivos . . . . . . . . . . . . . . . . . . . . . . . .
4.1. Paginaci´on .
. . . . . . . . . . . . . . . . . . . . . . . .
3.2. Archivos y Directorios
. . . . . . . . . . . . . . . . . . . . . . .
4.2. Pol´ıticas de Reemplazo . . . . . . . . . . . . . . . . . . . . . . .

35
35
36

.

.

.

.

4. Gesti´on de Memoria
5. Ejercicios Generales
4.1. Paginaci´on .
. . . . . . . . . . . . . . . . . . . . . . . . . .
.
4.2. Pol´ıticas de Reemplazo . . . . . . . . . . . . . . . . . . . . . . .

6. Soluciones

39

57

.

.

5. Ejercicios Generales

6. Soluciones

4

6
1
6
1
13
8
18
13

15
20
20
15
24
19

29
33
33
29
35
31

35
38
38
35
39
36

39
41

58

57

V

V

3

J. Ribelles / J. Martínez / P. García - ISBN: 978-84-693-048-7

00 Ejercicios resueltos de Sistemas Operativos - UJI

Prefacio

Los Sistemas Operativos han constituido tradicionalmente una materia troncal
en los planes de estudio de todas las titulaciones de Inform´atica. Las asignaturas
que desarrollan estos contenidos incluyen aspectos te´oricos fundamentales como
procesos e hilos, gesti´on de memoria, comunicaci´on, sincronizaci´on y sistemas de
archivos. Adem´as, es frecuente incluir una parte pr´actica que permite que el alumno
conozca no s´olo los principios te´oricos, sino tambi´en c´omo se aplican en sistemas
operativos reales.

El objetivo de este libro es proporcionar suficiente material pr´actico para apo-
yar la docencia, tanto presencial, desarrollada en clases de problemas o en labo-
ratorio, como no presencial, proporcionando al estudiante un material de apoyo al
estudio de un nivel y contenido adecuado a una asignatura real.

En concreto, las cuestiones, ejercicios y problemas que se recogen en este li-
bro son el resultado de su recopilaci´on a lo largo de cuatro cursos, desde el a˜no
2004, del material utilizado en la asignatura de Sistemas Operativos de la Inge-
nier´ıa T´ecnica en Inform´atica de Gesti´on de la Universitat Jaume I de Castell´on.
Dicha asignatura se estructura en 3 cr´editos de teor´ıa, 1,5 cr´editos de problemas y
1,5 cr´editos de laboratorio. No obstante, el material incluido es bastante gen´erico
y puede ser empleado en cualquier asignatura b´asica de Sistemas Operativos.

El contenido de este libro se divide en 6 cap´ıtulos cuya descripci´on se indica a

continuaci´on:

1. Gesti´on de Procesos e Hilos: planificaci´on de procesos, jerarqu´ıa de procesos

y uso de las llamadas al sistema para la gesti´on de procesos e hilos.

2. Comunicaci´on y Sincronizaci´on de Procesos: problemas cl´asicos de la sec-
ci´on cr´ıtica, productor-consumidor y lector-escritor; y llamadas al sistema
para el manejo de sem´aforos y tuber´ıas.

3. Gesti´on de Archivos y Directorios: sistemas de archivos tipo FAT y nodo-i,

llamadas al sistema para la gesti´on de archivos y directorios.

4. Gesti´on de Memoria: memoria virtual, paginaci´on y pol´ıticas de reemplazo.

5. Problemas generales: problemas cuya resoluci´on incluya conceptos tratados

en varios de los cap´ıtulos anteriores.

III

J. Ribelles / J. Martínez / P. García - ISBN: 978-84-693-048-7

4

00 Ejercicios resueltos de Sistemas Operativos - UJI

6. Soluciones: en este cap´ıtulo se encuentran las soluciones a los ejercicios

planteados en todos los cap´ıtulos anteriores.

Se ha creado la p´agina Web http://ig11.uji.es como apoyo a este ma-
terial, para mantenerlo actualizado incluyendo m´as ejercicios, p´aginas de ayuda, fe
de erratas, etc.

Por ´ultimo, no queremos dejar de expresar nuestro agradecimiento a los pro-
fesores Gustavo Casa˜n, Isabel Gracia y Antonio Castellanos, todos ellos del De-
partamento de Lenguajes y Sistemas Inform´aticos de la Universitat Jaume I, que
tambi´en han participado en la impartici´on de la asignatura durante otros cursos y,
como no, en la elaboraci´on de algunos de los ejercicios propuestos de este libro.

Marzo, 2010

J. Ribelles / J. Martínez / P. García - ISBN: 978-84-693-048-7

5

00 Ejercicios resueltos de Sistemas Operativos - UJI

Cap´ıtulo 1

Procesos e Hilos

1.1. Procesos

1. Observa el siguiente c´odigo y escribe la jerarqu´ıa de procesos resultante.

#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char ∗argv[]) {

int num;
pid t pid;

for (num= 0; num< 3; num++) {

pid= fork();
printf ("Soy el proceso de PID %d y mi padre tiene %d de PID.\n",
if (pid!= 0)

getpid(), getppid());

break;

srandom(getpid());
sleep (random() %3);

}if (pid!= 0)

printf ("Fin del proceso de PID %d.\n", wait (NULL));

return 0;

}

Ahora compila y ejecuta el c´odigo para comprobarlo. Contesta a las siguien-
tes preguntas:

¿Por qu´e aparecen mensajes repetidos?
Presta atenci´on al orden de terminaci´on de los procesos,
• ¿qu´e observas?
• ¿por qu´e?

1

J. Ribelles / J. Martínez / P. García - ISBN: 978-84-693-048-7

6

00 Ejercicios resueltos de Sistemas Operativos - UJI

2. Observa el siguiente c´odigo y escribe la jerarqu´ıa de procesos resultante.

#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char ∗argv[]) {

int num;
pid t pid;

srandom(getpid());
for (num= 0; num< 3; num++) {

pid= fork();
printf ("Soy el proceso de PID %d y mi padre tiene %d de PID.\n",
if (pid== 0)

getpid(), getppid());

break;

}if (pid== 0)

sleep(random() %5);

else

for (num= 0; num< 3; num++)

printf ("Fin del proceso de PID %d.\n", wait (NULL));

return 0;

}
Ahora compila y ejecuta el c´odigo para comprobarlo. Presta atenci´on al or-
den de terminaci´on de los procesos, ¿qu´e observas? ¿por qu´e?

3. Dibuja la estructura del ´arbol de procesos que obtendr´ıamos al ejecutar el

siguiente fragmento de c´odigo:
for (num= 0; num< 2; num++) {

nuevo= fork();
if (nuevo== 0)

/∗ 1 ∗/

break;

}nuevo= fork();

nuevo= fork();
printf("Soy el proceso %d y mi padre es %d\n", getpid(), getppid());

/∗ 2 ∗/
/∗ 3 ∗/

4. Considerando el siguiente fragmento de c´odigo:

for (num= 1; num<= n; num++){

nuevo= fork();
if ((num== n) && (nuevo== 0))

execlp ("ls", "ls", "-l", NULL);

}

a) Dibuja la jerarqu´ıa de procesos generada cuando se ejecuta y n es 3.
b) Indica en qu´e procesos se ha cambiado la imagen del proceso usando

la funci´on execlp.

2

J. Ribelles / J. Martínez / P. García - ISBN: 978-84-693-048-7

7

00 Ejercicios resueltos de Sistemas Operativos - UJI

5. Dibuja la jerarqu´ıa de procesos que resulta de la ejecuci´on del siguiente c´odi-
go. Indica para cada nuevo proceso el valor de las variables i y j en el mo-
mento de su creaci´on.
for (i= 0; i< 2; i++) {

pid= getpid();
for (j= 0; j< i+2; j++) {

nuevo= fork();
if (nuevo!= 0) {

/∗ 1 ∗/
nuevo= fork(); /∗ 2 ∗/
break;

}

}if (pid!= getpid())

break;

}

6. Estudia el siguiente c´odigo y escribe la jerarqu´ıa de procesos resultante. Des-
pu´es, compila y ejecuta el c´odigo para comprobarlo (deber´as a˜nadir llamadas
al sistema getpid, getppid y wait para conseguirlo).
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

#define L1 2
#define L2 3

int main (int argc, char ∗argv[]) {

int cont1, cont2;
pid t pid;

for (cont2= 0; cont2< L2; cont2++) {

for (cont1= 0; cont1< L1; cont1++) {

pid= fork();
if (pid== 0)

break;

}if (pid!= 0)

break;
}return 0;

}

7. Dibuja la jerarqu´ıa de procesos que resulta de la ejecuci´on del siguiente c´odi-
go. Introduce las llamadas al sistema wait para que una vez generado el ´arbol
de procesos los hijos sean esperados por sus respectivos padres. Adem´as,
haz q
  • Links de descarga
http://lwp-l.com/pdf8813

Comentarios de: 100 ejercicios resueltos de sistemas operativos (1)

mariano
2 de Julio del 2018
estrellaestrellaestrellaestrellaestrella
Hola buenas tardes, una pregunta, en que lenguaje estan los ejercicios?
Responder

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad