algoritma penjadwalan cpu...tugas4 sjf non preemptive •perhatikan tabel berikut : •buatlah gant...

49
Pertemuan Ke - 13 Algoritma Penjadwalan CPU

Upload: others

Post on 29-May-2020

69 views

Category:

Documents


0 download

TRANSCRIPT

Pertemuan Ke - 13Algoritma Penjadwalan CPU

Algoritma Penjadwalan CPU

• First-come, first-served (FCFS)• Shortest-Job-First (SJF)• Priority• Guaranteed • Round-Robin (RR)• Multilevel Queue• Multilevel Feedback Queue• Two Level Scheduling• Policy Vs Mechanism

Multilevel Queue

1. Konsep dasar dari algoritma ini adalahmembagi beberapa proses dalam grup – grup

2. Tiap – tiap grup dikerjakan dengan algoritmapenjadwalan berbeda – beda. Pada algoritmaini ready queue dibagi menjadi beberapaqueue secara terpisah.

3. Proses – proses tersebut selalu menetappada satu queue

Multilevel Queue

4. Metode yang digunakan adalah preemptivedengan prioritas tertentu

5. Misalkan ready queue terbagi atasforeground proses dan background proses

6. Foreground proses memiliki prioritas yanglebih tinggi dibandingkan dengan backgroundproses.

7. Demikian juga waktu proses yang diberikanjuga berbeda

Multilevel Queue

8. Misalnya foreground proses menerima 80% CPU dan background proses menerima 20% CPU.

9. Ide dasar dari algoritma ini berdasarkan padasistem prioritas proses. Prinsipnya, jika setiapproses dapat dikelompokkan berdasarkanprioritasnya.

Multilevel Queue

10. Kategori proses sesuai dengan sifat proses:

a. Interaktif (response cepat)

b. Batch dll

11. Partisi “ready queue” dalam beberapa tingkat(multilevel) sesuai dengan proses:

a. Setiap queue menggunakan algoritma schedulesendiri

b. Foreground proses (interaktif, high prioritiy): RR

c. Background proses (batch, low priority): FCFS

12. Setiap queue mempunyai prioritas yang fixed.

Multilevel Queue

Multilevel Queue

1. Dari gambar tersebut terlihat bahwa akan terjadipengelompokan proses-proses berdasarkanprioritas nya.

2. Kemudian muncul ide untuk menganggapkelompok-kelompok tersebut sebagai sebuahantrian-antrian kecil yang merupakan bagian dariantrian keseluruhan proses, yang sering disebutdengan algoritma multilevel queue.

Multilevel Queue

3. Dalam hal ini, dapat dilihat bahwa seolah-olahalgoritma dengan prioritas yang dasar adalahalgoritma multilevel queue dimana setiap queueakan berjalan dengan algoritma FCFS yang memilikibanyak kelemahan.

4. Oleh karena itu, dalam prakteknya, algoritmamultilevel queue memungkinkan adanya penerapanalgoritma internal dalam masing-masing sub-antriannya yang bisa memiliki algoritma internalyang berbeda untuk meningkatkan kinerjanya.

Multilevel Queue

5. Algoritma ini pun memiliki kelemahan yang samadengan priority scheduling, yaitu sangat mungkinbahwa suatu proses pada queue dengan prioritasrendah bisa saja tidak mendapat jatah CPU.

6. Untuk mengatasi hal tersebut, salah satu caranyaadalah dengan memodifikasi algoritma ini denganadanya jatah waktu maksimal untuk tiap antrian,sehingga jika suatu antrian memakan terlalu banyakwaktu, maka prosesnya akan dihentikan dandigantikan oleh antrian dibawahnya, dan tentu sajabatas waktu untuk tiap antrian bisa saja sangatberbeda tergantung pada prioritas masing-masingantrian.

Multilevel Feedback Queue Scheduling

1. Algoritma penjadwalan Multilevel FeedbackQueue Scheduling ini hampir sama denganalgoritma penjadwalan Multilevel Queue,hanya saja suatu proses yang berada padasuatu queue dapat berpindah ke queue yanglain.

Multilevel Feedback Queue Scheduling

2. Jika suatu proses akan menggunakan CPUdalam waktu yang cukup lama, maka prosestersebut dapat berpindah ke queue denganprioritas yang lebih rendah. Sebaliknya, jikasuatu proses terlalu lama menunggu padaprioritas yang rendah, maka proses tersebutdapat pindah ke queue dengan prioritas lebihtinggi.

Multilevel Feedback Queue Scheduling

3. Contoh, jika ada 3 queue (0,1,2) seperti padagambar. Scheduler pertama kali akanmengeksekusi semua proses pada queue-0.

4. Eksekusi akan berpindah ke queue-1 hanyajika queue-0 dalam keadaan kosong.

5. Demikian juga, eksekusi akan berpindah kequeue-2 hanya jika queue-0, dan queue-1dalam keadaan kosong.

Multilevel Feedback Queue Scheduling

6. Jika suatu proses ada di queue-0 denganquantum time 8 ms, proses tersebut belumterselesaikan selama quantum time tersebut,maka proses akan berpindah ke ekor dariqueue-1.

7. Pada saat queue-0 kosong, maka eksekusiakan berpindah ke queue-1 dengan quantumtime 16 ms. Demikian seterusnya.

Multilevel Feedback Queue Scheduling

8. Parameter – parameter yang dibutuhkan olehalgoritma ini adalah sebagai berikut :a. Jumlah queueb. Algoritma penjadwalan untuk tiap – tiap queuec. Metode yang diperlukan untuk menentukan kapan

suatu proses akan di-upgrade ke queue denganprioritas lebih tinggi.

d. Metode yang diperlukan untuk menentukan kapansuatu proses akan diturunkan ke queue denganprioritas lebih rendah.

e. Metode yang diperlukan untuk menentukan letakqueue, jika ada suatu proses yang akan dilayani.

Multilevel Feedback Queue Scheduling

9. Algoritma ini merupakan penjadwalanberprioritas dinamis.

10.Penjadwalan ini bertujuan untuk mencegah(mengurangi) banyaknya swapping denganproses-proses yang sangat banyakmenggunakan pemroses (karenamenyelesaikan tugasnya memakan waktulama) diberi jatah waktu (jumlah kwanta)lebih banyak dalam satu waktu.

Multilevel Feedback Queue Scheduling

11.Penjadwalan ini juga menghendaki kelas-kelas prioritas bagi proses-proses yang ada.

12.Kelas tertinggi berjalan selama satu kwanta,kelas berikutnya berjalan selama dua kwanta,kelas berikutnya berjalan empat kwanta, danseterusnya.

13.Proses yang masuk untuk pertama kali kesistem langsung diberi kelas tertinggi.

Multilevel Feedback Queue Scheduling

14.Mekanisme ini mencegah proses yang perluberjalan lama swapping berkali-kali danmencegah proses-proses interaktif yangsingkat harus menunggu lama.

Multilevel Feedback Queue Scheduling

Contoh Multilevel FeedBack Queue Scheduling

Proses Burst Time

Queue Quantum Time(ms)

Scheduling

P1 5Q1 10 FCFSP2 5

P3 10

P4 15Q2 40 FCFSP5 5

P6 10Q3 10 FCFSP7 5

P8 5

Terdapat tiga antrian; Q1, Q2, Q3

Berdasarkan pengelompokan tersebut, maka gambarlah algoritma penjadwalan Multilevel Feedback Queue Scheduling

Contoh Multilevel FeedBack Scheduling

Two – Level Sheduling

1. Sebelumnya telah diasumsikan bahwa semuaproses yang siap di-eksekusi diletakkan padamemory utama.

2. Jika memory utamanya tidak cukup, maka adabeberapa proses yang harus ditempatkan didisk.

3. Hal ini akan menyebabkan banyak waktuterbuang hanya untuk switching. Salah satu carauntuk mengatasi hal ini adalah denganmenggunakan two – level scheduling

Two – Level Sheduling

4. Himpunan bagian dari proses – proses yangtelah siap di-eksekusi di-load ke memoryutama.

5. Scheduler hanya memilih proses – prosespada himpunan bagian ini untuk dieksekusi.

6. Secara periodis., higher – level schedulermengganti proses yang telah lama tinggal dimemory utama dengan proses – proses yangtelah cukup lama menunggu di disk.

Contoh Two Level Scheduling

7. Jika terdapat 8 proses yang siap di-eksekusi di-load ke memory utama.

8. Proses – proses tersebut adalah

a, b, c, d, e, f, g, h.

9. Maka buatlah teknik pengambilan himpunan bagian dari proses – proses tersebut dengan algoritma penjadwalan two level scheduling

Contoh Two Level Scheduling

Proses Posisi RAM Posisi Disk

a RAM

b RAM

c RAM

d RAM

e Disk

f Disk

g Disk

h Disk

Two – Level Sheduling

a, b, c, d

e, fg, h

e, f, g, h

a, b, c, d

b, c f, g

a, d, e, h

Proses – proses di memory utama

Proses – proses di disk

Himpunan Proses Eksekusi

Policy Vs Mechanism

1. Ada kalanya suatu proses akan melahirkanbeberapa proses yang lainnya

2. Proses – proses yang dilahirkan ini dibawahcontrol proses penciptanya.

3. Sebagai contoh, suatu databasemanagement system proses akan memilikibeberapa anak (children).

Policy Vs Mechanism

4. Tiap – tiap anak mungkin akan bekerja ataupermintaan yang berbeda (menjalankanfungsi – fungsi yang berbeda

5. Sayangnya tidak ada satupun algoritmapenjadwalan di atas yang memintapertimbangan dari user, semuanyadiputuskan dari scheduler. Sehingga padaakhirnya hanya scheduler-lah yangmemberikan pilihan yang terbaik.

Policy Vs Mechanism

6. Solusinya, pada policy vs mechanism disini,user diijinkan untuk memberikan kebijakan,control dan prioritas pada suatu childsedangkan mekanisme penjadwalan itusendiri diserahkan pada kernel.

Policy Vs Mechanism

7. Proses melahirkan proses lainnya (children/fork)

8. Tiap child memiliki permintaan yangberbeda (fungsi yang berbeda)

9. Semua diputuskan oleh scheduler

Policy Vs Mechanism

Solusi:

1. Policy user diijinkan memberi kebijakankontrol dan prioritas pada suatu child

2. Mechanism pelaksanaan policy,dilaksanakan oleh kernel

Kesimpulan

1. Penjadwalan berkaitan dengan permasalahanmemutuskan proses mana yang akandilaksanakan dalam suatu sistem.

2. Proses yang belum mendapat jatah alokasidari CPU akan mengantri di ready queue.

3. Algoritma penjadwalan berfungsi untukmenentukan proses manakah yang ada diready queue yang akan dieksekusi oleh CPU.

Kesimpulan

STRATEGI DASAR PENJADWALAN

• Strategi penjadwalan proses secara umumdibedakan menjadi dua kelompok besar, yaitupenjadwalan non-preemptive dan preemptive.

Kesimpulan

Non-preemptive (run-to-completion)• Pada strategi ini, begitu proses telah berjalan maka sistem

operasi maupun proses lain tidak dapat mengambil aliheksekusi prosesor.

• Pengalihan hanya dapat terjadi jika proses yang runningsudah selesai, baik secara normal maupun abnormal.

• Strategi ini membahayakan sistem dan proses lain, sebabjika proses yang sedang berjalan mengalami kegagalan,crash ataupun looping tak berhingga maka sistem operasimenjadi tidak berfungsi dan proses lain tidak mendapatkankesempatan untuk dieksekusi.

• Strategi penjadwalan non-preemptive umumnya digunakanpada sistem batch atau sekuensial.

Kesimpulan

Preemptive• Pada strategi ini, sistem operasi dan proses lain dapat mengambil

alih eksekusi prosesor tanpa harus menunggu proses yang sedangrunning menyelesaikan tugasnya.

• Penjadwalan preemptive merupakan fitur yang penting, terutamapada sistem dimana proses-proses memerlukan tanggapanprosesor secara cepat.

• Sebagai contoh adalah sistem real-time, dimana jika terjadiinterupsi dan tidak segera dilayani maka dapat berakibat fatal.

• Contoh lain adalah sistem interaktif time-sharing, dimana penggunasistem mengharapkan tanggapan yang cepat dari sistem.

• Secara umum, sistem konkuren seperti sistem operasi yangmultitasking lebih menghendaki sistem penjadwalan preemptive.

Kesimpulan

Penjadwalan Preemptive mempunyai artikemampuan sistem operasi untukmemberhentikan sementara proses yangsedang berjalan untuk memberi ruang kepadaproses yang prioritasnya lebih tinggi

Penjadwalan Preemptive mempunyaikeuntungan yaitu sistem lebih responsifdaripada sistem yang memakaipenjadwalan Non Preemptive.

Kesimpulan

• Dengan kata lain, penjadwalan Preemptive melibatkanmekanisme interupsi yang menyela proses yang sedangberjalan dan memaksa sistem untuk menentukan prosesmana yang akan dieksekusi selanjutnya.

• Penjadwalan yang biasa digunakan sistem operasi dewasaini biasanya bersifat Preemptive.

• Bahkan beberapa penjadwalan sistem operasi,contohnya Linux 2.6, mempunyaikemampuan Preemptive terhadap system call-nya( preemptible kernel). Windows 95, Windows XP, Linux,Unix, AmigaOS, MacOS X, dan Windows NT adalahbeberapa contoh sistem operasi yang menerapkanpenjadwalan Preemptive.

Ada Pertanyaan?

Tugas1 1. Perhatikan Tabel Berikut :

Proses Posisi RAM Posisi Disk

P RAM

Q RAM

R RAM

S RAM

T Disk

U Disk

V Disk

W Disk

Maka buatlah teknik pengambilan himpunan bagiandari proses – proses tersebut dengan algoritmapenjadwalan two level scheduling

Tugas22. Perhatikan Tabel Berikut :

Terdapat tiga antrian; Q1, Q2, Q3

Process Burst Time Queue Quantum Time

Scheduling

P1 4Q1 8 FCFSP2 4

P3 4

P4 2Q2 12 FCFSP5 6

P6 2

P7 6Q3 14 FCFSP8 2

P9 4

Berdasarkan pengelompokan tersebut, maka gambarlah algoritma penjadwalan Multilevel Feedback Queue Scheduling

Tugas3 FCFS

• Perhatikan Tabel Berikut :

• Buatlah Gant Chart, Tabel Waktu Tunggu danAWT untuk Algoritma Penjadwalan FCFS

Process (ms) Burst Time (ms)

P1 4

P2 3

P3 5

P4 3

P5 4

Tugas4 SJF Non Preemptive

• Perhatikan Tabel Berikut :

• Buatlah Gant Chart, Tabel Waktu Tunggu dan AWT untuk Algoritma Penjadwalan SJF Non Preemptive

Process (ms) Burst Time (ms)

P1 4

P2 3

P3 5

P4 3

P5 4

Tugas5 SJF Preemptive

• Perhatikan Tabel Berikut :

• Buatlah Gant Chart, Tabel Waktu Tunggu danAWT untuk Algoritma Penjadwalan SJF Preemptive

Process (ms) Arrival Time (ms) Burst Time (ms)

P1 0,00 4

P2 2,00 3

P3 3,00 5

P4 4,00 3

P5 5,00 4

Tugas6 Priority Non Preemptive

• Perhatikan Tabel Berikut :

• Buatlah Gant Chart, Tabel Waktu Tunggu danAWT untuk Algoritma Penjadwalan Priority Non Preemptive

Process (ms) Burst Time (ms) Priority

P1 4 2

P2 3 1

P3 5 3

P4 3 4

P5 4 3

Tugas7 Priority Preemptive

• Perhatikan Tabel Berikut :

• Buatlah Gant Chart, Tabel Waktu Tunggu danAWT untuk Algoritma Penjadwalan PriorityPreemptive

Process (ms) Arrival Time (ms) Burst Time (ms) Priority

P1 0,00 4 2

P2 2,00 3 1

P3 3,00 5 3

P4 4,00 3 4

P5 5,00 4 3

Tugas8 Round – Robin

• Perhatikan Tabel Berikut :

• Buatlah Gant Chart, Tabel Waktu Tunggu danAWT untuk Algoritma Penjadwalan Round - Robin

Process (ms) Burst Time (ms) Quantum Time (ms)

P1 4

3

P2 3

P3 5

P4 3

P5 4

Tugas9 Guaranteed Scheduling

• Perhatikan Tabel Berikut :

• Total Waktu Akses, Hak tiap user, dan tabelperbandingan CPU Aktual dan Rasio, serta urutanakses user

User CPU Time (ms) CPU Aktual

A 6 6

B 5 4

C 5 5

D 4 4

E 5 2

Tugas10

a. Tuliskan Penjadwalan Dengan Hasil Average Waiting Time Terkecil

b. Tuliskan Penjadwalan Dengan Hasil Average Waiting Time Terbesar

c. Tuliskan apa perbedaan penjadwalan yang bersifat preemptive dan non preemptive

Selesai