This is an old revision of the document!
Pentru parcurgerea demo-urilor, folosiți arhiva aferentă.
ps -f $$ ps -F $$ lsof -p $$ pmap $$ ls /proc/$$/ cat /proc/$$/status
find
), prin rularea comenzii de mai jos:/usr/bin/time -v find /usr/share > /dev/null
pstree ps -H
echo $$
$PID
valorea afișată de comanda de mai sus.watch -n 1 pstree -a -p $PID
sleep 20 & bash sleep 30 # asteptati terminarea comenzii exit
/proc/$PID/status
, și anume câmpurile voluntary_ctxt_switches
și nonvoluntary_ctxt_switches
. Urmăriți aceste valori pentru shell-ul curent:cat /proc/$$/status
voluntary_ctxt_switches
?ctxt-switch/
din arhiva cu demo-uri a cursului.cpu.c
și io.c
.make
cpu
și io
.cpu
:./cpu
cat /proc/$(pidof cpu)/status
nonvoluntary_ctxt_switches
. Cum explicați?io
:./io
cat /proc/$(pidof io)/status
voluntary_ctxt_switches
. Cum explicați?voluntary_ctxt_switches
se face doar în cazul apelului sleep()
, nu și în cazul apelului write()
(apel de I/O)?fork-file-pointer/
din arhiva cu demo-uri a cursului.fork-file-pointer.c
.make
fork-file-pointer
.fork-file-pointer
:./fork-file-pointer
lsof -a -o -d 0-1023 -p $(pidof fork-file-pointer | cut -d ' ' -f 1)
OFFSET
.f.txt
după rularea programului:cat f.txt
fork()
, se partajează cursorul de fișier al fișierelor deschise înainte de fork()
.orphan-zombie/
din arhiva cu demo-uri a cursului.orphan.c
și zombie.c
.make
orphan
și zombie
.orphan
:./orphan
watch -n 1 ps -f -C orphan
init
.zombie
:./zombie
watch -n 1 ps -f -C zombie
ps
apare șirul <defunct>
.