Sunday 23 December 2007

LİNUX Programlamağa Giriş - Süreçler 2

Ali Rıza SARAL(1)

(1) Neil Matthew ve Richard Stones, Beginning Linux Programming ‘den faydalanarak derlenmiştir.

Süreçleri İzleyiş
ps komutu çalıştırmakta olduğumuz süreçleri, bir başka kullanıcının çalıştırdığı süreci ya da sistem üzerindeki bütün süreçleri gösterir. İşte örnek bir çıktı:

$ ps -af
UID PID PPID C STIME TTY TIME CMD
root 433 425 0 18:12 tty1 00:00:00 [bash]
rick 445 426 0 18:12 tty2 00:00:00 -bash
rick 456 427 0 18:12 tty3 00:00:00 [bash]
root 467 433 0 18:12 tty1 00:00:00 sh /usr/X11R6/bin/startx
root 474 467 0 18:12 tty1 00:00:00 xinit /etc/X11/xinit/xinitrc --
root 478 474 0 18:12 tty1 00:00:00 /usr/bin/gnome-session
root 487 1 0 18:12 tty1 00:00:00 gnome-smproxy --sm-client-id def
root 493 1 0 18:12 tty1 00:00:01 [enlightenment]
root 506 1 0 18:12 tty1 00:00:03 panel --sm-client-id default8
root 508 1 0 18:12 tty1 00:00:00 xscreensaver -no-splash -timeout
root 510 1 0 18:12 tty1 00:00:01 gmc --sm-client-id default10
root 512 1 0 18:12 tty1 00:00:01 gnome-help-browser --sm-client-i
root 649 445 0 18:24 tty2 00:00:00 su
root 653 649 0 18:24 tty2 00:00:00 bash
neil 655 428 0 18:24 tty4 00:00:00 -bash
root 713 1 2 18:27 tty1 00:00:00 gnome-terminal
root 715 713 0 18:28 tty1 00:00:00 gnome-pty-helper
root 717 716 13 18:28 pts/0 00:00:01 emacs
root 718 653 0 18:28 tty2 00:00:00 ps –af

Bu çıktı, çok sayıda süreç hakkında bilgi göstermektedir, bir Linux sisteminde X altında çalışan bir Emacs editörü de dahil olmak üzere. Örneğin, TTY sütunu sürecin hangi terminalde başlatıldığını, TIME ise o ana kadar kullanılan MİB (CPU) zamanını, ve CMD sütunu süreci başlatmak için kullanılan komutu gösterir. Bunlardan bazılarına daha yakından bakalım:

neil 655 428 0 18:24 tty4 00:00:00 –bash
Başlangıçtaki login 4 nolu sanal konsolda icra edilmiştir. Bu makinadaki konsoldur bu. Çalışan kabuk (shell) programı Linux’un default’u, bash’tir.

root 467 433 0 18:12 tty1 00:00:00 sh /usr/X11R6/bin/startx
Xwindow sistemi xibaşlat (startx) komutu ile başlatılmıştır. Bu, X sunucusunu (server) başlatır ve bazı başlangıç X programlarını koşturur.

root 717 716 13 18:28 pts/0 00:00:01 emacs
Bu süreç X içinde Emacs’i çalıştıran bir pencereyi temsil eder. Yeni bir pencereden gelen bir istek doğrultusunda pencere yöneticisi tarafından başlatılmıştır. Ona yazmak ve ondan okumak için kabuğa yeni bir sözde terminal pts/0 atanmıştır.

root 512 1 0 18:12 tty1 00:00:01 gnome-help-browser --sm-client-i
Bu pencere yöneticisi tarafından başlatılmış GNOME yardım gözden-geçiricisidir(browser).

Yalnızca(by default), ps programı yalnız bir terminal, bir konsol, bir seri hat, veya sözde (pseudo) terminal ile bir bağlantıyı sürdüren süreçleri gösterir. Diğer süreçler bir kullanıcı ya da terminal ile bağlantıya ihtiyaç duymadan çalışabilirler. Bunlar ortak kullanılan kaynakları yönetmek için Linux’un kullandığı tipik süreçlerdir. Bütün bu tür süreçleri ps’in –a seçeneği ile ve “tam” (“full”) bilgi elde etmek için –f seçeneği ile görebiliriz.

Sistem Süreçleri
İşte Linux sisteminde çalışan başka bazı süreçler. Çıktı netlik açısından kısaltılmıştır.
Here are some of the other processes running on this Linux system. The output has been abbreviated for clarity.
$ ps -ax
PID TTY STAT TIME COMMAND
1 ? S 0:05 init
2 ? SW 0:00 [keventd]
3 ? SW 0:00 [kapmd]
4 ? SWN 0:00 [ksoftirqd_CPU0]
5 ? SW 0:00 [kswapd]
6 ? SW 0:00 [bdflush]
7 ? SW 0:00 [kupdated]
8 ? SW 0:00 [kinoded]
10 ? SW 0:00 [mdrecoveryd]
75 ? SW<>