Lompat ke konten Lompat ke sidebar Lompat ke footer

Algoritma Penjadwalan Non Preemptive Beserta Contoh

Algoritma Penjadwalan Non Preemptive Beserta Contoh - Multitasking non preemptive adalah gaya multitasking komputer di mana sistem operasi tidak pernah memulai context switch dari proses yang sedang berjalan ke proses lain. Sistem seperti ini dapat menggunakan penjadwalan statis, paling sering sistem periodik, atau menunjukkan beberapa bentuk koperasi multitasking, dalam hal tugas-tugas komputasi dapat self-interupsi dan secara sukarela memberikan kontrol untuk tugas-tugas lain. Ketika non preemptive digunakan, sebuah proses yang menerima sumber daya tersebut tidak dapat terganggu sampai selesai.

Koperasi multitasking adalah jenis multitasking di mana proses yang saat mengendalikan CPU harus menawarkan kontrol untuk proses lainnya. Hal ini disebut "koperasi" karena semua program harus bekerja sama untuk itu untuk bekerja. Sebaliknya, preemptive multitasking mengganggu aplikasi dan kontrol untuk proses lain di luar kontrol sebuah aplikasi.

Dalam komputasi, context switch adalah proses penyimpanan dan memulihkan keadaan (konteks) dari suatu proses atau Thread sehingga eksekusi yang dapat dilanjutkan dari titik yang sama di lain waktu. Hal ini memungkinkan beberapa proses untuk berbagi CPU tunggal dan merupakan fitur penting dari sebuah sistem operasi multitasking. Apa yang merupakan konteks ditentukan oleh prosesor dan sistem operasi.

Algoritma Penjadwalan Non Preemptive Beserta Contoh_

Penjadwalan Non Preemptive ialah penjadwalan dimana sistem operasi tidak melakukan context switch dari proses yang sedang berjalan ke proses lain (proses yang berjalan tidak bisa di- interupt).

CPU menjaga proses sampai proses pindah ke waiting state ataupun dihentikan (proses tidak diganggu). Metode ini digunakan Microsoft Windows 3.1 dan Macintosh. Ini adalah metode yang digunakan untuk platforms hardware tertentu, karena tidak memerlukan hardware khusus.

Algoritma-algoritma penjadwalan yang menerapkan strategi nonpreemptive diantarnya:
  • FIFO (First in, First Out) atau FCFS (First Come, First Serve)
  • SJF (Short Job First)
  • HRN (Highest Ration Next)

Penjadwalan FIFO

Penjadwalan FIFO merupakan:
  • Penjadwalan nonpreemptive
  • Penjadwalan tidak berprioritas

Ketentuan
Penjadwalan FIFO adalah penjadwalan dengan ketentuan-ketentuan paling sederhana, yaitu:
  • Proses-proses diberi jatah waktu pemroses diurutkan berdasarkan waktu kedatangan proses-proses itu ke system.
  • Begitu proses mendapatkan jatah waktu pemrosesan, proses dijalankan sampai selesai.

Penjadwalan ini dikatakan adil dalam arti resmi (dalam semantics/arti antrian, yaitu proses yang datang duluan, dilayani duluan juga), tetapi dinyatakan tidak adil karena proses-proses yang perlu waktu lama membuat proses-proses pendek menunggu. Proses-proses tidak penting dapat membuat proses-proses penting menjadi menunggu.

FIFO jarang digunakan secara Mandiri tapi dikombinasikan dengan skema lain, misalnya:
  • Keputusan berdasakan prioritas proses, sedangkan untuk proses-proses yang berprioritas sama diputuskan berdasarkan FIFO.

Berdasarkan kriteria penilaian penjadwalan
  • Fairness
    Penjadwalan FIFO adil dalam arti resmi (dalam semantics/arti antrian, yaitu proses yang datang duluan, dilayani duluan juga)
  • Efisiensi
    Penjadwalan FIFO sangat efisiensi dalam penggunaan pemroses.
  • Waktu Tanggap (Response Time)
    Penjadwalan sangat tidak memuaskan karena proses dapat menunggu lama. Tidak cocok untuk system interaktif.
  • Turn Around Time
    Penjadwalan FIFO tidak bagus.
  • Throughput
    Penjadwalan FIFO tidak bagus.

Penggunaan
  • Cocok untuk sistem batch yang sangat jarang melakukan interaksi dengan pemakai secara langsung. Contoh aplikasi analisis numeric, pembuatan tabel.
  • Penjadwalan ini sama sekali tidak berguna untuk sistem interaktif karena tidak memberi waktu tanggap yang bagus.
  • Tidak dapat digunakan untuk sistem waktu nyata.

Penjadwalan yang terpendek yang lebih dahulu (SJF)

Penjadwalan SJF ini merupakan
  • Penjadwalan non preemptive (run- to-completion).
  • Penjadwalan dapat dikatakan sebagai berprioritas. Di SJF, prioritas diasosiasikan dengan masing-masing proses dan pemroses dialokasikan ke proses dengan prioritas tertinggi. Proses-proses dengan prioritas yang sama akan dijadwalkan secara FCFS (FIFO).


Penjadwalan ini mengsumsikan waktu jalan proses (sampai selesai) atau waktu lamanya proses diketahui sebelumnya. Mekanisme penjadwalan SJF adalah lebih dulu menjadwalkan proses dengan waktu jalan terpendek sampai selesai. Setelah proses itu selesai, maka proses dengan waktu jalan terpendek berikutnya dijadwalkan. Demikian seterusnya.

Keunggulan

Penjadwalan SJF mempunyai efisiensi tinggi dan turn around time rendah.

Walaupun mempunyai turn around yang bagus, SJF mempunyai masalah, yaitu:
  • Tidak mengetahui ukuran proses saat proses masuk
  • Proses yang tidak datang bersamaan sehingga penetapannya harus dinamis

Untuik mengetahui ukuran lama proses agar dapat ditetapkan yang terpendek biasanya dilakukan dengan cara pendekatan. Pendekatan yang biasa dilakukan adalah dengan membuat estimasi berdasarkan perilaku historis sistem.

Penggunaan

Amat jarang digunakan, merupakan kajian teoritis untuk pembandingan dalam pembandingan turn around time.

Nikita Dini
Nikita Dini Blogger, Internet Marketer, Web Designer

Posting Komentar untuk "Algoritma Penjadwalan Non Preemptive Beserta Contoh"