31
PENJADWALAN PROSES

Modul 5 - Penjadwalan Proses[1]

Embed Size (px)

Citation preview

Page 1: Modul 5 - Penjadwalan Proses[1]

PENJADWALAN PROSES

Page 2: Modul 5 - Penjadwalan Proses[1]

Definisi

Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer.

Penjadwalan bertugas memutuskan proses yang harus berjalan dan kapan atau berapa lama proses itu berjalan.

Page 3: Modul 5 - Penjadwalan Proses[1]

Kriteria Penjadwalan adil

Proses-proses mendapat jatah waktu pemroses

tak ada proses yang tak kebagian layanan pemroses efisiensi

Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses.

Menjaga agar pemroses tetap dalam keadaan sibuk → efisiensi mencapai maksimum.

Page 4: Modul 5 - Penjadwalan Proses[1]

Kriteria Penjadwalan

Waktu tanggap (response time)

Waktu tanggap pada sistem interaktif waktu yang dihabiskan dari saat karakter terakhir dari

perintah dimasukkan sampai hasil pertama muncul di layar (terminal) → terminal response time

Waktu tanggap pada sistem waktu nyata (real-time) waktu dari saat kejadian (internal atau eksternal) sampai

instruksi pertama rutin layanan yang dimaksud dieksekusi → event response time

Page 5: Modul 5 - Penjadwalan Proses[1]

Kriteria Penjadwalan

Turn arround time

waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan sistem.

waktu yang dihabiskan di dalam sistem.

turn arround time = waktu eksekusi + waktu menunggu

Sasaran penjadwalan adalah meminimalkan turn arround time.

Page 6: Modul 5 - Penjadwalan Proses[1]

Kriteria Penjadwalan

Throughput jumlah kerja atau jumlah job yang dapat

diselesaikan dalam satu unit waktu. Sasaran penjadwalan adalah memaksimalkan

jumlah job yang diproses per satu interval waktu. Lebih tinggi angka throughput, lebih banyak kerja

yang dilakukan sistem.

Page 7: Modul 5 - Penjadwalan Proses[1]

Tipe Penjadwalan

Penjadwal jangka pendek (short-term scheduler) menjadwalkan alokasi pemroses diantara

proses-proses ready di memori utama. Penjadwal jangka menengah

Aktifitas pemindahan proses yang tertunda dari memori utama ke memori sekunder (swapping) → tersedia ruang untuk proses lain

Page 8: Modul 5 - Penjadwalan Proses[1]

Tipe Penjadwalan Penjadwal jangka panjang

bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi.

Batch biasanya adalah proses-proses dengan penggunaan sumber daya yang intensif (yaitu waktu pemroses, memori, perangkat masukan/keluaran)

program-program ini berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama periode aktivitas job-job interaktif rendah.

Sasaran utama penjadwal jangka panjang adalah memberi keseimbangan job-job campuran.

Page 9: Modul 5 - Penjadwalan Proses[1]

Strategi Penjadwalan

Penjadwalan nonpreemptive Proses yang sedang berjalan tidak dapat disela. Sekali proses berada di status running (sedang

berjalan), maka proses tersebut akan dieksekusi terus sampai proses berhenti karena selesai atau diblok untuk menunggu I/O atau untuk meminta beberapa layanan dari sistem operasi; dan CPU tidak dapat diambil alih oleh proses yang lain.

Page 10: Modul 5 - Penjadwalan Proses[1]

Strategi Penjadwalan

Penjadwalan preemptive Proses yang sedang berjalan dapat diinterupsi dan

dipindah ke status ready oleh sistem operasi sehingga CPU dapat diambil alih proses yang lain.

Page 11: Modul 5 - Penjadwalan Proses[1]

Algoritma Penjadwalan

FIFO (First-in, First-out) atau FCFS (First-come, First-serve)

SJF (Shortest Job First) RR (Round Robin) PS (Priority Schedulling)

Page 12: Modul 5 - Penjadwalan Proses[1]

Algoritma Penjadwalan

Klasifikasi berdasarkan prioritas :

Algoritma penjadwalan tanpa prioritas Algoritma penjadwalan berprioritas :

algoritma penjadwalan berprioritas statik algoritma penjadwalan berprioritas dinamis

Page 13: Modul 5 - Penjadwalan Proses[1]

Penjadwalan FIFO

Penjadwalan nonpreemptive dan tidak berprioritas Proses-proses diberi jatah waktu pemroses

berdasarkan waktu kedatangan Proses yang datang terlebih dahulu, juga dilayani

terlebih dahulu Saat proses mendapat jatah waktu pemroses, proses

dijalankan sampai selesai Job lama membuat job pendek menunggu Job tidak penting membuat job penting menunggu

Page 14: Modul 5 - Penjadwalan Proses[1]

Penjadwalan FIFO

Contoh : ada 3 proses P1, P2, P3 dengan lama waktu kerja CPU (CPU Burst-time) masing-masing sbb :

Page 15: Modul 5 - Penjadwalan Proses[1]

Penjadwalan FIFO

Jika proses datang dengan urutan P1, P2, P3 dan dilayani dengan algoritma FIFO maka dapat digambarkan Gantt Chart-nya :

Waktu tunggu P1 : 0 milidetik, P2 : 24, P3: 27 Rata-rata waktu tunggu (Average Waiting Time /

AWT) : (0+24+27)/3 = 17 milidetik

Page 16: Modul 5 - Penjadwalan Proses[1]

Penjadwalan FIFO

Jika waktu kedatangan proses adalah P3, P2, P1 maka Gantt Chartnya adalah :

AWT = (0+3+6)/3 = 3 milidetik

Page 17: Modul 5 - Penjadwalan Proses[1]

Penjadwalan FIFO

Menentukan Turn Around Time

Turn around time (waktu penyelesaian) P1 adalah 24, P2 = 27, P3 = 30, maka rata-rata turn around time = (24+27+30)/3 = 27 milidetik

Page 18: Modul 5 - Penjadwalan Proses[1]

Penjadwalan SJF

Asumsi : waktu jalan proses (sampai selesai) sudah diketahui sebelumnya

Menjadwalkan proses dengan waktu terpendek lebih dulu sampai selesai

Page 19: Modul 5 - Penjadwalan Proses[1]

Penjadwalan SJF Contoh :

Gantt Chart :

Nilai waktu tunggu : P1 = 3 milidetik, P2 = 16 milidetik, P3 = 9 milidetik, P4 = 0 milidetik

AWT : (3+16+9+0) / 4 = 7 milidetik

Page 20: Modul 5 - Penjadwalan Proses[1]

Penjadwalan SJF

Contoh menentukan Turn Around Time :

Page 21: Modul 5 - Penjadwalan Proses[1]

Penjadwalan SJF Contoh menentukan AWT untuk SJF nonpreemptive:

A = 0 milidetik

B = waktu mulai dilayani – waktu saat tiba = 8-2 = 6 milidetik

C = waktu mulai dilayani – waktu saat tiba = 7-4 = 3 milidetik

D = waktu mulai dilayani – waktu saat tiba = 12-5 = 7 milidetik

AWT : (0+6+3+7) / 4 = 4 milidetik

Page 22: Modul 5 - Penjadwalan Proses[1]

Penjadwalan SJF

Contoh menentukan AWT untuk SJF preemptive :

A = 0 + (11-2) = 9 milidetik B = 0 + (5-4) = 1 milidetik C = 0 milidetik D = 7-5 = 2 milidetik AWT : (9+1+0+2) / 4 = 3 milidetik.

Page 23: Modul 5 - Penjadwalan Proses[1]

Penjadwalan SJF

Menentukan Turn Around Time

Page 24: Modul 5 - Penjadwalan Proses[1]

Penjadwalan Round Robin (RR) Penjadwalan preemptive dan tanpa prioritas Semua proses dianggap penting dan diberi sejumlah waktu

pemroses yang disebut kwanta (quantum) atau time-slice dimana proses itu berjalan.

Ketentuan algoritma RR : Jika quantum habis dan proses belum selesai maka proses

menjadi runnable dan pemroses dialihkan ke proses lain jika quantum belum habis dan proses menunggu suatu

kejadian (selesainya I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.

jika quantum belum habis tapi proses telah selesai maka proses diakhiri dan pemroses dialihkan ke proses lain.

Page 25: Modul 5 - Penjadwalan Proses[1]

Penjadwalan Round Robin (RR)

Contoh : kumpulan proses datang pada waktu 0

Quantum 4 milidetik P1 mendapat 4 milidetik pertama 20 milidetik berikutnya akan disela P2 dan P3

Page 26: Modul 5 - Penjadwalan Proses[1]

Penjadwalan Round Robin (RR)

Gambar Gantt Chart

Waktu tunggu tiap proses

AWT : (6+4+7)/3 = 5,66 milidetik

Page 27: Modul 5 - Penjadwalan Proses[1]

Penjadwalan Round Robin (RR)

Contoh : Menentukan Turn Around Time untuk quantum waktu (q) = 3

Page 28: Modul 5 - Penjadwalan Proses[1]

Penjadwalan PS

Tiap proses dilengkapi dengan prioritas. CPU dialokasikan untuk proses yang memiliki

prioritas paling tinggi. Jika beberapa proses memiliki prioritas yang sama,

maka akan digunakan algoritma FIFO.

Page 29: Modul 5 - Penjadwalan Proses[1]

Penjadwalan PS

Contoh : ada 5 proses P1,P2,P3,P4,P5

Gantt Chart

Page 30: Modul 5 - Penjadwalan Proses[1]

Penjadwalan PS

AWT = (6+0+16+18+1) = 8,2 ms

Page 31: Modul 5 - Penjadwalan Proses[1]

Penjadwalan PS Prioritas biasanya menyangkut masalah : waktu, memori

yang dibutuhkan, banyaknya file yang boleh dibuka, dan perbandingan antara rata-rata I/O burst dengan rata-rata CPU burst.

Priority schedulling bersifat preemptive atau nonpreemptive. Jika ada proses P1 yang datang pada saat P0 sedang berjalan, maka akan dilihat prioritas P1.

Seandainya prioritas P1 lebih besar dibanding dengan prioritas P0 maka pada non preemptive, algoritma tetap akan menyelesaikan P0 sampai habis CPU burst-nya, dan meletakkan P1 pada posisi head queue. Sedangkan pada preemptive, P0 akan dihentikan dulu, dan CPU ganti dialokasikan untuk P1.