Arkaplanda Çalıştırma

Next: Klavye Üzerinden Kesinti Up: Çokgörevlilik Previous: Çokgörevlilik

## Arkaplanda Çalıştırma

Bir komutu arkaplanda çalıştırmak için, komutun sonuna `&` karakteri getirin. Komutu girdikten sonra tekrar kabuk istemcisine düşecek ve kaldığınız yerden devam edebileceksiniz. Program, arkaplanda diğer süreçlerle çakışmadan bir süre çalışır ve işi bittiğinde durur.

    $ sort buyuk_dosya > buyuk_dosya.sirali &
    [1] 772

Komutun arkaplana atılmasından sonra ekranda yeralan 1 , sürecin sıra numarasını, 772 sayısı ise süreç kimliğini (Process ID) gösterir. Her program, sistem kaynaklarını biraz daha azalttığından Linux'çuların deyimiyle makina yavaşlar.

Çalışan programların listesini görmek için `ps` komutunu kullanın. Hiç parametre vermeden yazılırsa sadece üzerinde çalışılan kullanıcının süreçleri ekrana gelir. Sık kullanılan bir başka parametre dizisi de `uax` tir. Bu sayede sistemdeki o anda çalışan tüm programlar daha ayrıntılı bir şekilde ekrana listelenir.

    $ ps
    PID TTY STAT  TIME COMMAND
       76 v02 S     0:00 -bash
      111 v02 R     0:00 ps

    $ ps -aux
    USER       PID %CPU %MEM SIZE  RSS TTY STAT START   TIME COMMAND
    bin         63  0.0  5.5   64  364  ?  S    11:12   0:00 /usr/sbin/rpc.portmap
    gorkem      76  0.0  9.7  101  644 v02 S    11:12   0:00 -bash
    gorkem     112  0.0  5.0   59  332 v02 R    11:16   0:00 ps -aux
    root         1  0.0  5.0   56  332  ?  S    11:12   0:00 init [5]
    root         6  0.0  4.2   35  284  ?  S    11:12   0:00 bdflush (daemon)
    root         7  0.0  4.2   35  284  ?  S    11:12   0:00 update (bdflush)
    root        48  0.0  5.1   45  340  ?  S    11:12   0:00 /usr/sbin/crond -l10
    root        59  0.0  5.5   53  364  ?  S    11:12   0:00 /usr/sbin/syslogd
    root        61  0.0  5.0   44  336  ?  S    11:12   0:00 /usr/sbin/klogd
    root        65  0.0  5.5   62  364  ?  S    11:12   0:00 /usr/sbin/inetd
    root        67  0.0  5.8   79  388  ?  S    11:12   0:00 /usr/sbin/rpc.mountd
    root        69  0.0  6.0   88  400  ?  S    11:12   0:00 /usr/sbin/rpc.nfsd
    root        75  0.1  9.9  115  660 v01 S    11:12   0:00 -bash
    root        77  0.0  4.6   52  304 v03 S    11:12   0:00 /sbin/agetty 38400 tty3
    root        78  0.0  4.6   52  304 v04 S    11:12   0:00 /sbin/agetty 38400 tty4
    root        79  0.0  4.6   52  304 v05 S    11:12   0:00 /sbin/agetty 38400 tty5
    root        80  0.0  4.6   52  304 v06 S    11:12   0:00 /sbin/agetty 38400 tty6
    root        81  0.0  5.5   42  368  ?  S    11:12   0:00 gpm -t ms

Burada yeralan bilgiler sırasıyla :

- PID: Süreç numarası. Her sürecin farklı bir numara alması sistem tarafından düzenlenir.
- %CPU: İşlemcinin % olarak ne kadarı süreç tarafından kullanılıyor ?
- %MEM: % olarak hafızada kapladığı yer
- SIZE: Programın toplam kullandığı bellek alanı (kilobyte)
- RSS: Programın bellekte kapladığı gerçek alan. Bu değer paylaşılan sistem kütüphaneleri (shared library) nedeniyle genellikle `SIZE` değerinden büyüktür.
- TTY: Sürecin çalıştırıldığı (sanal) terminal
- STAT: Süreç o sırada ne yapıyor ?
  - S: Uyumakta, bu durum genellikle sürecin bir G/Ç işlemi (örneğin farenin hareketi ya da ağdan gelecek veriler) beklemesi sırasında olur.
  - R: Çalışabilir. Çalışabilir süreçler, gereksinim duydukları bütün sistem kaynaklarına sahip olan süreçlerdir. Çekirdek (tek işlemcili bir makinada) belirli aralıklarla bu süreçlerden sadece birini çalıştırır.
  - T: Durmuş. Bu durum sürecin kullanıcı tarafından (örneğin `Control-Z` tuşlarına basılarak) durdurulmasında görülür.
  - Z: Zombie. Bu tür süreçler, kendisini çalıştıran sürece (parent process) mesaj bırakamadıklarından takılmış süreçlerdir. Öldürülemezler ancak sitem kaynaklarını da kullanamazlar.
  - D: Kesilemez uykuda. Bazı G/Ç işlemleri o sırada bu işlemi yapan sürecin kesilmemesini gerektirir. Böyle durumdaki süreçleri de ilgili G/Ç işlemi bitinceye kadar öldüremezsiniz.
- START: Sürecin çalıştığı zaman
- COMMAND: Komut satırından girilen programın ismi

`ps` komutuna bilgisayar üzerinde çalıştığınız her an ihtiyaç duymanız mümkündür, bu yüzden çeşitli parametrelerle kullanmayı öğrenmelisiniz.

Next: Klavye Üzerinden Kesinti Up: Çokgörevlilik Previous: Çokgörevlilik