28.01.2013 Views

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

SHOW MORE
SHOW LESS

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ă.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!