Next: Fechas de entrega y
Up: Prácticas de Arquitectura de
Previous: Retoques y temas avanzados
- 1.- Escriba un programa que cree un nuevo proceso y a partir de ahí padre (proceso original) e hijo (nuevo proceso) continúen indefinidamente escribiendo cada uno una línea de texto diferente por pantalla cada segundo.
- 2.- Escriba un programa que cree un nuevo proceso. El proceso padre debe esperar a que el proceso hijo finalice. El proceso hijo escribe una cuenta atrás desde 10 a ritmo de 1 por segundo y termina. Cuando el padre detecta la finalización del hijo imprime una despedida por pantalla y termina su ejecución.
- 3.- Escriba un programa que emplee alguna llamada exec para ejecutar el comando ls.
- 4.- Escriba un programa que lance un nuevo proceso. El hijo ejecuta un ls. El padre espera a que el hijo termine y a continuación crear un nuevo proceso. El nuevo hijo ejecuta un date. El padre espera su finalización y al detectarla imprime una despedida por la pantalla y termina.
- 5.- Escriba un programa que cree una pipe, a continuación escriba un array de char conteniendo una cadena de texto en esa pipe e inmediatamente después lea ese array por el extremo de lectura de la pipe y lo imprima por la pantalla.
- 6.- Escriba un programa que cree una pipe y a continuación lance un nuevo proceso. Despues el proceso padre escribe una cadena de texto en la pipe, espera 5 segundos y termina. El hijo lee de la pipe caracteres de uno en uno y los va sacando por la pantalla (emplee fflush(stdout) para que salgan inmediatamente) hasta que la función read le indique que no hay más datos para leer.
- 7.- Escriba un programa que abra un fichero nuevo y duplique su descriptor sobre el de la salida estándar (STDOUT_FILENO). A continuación escriba un mensaje de texto por la salida estándar y compruebe que al finalizar el proceso el mensaje se encuentra en el fichero.
- 8.- Escriba un programa que abra un fichero nuevo y duplique su descriptor sobre el de la salida estándar (STDOUT_FILENO). A continuación cree un nuevo proceso. El padre puede terminar su ejecución pero el hijo ejecutará el comando ls. Compruebe que al terminar todos los procesos la salida del ls se ha almacenado en el fichero.
- 9.- Escriba un programa que cree una cola de mensajes y acceda a ella. A continuación lanza un nuevo proceso. El padre crea un mensaje y lo coloca en la cola. El hijo espera hasta recibir el mensaje por la cola.
- 10.- Escriba un programa que lance un nuevo proceso. A continuación el hijo realiza una espera (sleep) de 5 segundos. Mientras, el padre crea una cola de mensajes mediante una clave concreta y manda un mensaje a la misma. Al transcurrir los 5 segundos el hijo intenta acceder a la cola con la misma clave que se creó y recibir el mensaje. Finalmente el hijo destruye la cola de mensajes.
- 11.- Escriba un programa que cree dos pipes y lance un proceso. El proceso padre se dedicará a mandar un bytes por la primera pipe cada segundo y otro por la segunda cada 2 segundos. El proceso hijo emplea la llamada select para saber cuándo hay algo que recibir por alguna de las pipes y va mandando los caracteres a pantalla.
- 12.- Escriba un programa que cree un semáforo y lo inicialice a 0. A continuación lanza un nuevo proceso. El proceso padre irá ejecutando una función
sobre el semáforo cada segundo. Mientras, el proceso hijo está continuamente intentando decrementar el semáforo con una función
. Cada vez que uno de ellos ejecuta una funcion
o
con éxito sacan un mensaje de texto por la pantalla.
- 13.- Escriba un programa que cree una zona de memoria compartida y la incluya en su mapa de memoria. A continuación lanza un nuevo proceso. El hijo realizará una espera de 10 segundos, mientras tanto el padre copia una cadena de texto a esa zona de memoria. Al terminar la espera de 10 segundos el hijo imprimer por pantalla el contenido de la zona de memoria compartida.
- 14.- Escriba un programa que realice una pausa infinita pero cada vez que reciba una señal de tipo SIGTERM o SIGINT saque un mensaje por pantalla y continúe esperando otra.
Next: Fechas de entrega y
Up: Prácticas de Arquitectura de
Previous: Retoques y temas avanzados
Daniel Morato
2000-11-06