Sistem çağrıları, işletim sistemleri tarafından sunulan bir arayüzdür. Bu arayüzü servisler için sunar. C veya C++ ile programlama yapılabilir. Direkt olarak çağrılmazlar, bunun yerine API dediğimiz programlama arayüzlerini kullanırlar.
İçerik Haritası
En çok Kullanılan API’ler
Windows Win32 API kullanır. POSIX tabanlı sistemler ise POSIX API kullanırlar. POSIX tabanlı sistemler dediğimiz, büyün Unix tabanlı işletim sistemleridir. Java Sanal Makinası (JVM) ise Java API Kullanır.
API’lerin kullanılma nedeni taşınabilirlik ve basitliktir. Direkt erişim zor olduğu gibi, tehlikeli de olabilir.
Sistem Çağrısı Örneği
Aşağıda System Call örneği görebilirsiniz.
System Call Nasıl Gerçekleştirilir?
System Call yani sistem çağrıları bir sayı ile ilişkilendirilmektedir. System Call Arayüzü bu sayılarla indexlenmiş bir tablo tutar. Sistem Çağırısı arayüzü işletim sistemi kabuğunda (Shell) gerçekleştirilmiş sistem çağrısını çağırır. Eğer bir değer varsa system call durumunu geri döndürür.
Sistem çağrısını çağıran uyulama, sistem çağrısını nasıl gerçekleştirilebileceği bilmelidir. Bu işlem de API sayesinde olur. API’ler, işletim sistemi arayüzünün pek çok detayını kullanıcıdan gizler. (Windows gibi). System Call destek kütüphanesi ile yönetilmektedir. Derleyici ile birlikte gelen kütüphaneler içerisine gömülmüş fonksiyonlardır.
İşletim Sistemi Sistem Çağrısı İlişkisi
Aşağıdaki resimde, System Call ile İşletim sistemi arasındaki ilişki gösterilmiştir.
Resimden de gördüğünüz üzere, system call arayüzü user mode ile kernel mod arasında yer almakta, geçiş işlemini programcıya bırakmadan kendisi halletmektedir.
Mesela sistem çağrılarını siz bile fark etmeden kullanıyorsunuz. C ile kod yazarken printf komutu system call çağrısında bulunur. Standard C library’e erişen komut system call isteği yapar. Bu isteğe verilen cevap da sizin ekrana yazı yazmanızı sağlamaktadır.
Sistem Çağrısına Parametre Göndermek
System call süreci içerisinde çağrı numarasından fazla bilgi de göndermek mümkündür. Gönderilecek bilginin tipi ve miktarı gibi bilgiler de gönderilebilir.
İşletim sistemine parametre göndermek için 3 yöntem mevcuttur.
En basit yöntem Registers içerisine göndermektir.
Diğer bir yöntem ise hafızada bir blokta ya da tabloda tutma yöntemidir. Bu durumda hafızanın adresi register ile gönderilmelidir. Bu sistem Linux ve Solaris işletim sistemleri tarafından uygulanmaktadır.
En son yöntem ise Stack yöntemidir. Yığın içerisine atılan parametreler işletim sistemi tarafından çekilir. Blok ve yığın yöntemlerinde herhangi bir sınır bulunmaz.
Sistem Çağrısı Çeşitleri Nelerdir?
- İşlem Kontrolü
- Dosya Yönetimi
- Cihaz Yönetimi
- Bilgi Sağlama
- İletişim
- Koruma
Windows ve Linux’da sistem çağrısı Örnekleri
Çok Güzel bir aydınlatma olmuş. Elinize sağlık.Çok teşekkür ederim.
İşletim Sistemleri dersinde işlediğimiz konuları özetlemişsin, sağol, varol.