This shows you the differences between two versions of the page.
|
so:laboratoare:laborator-10 [2020/05/02 13:16] dragos_florin.costea [Zero-copy I/O] |
so:laboratoare:laborator-10 [2022/05/10 17:40] (current) teodor_stefan.dutu [Zero-copy I/O] Replace broken link. |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Laborator 10 - Operații IO avansate - Windows ====== | ====== Laborator 10 - Operații IO avansate - Windows ====== | ||
| - | ==== Materiale ajutătoare ==== | ||
| - | *[[http://elf.cs.pub.ro/so/res/laboratoare/lab10-slides.pdf | lab10-slides.pdf]] | ||
| - | *[[http://elf.cs.pub.ro/so/res/laboratoare/lab10-refcard.pdf | lab10-refcard.pdf]] | ||
| ==== Nice to read ==== | ==== Nice to read ==== | ||
| Line 345: | Line 342: | ||
| {{ so:laboratoare-2013:zero_copy.gif | }} | {{ so:laboratoare-2013:zero_copy.gif | }} | ||
| - | Mai multe detalii, inclusiv explicarea mai pe larg a contextului, puteți găsi [https://developer.ibm.com/technologies/java/articles/j-zerocopy/ | aici]]. | + | Mai multe detalii, inclusiv explicarea mai pe larg a contextului, puteți găsi [[https://developer.ibm.com/articles/j-zerocopy/ | aici]]. **Atentie:** articolul folosește greșit termenul //context switch//. De fapt, este vorba de o //schimbare de privilegiu//, deoarece se face o trecere din user mode în kernel mode. |
| ==== TransmitFile ==== | ==== TransmitFile ==== | ||
| Line 381: | Line 378: | ||
| O funcție similară este funcția ''[[http://msdn.microsoft.com/en-us/library/ms740566%28v=vs.85%29.aspx |TransmitPackets]]'' care transmite date stocate în memorie pe un socket folosind cache-ul intern al sistemului de operare. Datele sunt reprezentate de o structură ''TRANSMIT_PACKETS_ELEMENT''. | O funcție similară este funcția ''[[http://msdn.microsoft.com/en-us/library/ms740566%28v=vs.85%29.aspx |TransmitPackets]]'' care transmite date stocate în memorie pe un socket folosind cache-ul intern al sistemului de operare. Datele sunt reprezentate de o structură ''TRANSMIT_PACKETS_ELEMENT''. | ||
| - | ====== Exerciții de laborator ====== | + | ====== Exerciții ====== |
| - | ===== Exercițiul 0 - Joc interactiv ===== | + | |
| - | * Detalii desfășurare [[http://ocw.cs.pub.ro/courses/so/meta/notare#joc_interactiv|joc]]. | + | <note important> |
| + | În cadrul laboratoarelor vom folosi repository-ul de git al materiei SO - https://github.com/systems-cs-pub-ro/so. Va trebui sa clonați repository-ul pe masinile virtuale folosind comanda: ''git clone https://github.com/systems-cs-pub-ro/so''. Dacă doriți să descărcați repositoryul în altă locație, folosiți comanda ''git clone https://github.com/systems-cs-pub-ro/so ${target}''. | ||
| - | ===== Windows ===== | + | Pentru a actualiza repository-ul, folosiți comanda ''git pull origin master'' din interiorul directorului în care se află repository-ul. Recomandarea este să îl actualizați cât mai frecvent, înainte să începeți lucrul, pentru a vă asigura că aveți versiunea cea mai recentă. În cazul în care gitul detectează conflicte la nivelul vreunui fişier, folosiți următoarele comenzi pentru a vă păstra modificările: |
| + | <code> | ||
| + | git stash | ||
| + | git pull origin master | ||
| + | git stash pop | ||
| + | </code> | ||
| - | <note important>Înainte de a folosi o structură specifică Async I/O Win32 API, asigurați-vă că ați zero-izat-o.</note> | + | Pentru mai multe informații despre folosirea utilitarului git, urmați ghidul de la https://gitimmersion.com. |
| + | </note> | ||
| - | În rezolvarea laboratorului folosiți arhiva de sarcini [[http://elf.cs.pub.ro/so/res/laboratoare/lab10-tasks.zip | lab10-tasks.zip]] | + | ===== Windows ===== |
| + | |||
| + | <note important> | ||
| + | Înainte de a folosi o structură specifică Async I/O Win32 API, asigurați-vă că ați zero-izat-o. | ||
| + | </note> | ||
| ==== Exercițiul 1 - Test operații asincrone ==== | ==== Exercițiul 1 - Test operații asincrone ==== | ||
| Line 453: | Line 460: | ||
| Compilați și rulați programul. | Compilați și rulați programul. | ||
| - | ===== Soluții ===== | ||
| - | [[http://elf.cs.pub.ro/so/res/laboratoare/lab10-sol.zip | Soluţii laborator 10]] | ||