User Tools

Site Tools


unixmix:capitole:capitol-03
Differences

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

Link to this comparison view

unixmix:capitole:capitol-03 [2013/07/09 12:11]
alexef
unixmix:capitole:capitol-03 [2014/09/09 11:57] (current)
razvan [Exerciții]
Line 1: Line 1:
 = Administrarea proceselor = = Administrarea proceselor =
-== Tutorial == + 
 +[[https://docs.google.com/presentation/d/1ugVHI-t18A_9rTiPNCKgCgKF5tdrvvDwlSAQlNzvTwQ/pub?start=false&loop=false&delayms=3000|Slide-uri de prezentare]] 
 + 
 +== Tutorial (1) == 
  
 === Informații despre procese === === Informații despre procese ===
Line 38: Line 41:
 ** Utilitarul este asemănător ''top'' însă mult mai interactiv. ** Utilitarul este asemănător ''top'' însă mult mai interactiv.
 *** Interacțiunea poate fi făcută și cu mouse-ul. *** Interacțiunea poate fi făcută și cu mouse-ul.
 +
 +== Tutorial (2) == 
  
 === Informații despre procese din sistemul de fișiere === === Informații despre procese din sistemul de fișiere ===
Line 46: Line 51:
 ** Ce PID are interpretorul curent? ** Ce PID are interpretorul curent?
 * Navigați în directorul /proc/$PID, unde $PID este PID-ul anterior. * Navigați în directorul /proc/$PID, unde $PID este PID-ul anterior.
-** Alternativ, puteți folosi ''cd /proc/$(pidof bash)''.+** Alternativ, puteți folosi ''cd /proc/`pidof bash`''.
 * Afișați în format lung conținutul directorului curent. * Afișați în format lung conținutul directorului curent.
 ** Ce reprezintă fișierul ''exe''? ** Ce reprezintă fișierul ''exe''?
Line 56: Line 61:
 * Listați conținutul directorului. * Listați conținutul directorului.
 ** Ce dimensiune ocupă acest director? ** Ce dimensiune ocupă acest director?
-*** Revedeți capitolul anterior.+*** Dimensiunea spațiului ocupat de un director o aflați folosind comanda ''du -hs /path/to/folder'' unde ''/path/to/folder'' este calea către director; calea poate fi ''.'' pentru a afla spațiul ocupat de directorul curent.
 * Închideți editorul ''nano''. * Închideți editorul ''nano''.
 * Listați conținutul directorului. * Listați conținutul directorului.
Line 102: Line 107:
 *** Ce observați? *** Ce observați?
  
-=== Încărcarea procesorului === +=== Semnale ===
-* Rulați comanda ''uptime''. +
-Vom încerca să creăm foarte multe procese. Pentru aceasta, avem nevoie de un program pe care să îl rulăm. +
-Copiați codul de mai jos într-un fișier text numit ''test.c''. Puteți folosi nano: +
-* Selectați text-ul cu ''copy''. +
-* Rulați comanda ''nano test.c'' +
-* Apăsați combinația ''Ctrl-Shift-v'' +
-<code> +
-#include <stdlib.h> +
-int main(void) +
-+
- char *ptr; +
- int i;+
  
- for (= 0; i < 12; i++) +* Rulațcomanda ''yes a''. 
- fork();+** Apăsați ''Ctrl-z''. 
 +** Rulați ''jobs''. 
 +*** Ce observați? 
 +<;code>Procesul a fosst suspendat</code> 
 +* Rulațcomanda ''fg''. 
 +** Apăsați ''Ctrl-c''. 
 +*** Ce observați? 
 +<code>;Procesul a fost pornit în foreground. Interacțiunea cu acesta este permisă. 
 +Ctrl-c omoară procesul.</code> 
 +* Rulațcomanda ''yes bored''. 
 +** Deschideți un alt terminal. Aflați ''PID-ul'' procesului. 
 +* Rulați comanda ''kill -STOP $PID'', unde $PID este ''PID''-ul aflat anterior 
 +** Ce observați că s-a întâmplat cu procesul ''yes''? 
 +<;code>Procesul a fost suspendat. Similar cu Ctrl-z</code> 
 +* Rulați comanda ''kill -l''. 
 +** Repetați experimentul și înlocuiți ''STOP'' cu numărul corespunzător aflat. 
 +*** Pentru al doilea experiement, evident ''PID-ul'' nu va mai fi același. 
 +<code>Același lucru.</code> 
 +În momentul în care un terminal este închis, acesta transmite tuturor proceselor copil semnalul ''SIGHUP''. 
  
- for (i = 0; i < 10; i++) 
- ptr = malloc(sizeof(char)); 
- 
- return 0; 
-} 
-</code> 
-* Salvați și ieșiți din ''nano''. 
-** ''Ctrl-X'' apoi ''y''. 
-* Compilați programul folosind comanda (nu este necesar să înțelegeți cum se face compilarea): 
-** ''gcc -o test test.c'' 
-* Rulați programul folosind comanda ''./test''. 
-* Rulați comanda ''uptime''. 
-** Ce observați? 
 == Exerciții == == Exerciții ==
  
-Folosind comanda ''ps'', încercați să afișați doar câmpurile ''PID'' și ''PPID'' ale tutror proceselor din sistem.+Folosind comanda ''ps'', încercați să afișați doar câmpurile ''PID'' și ''PPID'' ale tuturor proceselor din sistem.
  
 Filtrați toate procesele din sistem după memoria utilizată (hint: ''top'') Filtrați toate procesele din sistem după memoria utilizată (hint: ''top'')
Line 140: Line 138:
 Aflați care este load-ul sistemului folosind comanda ''top''. Ce alte informații puteți afla asemănător? Aflați care este load-ul sistemului folosind comanda ''top''. Ce alte informații puteți afla asemănător?
  
-Folosind comanda ''yes'', faceți în așa fel încât output-ul să arate alternativ literele ''a'' și ''b''.+Folosind comanda ''yes'', faceți în așa fel încât output-ul să arate alternativ literele ''a'' și ''b''. Indiciu: **background**
  
 Rulați comanda ''gedit''. Închideți terminal-ul. Ce s-a întâmplat? Rulați comanda ''gedit''. Închideți terminal-ul. Ce s-a întâmplat?
 * Folosiți comanda ''nohup'' astfel încât la închiderea terminalului, editorul text să nu se închidă. * Folosiți comanda ''nohup'' astfel încât la închiderea terminalului, editorul text să nu se închidă.
unixmix/capitole/capitol-03.1373361081.txt.gz · Last modified: 2013/07/09 12:11 by alexef