Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so:cursuri:curs-11 [2014/04/29 00:56]
razvan.deaconescu [Rulare server]
so:cursuri:curs-11 [2019/05/11 15:35] (current)
razvan.deaconescu
Line 1: Line 1:
-====== Curs 11 - Networking ​in Sistemul ​de Operare ​======+====== Curs 11 - Networking ​în sistemul ​de operare ​======
  
 +  * [[http://​elf.cs.pub.ro/​so/​res/​cursuri/​SO_Curs-11.pdf|Curs 11 - Networking în sistemul de operare (PDF)]]
 +
 +  * [[https://​docs.google.com/​document/​d/​1GwmgdsvzI6og_uCFicirW1dvF3hVBBOZ1JEb1G85CvQ/​edit?​usp=sharing|Notițe de curs]]
 +
 +  * Suport curs
 +    * The Illustrated Network (Walter Goralski)
 +      * Capitolele 11 și 12
 +    * The Linux Programming Interface
 +      * Capitolele 58, 60 și 61
  
 <​html>​ <​html>​
-    ​<iframe src="http://​docs.google.com/​viewer?​url=http://​elf.cs.pub.ro/​so/​res/​cursuri/​SO_Curs-11.pdf&​embedded=true"​ width="​600"​ height="​480"​ style="​border:​ none;">​+  <​center>​ 
 +    ​<iframe src="https://​docs.google.com/​viewer?​url=http://​elf.cs.pub.ro/​so/​res/​cursuri/​SO_Curs-11.pdf&​embedded=true"​ width="​600"​ height="​480"​ style="​border:​ none;">​
     </​iframe>​     </​iframe>​
 +  </​center>​
 </​html>​ </​html>​
- 
-  * [[http://​elf.cs.pub.ro/​so/​res/​cursuri/​SO_Curs-11.pdf | Curs 11 - Aplicații server (PDF)]] 
- 
-  * Suport curs 
-    * TODO 
  
 ===== Demo-uri ===== ===== Demo-uri =====
Line 93: Line 99:
 ==== Concluzii ==== ==== Concluzii ====
  
-TODO+În mod obișnuit serverul simplu (''​server''​) ar trebui să aibă un comportament mai slab decât celelalte, lucru greu sesizabil în secțiunile de mai sus din câteva motive: 
 +  * Testele se desfășoară pe sistemul local, adică nu se resimte impactul rețelei. 
 +  * Testele se desfășoară pe sistemul local, adică toate procesele client și server rulează pe același procesor și cu același disc. 
 +  * Testele nu permit cu adevărat concurența mai multor conexiuni venite de la diverse stații pe Internet. Un server încărcat poate primi cvasi-simultan mii de conexiuni, moment în care varianta threaded sau event-based își dovedesc superioritatea. 
 +  * Pentru teste am folosit fișiere mici și multe. Asta înseamnă că un fișier este transmis instant și chiar un server cu funcționarea paralelă nu va dobândi un avantaj față de unul cu funcționare serială. 
 + 
 +Abordările de îmbunătățire a serverului nu se exclud. Putem avea un server multithreaded sau multiproces în care fiecare thread se ocupă de un număr dat de conexiuni pe care le gestionează folosind ''​epoll''​ sau un API echivalent. De obicei numărul de thread-uri sau procese va fi egal cu numărul de core-uri/​hyperthread-uri disponibile la nivelul sistemului pentru a folosi eficient resursele acestuia. De asemenea, pentru servire de conținut static, cu dimensiune precizată, se poate folosi ''​sendfile''​ pentru a delega transferul complet către nucleul sistemului de operare și a eficientiza și mai mult transferul. 
 + 
 +Un server care se dorește performant va fi supus benchmark-urilor și analizei atente a traficului pe care îl susține. Funcții de cazurile uzuale de folosire, serverul poate fi ajustat (//tuned//) pentru a servi cât mai eficient conținutul dorit.
so/cursuri/curs-11.1398722212.txt.gz · Last modified: 2014/04/29 00:56 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