Differences

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

Link to this comparison view

so:cursuri:curs-04 [2015/03/17 22:28]
stefan_gabriel.mirea [Durată timp de așteptare în coada READY (yield)]
so:cursuri:curs-04 [2019/03/09 16:06] (current)
razvan.deaconescu
Line 1: Line 1:
-====== Curs 04 - Planificarea execuției======+====== Curs 04 - Planificarea execuției. IPC ======
  
-<​html>​ +  * [[http://​prezi.com/​7hdjlraoycrn/so-curs-4/?kw=view-7hdjlraoycrn&rc=ref-31844697|Curs 04 - Planificarea execuției (vizualizare Prezi)]] 
-<iframe src="http://​prezi.com/embed/​7hdjlraoycrn/?​bgcolor=ffffff&amp;​lock_to_path=0&​amp;​autoplay=no&​amp;​autohide_ctrls=0&​amp;​features=undefined&​amp;​disabled_features=undefined"​ width="​550"​ height="​400"​ frameBorder="​0"><​/iframe> +  * [[http://​elf.cs.pub.ro/​so/​res/​cursuri/​SO_Curs-04.pdf|Curs 04 - Planificarea execuției (PDF)]] 
-</html>+  * [[http://​elf.cs.pub.ro/​so/​res/​cursuri/​SO_Curs-04_IPC.pdf|Curs 04 - Comunicarea interprocese (PDF)]] 
 + 
 +  * [[https://​docs.google.com/​document/​d/​1s9mWubSu19r4aCThxlDx7MW7uFu3o2v9tSHuvhnfbME/​edit?​usp=sharing|Notițe de curs]]
  
-  * [[http://​prezi.com/​7hdjlraoycrn/​so-curs-4/?​kw=view-7hdjlraoycrn&​rc=ref-31844697 | Curs 04 - Planificarea execuției (vizualizare Prezi)]] 
-  * [[http://​elf.cs.pub.ro/​so/​res/​cursuri/​SO_Curs-04.pdf | Curs 04 - Planificarea execuției (PDF)]] 
  
   * Suport curs   * Suport curs
Line 17: Line 17:
       * Capitolul 2 - Processes and Threads       * Capitolul 2 - Processes and Threads
         * Secțiunea 2.4 - Scheduling         * Secțiunea 2.4 - Scheduling
 +    * Linux System Programming
 +      * Capitolul 9 - Signals ​
 +    * Windows System Programming ​
 +     * Capitolul 11 - Interprocess Communication
 +
 +<​html>​
 +  <​center>​
 +    <iframe src="​https://​prezi.com/​embed/​7hdjlraoycrn/?​bgcolor=ffffff&​amp;​lock_to_path=0&​amp;​autoplay=no&​amp;​autohide_ctrls=0&​amp;​features=undefined&​amp;​disabled_features=undefined"​ width="​550"​ height="​400"​ frameBorder="​0"></​iframe>​
 +  </​center>​
 +</​html>​
 +
 +<​html>​
 +  <​center>​
 +    <iframe src="​https://​docs.google.com/​viewer?​url=http://​elf.cs.pub.ro/​so/​res/​cursuri/​SO_Curs-04_IPC.pdf&​embedded=true"​ width="​600"​ height="​480"​ style="​border:​ none;">​
 +    </​iframe>​
 +  </​center>​
 +</​html>​
  
 ===== Demo-uri ===== ===== Demo-uri =====
Line 53: Line 70:
 Întrucât nu se mai lucrează cu terminalul aferent ieșirii standard, nu se execută multe operații blocante și nu se tranferă date generate de comandă în fișier. Rezultă direct un număr și mai mic de schimbări de context (atât voluntare cât și nevoluntare) și o durată de execuție mai mică a procesului. Întrucât nu se mai lucrează cu terminalul aferent ieșirii standard, nu se execută multe operații blocante și nu se tranferă date generate de comandă în fișier. Rezultă direct un număr și mai mic de schimbări de context (atât voluntare cât și nevoluntare) și o durată de execuție mai mică a procesului.
  
-==== Alterare ​prioritate proces ====+==== Modificare ​prioritate proces ====
  
 Dorim să analizăm impactul configurării priorității statice (nice) a sistemului. Pentru aceasta vom porni același proces cu diverse valori pentru nice și vom observa durata de rulare. Dorim să analizăm impactul configurării priorității statice (nice) a sistemului. Pentru aceasta vom porni același proces cu diverse valori pentru nice și vom observa durata de rulare.
Line 71: Line 88:
   * 2 procese vor fi subprioritare (''​nice = 19''​).   * 2 procese vor fi subprioritare (''​nice = 19''​).
  
-Pentru fiecare proces, este reținut output-ul într-un fișier. Pentru a afla timpul ​fiecărui proces în fișierul rezultat, folosim comanda:<​code bash>+Pentru fiecare proces, este reținut output-ul într-un fișier. Pentru a afla timpul fiecărui proces în fișierul rezultat, folosim comanda:<​code bash>
 grep -H '​Elapsed'​ pri* grep -H '​Elapsed'​ pri*
 </​code>​ </​code>​
Line 105: Line 122:
  
 Durata apelului ''​sched_yield''​ este timpul de așteptare al procesului (//waiting time//), timp care se dorește să fie cât mai mic. Durata apelului ''​sched_yield''​ este timpul de așteptare al procesului (//waiting time//), timp care se dorește să fie cât mai mic.
 +
 +==== Folosire pipe-uri ====
 +
 +Dorim să creăm un exemplu simplu de folosire a pipe-urilor anonime pentru comunicare între procese înrudite.
 +
 +Intrăm în directorul ''​pipe/''​ din arhiva cu demo-uri a cursului și parcurgem fișierul ''​pipe.c''​.
so/cursuri/curs-04.1426624116.txt.gz · Last modified: 2015/03/17 22:28 by stefan_gabriel.mirea
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