Programación Unix

Páginas: 14 (3357 palabras) Publicado: 19 de octubre de 2013
DOCTORADO EN INFORMÁTICA
PROGRAMACIÓN DE SISTEMAS UNIX:
COMUNICACIÓN ENTRE PROCESOS
RAMÓN M. GÓMEZ LABRADOR
JUNIO 1.996

ÍNDICE.
1. PROCESOS.
1.
2.

3.

4.

Conceptos generales.
Ejecución de comandos.
1. Subrutina system.
2. Subrutinas exec.
Creación de procesos.
1. Subrutina fork.
2. Subrutinas wait y waitpid.
Terminación de un proceso.
1. Subrutina exit.
2. Subrutinaatexit.

2. SEÑALES.
1.
2.
3.

4.
5.

Conceptos generales.
Lista de las señales más importantes.
Capturar señales.
1. Subrutina signal:
2. Subrutina sigaction:
3. Subrutina kill:
Alarmas y temporizadores.
1. Subrutinas alarm y ualarm:
Tratamiento de errores.
1. Lista de errores más importantes.
2. Subrutina perror:

3. PIPES (TUBERÍAS).
1.
2.

3.
4.

Conceptos generales.Redirección.
1. Subrutinas dup y dup2:
2. Subrutina fcntl:
Comunicación entre procesos emparentados.
1. Subrutina pipe
Comunicación entre procesos no emparentados.
1. Subrutina mkfifo:

Lista de programas.






system.c - Listar los procesos del usuario usando system.
exec.c - Listar los procesos del usuario usando exec.
fork.c - Ejecución conjunta de procesos padre e hijo.fork_huerf.c - Ejemplo de proceso huérfano.
waitpid.c - Esperar la terminación de un proceso hijo.












atexic.c - Ejecución de una rutina al salir de un programa.
signal.c - Contar el número de CTRL-C en 15 segundos.
kill.c - Ejecución con tiempo de espera usando kill.
alarm.c - Esperar una alarma.
dup2.c - Redirección usando dup2.
pipe.c - Tubería sinnombre entre procesos padre e hijo.
pipe_conec.c - Tubería entre 2 comandos usando pipe.
lector_fifo.c - Tuberia con nombre usando mkfifo.
escritor_fifo.c - Tuberia con nombre usando mkfifo.
fifo - Carga los procesos lector y escritor en 2o plano.

1. PROCESOS.
1,1. Conceptos generales.
Proceso:
programa o comando en ejecución.
Características:


Un proceso consta de código, datos y pila.

Los procesos existen en una jerarquía de árbol (varios Hijos, un sólo padre).



El sistema asigna un identificador de proceso (PID) único al iniciar el proceso.



El planificador de tareas asigna un tiempo compartido para el proceso según su
prioridad (sólo root puede cambiar prioridades).

Ejecución en 1er plano:
proceso iniciado por el usuario o interactivo.
Ejecuciónen 2o plano:
proceso no interactivo que no necesita ser iniciado por el usuario.
Demonio:
proceso en 2o plano siempre disponible, que da servicio a varias tareas (debe ser propiedad
del usuario root).
Proceso zombi:
proceso parado que queda en la tabla de procesos hasta que termine su padre. Este hecho se
produce cuando el proceso padre no recoge el código de salida del proceso hijo.Proceso huérfano:
proceso en ejecución cuyo padre ha finalizado. El nuevo identificador de proceso padre
(PPID) coincide con el identificador del proceso init (1).

1,2. Ejecución de comandos.
1,2,1. Subrutina system:
- Descripción:
Llamada a un intérprete para ejecutar un comando.
El proceso espera a que finalice la ejecución de la subrutina y devuelve la salida del
programa ejecutado.
-Formato:
#include
int system (cadena)
const char *cadena;

- Parámetro:
cadena - Comando a ejecutar.
- Devuelve:
Estado de salida del programa ejecutado. -1 o 127 en caso de error.
- Comentarios:
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.
- Ejemplo:
/* system.c - Listar los procesos del usuario usando system. */
#include
#include
int main ()
{
int salida;
char comando[100];

/* Salida del comando */
/* Comando a ejecutar */

printf ("Ejemplo de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación en unix
  • Programación unix
  • Guía De Programación En C++ Y Unix
  • Ordenes Programacion Unix
  • Principios de programacion en unix
  • unix
  • unix
  • Unix

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS