Sistem Çağrısı ve İşlev Çağrısı
Tipik bir işlemci talimatları birer birer yürütür. Ancak işlemcinin mevcut talimatı durdurması ve başka bir program veya kod segmenti (başka bir yerde bulunan) yürütmesi gereken durumlar olabilir. Bunu yaptıktan sonra işlemci normal yürütmeye döner ve kaldığı yerden devam eder. Bir sistem çağrısı ve bir işlev çağrısı böyle durumlardır. Sistem çağrısı, sistemde yerleşik bir alt programa yapılan çağrıdır. İşlev çağrısı, programın kendi içindeki bir alt programa yapılan çağrıdır.
Sistem Çağrısı nedir?
Sistem çağrıları, bilgisayarda çalışan programlara işletim sistemiyle konuşmak için bir arayüz sağlar. Bir programın işletim sisteminin çekirdeğinden bir hizmet istemesi gerektiğinde (bunu kendi başına yapma izni yoktur), sistem çağrısı kullanır. Kullanıcı düzeyindeki işlemler, işletim sistemiyle doğrudan etkileşime giren işlemlerle aynı izinlere sahip değildir. Örneğin, harici G/Ç cihazıyla iletişim kurmak veya diğer işlemlerle etkileşim kurmak için bir program sistem çağrılarını kullanır.
İşlev Çağrısı nedir?
Bir işlev çağrısı aynı zamanda bir alt program çağrısı olarak da adlandırılır. Bir alt program (ayrıca prosedür, işlev, yöntem veya rutin olarak da bilinir), belirli bir görevi yerine getirmekten sorumlu olan daha büyük bir programın parçasıdır. Daha büyük program, ağır bir iş yükü yürütebilir ve alt program, kalan program kodlamasından bağımsız olarak yalnızca basit bir görevi gerçekleştiriyor olabilir. Bir işlev, birden çok kez ve farklı yerlerden (diğer işlevlerin içinden bile) çağrılabilecek şekilde kodlanmıştır. Bir fonksiyon çağrıldığında, işlemci fonksiyonun kodunun bulunduğu yere gidebilir ve fonksiyonun talimatlarını tek tek yürütebilir. Fonksiyonlar tamamlandıktan sonra işlemci tam olarak kaldığı yere döner ve bir sonraki komuttan başlayarak yürütmeye devam eder. İşlevler, kodun yeniden kullanımı için harika bir araçtır. Birçok modern programlama dili işlevleri destekler. İşlevler koleksiyonuna kitaplık denir. Kütüphaneler genellikle yazılımları paylaşma ve ticaret aracı olarak kullanılır. Bazı durumlarda, tüm program bir dizi alt program olabilir (örneğin, iş parçacıklı kod derlemesi).
Sistem Çağrısı ile İşlev Çağrısı arasındaki fark nedir?
Sistem çağrısı, sistemde yerleşik bir alt yordama yapılan bir çağrıdır, işlev çağrısı ise program içindeki bir alt yordama yapılan bir çağrıdır. İşlev çağrılarının aksine, sistem çağrıları, bir programın ayrıcalığı olmayan bir görevi gerçekleştirmesi gerektiğinde kullanılır. Sistem çağrıları, işletim sistemi çekirdeğine giriş noktalarıdır ve programa bağlı değildir (işlev çağrıları gibi). Sistem çağrılarının aksine, işlev çağrıları taşınabilirdir. Kullanıcı modu ile çekirdek modu arasında bir geçiş olması gerektiğinden, bir sistem çağrısının zaman yükü, bir işlev çağrısı için ek yükten daha fazladır. Sistem çağrıları çekirdek adres alanında yürütülürken işlev çağrıları kullanıcı adres alanında yürütülür.