Extras din laborator
Problema:
1. Sa se simuleze problema consumatorului si producatorului folosind cozi de mesaje. Vor putea exista mai multi producatori care vor putea produce mai multe tipuri de produse si mai multi consumatori capabili sa consume mai multe tipuri de produse.
Aspecte Teroretice:
Pentru rezolvarea problemei producatorului si consumatorului, folosim cozi de mesaje cum se cere in enuntul problemei.
Pentru utilizarea cozilor de mesaje, trebuie mai intai sa implementam un program care sa creeze o coada de mesaje, si unul care sa o distruga in caz ca nu mai avem nevoie de ea.
Alte doua programe vor fi create (prod, cons), unul care produce informatia, si o scrie in coada de mesaje, respectiv celalat, care citeste din coada de mesaje informatia si o afiseaza la iesirea standard (monitor in cazul nostru).
Prezentarea Solutiei:
Analizarea programelor care sunt folosite in mod detaliat:
antet.h
- in header-ul antet.h definesc o structura, care e de tip mesaj avand field-urile, "tip" de tip long, si msg de tip pointer la char.
KEY e un numar definit, de tip long.
create.c
- programul create.c, include header-ul "antet.h" si creeaza coada de mesaje prin apelul sistem msgget(KEY,IPC_CREAT|0666), cu KEY 29888
destroy.c
- distruge coada de mesaje ce are identificatorul f prin apelul sistem msgctl(f,IPC_RMID,0) dupa ce o deschide prin msgget.
prod.c
- copiaza mai intai cu strcpy(buffer.msg,msg) liniile de la tastatura intr-un buffer.
- trimite in coada de mesaje, liniile din buffer prin apelul sistem msgsnd(coada,&buffer,lung,IPC_NOWAIT).
cons.c
- citeste din coada de mesaje, mesajele trimise de producator, prin apelul sistem msgrcv(coada,&buffer,100,1,0).
Preview document
Conținut arhivă zip
- antet.h
- cons.c
- create.c
- destroy.c
- Lab2.doc
- prod.c