Pertemuan 8 KONSEP PENJADWALAN By: Asriadi
Pendahuluan Kita mengenal yang namanya multiprograming, yang bertujuan untuk memaksimalkan penggunaan CPU dengan cara mengatur alokasi waktu yang digunakan oleh CPU, sehingga proses berjalan sepanjang waktu dan memperkecil waktu idle. Oleh karena itu perlu adanya penjadwalan proses-proses yang ada pada sistem. Untuk sistem yang hanya mempunyai prosesor tunggal (uniprosesor), hanya ada satu proses yang dapat berjalan setiap waktunya. Jika ada proses lebih dari satu maka proses yang lain harus menunggu sampai CPU bebas dan siap untuk dijadwalkan kembali.
Penjadwlalan Antrian Gambar: Device Queue
Ketika sebuah proses memasuki sistem, proses itu diletakkan di dalam job queue. Pada antrian ini terdapat seluruh proses yang berada dalam sistem. Sedangkan proses yang berada pada memori utama, siap dan menunggu untuk mengeksekusi disimpan dalam sebuah daftar yang bernama ready queue. Antrian ini biasanya disimpan sebagai linked list. Header dari ready queue berisi pointer untuk PCB pertama dan PCB terakhir pada list. Setiap PCB memiliki pointer field yang menunjuk kepada PCB untuk proses selanjutnya dalam ready queue.
Gambar : Diagram Antrian
Penjadwalan proses dapat direpresentasikan secara umum dalam bentuk diagram antrian, yang ditunjukkan oleh Gambar 13.2, “Diagram Antrian”. Setiap kotak segi empat menunjukkan sebuah antrian. Dua antrian diantaranya menunjukkan ready queue dan seperangkat device queue. Lingkaran menunjukkan sumber daya yang melayani antrian dan tanda panah mengindikasikan alur dari proses-proses yang ada dalam sistem.
Umumnya proses-proses yang ada pada sistem akan ada dalam beberapa tahap antrian yaitu job queue, ready queue, dan device queue. Job queue, menyimpan seluruh proses yang berada pada sistem. Ketika sebuah proses memasuki sebuah sistem, proses tersebut akan diletakkan di dalam job queue.
Proses-proses yang ada menunggu di dalam ready queue sampai dia dipilih untuk eksekusi, atau di-dispatched. Begitu proses tersebut dipilih lalu dialokasikan ke CPU dan sedang berjalan, satu dari beberapa kemungkinan di bawah ini dapat terjadi. Proses tersebut mengeluarkan permintaan M/K, lalu ditempatakan dalam sebuah M/K device queue. Proses tersebut dapat membuat sub-proses baru dan menunggu untuk di-terminasi. Proses tersebut dikeluarkan (di-remove) secara paksa dari CPU, sebagai hasil dari suatu interrupt dan diletakkan kembali ke dalam ready queue.
Penjadwalan Gambar: Medium-term Scheduler
Terdapat dua jenis scheduler pada CPU yang umum dipakai, yaitu: Long-Term Scheduler atau Job Scheduler yang bertugas memilih proses dari tempat ini dan mengisinya ke dalam memori. Short-Term Scheduler atau CPU scheduler yang bertugas memilih proses yang sudah siap untuk melakukan eksekusi,dan dialokasikan di CPU untuk proses tersebut.
Secara umum, proses pada Long-Term Scheduler dapat dibagi menjadi dua, yaitu: M/K Bound yaitu proses yang lebih banyak mengerjakan permintaan M/K dibandinkan komputasi. CPU Bound yaitu proses yang lebih banyak mengerjakan komputasi dibandingkan permintaan M/K.
Context Switch Mengganti CPU ke proses lain memerlukan penyimpanan keadaan dari proses lama dan mengambil keadaan dari proses yang baru. Hal ini dikenal dengan sebutan context switch. Context switch sebuah proses direpresentasikan dalam PCB dari suatu proses; termasuk nilai dari CPU register, status proses dan informasi manajemen memori.
Gambar : Context Switch