Jun 15, 2025 Sistem Operasi

System Call dalam SO (Sistem Operasi)

Apa itu System Call dalam Sistem Operasi?

System Call adalah mekanisme yang menyediakan antarmuka antara suatu proses dan sistem operasi. Ini adalah metode terprogram di mana program komputer meminta layanan dari kernel SO.

System call menawarkan layanan sistem operasi kepada program pengguna melalui API (Application Programming Interface). System call merupakan satu-satunya titik masuk untuk sistem kernel.

Panggilan Sistem dalam Sistem Operasi
System Call dalam Sistem Operasi

Contoh System Call

Misalnya, jika kita perlu menulis kode program untuk membaca data dari satu berkas, menyalin data tersebut ke berkas lain. Informasi pertama yang dibutuhkan program adalah nama kedua berkas, berkas masukan dan keluaran.

Dalam sistem interaktif, jenis eksekusi program ini memerlukan beberapa panggilan sistem oleh SO.

  • Panggilan pertama adalah menulis pesan prompt di layar
  • Kedua, untuk membaca dari keyboard, karakter yang mendefinisikan kedua file.

Bagaimana System Call Bekerja?

Berikut langkah-langkah untuk System Call di OS:

Arsitektur Panggilan Sistem
Arsitektur System Call

Seperti yang Anda lihat pada diagram contoh System Call yang diberikan di atas.

Langkah 1) Proses yang dijalankan dalam mode pengguna hingga tiba saatnya System Call menghentikannya.

Langkah 2) Setelah itu, System Call dieksekusi dalam mode kernel berdasarkan prioritas.

Langkah 3) Setelah eksekusi System Call selesai, kontrol kembali ke mode pengguna.

Langkah 4) Eksekusi proses pengguna dilanjutkan dalam mode Kernel .

Mengapa Anda memerlukan System Call di OS?

Berikut ini adalah situasi yang memerlukan panggilan sistem di OS:

  • Membaca dan menulis dari berkas memerlukan System Call.
  • Jika sistem berkas ingin membuat atau menghapus berkas, System Call diperlukan.
  • System Call digunakan untuk pembuatan dan pengelolaan proses baru.
  • Koneksi jaringan memerlukan System Call untuk mengirim dan menerima paket.
  • Akses ke perangkat keras seperti pemindai, printer, memerlukan System Call.

Jenis-jenis System Call

Berikut adalah lima jenis System Call di OS:

  • Kontrol Proses
  • Manajemen Berkas
  • Manajemen Perangkat
  • Pemeliharaan Informasi
  • Komunikasi
Jenis-jenis Panggilan Sistem
Jenis-jenis panggilan sistem dalam OS

Kontrol Proses

Sistem ini memanggil tugas pembuatan proses, penghentian proses, dan lain-lain.

Fungsi:

  • Akhiri dan Batalkan
  • Muat dan Jalankan
  • Buat Proses dan Hentikan Proses
  • Wait and Signal Event
  • Alokasikan dan bebaskan memori

Manajemen Berkas

Panggilan sistem manajemen berkas menangani pekerjaan manipulasi berkas seperti membuat berkas, membaca, dan menulis, dll.

Fungsi:

  • Buat file
  • Hapus berkas
  • Buka dan tutup file
  • Membaca, menulis, dan mengubah posisi
  • Get and set atribut file

Manajemen Perangkat

Manajemen perangkat melakukan pekerjaan manipulasi perangkat seperti membaca dari buffer perangkat, menulis ke buffer perangkat, dan lain-lain.

Fungsi:

  • Meminta dan melepaskan perangkat
  • Pasang/lepaskan perangkat secara logis
  • Get and set atribut perangkat

Pemeliharaan Informasi

Menangani informasi dan transfernya antara OS dan program pengguna.

Fungsi:

  • Get and set waktu dan tanggal
  • Get atribut proses dan perangkat

Komunikasi

Jenis system call ini secara khusus digunakan untuk komunikasi antar proses.

Fungsi:

  • Membuat, menghapus koneksi komunikasi
  • Kirim, terima pesan
  • Bantu OS untuk mentransfer informasi status
  • Pasang atau lepaskan perangkat jarak jauh

Aturan untuk Melewati Parameter untuk System Call

Berikut adalah aturan umum untuk meneruskan parameter ke System Call:

  • Parameter harus didorong atau dikeluarkan dari tumpukan oleh sistem operasi.
  • Parameter dapat dilewatkan dalam register.
  • Jika jumlah parameter lebih banyak daripada jumlah register, parameter tersebut harus disimpan dalam suatu blok, dan alamat blok tersebut harus diteruskan sebagai parameter ke suatu register.

System Call Penting yang Digunakan dalam OS

wait()

Dalam beberapa sistem, suatu proses perlu menunggu proses lain untuk menyelesaikan eksekusinya. Situasi seperti ini terjadi ketika suatu proses induk membuat suatu proses anak, dan eksekusi proses induk tersebut tetap ditangguhkan hingga proses anaknya dieksekusi.

Penghentian sementara proses induk terjadi secara otomatis dengan system call wait(). Ketika proses anak mengakhiri eksekusi, kontrol akan kembali ke proses induk.

fork()

Proses menggunakan system call ini untuk membuat proses yang merupakan salinan dari dirinya sendiri. Dengan bantuan system call ini, proses induk membuat proses anak, dan eksekusi proses induk akan ditangguhkan hingga proses anak dieksekusi.

exec()

System call ini berjalan saat executable file dalam konteks proses yang sudah berjalan menggantikan executable file lama. Namun, original process identifier tetap ada karena proses baru tidak dibuat, tetapi stack, data, head, data, dll. digantikan oleh proses baru.

kill()

System Call kill() digunakan oleh OS untuk mengirim sinyal penghentian ke suatu proses yang mendesak proses tersebut untuk keluar. Akan tetapi, system call kill tidak selalu berarti menghentikan proses tersebut dan dapat memiliki berbagai arti.

exit()

system call exit() digunakan untuk menghentikan eksekusi program. Khususnya dalam lingkungan multi-threaded, panggilan ini menentukan bahwa eksekusi thread telah selesai. OS mengambil kembali sumber daya yang digunakan oleh proses setelah penggunaan system call exit().

Ringkasan

CategoriesWindowsUnix
Process controlCreateProcess()
ExitProcess()
WaitForSingleObject()
fork()
exit()
wait()
Device manipulationSetConsoleMode()
ReadConsole()
WriteConsole()
loctl()
read()
write()
File manipulationCreateFile()
ReadFile()
WriteFile()
CloseHandle()
Open()
Read()
write()
close!)
Information maintanenceGetCurrentProcessID()
SetTimer()
Sleep()
getpid()
alarm()
sleep()
CommunicationCreatePipe()
CreateFileMapping()
MapViewOfFile()
Pipe()
shm_open()
mmap()
ProtectionSetFileSecurity()
InitlializeSecurityDescriptor()
SetSecurityDescriptorGroup ()
Chmod()
Umask()
Chown()

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *