Diferenciar Las Distintas Formas De Comunicación En El Sitema Gnu/Linux
Autor:Prof. Daniel Alejandro Yucra Sotomayor (daniel@somoslibres.org)
1.1 Objetivos Específicos
a) Explicar en forma descriptiva el funcionamiento de los procesos en un sistema operativo
b) Describir los tipo de procesos sus características y comportamiento en un sistema operativo
c) Describir las técnicas de comunicación entre procesos.
d) Mostrar ejemplos y casos prácticos de comunicación entre …ver más…
-1 o 127 en caso de error.
Algoritmo:
a) Se crea un proceso hijo (fork) y se lanza (exec) /usr/bin/bsh, que interpreta el comando a ejecutar.
b) Si la llamada se hace con camino seguro, la orden exec ejecuta el intérprete /usr/bin/tsh.
c) Se ignoran las señales SIGINT y SIGQUIT y se bloquea la señal SIGCHLD.
d) La salida de system no afecta a la salida de los procesos hijos del proceso ejecutor.
Ejecución de Comandos (programa)
Compile ($make system) y Ejecute el programa con: ($./system)
/* system.c - Listar los procesos del usuario usando system. */
#include
#include int main ()
{
int salida; /* Salida del comando */ char comando[100]; /* Comando a ejecutar */ printf ("Ejemplo de system. "); sprintf (comando, "/bin/ps -fu %s", getenv ("USER")); salida = system (comando); printf ("Salida del comando: %d ", salida); exit (salida);
}
Ejecución de Comandos (¿Problema?)
Suponiendo que no existe el comando NOVAO y sustituyendo la ejecución de system por la siguiente línea,
salida = system ("NOVATO");
¿Qué salida mostrará ?
3.1.1 Creación de Procesos EN Gnu/linux
Descripción:
Crea un nuevo proceso (hijo), copia casi exacta del proceso generador (padre).
Formato:
#include
pid_t fork ();
Devuelve:
0 al proceso hijo y PID del hijo al proceso padre (-1, si error).
Creación de Procesos (Algoritmo)
Atributos que hereda el proceso hijo.
Entorno.
Bit FD_CLOEXEC para cada descriptor de fichero.