This is an old revision of the document!


Curs 11 - Networking in Sistemul de Operare

Demo-uri

Pentru parcurgerea demo-urilor, folosim arhiva aferentă. Demo-urile rulează pe Linux. Descărcăm arhiva folosind comanda

wget http://elf.cs.pub.ro/so/res/cursuri/curs-11-demo.zip

și apoi decomprimăm arhiva

unzip curs-11-demo.zip

și accesăm directorul rezultat în urma decomprimării

cd curs-11-demo/

Acum putem parcurge secțiunile cu demo-uri de mai jos.

Pregătire infrastructură

Ne propunem să urmărim modul în care se comportă comunicația între un client și un server pentru un număr mare de conexiuni și diverse configurații ale serverului. Vom varia dimensiunea bufferului de transmitere folosit de server și tipurile de implementare pentru server:

  • server simplu
  • server cu suport sendfile (zero copy)
  • server multithreaded
  • server event-based (folosește epoll)

Pentru început vom genera 10.000 (zece mii) de fișiere a câte 100 KB. Vom rula scriptul

./create-files

Scriptul va dura câteva minute și va genera fișierele în forma fileXYZT în subdirectorul in-data/. Aceste fișiere vor fi prelucrate de server.

Pentru a obține executabilele de tip server aferente, vom folosi fișierul Makefile:

make

În urma rulării comenzii make rezultă patru fișiere executabile de tip server:

  • server: executabil de tip server simplu
  • sendfile-server: executabil de tip server cu suport sendfile (zero copy)
  • threaded-server: server multithreaded
  • epoll-server: server event-based

În continuare vom folosi fiecare dintre aceste servere pentru transferul celor 10.000 de fișiere create. Vom exemplifica în secțiunea de mai jos pentru serverul simplu (dat de executabilul server) urmând ca aceeași pași să fie urmați și pentru celelalte trei servere.

Rulare server

TODO

Concluzii

TODO

so/cursuri/curs-11.1398721432.txt.gz · Last modified: 2014/04/29 00:43 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0