Linux Sistemlerde Proses(Süreç) Yönetimi

                           

Proses Nedir?


Çalışması ile sonlanması arasında her program bir “proses” olarak adlandırlır yada işletim sistemi üzerinde ayakta olan programların parcalarından her birine verilen addır.


-Proseslerin kendilerine ait olan uniq bir  proses kimliği vardır(pid)


-Her sürecin bir ata süreci  vardır(ppid,init süreci dışında )


-İşletim sistemlerinde süreç denetimi sinyal mekanizmaları ile yapılır.



Ps” (proses status) sistemdeki  proseslerinin durumunu gösterir.Ps komutu tek başına kullanıldığı zaman sisteme login olduktan kabuktan başlatılmış sureçleri listeler.Sistemdeki tüm sürecleri gormek için aux parametresi ile kullanılır.Çıktısı aşağıdaki gibidir.



Yukarıdaki komut çıktısında bazı sütunlar bulunmakta bu sütunların analamları şı şeklidedir.


“USER”, Sürecinhangi kullanıcı kimliği ile başladıgını gösterir.

PID”, Sürec numarasnın görüntüler.

“STAT” , Sürecin durumunu gösterir,”S” sürec 20 saniyeden az süredir uyuyor.”R” sürec işletiliyor.”T” süreç durdurulmuş durumda ,”P” diskten bir sayfa yüklemesi bekliyor,”D” diskten bilgi yuklemesi bekliyor,”I” sürec 20 saniyeden fazla süredir uyuyor,”Z” sürec durdurulmus ama ölmemiş,”W” sürec diske aktarıldı,”>” sürec kendine verilmiş bellek değerinş aşmıs durumda ,”N” süreç düşük öncelikde işletiliyor.”<” sürec yüksek öncelikle işletiliyor.
“START”, sürecin başlama zamanı
“TIME”, SÜrecin başlama anından itibaren gecen süre
“COMMAND”,sürecin başlatıldıgı komut satırı

Unix sistemler de proc dizini bulunur ve bu dizin sanal bir dizindir yani  diskte  yer kaplamaz burada prosesler tuturlur.Aynı zaman da bu dizin altında cpu bilgisi bellek bilgisi tutulur.Bu dizin içinde de cpu ve bellek bilgisini şöyle listeleyebiliriz
aynı şekilde /proc dizini altında cpuinfo dosyası vardır.Bu dosya altındanda cpu bilgisini de çekebiliriz.


SİNYAL MEKANİZMASI

Sürecler arasında  iletişim için kullanılabilecek en temel iletişim yolu sinyallerdir.

Bİr süreç digerine sinyal gönderir ve diger süreç gelen bu sinyale uygun eylemin gerçekleşmesi umulur.

Pek çok farklı işlem biçimi için tanımlanmış sinyaller şunlardır:

-Çalışan süreci sonlandırmak(SIGTERM)
-Çalışan ve sonlandırılmasını kabul etmeyen süreci  donalndırmak(SIGKILL)
-Çalışan bir süreci  duraklatmak (SIGSTOP)
-Duraklamış bir süreci devam ettirmek(SIGCONT)
-Çalışan sureci reload etmek (SIGHUP)
60 ın üstünde sinyal türü bulunmaktadır am en kullanışlıları bunlardır.


-Sinyaller kill komutu ile yonlendirilir.

-Kill komutu “ kill -sinyal pid “ olarak calısır.”pid ” numaralı sürece sinyali iletir.

SIGKILL süreclerin acil olarak hemen sonlandırılmasını saglar.Önce SIGTERM sinyali denenmelidir.SIGTERM başarılı olmazzsa SIGKILL sinyali yolalnır.Hiç bir proses SIGKILL sinyalini yok sayamaz.

-killall , sürecleri süreç  isimleri ile yönetir.

Killall  -SIGSTOP httpd
Killall  -SIGCONT httpd

-aynı isimde birden fazla sürec olabilir.Killall komutu bu süreclere  tek bir komutla sinyal göndermek için kulalnılır.


SÜRECLERİN ÖNCELİKLERİ

-Süreclerin önelikleri nice degeri ile belirlenir.

-Nice degeri gecerli öncelik degerini gösterir.

-Nice degerleri -19 +20 arasında değişir.

-Varsayılan nice değeri 0 dır.

-Negeatif nice degeri vermek için sistemde yetkili kullanıcı olmak gerekir.

**Nice -n 12  komut  komutun önceliğini 12 azaltır(nice değeri 12 artar.)
-Çalışan süreclerin nice degeri renice degeri ile değişir.




-Bir kabuktan aynı anda birden faz proses calışabilir.

-Aynı kabukta çalıştırılmakta olan süreçler iş(job) olarak geçer.

-Her işin onu tanımlayan bir pid değeri vardır.

-İşlerin listelenmesi “jobs” komutu ile gercekleşir.

-Bir işin on plana alınması “fg”

-Bir işin arka plana atılması “bg”

-Bir işin duraklatılması “ctrl-z”

-Bir işin arka planda başlatılması “& “

Şöyle bir örnek yaparsak


Yukarıdaki çıktıda ilk olarak program1 i calıştıdık sonra program1 "ctrl-z" ile arka plana attık ve bg komutu ile arka planda çalışmasını  sagladık bunu jobs komutu ile kontrol ettiğimiz zaman arka planda çalıştıgını görüntülüyoruz.Bunun ardından program2 yi çalıştırdık.Aynı işlemi program2 gene arka plana attık sonra "fg" komutu ile ön plana aldık sonra tekrak arka plana aldık ve "bg" komutu ile çalışmasına devam ettirdik bunu doğrulamak için jobs komutu ile baktık ve her iki programda arka planda çalışıyor.Ardından sırasi ile program1 ve progra2 bitmiş oldu.



Yorumlar

Bu blogdaki popüler yayınlar

İntellij Ide Kurulumu Maven kullanımı

Vlan nedir ? Hp switchlerde Vlan yapısı ve Bazı network terimleri

Ubuntu Server Ldap Kurulumu