Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ezkar en 3 Abril 2014, 04:49 am



Título: Ayuda con programación de procesos
Publicado por: ezkar en 3 Abril 2014, 04:49 am
Actualmente me imparten la materia de Sistemas operativos I, hasta el momento no nos han explicado muy bien como programar procesos en c, pero nos han dejado una practica para desarrollar:
Proceso coche (“coche.c”)
El proceso coche deberá (a) esperar a que primero haya sitio en la pista y, a conti-
nuación, en la zona de embarque. (b) Una vez embarcados 4 pasajeros, inicia la travesía.
Cuando finaliza, (c) espera a que hay sitio en la zona de desembarco y, (d) una vez
desembarcados todos los pasajeros, el coche se retira de la pista.
Se repetirá la secuencia anterior hasta que se selecciona una opción para finalizar el
proceso coche. A continuación, se muestra un ejemplo de ejecución del proceso coche
indicando los mensajes que se deben mostrar en pantalla:
Esperando sitio en la pista ...
Esperando para poder embarcar pasaje ...
Puertas abiertas. Embarcando pasaje ...
Empieza la travesía. Pulse ENTER para finalizar
....
<se pulsa ENTER>
Esperando para poder desembarcar pasaje ...
Puertas abiertas. Desembarcando pasaje ,,,
El coche se retira de la pista (1 para otro viaje | 2 para finalizar)
....
<se pulsa 1>
Esperando sitio en la pista ...

Hay alguien que me ayudara a comprender que usar o como quedaría, ejemplos o algo similar, gracias y un saludo a todos !


Título: Re: Ayuda con programación de procesos
Publicado por: engel lex en 3 Abril 2014, 04:55 am
que sabes de programación?


Título: Re: Ayuda con programación de procesos
Publicado por: ezkar en 3 Abril 2014, 04:56 am
lo básico de c, es mi primer año en universidad


Título: Re: Ayuda con programación de procesos
Publicado por: engel lex en 3 Abril 2014, 05:10 am
desarrolla tu una idea de que tienes que hacer y yo te ayudo a traducir eso a código

te doy las herramientas iniciales

tu codigo debe empezar por la librerias basicas

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>

ellas te darán las funciones basicas y de escritura/lectura de datos

luego el main, el cuerpo principal del programa

Código
  1. int main() {
  2.    //aqui tu codigo
  3.    //estas "//" son para indicarle alcompilador que esto no es codigo, no sera leido
  4.    //borra estas lineas y coloca tu programa por aqui, despues del int y antes del return
  5.    return (0);
  6. }

ahora te enseño a asignar una variable "int" representa una variable tipo numero entero

Código
  1. int numero;

ahora "numero" es una variable lista para aceptar y dar valores...

tienes una funcion para leer datos
Código
  1. scanf("%d", &numero);
ella indica que va a leer un dato tipo "digito" y que lo va a meter a numero (no importa ahorita el "&" simplemente ponlo y listo :P)

para mostrar algo en pantalla puedes usar
Código
  1. printf("hola mundo");
ç
si quieres usar un salto de linea puedes meter \n entre las comillas


prueba con eso a ver que logras :P (aun me falta darte una herramienta, pero quiero ver que haces con esas)


Título: Re: Ayuda con programación de procesos
Publicado por: ezkar en 3 Abril 2014, 05:35 am
Bueno se un poco usar tambien objetos y clases, la cuestión es que nunca he usado la libreria "unistd.h " ni el fork, mucho menos el pid, getpid, getppid

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int main()
  4. {
  5.    int a,b,c;
  6.    printf("hola, este es una suma basica\n");
  7.    printf("teclea el primer digito\n");
  8.    scanf("%d",&a);
  9.    printf("teclea el segundo digito\n");
  10.    scanf("%d",&b);
  11.    c=a+b;
  12.    printf("el resultado es: %d",c);
  13.    system ("pause");
  14.  
  15.  
  16.    return 0;
  17. }


Título: Re: Ayuda con programación de procesos
Publicado por: engel lex en 3 Abril 2014, 05:39 am
Citar
Bueno se un poco usar tambien objetos y clases, la cuestión es que nunca he usado la libreria "unistd.h " ni el fork, mucho menos el pid, getpid, getppid

a que vino eso?

XD sabes usar el while para que armes el menú finalmente con la opcion 1 y 2?


Título: Re: Ayuda con programación de procesos
Publicado por: ezkar en 3 Abril 2014, 06:00 am
jajaja es que mira, el problema que me dejaron, se supone que se aplica con procesos, y me dieron de ejemplo este codigo:
Código
  1. #include <sys/types.h>
  2. #include <sys/wait.h>
  3. #include <unistd.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. int main (int argc, char &#8727;argv[]) {
  7. int num;
  8. pid t pid;
  9. for (num= 0; num< 3; num++) { pid= fork();
  10. printf ("Soy el proceso de PID %d y mi padre tiene%d de PID.\n",
  11. getpid(), getppid());
  12. if (pid!= 0)
  13. break;
  14. srandom(getpid());
  15. sleep (random() %3);
  16. }if (pid!= 0)
  17. printf ("Fin del proceso de PID %d.\n", wait (NULL));
  18. return 0;
  19. }
pero la verdad no lo comprendo del todo, y menos para aplicarlo a un problema, como ves el código?


Título: Re: Ayuda con programación de procesos
Publicado por: engel lex en 3 Abril 2014, 06:07 am
un poco de diferencia! XD si expresabas que el proceso era así! XD empezábamos por ahí en lugar de perder tiempo! XD

sorry, estoy en windows, fork no hay! XD no puedo apoyarte en esa parte!




Título: Re: Ayuda con programación de procesos
Publicado por: ezkar en 3 Abril 2014, 06:12 am
jajaja si verdad  pero de todos modos gracias brother!


Título: Re: Ayuda con programación de procesos
Publicado por: rir3760 en 3 Abril 2014, 16:45 pm
el problema que me dejaron, se supone que se aplica con procesos
Una guía sobre programación en Linux en ingles pero accesible es Advanced Linux Programming (http://www.advancedlinuxprogramming.com/).

Un saludo