Sistem Operasi Chapter 09 Penjadwalan CPU Tri sugihartono

  • Slides: 43
Download presentation
Sistem Operasi Chapter 09 – Penjadwalan CPU Tri sugihartono, Mkom STMIK Atma Luhur Pangkalpinang

Sistem Operasi Chapter 09 – Penjadwalan CPU Tri sugihartono, Mkom STMIK Atma Luhur Pangkalpinang Sistem Operasi

Penjadwalan CPU • Konsep Dasar dan Definisi Penjadwalan CPU • Kriteria Penjadualan • Algoritma

Penjadwalan CPU • Konsep Dasar dan Definisi Penjadwalan CPU • Kriteria Penjadualan • Algoritma Penjadualan

Konsep Dasar Penjadwalan • SO modern umumnya merupakan sistem multitasking. • Tujuan Utama: agar

Konsep Dasar Penjadwalan • SO modern umumnya merupakan sistem multitasking. • Tujuan Utama: agar beberapa proses dapat berjalan secara bersamaan, hal ini untuk memaksimalkan kinerja CPU. • Pemanfaatan CPU maksimum diperoleh dengan multiprogramming • CPU-I/O Burst Cycle-Pelaksanaan proses terdiri dari suatu siklus tunggu I/O dan eksekusi CPU

Konsep Dasar Penjadwalan Proses dapat juga dibagi atas 2 macam: a. I/O-bound process –

Konsep Dasar Penjadwalan Proses dapat juga dibagi atas 2 macam: a. I/O-bound process – menghabiskan waktu lebih banyak untuk mengerjakan I/O daripada di CPU b. CPU-bound process – jarang melakukan permintaan I/O, menggunakan lebih banyak waktunya di CPU Sistem dengan kinerja yang terbaik akan memiliki kombinasi proses CPU bound dan I/O bound yang seimbang.

Definisi Penjadwalan Proses Definisi • Kumpulan kebijaksanaan dan mekanisme sistem operasi yang mengatur urutan

Definisi Penjadwalan Proses Definisi • Kumpulan kebijaksanaan dan mekanisme sistem operasi yang mengatur urutan dan jangka waktu eksekusi proses-proses yang aktif. Tugas • Memilih proses, menentukan kapan serta berapa lama proses tersebut boleh menggunakan processor

Komponen Penjadwalan Proses 1. Antrian Penjadwalan (Scheduler Queue) a. Ready queue b. I/O queue

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

Komponen Penjadwalan Proses Penjadwal ( Scheduler ) Suatu program dengan algoritma tertentu yang menyeleksi

Komponen Penjadwalan Proses Penjadwal ( Scheduler ) Suatu program dengan algoritma tertentu yang menyeleksi proses yang akan dieksekusi. Jenis scheduler : a. Penjadwal jangka pendek (short-term scheduler). b. Penjadwalan jangka menengah ( medium-term scheduler ) c. Dispatcher

Komponen Penjadwalan Proses Jenis scheduler : a. Penjadwal jangka pendek (short-term scheduler) menyeleksi proses

Komponen Penjadwalan Proses Jenis scheduler : a. Penjadwal jangka pendek (short-term scheduler) menyeleksi proses yang berada diantrian ready.

Komponen Penjadwalan Proses Jenis scheduler : b. Penjadwalan jangka menengah (Medium-term Scheduler) 1. Jika

Komponen Penjadwalan Proses Jenis scheduler : b. Penjadwalan jangka menengah (Medium-term Scheduler) 1. Jika ruang memori utama tidak cukup menampung proses, SO akan melakukan swapping yaitu memindahkan image process ke memori sekunder seperti disk. 2. Umumnya yang dikorbankan adalah proses yang berstatus blocked atau menunggu event. 3. Jika event sudah selesai, image process harus dikembalikan ke memori utama. 4. Medium-term scheduler bertugas menyeleksi proses yang akan diswapping (swap-out) dan yang akan dikembalikan ke memori utama (swap-in).

Komponen Penjadwalan Proses Jenis scheduler : c. Dispatcher suatu program SO yang berfungsi melakukan

Komponen Penjadwalan Proses Jenis scheduler : c. Dispatcher suatu program SO yang berfungsi melakukan pengalihan eksekusi dari proses yang running ke proses yang dipilih oleh “short-term scheduler”. Bertugas memindahkan isi register prosesor ke PCB proses yang dihentikan. Dispatch latency – terdapat waktu yang terbuang (CPU idle) dimana dispatcher menghentikan satu proses dan menjalankan proses lain

Kriteria Penjadwalan Proses Dalam melakukan penjadwalan proses, SO mempertimbangkan sejumlah faktor: 1. Keadilan (Fairness)

Kriteria Penjadwalan Proses Dalam melakukan penjadwalan proses, SO mempertimbangkan sejumlah faktor: 1. Keadilan (Fairness) 2. Efisiensi (Processor Utilization) 3. Waktu tanggapan (Response time) 4. Waiting Time 5. Turn Around Time

Kriteria Penjadwalan Proses 1. Keadilan (Fairness) a. Memastikan bahwa setiap proses mendapat giliran yang

Kriteria Penjadwalan Proses 1. Keadilan (Fairness) a. Memastikan bahwa setiap proses mendapat giliran yang adil, tetapi tidak selalu berarti jatah waktu yang sama.

Kriteria Penjadwalan Proses 2. Efisiensi (Processor Utilization) Penggunaan waktu CPU (CPU Time) seoptimal mungkin

Kriteria Penjadwalan Proses 2. Efisiensi (Processor Utilization) Penggunaan waktu CPU (CPU Time) seoptimal mungkin processor terpakai terus menerus selama masih ada antrian ready. b. Perlu dipastikan tidak terjadi proses yang tidak terlayani dalam jangka waktu yang lama.

Kriteria Penjadwalan Proses 3. Waktu tanggapan (Response time) – Mempercepat (secepat dan sependek mungkin)

Kriteria Penjadwalan Proses 3. Waktu tanggapan (Response time) – Mempercepat (secepat dan sependek mungkin) waktu tanggap dengan pemakai secara interaktif. – Response time adalah waktu antara pengguna memberikan input dengan SO memberikan output atau umpan balik ke pengguna.

Kriteria Penjadwalan Proses 4. Waktu Tunggu (Waiting Time) Harus seminim mungkin. Merupakan durasi waktu

Kriteria Penjadwalan Proses 4. Waktu Tunggu (Waiting Time) Harus seminim mungkin. Merupakan durasi waktu yang dihabiskan suatu proses dalam antrian ready selama siklus hidupnya

Kriteria Penjadwalan Proses 5. Turn Around Time Turn around time harus seminim mungkin. Merupakan

Kriteria Penjadwalan Proses 5. Turn Around Time Turn around time harus seminim mungkin. Merupakan durasi waktu dari suatu proses atau job masuk ke dalam sistem sampai dengan selesai. Turn arround time = waktu eksekusi + waktu menunggu

Kriteria Penjadwalan Proses 6. Throughput rata-rata proses ( jumlah kerja ) yang dapat diselesaikan

Kriteria Penjadwalan Proses 6. Throughput rata-rata proses ( jumlah kerja ) yang dapat diselesaikan per satuan waktu. Nilai throughput harus tinggi, karena lebih tinggi angka troughput, maka lebih banyak kerja yang dapat dilakukan sistem.

Kriteria Penjadwalan yang Optimal 1. Memaksimumkan utilisasi CPU 2. Memaksimumkan throughput 3. Meminimukan turnaround

Kriteria Penjadwalan yang Optimal 1. Memaksimumkan utilisasi CPU 2. Memaksimumkan throughput 3. Meminimukan turnaround time 4. Meminimumkan waiting time 5. Meminimumkan response time

Strategi Dasar Penjadwalan 1. Non-preemptive (Run to completion) 2. Preemptive

Strategi Dasar Penjadwalan 1. Non-preemptive (Run to completion) 2. Preemptive

Strategi Dasar Penjadwalan 1. Non-preemptive (Run to completion) a. Algoritma Penjadualan dimana proses-proses yang

Strategi Dasar Penjadwalan 1. Non-preemptive (Run to completion) a. Algoritma Penjadualan dimana proses-proses yang sedang running tidak bisa dihentikan sementara, dan harus running terus sampai selesai. b. Strategi ini bisa membahayakan sistem atau proses lain, artinya bila terjadi crash, maka SO tidak berfungsi. c. Umumnya digunakan pada sistem sekuensial

Strategi Dasar Penjadwalan 2. Preemptive a. Algoritma penjadualan yang memungkinkan beberapa proses yang sedang

Strategi Dasar Penjadwalan 2. Preemptive a. Algoritma penjadualan yang memungkinkan beberapa proses yang sedang running, bisa dihentikan sementara. b. Algoritma ini cocok untuk SO yang menerapkan multitasking, real time, dan time sharing.

Pemicu terjadinya penjadwalan Kapan keputusan untuk algoritma dilakukan adalah saat suatu proses: 1. Switch

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.

Algoritma Penjadwalan • First-come, first-served (FCFS) • Shortest-Job-First (SJF) • Priority • Guaranteed •

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

First-Come, First-Served (FCFS) 1. Setiap proses diberi jadwal eksekusi berdasarkan urutan waktu kedatangan. 2.

First-Come, First-Served (FCFS) 1. Setiap proses diberi jadwal eksekusi berdasarkan urutan waktu kedatangan. 2. FCFS jarang digunakan secara tersendiri tetapi dikombinasikan dengan algoritma lain karena: a. Timbul masalah“waiting time”terlalu lama jika didahului 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.

First-Come, First-Served (FCFS) 3. Algoritma penjadwalan ini bersifat nonpreemptive 4. FCFS cocok untuk sistem

First-Come, First-Served (FCFS) 3. Algoritma penjadwalan ini bersifat nonpreemptive 4. FCFS cocok untuk sistem batch 5. Sangat jarang berinteraksi dengan user. 6. Sangat buruk untuk sistem interaktif atau real time karena cenderung memberikan response time yang buruk.

First-Come, First-Served (FCFS) • FCFS merupakan algoritma yang paling sederhana , dengan skema proses

First-Come, First-Served (FCFS) • FCFS merupakan algoritma yang paling sederhana , dengan skema proses yang meminta CPU mendapat prioritas. Implementasi dari FCFS mudah diatasi dengan FIFO queue.

First-Come, First-Served (FCFS) Contoh: • Ada tiga buah proses yang datang secara bersamaan yaitu

First-Come, First-Served (FCFS) Contoh: • Ada tiga buah proses yang datang secara bersamaan yaitu pada 0 ms, P 1 memiliki burst time 24 ms, P 2 memiliki burst time 3 ms, dan P 3 memiliki burst time 3 ms. Hitunglah waiting time rata-rata dan turnaround time (burst time + waiting time) dari ketiga proses tersebut dengan menggunakan algoritma FCFS. Waiting time untuk P 1 adalah 0 ms (P 1 tidak perlu menunggu), sedangkan untuk P 2 adalah sebesar 24 ms (menunggu P 1 selesai), dan untuk P 3 sebesar 27 ms (menunggu P 1 dan P 2 selesai).

First-Come, First-Served (FCFS)

First-Come, First-Served (FCFS)

First-Come, First-Served (FCFS) Misal urutan kedatangan adalah P 1, P 2, P 3 Gantt

First-Come, First-Served (FCFS) Misal urutan kedatangan adalah P 1, P 2, P 3 Gantt Chart untuk ini adalah: Waiting time rata-ratanya adalah sebesar(0+24+27)/3 = 17 ms. Turnaround time untuk P 1 sebesar 24 ms, sedangkan untuk P 2 sebesar 27 ms (dihitung dari awal kedatangan P 2 hingga selesai dieksekusi), untuk P 3 sebesar 30 ms. Turnaround time rata-rata untuk ketiga proses tersebut adalah (24+27+30)/3 = 27 ms.

First-Come, First-Served (FCFS) • Rumus Menghitung Waitung Time dan Average Waiting Time

First-Come, First-Served (FCFS) • Rumus Menghitung Waitung Time dan Average Waiting Time

SJF (Shortest Job First) Pada penjadwalan SJF, proses yang memiliki CPU burst paling kecil

SJF (Shortest Job First) Pada penjadwalan SJF, proses yang memiliki CPU burst paling kecil dilayani terlebih dahulu. Terdapat dua skema: 1. Non preemptive, bila CPU diberikan pada proses, maka tidak bisa ditunda sampai CPU burst selesai. 2. Preemptive, jika proses baru datang dengan panjang CPU burst lebih pendek dari sisa waktu proses yang saat itu sedang dieksekusi, proses ini ditunda dan diganti dengan proses baru. Skema ini disebut dengan Shortest-Remaining-Time-First (SRTF)

SJF Non Preemptive • SJF Non Preemptive adalah algoritma penjadwalan yang menjalankan proses berdasarkan

SJF Non Preemptive • SJF Non Preemptive adalah algoritma penjadwalan yang menjalankan proses berdasarkan proses dengan burst time terkecil.

SJF Non Preemptive • Perhatikan tabel berikut ini Berdasarkan tabel berikut : 1. Gambarkan

SJF Non Preemptive • Perhatikan tabel berikut ini Berdasarkan tabel berikut : 1. Gambarkan gant chart SJF Non Preemptive 2. Buat tabel waktu tunggu 3. Hitung rata – rata waktu tunggu (Average Waiting Time)

SJF Non Preemptive a. Gant Chart b. Tabel Waktu Tunggu c. Rata-rata Waktu Tunggu

SJF Non Preemptive a. Gant Chart b. Tabel Waktu Tunggu c. Rata-rata Waktu Tunggu AWT = (9 + 1 + 0 + 5) / 4 AWT = 15 / 4 AWT = 3, 75 ms

Shortest Job First Preemptive • SJF algoritma mungkin adalah yang paling optimal, karena ia

Shortest Job First Preemptive • SJF algoritma mungkin adalah yang paling optimal, karena ia memberikan rata-rata minimum waiting untuk kumpulan dari proses yang mengantri.

SJF Preemptive • SJF algoritma adalah algoritma penjadwalan yang mengizinkan proses yang lebih pendek

SJF Preemptive • SJF algoritma adalah algoritma penjadwalan yang mengizinkan proses yang lebih pendek menghentikan proses yang sedang jalan.

SJF Preemptive • Perhatikan tabel berikut ini Berdasarkan tabel berikut : 1. Gambarkan gant

SJF Preemptive • Perhatikan tabel berikut ini Berdasarkan tabel berikut : 1. Gambarkan gant chart SJF Preemptive 2. Buat tabel waktu tunggu 3. Hitung rata – rata waktu tunggu (Average Waiting Time)

SJF Preemptive a. Gant Chart b. Tabel Waktu Tunggu c. Rata-rata Waktu Tunggu AWT

SJF Preemptive a. Gant Chart b. Tabel Waktu Tunggu c. Rata-rata Waktu Tunggu AWT = (9 + 1 + 0 + 2) / 4 AWT = 12 / 4 AWT = 3 ms

Tugas 1 Perhatikan Tabel Berikut Ini Berdasarkan tabel disamping, maka anda diminta untuk membuat

Tugas 1 Perhatikan Tabel Berikut Ini Berdasarkan tabel disamping, maka anda diminta untuk membuat Gantt Chart, Tabel Waktu Tunggu, dan menghitung Avarage Waiting Time (AWT) untuk algoritma penjadwalan : 1. FCFS 2. SJF 3. SJF Preemptive

Tugas 2 Perhatikan Tabel Berikut : Berdasarkan tabel disamping, maka buatlah dengan algoritma penjadwalan

Tugas 2 Perhatikan Tabel Berikut : Berdasarkan tabel disamping, maka buatlah dengan algoritma penjadwalan FCFS : a. Gantt Chart b. Tabel Waktu Tunggu c. Hitung AWT

Tugas 3 Perhatikan Tabel Berikut Berdasarkan tabel disamping, maka buatlah dengan algoritma penjadwalan SJF

Tugas 3 Perhatikan Tabel Berikut Berdasarkan tabel disamping, maka buatlah dengan algoritma penjadwalan SJF Non Preemptive : a. Gantt Chart b. Tabel Waktu Tunggu c. Hitung AWT

Tugas 4 Perhatikan Tabel Berikut Berdasarkan tabel disamping, maka buatlah dengan algoritma penjadwalan SJF

Tugas 4 Perhatikan Tabel Berikut Berdasarkan tabel disamping, maka buatlah dengan algoritma penjadwalan SJF Preemptive : a. Gantt Chart b. Tabel Waktu Tunggu c. Hitung AWT