System Calls (sistem çağrıları)

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.

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.

sistem-cagrisi-ornegi

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.

sistem-cagrisi-isletim-sistemi-iliskisi

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.

system-call-parametre

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

sistem-cagrisi-ornekleri

 

AuthorHarun ALP

Bu adam , bilgi sahibi olduğu konularda makalelerini daha bilgilendirici hale getirip görseller ile süslüyor ve seo uyumlu makaleler ortaya çıkarıyor. Güncel webmaster konularını işlemekten keyif alıyor ve genelde her makale aslında bir sorunun çözümü niteliğinde.

2 thoughts on “System Calls (sistem çağrıları)

  1. Çok Güzel bir aydınlatma olmuş. Elinize sağlık.Çok teşekkür ederim.

  2. İşletim Sistemleri dersinde işlediğimiz konuları özetlemişsin, sağol, varol.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir