Layanan langsung sistem operasi ke
pemrograman, disebut dengan system call atau API (application programming
interface). System call adalah tata cara pemanggilan di program aplikasi untuk
memperoleh layanan yang disediakan oleh sistem operasi. System call berupa
rutin sistem operasi untuk keperluan tertentu yang spesifik.
System Call untuk manajemen proses
diperlukan untuk mengatur proses-proses yang sedang berjalan. Kita dapat
melihat penggunaan system calls untuk manajemen proses pada Sistem Operasi Unix.
Contoh yang paling baik untuk melihat bagaimana system call bekerja untuk
manajemen proses adalah Fork.
Definisi Fork adalah satu satunya
cara untuk membuat sebuah proses baru pada sistem Unix. Fork membuat duplikasi
yang mirip dengan proses aslinya, termasuk file descriptor, register, dan
lainnya. Setelah perintah Fork, child akan mengeksekusi kode yang berbeda
dengan parentnya.
Bayangkan yang terjadi pada shell.
Shell akan membaca command dari terminal, melakukan fork pada child, menunggu
child untuk mengeksekusi command tersebut, dan membaca command lainnya ketika
child terminate. Untuk menunggu child selesai, parent akan mengeksekusi system
call waitpid, yang hanya akan menunggu sampai child selesai. Proses child harus
mengeksekusi command yang dimasukkan oleh user (pada kasus shell). Proses child
melakukannya dengan menggunakan system call exec.Dari ilustrasi tersebut kita
dapat mengetahui bagaimana system call dipakai untuk manajemen proses.
Keuntungan dan kerugian menggunakan
system call sama antarmuka untuk memanipulasi baik file dan perangkat adalah
Setiap perangkat dapat diakses seolah-olah itu adalah file dalam file sistem.
Karena sebagian besar penawaran kernel dengan perangkat melalui antarmuka file,
relatif mudah untuk menambahkan device driver baru dengan menerapkan kode
perangkat keras khusus untuk mendukung antarmuka file abstrak.
Oleh karena itu, ini manfaat
pengembangan baik kode program pengguna, yang dapat bewritten untuk mengakses
perangkat dan file dalam samemanner, dan perangkat sopir kode, yang dapat
ditulis untuk mendukung API yang didefinisikan dengan baik. Kerugian itu dengan
menggunakan antarmuka yang sama adalah bahwa mungkin akan sulit untuk menangkap
fungsi peralatan tertentu dalam konteks akses file API, sehingga baik mengakibatkan
hilangnya fungsi atau kerugian kinerja. Beberapa ini dapat diatasi dengan
penggunaan operasi ioctl yang menyediakan antarmuka tujuan umum untuk proses
untuk memanggil operasi pada perangkat.
Ada lima jenis system calls utama,
yaitu:
a. Process control merupakan
system calls yang mengendalikan proses-proses yang berjalan.
- load
- execute
- create process
- terminate process
- get/set process attributes
- wait for time, wait event, signal event
- allocate, free memory
b. File manipulation adalah
kumpulan system calls yang bertugas untuk melakukan manipulasi file seperti
pembacaan, penulisan, penghapusan dan pengubahan.
- create file, delete file
- open, close
- read, write, reposition
- get/set file attributes
c. Device manipulation adalah
system calls yang mengatur penggunaan peralatan-peralatan yang terhubung pada
mesin tersebut.
- request device, release device
- read, write, reposition
- get/set device attributes
- logically attach or detach devices
d. Information maintenance.
System calls yang menghubungkan user dengan sistem operasi dalam hal berbagi
informasi.
- get/set time or date
- get/set system data
- get/set process, file, or device attributes
e. Communications. Ada
dua model komunikasi yaitu pertukaran informasi dilakukan melalui fasilitas
komunikasi antar proses yang disediakan oleh sistem operasi (Message-Passing)
dan pertukaran dengan menggunakan memori (shared-memory).
- create, delete communication connection
- send, receive messages
- transfer status information
- attach or detach remote devices
Struktur sederhana :
Tiga cara memberikan parameter dari
program ke sistem operasi:
• Melalui
registers (sumber daya di CPU).
• Menyimpan parameter pada data struktur (table) di memori, dan alamat table tsb ditunjuk oleh pointer yang disimpan di register.
• Push (store) melalui “stack” pada memori dan OS mengambilnya melalui pop pada stack tsb
• Menyimpan parameter pada data struktur (table) di memori, dan alamat table tsb ditunjuk oleh pointer yang disimpan di register.
• Push (store) melalui “stack” pada memori dan OS mengambilnya melalui pop pada stack tsb