Che materia stai cercando?

Sistemi operativi - Implementazione programma in C Appunti scolastici Premium

Esercitazione per l'esame di Sistemi operativi del professor Domenico Cotroneo, corso di laurea in ingegneria informatica. Il testo è un'esercitazione sull'implementazione di un programma in C concorrente nel quale siano presenti un processo che legge degli input da tastiera, uno che trasforma strinche, un altro che mostra a video stringhe.

Esame di Sistemi operativi docente Prof. D. Cotroneo

Anteprima

ESTRATTO DOCUMENTO

// Programma che realizza tre processi//

#include <stdlib.h>

#include <stdio.h>

#include <sys/types.h>

#include <sys/ipc.h>

#include <sys/msg.h>

#define RTS 1

#define OKTS 2

#define RPC 3

#define VIEW 4

struct message { int tipo;

char frase[80];

};

void sendsinc(int msgid, char stringa[80], int tipo);

void receivesinc(int msgid, char stringa[80], int tipo);

void sendasinc(int msgid, char stringa[80], int tipo);

int receiveasinc(int msgid, char stringa[80], int tipo);

void sendasinc(int msgid, char

stringa[80], int tipo)

{ struct message m;

m.tipo=tipo;

strcpy(m.frase,stringa);

msgsnd(msgid, (struct message *)&m,

sizeof (m.frase), 0);

}

int receiveasinc(int msgid, char

stringa[80], int tipo)

{ struct message m;

int res;

res=msgrcv(msgid, (struct message *)&m,

sizeof(m.frase), tipo, IPC_NOWAIT);

if (res!=-1)

strcpy(stringa, m.frase);

return res;

} void sendsinc(int msgid, char

stringa[80], int tipo)

{ struct message m1,m2,m3;

m1.tipo=RTS;

strcpy(m1.frase,"Request to Send");

msgsnd(msgid, (struct message *)&m1,

sizeof(m1.frase), 0);

//printf("--- Invio di

%s\n",m1.frase);

msgrcv(msgid, (struct message *)&m2,

sizeof(m2.frase), OKTS, 0);

//printf("--- Ricezione di

%s\n",m2.frase);

if (strcmp((const char *) m2.frase,

"OK to Send")==0)

{ m3.tipo=tipo;

strcpy(m3.frase,stringa);

msgsnd(msgid, (struct msgbuf

*)&m3, sizeof (m3.frase), 0);

//printf("--- Invio di

%s\n",m3.frase);

}

}


PAGINE

7

PESO

122.87 KB

AUTORE

Menzo

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in ingegneria informatica
SSD:
A.A.: 2013-2014

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Menzo di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Napoli Federico II - Unina o del prof Cotroneo Domenico.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Sistemi operativi

Sistemi operativi - domande esame
Appunto
Sistemi operativi - Appunti
Appunto
Sistemi operativi - Problema dei produttori e dei consumatori
Appunto
Sistemi operativi - Esercitazioni varie Linux
Esercitazione