Suatu proses adalah program yang sedang dieksekusi. Komputer harus melakukan banyak tugas pada saat bersamaan. Karena itu, CPU harus mendapatkan proses dan menjalankannya. Terkadang perlu untuk menjalankan beberapa proses daripada proses lainnya. Pada saat itu, proses yang berjalan terputus, dan CPU dialokasikan untuk proses yang baru. Setelah tugas selesai, CPU dialokasikan kembali ke proses sebelumnya. Penjadwalan menurut mekanisme ini dikenal sebagai penjadwalan preemptive. Jika proses yang berjalan, tidak dapat diganggu dan itu wajib untuk menjalankan proses yang berjalan, maka itu dikenal sebagai penjadwalan nonpreemptive. Artikel ini membahas perbedaan antara penjadwalan preemptive dan nonpreemptive dalam sistem operasi. Penjadwalan preemptive adalah mekanisme penjadwalan proses melalui mana proses yang dapat terganggu oleh proses lain di tengah pelaksanaannya. Penjadwalan nonpreemptive adalah mekanisme penjadwalan proses di mana satu proses memulai eksekusi hanya setelah proses sebelumnya berakhir. Itu adalah perbedaan utama antara Penjadwalan Preemptive dan Nonpreemptive di OS.
1. Ikhtisar dan Perbedaan Utama
2. Apa Penjadwalan Preemptive di OS
3. Apa Penjadwalan Nonpreemptive di OS
4. Kesamaan Antara Penjadwalan Preemptive dan Nonpreemptive di OS
5. Perbandingan Berdampingan - Penjadwalan Preemptive vs Nonpreemptive di OS dalam Bentuk Tabular
6. Ringkasan
Penjadwalan Round Robin adalah contoh penjadwalan preemptive. Setiap proses mendapatkan sejumlah kecil waktu CPU. Biasanya 10 hingga 100 milidetik. Unit data kecil ini juga dikenal sebagai kuantum waktu. Setelah waktu ini berlalu, proses didahului dan ditambahkan ke akhir antrian siap. Asumsikan bahwa ada 4 proses sebagai P1, P2, P3 dan P4. Waktu burst CPU dalam milidetik adalah sebagai berikut. Waktu kuantum adalah 20.
Gambar 01: Contoh Penjadwalan Round Robin
Proses P1 dijalankan hingga 20. Masih ada 33ms lagi. Kemudian P2 dijalankan. Karena kuantum waktu adalah 20 dan waktu yang dibutuhkan P2 adalah 17ms, P2 akan mengeksekusi untuk 17ms. Jadi, proses P2 selesai. Kemudian kesempatan diberikan kepada P3. Ini akan dieksekusi selama 20 ms. Sisanya 48ms. Kemudian P4 akan dieksekusi selama 20 ms. Ini memiliki 4ms untuk menyelesaikan proses total. Sekali lagi, P1 akan dieksekusi selama 20 ms. Ia memiliki 13ms lagi untuk menyelesaikan menyelesaikan proses. Perubahan diberikan ke P3. Ini akan dieksekusi selama 20 ms, dan ia memiliki 28 ms untuk diselesaikan sepenuhnya. P4 dijalankan. Ini hanya memiliki 4 ms. Oleh karena itu, P4 menyelesaikan eksekusi. P2 dan P4 sudah selesai. Proses yang tersisa adalah P1 dan P3. Kesempatan diberikan kepada P3. Selesai 13ms, jadi selesai. Sekarang satu-satunya proses yang tersisa adalah P3. Ini memiliki 28ms untuk diselesaikan. Jadi P3 akan berjalan selama 20 ms. Sisanya 8ms. Semua proses lainnya telah selesai dieksekusi. Oleh karena itu, sekali lagi sisa 8ms dari P3 akan dieksekusi. Demikian juga, setiap proses mendapat kesempatan untuk dieksekusi.
Penjadwalan First Come First Served (FCFS) dapat diambil sebagai contoh penjadwalan nonpreemptive. Proses yang meminta pertama dialokasikan ke CPU terlebih dahulu. Penjadwalan ini mudah dikelola oleh antrian First In First Out (FIFO). Jika ada proses datang dalam urutan sebagai P1, P2 dan P3, maka kesempatan pertama diberikan kepada P1. Setelah selesai, P2 akan mengeksekusi. Ketika P2 selesai, P3 akan dieksekusi. Asumsikan bahwa ada 3 proses sebagai P1, P2 dan P3 dengan waktu burst CPU dalam milidetik sebagai berikut.
Gambar 02: Contoh Penjadwalan FCFS
Menurut hal di atas, P1 akan dieksekusi. Setelah selesai, proses P2 dieksekusi selama 3ms. Sekarang proses yang tersisa adalah P3. Maka itu akan mengeksekusi. Waktu tunggu untuk P1 adalah nol. Proses P2 harus menunggu 24 ms, dan proses P3 harus menunggu 27 ms. Jika proses tiba dalam urutan P2, P3 dan P1 maka P2 akan selesai terlebih dahulu. P3 berikutnya akan selesai, dan akhirnya, P1 akan selesai.
Penjadwalan Preemptive vs Nonpreemtive di OS | |
Penjadwalan preemptive adalah mekanisme penjadwalan proses melalui mana proses dapat terganggu oleh proses lain di tengah pelaksanaannya. | Penjadwalan nonpreemptive adalah mekanisme penjadwalan proses di mana satu proses memulai eksekusi hanya setelah proses sebelumnya berakhir. |
Gangguan proses | |
Dalam penjadwalan preemptive, proses dapat terganggu. | Dalam penjadwalan nonpreemptive, proses dapat terganggu. |
Pemanfaatan CPU | |
Dalam penjadwalan preemptive, pemanfaatan CPU lebih tinggi daripada penjadwalan nonpreemptive. | Dalam penjadwalan nonpreemptive, utilisasi CPU minimal dibandingkan dengan penjadwalan preemptive. |
Fleksibilitas | |
Penjadwalan preemptive fleksibel. | Penjadwalan nonpreemptive tidak fleksibel. |
Ada beberapa proses yang berjalan di komputer. Ketika setiap proses dijalankan, CPU dialokasikan untuk proses tertentu. Kadang-kadang, perlu untuk menghentikan pelaksanaan proses saat ini dan untuk memberikan prioritas pada proses lain. Mekanisme penjadwalan proses dapat bersifat preemptive atau nonpreemptive. Penjadwalan preemptive adalah mekanisme penjadwalan proses di mana proses dapat terganggu oleh proses lain di tengah pelaksanaannya. Penjadwalan nonpreemptive adalah mekanisme penjadwalan proses meskipun yang satu proses memulai eksekusi hanya setelah proses sebelumnya berakhir. Ini adalah perbedaan antara Penjadwalan Preemptive dan Nonpreemptive di OS.
Anda dapat mengunduh versi PDF dari artikel ini dan menggunakannya untuk tujuan offline sesuai catatan kutipan. Silakan unduh versi PDF di sini: Perbedaan Antara Penjadwalan Preemptive dan Nonpreemptive di OS
1. Apa penjadwalan pre-Emptive dan non-Preemptive ?. Tersedia disini
2.Point, Tutorial. "Algoritma Penjadwalan Sistem Operasi.", Tutorials Point. 8 Januari 2018. Tersedia di sini
3. "Apa istilah pre-Emptive dan non-Preemptive dalam konteks OS?" GeeksforGeeks T&J. Tersedia disini