Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep...

42
Pertemuan Ke - 9 Penjadwalan CPU

Transcript of Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep...

Page 1: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Pertemuan Ke - 9Penjadwalan CPU

Page 2: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Penjadwalan CPU

• Konsep Dasar dan Definisi Penjadwalan CPU

• Kriteria Penjadualan

• Algoritma Penjadualan

Page 3: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Konsep Dasar Penjadwalan

• SO modern umumnya merupakan sistemmultitasking.

• Tujuan Utama: agar beberapa proses dapatberjalan secara bersamaan, hal ini untukmemaksimalkan kinerja CPU.

• Pemanfaatan CPU maksimum diperolehdengan multiprogramming

• CPU-I/O Burst Cycle-Pelaksanaan proses terdiri dari suatu siklus tunggu I/O dan eksekusi CPU

Page 4: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Konsep Dasar Penjadwalan

Proses dapat juga dibagi atas 2 macam:

a. I/O-bound process – menghabiskan waktu lebihbanyak untuk mengerjakan I/O daripada di CPU

b. CPU-bound process – jarang melakukanpermintaan I/O, menggunakan lebih banyakwaktunya di CPU

Sistem dengan kinerja yang terbaik akan memilikikombinasi proses CPU bound dan I/O bound yangseimbang.

Page 5: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Definisi Penjadwalan Proses

Definisi

• Kumpulan kebijaksanaan dan mekanismesistem operasi yang mengatur urutan danjangka waktu eksekusi proses-proses yangaktif.

Tugas

• Memilih proses, menentukan kapan sertaberapa lama proses tersebut bolehmenggunakan processor

Page 6: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Komponen Penjadwalan Proses

1. Antrian Penjadwalan (Scheduler Queue)

a. Ready queue

b. I/O queue

c. Job queue

2. Penjadwal (Scheduler)

a. Short-Term Scheduler

b. Medium-Term Scheduler

c. Long-Term Scheduler

Page 7: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Komponen Penjadwalan Proses

Penjadwal ( Scheduler )

Suatu program dengan algoritma tertentu yangmenyeleksi proses yang akan dieksekusi.

Jenis scheduler :a. Penjadwal jangka pendek (short-term

scheduler).

b. Penjadwalan jangka menengah ( medium-termscheduler )

c. Dispatcher

Page 8: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Komponen Penjadwalan Proses

Jenis scheduler :

a. Penjadwal jangka pendek (short-termscheduler) menyeleksi proses yang beradadiantrian ready.

Page 9: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Komponen Penjadwalan Proses

Jenis scheduler :b. Penjadwalan jangka menengah (Medium-term

Scheduler) Jika ruang memori utama tidak cukup menampung proses,

SO akan melakukan swapping yaitu memindahkan imageprocess ke memori sekunder seperti disk.

Umumnya yang dikorbankan adalah proses yang berstatusblocked atau menunggu event.

Jika event sudah selesai, image process harus dikembalikanke memori utama.

Medium-term scheduler bertugas menyeleksi proses yangakan diswapping (swap-out) dan yang akan dikembalikan kememori utama (swap-in).

Page 10: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Komponen Penjadwalan Proses

Jenis scheduler :

c. Dispatcher suatu program SO yang berfungsi melakukan

pengalihan eksekusi dari proses yang running keproses yang dipilih oleh “short-term scheduler”.

Bertugas memindahkan isi register prosesor kePCB proses yang dihentikan.

Dispatch latency – terdapat waktu yang terbuang(CPU idle) dimana dispatcher menghentikan satuproses dan menjalankan proses lain

Page 11: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Kriteria Penjadwalan Proses

Dalam melakukan penjadwalan proses, SOmempertimbangkan sejumlah faktor:

1. Keadilan (Fairness)

2. Efisiensi (Processor Utilization)

3. Waktu tanggapan (Response time)

4. Waiting Time

5. Turn Around Time

Page 12: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Kriteria Penjadwalan Proses

1. Keadilan (Fairness)

a. Memastikan bahwa setiap proses mendapatgiliran yang adil, tetapi tidak selalu berarti jatahwaktu yang sama.

b. Perlu dipastikan tidak terjadi proses yang tidakterlayani dalam jangka waktu yang lama.

Page 13: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Kriteria Penjadwalan Proses

2. Efisiensi (Processor Utilization)

Penggunaan waktu CPU (CPU Time) seoptimalmungkin processor terpakai terus menerus selamamasih ada antrian ready.

Page 14: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Kriteria Penjadwalan Proses

3. Waktu tanggapan (Response time)

– Mempercepat (secepat dan sependek mungkin)waktu tanggap dengan pemakai secara interaktif.

– Response time adalah waktu antara penggunamemberikan input dengan SO memberikan outputatau umpan balik ke pengguna.

Page 15: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Kriteria Penjadwalan Proses

4. Waktu Tunggu (Waiting Time)

Harus seminim mungkin. Merupakan durasi waktuyang dihabiskan suatu proses dalam antrian readyselama siklus hidupnya

Page 16: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Kriteria Penjadwalan Proses

5. Turn Around Time

Turn around time harus seminim mungkin.Merupakan durasi waktu dari suatu proses ataujob masuk ke dalam sistem sampai dengan selesai.

Turn arround time = waktu eksekusi + waktumenunggu

Page 17: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Kriteria Penjadwalan Proses

6. Throughput

Throughput rata-rata proses ( jumlah kerja ) yangdapat diselesaikan per satuan waktu. Nilaithroughput harus tinggi, karena lebih tinggi angkatroughput, maka lebih banyak kerja yang dapatdilakukan sistem.

Page 18: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Kriteria Penjadwalan yang Optimal

1. Memaksimumkan utilisasi CPU

2. Memaksimumkan throughput

3. Meminimukan turnaround time

4. Meminimumkan waiting time

5. Meminimumkan response time

Page 19: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Strategi Dasar Penjadwalan

1. Non-preemptive (Run to completion)

2. Preemptive

Page 20: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Strategi Dasar Penjadwalan

1. Non-preemptive (Run to completion)

a. Algoritma Penjadualan dimana proses-prosesyang sedang running tidak bisa dihentikansementara, dan harus running terus sampaiselesai.

b. Strategi ini bisa membahayakan sistem atauproses lain, artinya bila terjadi crash, maka SOtidak berfungsi.

c. Umumnya digunakan pada sistem sekuensial

Page 21: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Strategi Dasar Penjadwalan

2. Preemptive

a. Algoritma penjadualan yang memungkinkanbeberapa proses yang sedang running, bisadihentikan sementara.

b. Algoritma ini cocok untuk SO yang menerapkanmultitasking, real time, dan time sharing.

Page 22: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Pemicu terjadinya penjadwalan

Kapan keputusan untuk algoritma dilakukan adalah saat suatu proses:

1. Switch dari status running ke waiting.

2. Switch dari status running ke ready.

3. Switch dari status waiting ke ready.

4. Terminates.

Page 23: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Algoritma Penjadwalan

• First-come, first-served (FCFS)

• Shortest-Job-First (SJF)

• Priority

• Guaranteed

• Round-Robin (RR)

• Multilevel Queue

• Multilevel Feedback Queue

• Two Level Scheduling

Page 24: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

First-Come, First-Served (FCFS)

1. Setiap proses diberi jadwal eksekusi berdasarkanurutan waktu kedatangan.

2. FCFS jarang digunakan secara tersendiri tetapi dikombinasikan dengan algoritma lain karena:

a. Timbul masalah“waiting time”terlalu lama jikadidahului oleh proses yang waktu selesainya lama.

b. Job yang pendek harus menunggu job yang panjang

c. Job yang penting harus menunggu job yang kurang penting.

Page 25: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

First-Come, First-Served (FCFS)

3. Algoritma penjadwalan ini bersifat non-preemptive

4. FCFS cocok untuk sistem batch

5. Sangat jarang berinteraksi dengan user.

6. Sangat buruk untuk sistem interaktif atau realtime karena cenderung memberikanresponse time yang buruk.

Page 26: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

First-Come, First-Served (FCFS)

• FCFS merupakan algoritma yang paling, dengan skema proses yang

meminta CPU mendapat prioritas.Implementasi dari FCFS mudah diatasi dengan

queue.

Page 27: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

First-Come, First-Served (FCFS)

Contoh:

• Ada tiga buah proses yang datang secara bersamaanyaitu pada 0 ms, P1 memiliki burst time 24 ms, P2memiliki burst time 3 ms, dan P3 memiliki burst time 3ms. Hitunglah waiting time rata-rata dan turnaroundtime (burst time + waiting time) dari ketiga prosestersebut dengan menggunakan algoritma FCFS.Waiting time untuk P1 adalah 0 ms (P1 tidak perlumenunggu), sedangkan untuk P2 adalah sebesar 24 ms(menunggu P1 selesai), dan untuk P3 sebesar 27 ms(menunggu P1 dan P2 selesai).

Page 28: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

First-Come, First-Served (FCFS)

Gambar. Kedatangan Proses

Page 29: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

First-Come, First-Served (FCFS)

Misal urutan kedatangan adalah P1, P2, P3 Gantt Chart untuk ini adalah:

Waiting time rata-ratanya adalah sebesar(0+24+27)/3 =17ms. Turnaround time untuk P1 sebesar 24 ms, sedangkanuntuk P2 sebesar 27 ms (dihitung dari awal kedatangan P2hingga selesai dieksekusi), untuk P3 sebesar 30 ms.Turnaround time rata-rata untuk ketiga proses tersebutadalah (24+27+30)/3 = 27 ms.

Page 30: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

First-Come, First-Served (FCFS)

• Rumus Menghitung Waitung Time dan Average Waiting Time

Page 31: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

SJF (Shortest Job First)

Pada penjadwalan SJF, proses yang memiliki CPUburst paling kecil dilayani terlebih dahulu.Terdapat dua skema:1. Non preemptive,

bila CPU diberikan pada proses, maka tidak bisaditunda sampai CPU burst selesai.

2. Preemptive, jika proses baru datang dengan panjang CPU burstlebih pendek dari sisa waktu proses yang saat itusedang dieksekusi, proses ini ditunda dan digantidengan proses baru. Skema ini disebut denganShortest-Remaining-Time-First (SRTF)

Page 32: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

SJF Non Preemptive

• SJF Non Preemptive adalah algoritmapenjadwalan yang menjalankan prosesberdasarkan proses dengan burst timeterkecil.

Page 33: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

SJF Non Preemptive

• Perhatikan tabel berikut ini

Proses Burst Time

P1 7

P2 4

P3 1

P4 4

Berdasarkan tabel berikut :1. Gambarkan gant chart SJF

Non Preemptive2. Buat tabel waktu tunggu3. Hitung rata – rata waktu

tunggu (Average Waiting Time)

Page 34: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

SJF Non Preemptive

a. Gant Chart

b. Tabel Waktu TungguProses Waktu Tunggu

P1 9

P2 1

P3 0

P4 5

c. Rata-rata Waktu Tunggu

AWT = (9 + 1 + 0 + 5) / 4AWT = 15 / 4AWT = 3, 75 ms

Page 35: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Shortest Job First Preemptive

• SJF algoritma mungkin adalah yang palingoptimal, karena ia memberikan rata-rataminimum waiting untuk kumpulan dari prosesyang mengantri.

Page 36: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

SJF Preemptive

• SJF algoritma adalah algoritma penjadwalanyang mengizinkan proses yang lebih pendekmenghentikan proses yang sedang jalan.

Page 37: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

SJF Preemptive

• Perhatikan tabel berikut ini

Proses Arrival Time Burst Time

P1 0 7

P2 2 4

P3 4 1

P4 5 4

Berdasarkan tabel berikut :1. Gambarkan gant chart

SJF Preemptive2. Buat tabel waktu tunggu3. Hitung rata – rata waktu

tunggu (Average Waiting Time)

Page 38: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

SJF Preemptive

a. Gant Chart

b. Tabel Waktu TungguProses Waktu Tunggu

P1 11 – 2 = 9

P2 5 – 4 = 1

P3 4 – 4 = 0

P4 7 – 5 = 2

c. Rata-rata Waktu Tunggu

AWT = (9 + 1 + 0 + 2) / 4AWT = 12 / 4AWT = 3 ms

Page 39: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Tugas1Perhatikan Tabel Berikut Ini

Proses Arrival Time (ms) Burst Time (ms)

P1 0 8

P2 3 4

P3 4 5

P4 5 6

P5 6 4

Berdasarkan tabel tersebut, maka anda diminta untukmembuat Gantt Chart, Tabel Waktu Tunggu, danmenghitung Avarage Waiting Time (AWT) untukalgoritma penjadwalan :1. FCFS2. SJF3. SJF Preemptive

Page 40: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Tugas2

Perhatikan Tabel Berikut :

Proses Burst Time (ms)

P1 3

P2 4

P3 2

P4 3

P5 5

P6 4

Berdasarkan tabel disamping, maka buatlah dengan algoritma penjadwalan FCFS :a. Gantt Chartb. Tabel Waktu Tungguc. Hitung AWT

Page 41: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Tugas3

Perhatikan Tabel Berikut

Proses Burst Time (ms)

P1 4

P2 2

P3 3

P4 4

P5 2

P6 5

Berdasarkan tabel disamping, maka buatlah dengan algoritma penjadwalan SJF Non Preemptive :a. Gantt Chartb. Tabel Waktu Tungguc. Hitung AWT

Page 42: Pertemuan Ke - 9 · 2018. 7. 16. · Pertemuan Ke - 9 Penjadwalan CPU. Penjadwalan CPU •Konsep Dasar dan Definisi Penjadwalan CPU •Kriteria Penjadualan •Algoritma Penjadualan.

Tugas 4

Perhatikan Tabel Berikut

Proses Arrival Time (ms)

Burst Time (ms)

P1 0 6

P2 1 4

P3 3 2

P4 4 3

P5 5 4

Berdasarkan tabel disamping, maka buatlah dengan algoritma penjadwalan SJF Preemptive :a. Gantt Chartb. Tabel Waktu Tungguc. Hitung AWT