1. Procese Windows; comunicaţii prin pipe şi IPC 2
1. Procese Windows; comunicaţii prin pipe şi IPC 2
1. Procese Windows; comunicaţii prin pipe şi IPC 2
- TAGS
- procese
- pipe
- www.cs.ubbcluj.ro
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Procese</strong> <strong>Windows</strong>; <strong>comunicaţii</strong> <strong>prin</strong> <strong>pipe</strong> <strong>şi</strong> <strong>IPC</strong> - 20 -<br />
main() {<br />
HANDLE f1, f2;<br />
f1=CreateFile("\\\\.\\PIPE\\fifo1", GENERIC_WRITE, FILE_SHARE_WRITE,<br />
NULL, OPEN_EXISTING, 0, NULL);<br />
f2=CreateFile("\\\\.\\PIPE\\fifo2", GENERIC_READ, FILE_SHARE_READ,<br />
NULL, OPEN_EXISTING, 0, NULL);<br />
fiu(f2, f1);<br />
CloseHandle(f1);<br />
CloseHandle(f2);<br />
}<br />
In final prezentam comenzile de compilare, de lansare in executie si cateva cereri de liste de<br />
fisiere:<br />
D:\Florin\Didactic\20102011\SO\probleme\WProc-H>gcc -o fifos fifos.cpp<br />
D:\Florin\Didactic\20102011\SO\probleme\WProc-H>gcc -o fifoc fifoc.cpp<br />
D:\Florin\Didactic\20102011\SO\probleme\WProc-H>start fifos<br />
D:\Florin\Didactic\20102011\SO\probleme\WProc-H>fifoc<br />
Dati: numar|sufix: 5|cpp<br />
66<br />
4 capitalizare.cpp<br />
21 compilerun.cpp<br />
36 dir.cpp<br />
44 execWin.cpp<br />
56 fifoc.cpp<br />
Dati: numar|sufix: 10|<br />
103<br />
4 ..<br />
7 a.exe<br />
13 b.bat<br />
19 capitalizare.cpp<br />
36 compilerun.cpp<br />
51 dir.cpp<br />
59 execWin.cpp<br />
71 fifoc.cpp<br />
81 fifoc.exe<br />
91 fifocre.cpp<br />
Dati: numar|sufix:<br />
<strong>1.</strong>5. Comunicarea între procese <strong>Windows</strong> <strong>prin</strong> memorie partajată<br />
<strong>1.</strong>5.<strong>1.</strong> Fi<strong>şi</strong>ere I/O mapate în memorie <strong>şi</strong> segmente de memorie partajata<br />
Maparea (găzduirea) fi<strong>şi</strong>erelor în memoria internă este o facilitate preluată de <strong>Windows</strong> de la<br />
sistemul de operare DOS. Această mapare permite aplicaţiilor să acceseze părţi ale fi<strong>şi</strong>erului<br />
mapat folosind pointeri din memoria internă, în loc de accesare a discului. Prin aceasta se<br />
obţine o viteză de acces mult mai mare. Printre alte avantaje ale mapării, mai amintim faptul<br />
că se beneficiază de mecanismul de cache-ing <strong>şi</strong> de paginare a memoriei interne, oferit de<br />
<strong>Windows</strong>.<br />
O aplicaţie poate mapa fi<strong>şi</strong>ere de la 1 octet până la 2G octeţi. Fişerele mapate în memorie<br />
permit, de asemenea, ca două sau mai multe procese să partajeze aceste fi<strong>şi</strong>ere <strong>şi</strong> implicit să<br />
partajeze memoria internă.