• 0
Conéctate para seguir esto  
Seguidores 0
JulianOrtiz95

Ayuda GNU/Linux
Necesito ayuda para un examen sobre comunicación de procesos. Alguien que me eche una mano?

Pregunta

Hola, que tal a todos.. Me nombre Alan. Estoy preparando esta previa del colegio, me encuentro necesitando ayuda para poder entender mejor el código y la sintasis ya que no soy programador.. Agradecería muchísimo si alguien me puede echar una mano.. Este es el modelo de examen que me dieron, me dijeron que me iban a tomar algo parecido..

* Desarrolle el tema creación, finalización y muerte de procesos en Linux. (Explique las funciones necesarias para las mismas).
* Realizar un programa que un padre cree un hijo y el hijo cree un nieto, el padre envía vía pipe “Hola mundo” al nieto que lo muestra por pantalla.
* Realizar un programa que funcione como un servidor de archivos del directorio actual, en el puerto 9090.-

O alguna fuente para poder resolver esto también me serviria. Desde ya, muchas gracias..

pacoeloyo, portaro y Rohlling le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios

1 respuesta a esta pregunta

  • 0

He visto este post tres dias despues, espero ser de ayuda si aun no has tenido el examen,he leido demasiado rapido xD, si no he entendido mal ¿vas a empezar un curso o alguna asignatura?

Tengo que repasar mis apuntes de Sistemas Operativos, por el momento pongo un ejemplo en c en el que un proceso inicia un hijo que ejecuta un comando y el padre espera a que finalize:

//tarea5.c
//Trabajo con llamadas al sistema del Subsistema de Procesos conforme a POSIX 2.10
 
#include<sys/types.h> 
#include<sys/wait.h>  
#include<unistd.h>
#include<stdio.h>
#include<errno.h>
#include <stdlib.h>
 
 
int main(int argc, char *argv[])
{
pid_t pid;
int estado;
 
//la funcion fork inicia un proceso hijo, si el resultado es menor que cero ha habido un error
if( (pid=fork())<0) {//si es mayor que cero es el pid del hijo
    perror("\nError en el fork");
    exit(-1);
}//si el resultado es 0 es el proceso hijo por lo que ejecutamos el codigo del hijo
else if(pid==0) {  //proceso hijo ejecutando el programa
    if( (execl("/usr/bin/ldd","ldd","./tarea5")<0)) {
        perror("\nError en el execl");
        exit(-1);
    }
}
wait(&estado);
printf("\nMi hijo %d ha finalizado con el estado %d\n",pid,estado);
 
exit(0);
 
}

Te he preparado un enlace a un guion de practicas que habla sobre los cauces (pipes)

https://www.dropbox.com/s/oxivrm2tyqq72qa/todos-P-SO-Modulo2-Sesion4-Guion.pdf?dl=0

 

En cuanto al programa que sirve como servidor de ficheros supongo que es un programa que abre un socket en el puerto 9090, recibe una cadena de caracteres con un nombre de fichero, lo abre y mientras lo esta leyendo lo escribe en el socket

Editado por Cristobal
pacoeloyo y Rohlling le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios

Registra una cuenta o conéctate para comentar

Debes ser un miembro de la comunidad para dejar un comentario

Crear una cuenta

Regístrate en nuestra comunidad. ¡Es fácil!


Registrar una cuenta nueva

Iniciar Sesión

¿Ya tienes cuenta? Conéctate aquí.


Iniciar Sesión
Conéctate para seguir esto  
Seguidores 0