Sistem çağırışı
Sistem çağırışı (ing. system call) və ya daha qısa şəkildə syscall — kompüter proqramının icra olunduğu əməliyyat sistemindən xidmət tələb etdiyi proqrammatik metod. Bura cihazla bağlı xidmətlər (məsələn, sərt disk drayverinə daxil olmaq və ya cihazın kamerasına daxil olmaq), yeni proseslərin yaradılması və icrası, prosesin planlaşdırılması kimi inteqral nüvə xidmətləri ilə kommunikasiya daxil ola bilər. Sistem çağırışları proses və əməliyyat sistemi arasında mühüm interfeys təmin edir.
Əksər sistemlərdə sistem çağırışları yalnız istifadəçi məkanındakı proseslərdən edilə bilər, bəzi sistemlərdə isə, məsələn, OS/360-da imtiyazlı sistem kodu da sistem çağırışları edir.[1]
İmtiyazlar
[redaktə | mənbəni redaktə et]Bəzi gömülü sistemlər istisna olmaqla, əksər müasir prosessorların arxitekturası təhlükəsizlik modelini ehtiva edir. Məsələn, mühafizə halqaları proqram təminatının icra oluna biləcəyi çoxsaylı imtiyaz səviyyələrini müəyyən edir. Proqram adətən öz ünvan fəzası ilə məhdudlaşır. Beləcə o digər işləyən proqramlara və ya əməliyyat sisteminin özünə daxil ola və ya dəyişdirə bilmir və adətən cihaz təminatına (məsələn kadr buferi və şəbəkə cihazları) birbaşa manipulyasiyanın qarşısı alınır.
Bununla belə, bir çox proqramlar bu komponentlərə giriş tələb edir, ona görə də sistem çağırışları bu cür əməliyyatlar üçün dəqiq müəyyən edilmiş, təhlükəsiz tətbiqetmələri təmin etmək üçün əməliyyat sistemi tərəfindən əlçatan edilir. Əməliyyat sistemi ən yüksək imtiyaz səviyyəsində işləyir və tətbiqlərə sistem çağırışları vasitəsilə xidmətlər tələb etməyə imkan verir ki, bu da tez-tez kəsilmələrlə başlanır. Kəsilmə avtomatik olaraq CPU-nu bəzi yüksək imtiyazlar səviyyəsinə qoyur və sonra nəzarəti nüvəyə ötürür, bu da çağırışı edən proqrama tələb olunan xidmətin verilməsini müəyyən edir. Əgər xidmət verilirsə, nüvə həmin proqramın birbaşa nəzarəti olmayan xüsusi təlimatlar toplusunu yerinə yetirir, imtiyaz səviyyəsini çağıran proqramın imtiyaz səviyyəsinə qaytarır və sonra nəzarəti çağıran proqrama qaytarır.
Həmçinin bax
[redaktə | mənbəni redaktə et]İstinadlar
[redaktə | mənbəni redaktə et]- ↑ IBM. Writing SVC Routines // IBM System/360 Operating System System Programmer's Guide (PDF). Third Edition. March 1967. 32–36. C28-6550-2. 2020-04-02 tarixində arxivləşdirilib (PDF). İstifadə tarixi: 2023-11-08.
Xarici keçidlər
[redaktə | mənbəni redaktə et]- A list of modern Unix-like system calls
- Interactive Linux kernel map with main API functions and structures, PDF version
- Linux system calls – system calls for Linux kernel 2.2, with IA-32 calling conventions
- How System Calls Work on Linux/i86 (1996, based on the 1993 0.99.2 kernel)
- Sysenter Based System Call Mechanism in Linux 2.6 (2006)
- Kernel command using Linux system calls, IBM developerWorks
- Choudhary, Amit; HOWTO for Implementing a System Call on Linux 2.6
- Jorrit N. Herder, Herbert Bos, Ben Gras, Philip Homburg, and Andrew S. Tanenbaum, Modular system programming on Minix 3, ;login: 31, no. 2 (April 2006); 19–28, accessed 5 March 2018
- A simple open Unix Shell in C language – examples on System Calls under Unix
- Inside the Native API – Windows NT Native API, including system calls
- Gulbrandsen, John; System Call Optimization with the SYSENTER Instruction, CodeGuru.com, 8 October 2004