• Sonuç bulunamadı

Süreçler. BLP126 - Açık Kaynak İşletim Sistemi 1

N/A
N/A
Protected

Academic year: 2022

Share "Süreçler. BLP126 - Açık Kaynak İşletim Sistemi 1"

Copied!
28
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Süreçler

(2)

Süreç (Process)

Süreç (process) terimi, belleğe yüklenmiş ve işlemcide (CPU) yürütülmekte olan bir program olarak tanımlanmaktadır.

Süreçler, komut satırından çalıştırılan kısa süreli komut olabileceği gibi işletim sisteminin açık olduğu süre boyunca çalışan bir ağ servisi de olabilir.

(3)

PID numarası

Kullanıcıların ve işletim sisteminin süreçleri yönetebilmesi için her sürece ait bir süreç numarası (PID) vardır.

Süreçle ilgili yapılacak işlemler bu PID numarası üzerinden gerçekleştirilir.

Linux altında çalışan ilk süreç init olup PID numarası her zaman 1’dir. Init ilk süreç olduğu için kullanıcı tarafından başlatılan diğer süreçlerin aksine çekirdek tarafından

(4)

Süreçleri Yönetmekte Kullanılan Komutlar

(5)

ps

Çalışan süreçleri görüntülemeye yarar.

Komut herhangi bir parametre almadan çalıştırılırsa mevcut kabukta çalıştırılmış süreçleri verir.

cezmi@ubuntu:~$ ps

PID TTY TIME CMD 1969 pts/0 00:00:00 bash

(6)

Tüm süreçleri görüntüleme

Sistemdeki tüm süreçleri görüntülemek için ps aux komutu kullanılabilir.

cezmi@ubuntu:~$ ps aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.3 0.7 167552 7924 ? Ss 10:42 0:00 /sbin/init splash root 2 0.0 0.0 0 0 ? S 10:42 0:00 [kthreadd]

root 3 0.0 0.0 0 0 ? I< 10:42 0:00 [rcu_gp]

root 4 0.0 0.0 0 0 ? I< 10:42 0:00 [rcu_par_gp]

root 5 0.0 0.0 0 0 ? I 10:42 0:00 [kworker/0:0-cgroup_destroy]

root 6 0.0 0.0 0 0 ? I< 10:42 0:00 [kworker/0:0H-events_highpri]

...

(7)

Bir kullanıcıya ait süreçleri görüntülemek

Bir kullanıcıya ait süreçleri görüntülemek için -u parametresi kullanılır.

cezmi@ubuntu:~$ ps -u cezmi PID TTY TIME CMD

1262 ? 00:00:00 systemd 1263 ? 00:00:00 (sd-pam) 1268 ? 00:00:00 pulseaudio

1271 ? 00:00:00 tracker-miner-f 1273 ? 00:00:00 gnome-keyring-d 1277 ? 00:00:00 dbus-daemon

(8)

Süreç numarasına göre bilgi almak

Süreç numarasına göre bilgi almak için -p parametresi kullanılır.

cezmi@ubuntu:~$ ps -p 1

PID TTY TIME CMD

1 ? 00:00:00 systemd

(9)

Süreç listesinde filtreleme yapmak

Eğer aradığımız özel bir süreç varsa daha önce görmüş olduğumuz grep komutu yardımı ile o süreç hakkında doğrudan bilgi alabiliriz. Örneğin; "bash" süreci hakkında bilgi almak istiyorsak konsola ps -aux | grep "bash" yazmak yeterli olacaktır.

cezmi@ubuntu:~$ ps -aux | grep "bash"

cezmi 1969 0.0 0.4 13356 4744 pts/0 Ss 10:44 0:00 bash

cezmi 2197 0.0 0.0 11792 716 pts/0 S+ 10:55 0:00 grep --color=auto bash

(10)

pstree

Süreçleri hiyerarşik bir biçimde görüntülemek için pstree komutu kullanılabilir.

cezmi@ubuntu:~$ pstree

systemd─┬─ModemManager───2*[{ModemManager}]

├─NetworkManager───2*[{NetworkManager}]

├─3*[VBoxClient───VBoxClient───2*[{VBoxClient}]]

├─VBoxClient───VBoxClient───3*[{VBoxClient}]

├─VBoxService───8*[{VBoxService}]

├─accounts-daemon───2*[{accounts-daemon}]

├─acpid

├─avahi-daemon───avahi-daemon ├─colord───2*[{colord}]

├─cron

├─cups-browsed───2*[{cups-browsed}]

├─cupsd───dbus ├─dbus-daemon

├─gdm3─┬─gdm-session-wor─┬─gdm-x-session─┬─Xorg───{Xorg}

│ │ │ ├─gnome-session-b─┬─ssh-agent

│ │ │ │ └─2*[{gnome-session-b}]

│ │ │ └─2*[{gdm-x-session}]

...

(11)

top

Süreçleri CPU kullanımına, bellek kullanımına ve çalışma süresine göre sıralar ve

sistem yöneticisinin kaynak kullanımını analiz etmesini sağlar. Aynı zamanda süreçleri düzenleyebilecek etkileşimli bir arayüz sunar. Varsayılan olarak 3 saniyede bir çıktı güncellenir.

top - 11:02:52 up 20 min, 1 user, load average: 0,13, 0,06, 0,10 Tasks: 180 total, 1 running, 179 sleeping, 0 stopped, 0 zombie

%Cpu(s): 11,9 us, 8,0 sy, 0,0 ni, 78,3 id, 1,4 wa, 0,0 hi, 0,3 si, 0,0 st MiB Mem : 971,5 total, 66,9 free, 618,5 used, 286,2 buff/cache

MiB Swap: 448,5 total, 313,3 free, 135,2 used. 207,2 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

(12)

top komutu çıktısındaki alanların anlamı

Top çıktısında gösterilen bazı alanların açıklamaları:

İlk satır: Sistemin ne kadar süredir açık olduğunu gösteren uptime değeri(yukarıdaki çıktıda 20 dakika) ve son 1,5 ve 15 dakika içerisindeki CPU yükünü gösterir. Uptime komutuylaaynı sonucu verir.

Mem satırı: Toplam bellek, boş bellek ve kullanılan bellek miktarı gibi bellekle ilgili sayısal verileri içerir.

(13)

PID: Process ID (Süreç numarası) User: Sürecin sahibi kullanıcı

PRI: Sürecin önceliği

Time: Süreç başladığından beri tükettiği CPU zamanı

%CPU: Tüm süreçler içinde CPU zamanının % ne kadarını kullandığı

%MEM: Toplam süreçler içinde fiziksel belleği % ne kadar kullandığı

(14)

htop

htop, top benzeri çalışan süreçleri gösteren bir uygulamadır. Ubuntu'da kullanmak için önce kurmanız gerekmektedir.

sudo apt install htop

(15)
(16)

Htop arayüzü üç kısımdan oluşmaktadır:

Başlık kısmı: İşlemci, bellek ve Swap kullanımı gösteren barlar ve çalışan süreç sayısı, işlemci yük durumu ve sistemin ne kadar süredir açık olduğu gibi bilgileri içermektedir. Bu görüntü htop menüsünden değiştirilebilir.

Gövde kısmı: top’a benzer olarak süreçlerin işlemci kullanımına göre listelendiği kısımdır.

Alt kısım: Htop menüsünü ve kısayollarını gösterir.

(17)

nohup

nohup, "kapatmak yok" anlamına gelen bir komuttur. Verilecek komutları herhangi bir kesintiye uğramadan çalıştırmayı sağlar. Kullanıcı sistemden çıksa ve terminali kapatsa bile komut çalışmasına devam edecektir.

Genellikle çalışması çok uzun sürecek komutlarda kullanılır. Kullanımı;

nohup komut &

(18)

Süreci arka planda çalıştırma (& bg)

Bash kabuk altında çalışan bir süreç yarıda kesilebilir, arka plana gönderilebilir veya tekrar ön plana alınabilir.

Aşağıdaki gibi uzun sürecek bir görev arka plana gönderilebilir. Arka plana göndermek için komut sonuna & simgesi eklenir.

find / -ctime -1 > changed-files.txt &

(19)

Bir komutu çalıştırıp, bir süre izledikten sonra Ctrl-Z ile kesilip bg komutu verilerek de arka plana gönderilebilir.

cezmi@ubuntu:~$ wget http://www.google.com [1]+ Stopped wget http://www.google.com cezmi@ubuntu:~$ bg

[1]+ wget http://www.google.com &

Arka plana giden bir iş sonlandığında konsola aşağıdaki gibi mesaj verilir:

(20)

Arka planda çalışan süreçleri görme (jobs)

Arka plana gönderilmiş görevleri görmek için jobs komutu kullanılır:

cezmi@ubuntu:~$ jobs

[1] Running bash script.sh &

[2]- Running sample-soft &

[3]+ Done browser .

(21)

Arka plana atılmış süreci ön plana alma

Arka plandaki bir işi tekrar ön plana almak için fg komutu kullanılır. Hiçbir parametre verilmezse en son arka plana gönderilen komutu ön plana alır.

Aşağıdaki komutla 1 numaralı arka plan işi öne alınır:

fg %1

(22)

Sinyaller

Sinyaller, süreçler arasında bir iletişim yöntemidir. Sinyallerin

her birinin özel bir anlamı olup programın nasıl davranacağını belirlemede kullanılır.

Sık Kullanılan Sinyal Türleri:

Sinyal Değer Açıklama

SIGHUP 1 Sürecin durdur ve yapılandırma dosyasını yeniden yükle SIGINT 2 Klavyeden gelen kesme

SIGQUIT 3 Klavyeden gelen çıkış kesmesi SIGKILL 9 Süreci öldür

SIGTERM 15 Sonlandırma sinyali

(23)

kill

Süreçlere sinyal göndermek için kullanılır.

Varsayılan olarak SIGTERM sinyaliyle süreçlere, "Lütfen kendinizi kapatır mısınız?" diye ricada bulunur.

Aşağıdaki komut 1120 PID numaralı sürece 9 numaralı (SIGKILL) sinyali gönderir.

Bu bir rica değildir. Süreci anında öldürür.

(24)

killall

Kendisine parametre olarak verilen süreç adına sahip tüm süreçleri öldürmeye çalışır.

killall -9 süreç_adı

(25)

xkill

Bu komut yanıt vermeyen bir programı grafiksel arayüzden kapatmaya yarar.

Örneğin gedit isimli metin editörü programını açtınız. Gedit bir aşamada dondu ve size yanıt vermiyor. Bu noktada xkill komutunu çalıştırdığınızda fare imleci "x"

işaretine dönüşür. Bu "x" işareti ile tıkladığınız program (bu örnekte gedit) otomatik olarak kapanır.

(26)

Program Çıkış Kodları

Programlar, programcıların kodlarındaki exit fonksiyonlarıyla yada dışardan gelecek kesmelerle (interrupt) sonlanır.

Programlar sonlanırken 0-255 arası bir çıkış değeri ile sonlanırlar. Bu değer programın neden çıktığını göstermesi açısından önemlidir.

Genel olarak 0 ile çıkan programlar başarıyla görevini tamamlayarak, 1-255 arası bir rakamla çıkan programlar ise bir hata ile karşılaşarak sonlanmıştır demektir. Hangi kodun hangi anlam taşıdığı genel olarak programın dokümanında belirtilir.

(27)

Son çalışan komutun çıkış kodu

Bash kabuğunda son çalışan komutun çıkış değeri ? değişkeninde saklanır.

cezmi@ubuntu:~$ ls

Belgeler Genel İndirilenler Masaüstü Müzik Resimler Şablonlar Videolar cezmi@ubuntu:~$ echo $?

0

cezmi@ubuntu:~$ ls -al olmayan_dosya

ls: 'olmayan_dosya''e erişilemedi: Böyle bir dosya ya da dizin yok cezmi@ubuntu:~$ echo $?

(28)

Kaynaklar

https://linux-dersleri.github.io/docs/temel_linux/13.html

https://www.pardus.org.tr/kitaplar/LPI-Sertifikasyon-Kitabı-pardus.org.tr.pdf

Referanslar

Benzer Belgeler

Yaygın eğitim kurumları șunlardır: Halk eğitimi merkezleri, Çıraklık eğitimi merkezleri, Pratik kız sanat okulları, Olgunlașma enstitüleri, Endüstri pratik sanat

Eğitim ve Öğretim Araştırmaları Dergisi Journal of Research in Education and Teaching Mayıs, Haziran, Temmuz 2012 Cilt 1 Sayı 2 ISNN:

Bu amaçla ÖYS’nin kurulum aşaması, sistem yönetimi, çevrimiçi işbirliği ve iletişimi, tasarım ilkeleri, verimlilik araçları, içerik yönetimi, kurs yönetimi,

İşletim sistemlerinin temel kavramları; yaygın kullanılan işletim sistemleri; işletim sisteminin görevleri; bilgisayar sistemi yapısı; dağıtık sistemler;

Linus Torvalds, Minix işletim sisteminden daha iyi bir işletim sistemi oluşturmak için 1991 Ağustos sonlarında ilk çalışan LINUX çekirdeğini oluşturmuştur.. ♦

Sunucu ve yerel geliştirme ortamı benzerliğini yakalamak için geliştiriciler daha çok Linux'u tercih etmekte ancak bunu Windows üzerinde bir sanal makine üzerinde de

Thunderbird, Ubuntu gibi birçok masaüstü Linux dağıtımında varsayılan e-posta istemcisi olarak gelir... Firefox

Türkçe doğal dil işleme üzerine yapılan çalışmalara bakıldığında en sık karşılaşılan açık kaynak kodlu olarak hazırlanmış olan Zemberek