PDA

Visualizza la versione completa : [C] Programma con uso di memoria condivisa e semafori


postina_2007
11-11-2007, 12:35
devo scrivere qst programma per un compito in classe per la prossima settimana..
ma nn so da dove partire...potete aiutarmi???? grazie.

TRACCIA
Scrivere un programma in c su linux con l'aiuto della memoria condivisa e dei semafori.
Abbiamo un server che è chiamato "infermiere" che mantiene una struttura dati condivisa in memoria di questo tipo:
- Stanza paziente (può essere 1,2,3,4..)
- Numero di letto(può essere 10,11, 12)
- visita (oculistica, ECG)

il server,appena lanciato,crea la struttura dati condivisa in memoria. (all'inizio riempita con un certo numero informazioni). I client ("pazienti") possono essere lanciati in qualsiasi momento e accederanno concorrentemente alle informazioni. In particolare per i client deve essere previsto il comportamento:
client ACCEDE alla stanza il numero di letto e la visita
client LASCIA la stanza e il numero del letto

N.B.L'opzione ACCEDE permette ai pazienti di essere ricoverati in una data stanza,nel numero di letto indicato e effettuare le proprie visite. Mentre l'opzione LASCIA permette di lasciare il letto e la stanza occupata.
Notare che + client potrebbero accedere contemporaneamente alle informazioni ed è pertanto necessario un meccanismo per gestire gli accessi concorrenti.

aiutooooo!!!

la mia mail è: postina2007@yahoo.it

oregon
11-11-2007, 12:55
In un forum di questo tipo non si fanno i compiti per casa e poi ti si spediscono!

Hai sbagliato modo di "utilizzare" questo strumento ...

Devi proporre una tua soluzione e discutere sugli eventuali punti che non sai realizzare o che non funzionano come dovrebbero ...

alka
11-11-2007, 15:14
Come è già stato segnalato, questo non è un forum disponibile per lo svolgimento dei compiti a casa altrui, ma è un'area che si dedica all'aiuto di chi, nell'attività di programmazione, quindi nell'uso di un linguaggio e/o di un compilatore, si trova di fronte ad una difficoltà (errori di sintassi, di compilazione, comportamento indesiderato del programma, ecc. ecc.).

Inoltre, mi sembra anche poco corretto lasciare il proprio indirizzo email per ricevere dei suggerimenti, in quanto tutte le risposte alle domande poste sul forum vanno inserite, appunto, nel forum, affinché siano utili a quegli utenti che, in futuro, dovessero trovarsi di fronte alla stessa problematica.

Infine, esiste un Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887), da leggere e seguire per l'apertura e la conduzione di discussioni nel modo corretto all'interno di quest'area.

Al momento, ho corretto il titolo della discussione con una descrizione più significativa; esorto a cominciare a lavorare all'esercizio proposto e, in caso di difficoltà, a postare qui il problema e il codice "incriminato" per tentare di risolverlo, senza che siano gli altri a svolgere interamente il lavoro.

postina_2007
14-11-2007, 19:34
ho chiesto un aiuto su questo forum non per risolvere il mio compito a casa ma per avere un mano poichè mi trovavo in difficoltà. :confused: so di aver sbagliato il modo!!volevo eliminare la mia discussione ma nn mi è stato possibile(erano passate + di 1 ora).. per qnt riguarda la mail ho visto che altri lo fanno e ho fatto lo stesso(nn pensavo era sbagliato,nn l'ho fatto per togliere agli altri qualcosa.), tutto qui.. . uso poco il forum e ho tanto da imparare. la prossima volta starò + attenta :)

postina_2007
14-11-2007, 19:38
chiedo comq le mie scuse... ho capito dove ho sbagliato.. cercherò di inserire meglio le mie discussioni.

IlViandante2960
15-11-2007, 11:41
Capisco la risposta del moderatore sul piano formale ineccepibile, ma in Italia succedono cose peggiori che provare a farsi fare un compito su un Forum… Per cui postina_2007 non cospargerti il capo di cenere né stracciarti le vesti per questa tua richiesta…

Detto questo, lo sviluppo del software è un po’ un’opera d’arte ognuno la interpreta a modo suo per cui essere troppo generici nelle richieste si rischia di pedersi…

Il tuo problema, se l’ho ben capito, io lo interpreterei così: un’applicazione Server/Client con l’uso di Socket.

Una parte Server sempre attiva in un loop infinito che ascolta l’eventuale arrivo di messaggi dai client.

Per la semaforizzazione io userei molto banalmente un controllo Mutex.

Codice di questo tipo Client/Server con Socket ne trovi in rete basta cercare con google.
Spero di esserti stato d’aiuto.


:ciauz:

postina_2007
16-11-2007, 19:13
ti ringrazio moltissimo..finalmente qualcuno molto gentile che mi ha capito!!! grazie davvero anche per l'aiuto.... inizierò a scrivere il programma così allora come mi hai consigliato tu.... sai consigliarmi qualche sito??? sto utilizzando gapil ma è molto avanzato per me che sono alle prime armi!!

grazie ancora... :)

IlViandante2960
16-11-2007, 22:25
Cerca socket con google e troverai molta documentazione in rete. Un buon sito dove trovare documentazione in <C> è codeproject.com anche codeguru.com, sono siti must per i programmatori. Se mastichi un pò d'inglese è meglio.
Troverai facilmente già sviluppati esempi di applicazioni Client/Server con socket, poi con un pò di fantasia riuscirai a personalizzarli...
Buon lavoro

:ciauz:

Loading