Programacion de Sistemas C++
Enviado por Adilson Esteba Cruz • 3 de Agosto de 2021 • Tarea • 2.020 Palabras (9 Páginas) • 273 Visitas
[pic 1]
FACULTAD DE INGENIERÍA, PRODUCCIÓN Y SERVICIOS
ESCUELA DE INGENIERÍA DE SISTEMAS
PROGRAMACIÓN DE SISTEMAS
Docente: RONI GUILLERMO APAZA ACEITUNO
Estudiante: SANTOS ADILSON ESTEBA CRUZ
Laboratorio: B
2021
EJERCICIOS PROPUESTOS
EJERCICIO 1
Crear un programa en C++ donde utilizando una llamada a sistema fork() se puedan crear tres hijos.
Código
//codigo01.cpp
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
int pid1, pid2, pid3;
//Inicio del proceso hijo 1
pid1 = fork();
if(pid1 == 0) {
sleep(2);
//Mensaje del hijo 1
printf("hijo[1] -> pid = %d - ppid = %d\n",getpid(),getppid());
}
else {
//Inicio del proceso hijo 2
pid2 = fork();
if(pid2 == 0) {
sleep(1);
//Mensaje del hijo 2
printf("hijo[2] -> pid = %d - ppid = %d\n",getpid(),getppid());
}
else {
//Inicio del proceso hijo 3
pid3 = fork();
if(pid3 == 0) {
//Mensaje del hijo 3
printf("hijo[3] -> pid = %d - ppid = %d\n",getpid(),getppid());
}
else {
sleep(3);
//Mensaje del padre
printf("padre -> pid = %d\n",getpid());
}
}
}
return 0;
}
[pic 2]
EJERCICIO 2
Crear un programa en C++ donde utilizando la biblioteca csignal se pueda imprimir un mensaje de “hola” utilizando la señal SIGABRT
Código
//codigo02.cpp
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
//Funcion para manejar la señal
void signalHandler(int signum) {
printf("Recibido (%d)\n",signum);
//Mostrar el mensaje
printf("hola\n");
exit(signum);
}
//Funcion principal
int main() {
//Declaracion de la señal
signal(SIGABRT, signalHandler);
printf("pid = %d\n",getpid());
//Bucle sin fin
while(1) {
printf("Esperando...\n");
sleep(3);
}
return 0;
}
[pic 3]
EJERCICIO 3
Modifica el código10.c para que mediante la utilización de la función “sleep()”, la frecuencia a la
que el proceso hijo escribe en los ficheros sea menor que la del proceso padre. Es decir que realice menos escrituras por unidad de tiempo.
...