C/Visual C - Ayudaaaaa programa concurrente en c

 
Vista:
sin imagen de perfil

Ayudaaaaa programa concurrente en c

Publicado por ursu (3 intervenciones) el 14/11/2015 02:29:43
hola a todos!

Quisiera pedirles un favor muy enorme, necesito hacer una tarea de un codigo en C, se trata de la programación concurrente: Crear dos procesos de tipo productor/consumidor y aplicar la region critica(mutua exclusion, deadlock, starvation) utilizando si es posible con la función random y flag.

yo no he entendido bien este programa de como meterlo en código, si pudieran hacérmelo por favor les agradecería un montón.
Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 296
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Ayudaaaaa programa concurrente en c

Publicado por agustin (272 intervenciones) el 14/11/2015 11:03:16
Me parece a mi que
Hazlo tu y si no entiendes algo o no te sale haz preguntas concretas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayudaaaaa programa concurrente en c

Publicado por ursu (3 intervenciones) el 14/11/2015 12:16:14
hice también este pero no hay región critica porque no sabría como hacerla y como hacer che el numero casual che sale sea analizado...
el profesor me dijo que es secuencia y como hago para que sea concurrente? yo no sabría hacerlo

gracias por el tiempo que me dedican

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <unistd.h>
#include <stdio.h>
 
int main(int argc, char* argv[])
{
    int fildes[2];
 
    int dato_produt;
    int dato_consu;
 
    printf("\ndigita un dato: ");
    scanf("%d", &dato_produt);
 
 
    pipe(fildes);
 
 
    if(!fork())
    {
        printf("\nProducto: %d\t\t", dato_produt);
 
        write(fildes[1], &dato_produt, sizeof(int));
 
    }
 
    else
    {
        read(fildes[0], &dato_consu, sizeof(int));
 
        printf("\t\t\t\tConsumado: %d", dato_consu);
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayudaaaaa programa concurrente en c

Publicado por ursu (3 intervenciones) el 14/11/2015 12:06:48
no hubiera pedido ayuda si lo sabia hacer. yo no se como funciona la función random en C ni como hacer la sección critica...
Mi profesor no ha explicado nada de esto solo una hoja con definiciones hechas mal, nos ha dado una tarea solo debemos hacer un programa así...

hice algo así pero yo no se como hacer en el main la llamada ha ke este numero casual que sale entra ha hacer la sección critica, y como meto la sección critica? no se nada de esto.... please

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
void Processo1()
{
    int i = 0;
 
    int casuale;
 
    while (i < 10)
    {
        printf("Processo1: %d ", i + 1);
 
        i++;
 
        casuale = rand();
 
        fflush(stdout);
 
        sleep(1 + (casuale % 5));
    }
}
 
void Processo2()
{
    int i = 0;
 
    int casuale;
 
    while (i < 10)
    {
        printf("Processo 2: %d ", i + 1);
 
        i++;
 
        casuale = rand();
 
        fflush(stdout);
 
        sleep(1 + (casuale % 5));
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar