Materi 3 4 5 Penjadwalan Proses dan Algoritma Full

  Fakultas Ilmu Komputer Defri Kurniawan, M.Kom

Penjadwalan Proses

  Materi

  Deskripsi penjadwalan 

  Kriteria pengukuran penjadwalan 

  Tipe-tipe penjadwalan 

  Strategi Penjadwalan 

  Algoritma Penjadwalan

  

Pengertian Penjadwalan

Pengertian

  Penjadwalan proses merupakan kumpulan kebijaksanaan dan

mekanisme di sistem operasi yang

berkaitan dengan urutan kerja yang dilakukan sistem komputer

  Pengertian Penjadwalan (lanj) Adapun penjadwalan bertugas memutuskan : 1.

  Proses yang harus berjalan 2. Kapan dan berapa lama proses itu berjalan

  Sasaran Penjadwalan

Kriteria-kriteria yang digunakan sebagai

sasaran penjadwalan, meliputi: 1.

  Adil (fairness) 2. Efisiensi (eficiency) 3. Waktu tanggap (response time)

  Sistem interaktif

  Sistem waktu nyata

1. Adil (fairness)

  

Adalah proses-proses yang diperlakukan

sama, yaitu mendapat jatah waktu pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami kekurangan waktu.

  Sasaran penjadwalan: Menjamin setiap proses mendapat

2. Efisiensi (eficiency)

  Efisiensi atau utilisasi pemroses dihitung

  • dengan perbandingan (rasio) waktu sibuk pemroses Keadaan sibuk berarti pemroses tidak
  • menganggur. Layanan pemroses termasuk waktu yang
  • dihabiskan untuk mengeksekusi program pemakai dan layanan sistem operasi

  Sasaran penjadwalan:

3. Waktu tanggap (response

  time) Waktu tanggap dalam Sistem Interaktif

Didefinisikan sebagai waktu yang dihabiskan dari saat

karakter terakhir perintah dimasukkan Atau transaksi sampai hasil pertama muncul di layar (terminal). Waktu tanggap ini disebut terminal response time.

  Waktu tanggap dalam Sistem waktu nyata (real time) Didefinisikan sebagai waktu dari saat kemunculan suatu kejadian sampai instruksi layanan rutin pertama

3. Waktu tanggap (response

  time) Sasaran penjadwalan pada kriteria ini adalah meminimalkan waktu tanggap sehingga menghasilkan system yang reponsif

  

Turn Around Time

4.

  Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem

sampai proses diselesaikan sistem. Waktu

yang dimaksud adalah waktu yang dihabiskan di dalam sistem.

   Turn arround time

  • = waktu eksekusi waktu menunggu .

   Sasaran Penjadwalan adalah

  Throughput 5.

  

Adalah jumlah kerja yang dapat diselesaikan

dalam satu unit waktu.

   Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit/interval waktu Sasaran Penjadwalan:

   Memaksimalkan jumlah job yang diproses persatu interval waktu.

   Lebih besar angka throughput, lebih banyak

  Tipe Penjadwalan (1)

  Terdapat 3 tipe penjadwal berada

secara bersama-sama pada sistem

operasi yang kompleks, yaitu: 1.

  Penjadwal jangka pendek (short term scheduller) 2.

  Penjadwal jangka menengah (medium term scheduller)

  Tipe Penjadwalan (2)

  Penjadwalan jangka pendek (short- termscheduller)

Penjadwalan ini bertugas menjadwalkan alokasi

pemroses diantara proses-proses ready di memori utama.

   Penjadwalan jangka menengah (medium termscheduller ) Penjadwalan jangka menengah adalah menangani proses-proses swapping (aktivitas pemindahan proses yang tertunda dari memory

  Penjadwal jangka pendek (short term scheduller)

  

Digunakan untuk memilih diantara

proses-proses yang siap dieksekusi .

kemudian proses tersebut salah

satunya dialokasikan ke CPU

   Short term scheduler juga digunakan untuk memilih proses baru untuk CPU

  

  Penjadwal jangka menengah (medium term scheduller)

  Proses-proses yang mempunyai kepentingan kecil saat itu sebagai proses yang tertunda ataupun tertunda karena memuat layanan I/O atau memanggil sekumpulan layanan

   Aktivitas pemindahan proses yang tertunda dari memori utama ke

  

Penjadwal jangka menengah

(medium term scheduller)

  Begitu kondisi yang membuatnya tertunda hilang, proses dimasukkan kembali ke memori utama dan ready

  

Penjadwal jangka menengah

(medium term scheduller)

  Penjadwal jangka panjang (long term scheduller)

  Long term scheduller menentukan

program mana yang diakui pada

sistem untuk diproses , kapan dan mana yang harus dikeluarkan

   Penjadwalan ini bekerja terhadap

antrian batch dan memilih batch

  Penjadwal jangka panjang (long term scheduller)

  Batch biasanya adalah proses-proses dengan penggunaan sumber daya

yang intensif (yaitu waktu pemroses,

memori, perangkat input/output)

   Program-program ini berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama periode

  Tipe-tipe Penjadwalan

  Strategi Penjadwalan

  

1. Penjadwalan non-preemptive (run to

completion)

  Proses diberi jatah waktu oleh pemroses dan pemroses tidak dapat diambil alih oleh proses lain sampai proses itu selesai

  2. Penjadwalan preemptive Proses diberi jatah waktu oleh pemroses dan pemroses dapat diambil alih proses lain .

  Sehingga proses disela sebelum selesai dan

  Algoritma Penjadwalan Berikut jenis-jenis algoritma berdasarkan penjadwalan

  1. Nonpreemptive 2.

  Preemtive Klasifikasi lain berdasarkan adanya prioritas di proses-proses, yaitu :

  1. Algoritma penjadwalan tanpa

  Algoritma Penjadwalan 1.

  Nonpreemptive FIFO (First In First Out) atau FCFS (First

   Come First Serve) SJF (Shortest Job First)

   HRN (Highest Ratio Next)

   MFQ (Multiple Feedback Queues).

  

  

Algoritma Penjadwalan

2. Nonpreemptive

   RR (Round Robin)

   SRF (Shortest Remaining First)

   PS (Priority Schedulling)

   GS (Guaranteed Schedulling)

  Penjadwalan Non Preemtive Merupakan penjadwalan nonpreemptive dan penjadwalan tidak Merupakan penjadwalan nonpreemptive dan penjadwalan tidak berprioritas. Penjadwalan FIFO adalah penjadwalan paling berprioritas. Penjadwalan FIFO adalah penjadwalan paling sederhana, yaitu : sederhana, yaitu :

  • Proses-proses diberi jatah waktu pemroses berdasarkan waktu
  • Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan kedatangan
  • • Saat proses mendapat jatah waktu pemroses, proses dijalankan

  • • Saat proses mendapat jatah waktu pemroses, proses dijalankan

    sampai selesai sampai selesai Penjadwalan ini adil yaitu proses yang datang duluan, dilayani Penjadwalan ini adil yaitu proses yang datang duluan, dilayani

    duluan juga. Dikatakan tidak adil karena job-job yang perlu waktu

    duluan juga. Dikatakan tidak adil karena job-job yang perlu waktu

    lama membuat job-job pendek menunggu. Job-job tak penting lama membuat job-job pendek menunggu. Job-job tak penting dapat membuat job-job penting menunggu. dapat membuat job-job penting menunggu.

  Contoh Soal: Jika diketahui 5 macam antrian proses yaitu : A-B-C-D-E dengan waktu kedatangan semuanya 0 dan prosesor sedang tidak aktif

  Terlihat lama tanggap : 14 Nilai ini cukup besar bila dibanding lama proses masing2. Contoh diatas tidak disertai waktu tiba.

Berikut ini adalah contoh dengan waktu tiba yang berbeda:

  Cara lain untuk mengerjakan Misal ada tiga proses P1, P2, P3 yang datang dengan lama waktu kerja CPU (CPU Burst-time) masing- masing sbb :

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

  Dari Gantt Chart dapat diambil kesimpulan waktu tunggu untuk P1 adalah 0 milidetik, waktu tunggu untuk P2 adalah 24 milidetik, waktu tunggu P3 adalah 27 milidetik. Jadi rata-rata waktu tunggu

  (Average Waiting Time / AWT) adalah (0+24+27)/3 = 17 milidetik.

  Kemudian jika waktu kedatangan proses adalah P3, P2, P1 maka Gantt

  

Menentukan Turn Around Time dengan FIFO berdasarkan contoh

diatas :

Turn around time (waktu penyelesaian) P1 adalah 24, P2 = 27, P3 = 30,

maka rata-rata turn around time = (24+27+30)/3 = 27 milidetik.

  Penjadwalan Shortest Job First (SJF) Penjadwalan Shortest Job First (SJF)

  Penjadwalan dengan tipe prioritas tanpa preeemptive.

  • Dasar prioritasnya adalah pendeknya proses.
  • Makin pendek prosesnya makin tinggi prioritasnya.

  Waktu tiba Waktu tiba = sama (0) = sama (0) Penjadwalan Shortest Job First (SJF) Penjadwalan Shortest Job First (SJF)

Penjadwalan Highest Ratio Next (HRN) Penjadwalan Highest Ratio Next (HRN) Penjadwalan untuk mengoreksi kelemahan SJF.

  Adalah strategi penjadwalan dengan prioritas proses tidak hanya merupakan fungsi waktu

layanan tetapi juga jumlah waktu tunggu proses.

  Begitu proses mendapat jatah pemroses, proses berjalan sampai selesai.

  Prioritas dinamis HRN dihitung berdasarkan rumus: Prioritas = (waktu tunggu + waktu layanan ) / waktu layanan

  Penjadwalan Highest Ratio Next (HRN) Penjadwalan Highest Ratio Next (HRN)

  

Karena waktu layanan muncul sebagai pembagi, maka

job lebih pendek berprioritas lebih baik, karena waktu tunggu sebagai pembilang maka proses yang telah menunggu lebih lama juga mempunyai kesempatan lebih bagus.

  Disebut HRN, karena waktu tunggu ditambah waktu layanan adalah waktu tanggap, yang berarti waktu tanggap tertinggi yang harus dilayani.

  

Penjadwalan Highest Ratio Next (HRN)

Penjadwalan Highest Ratio Next (HRN)

  Penjadwalan ini merupakan : Penjadwalan non-preemptive Penjadwalan berprioritas dinamis.

  Rumus : Rp = ( s + t ) / t waktu tunggu : s, waktu layanan : t

  Dari soal diatas yang dikerjakan pertama kali adalah job yang tiba pertama kali. Dikarenakan job lain

belum tiba. Penjadwalan Highest Ratio Next (HRN) Penjadwalan Highest Ratio Next (HRN)

  B=(4-1), C= (4- 2), D=(4-3), E=(4-4)

  Penjadwalan Highest Ratio Next (HRN) Penjadwalan Highest Ratio Next (HRN)

  Penjadwalan Highest Ratio Next (HRN) Penjadwalan Highest Ratio Next (HRN)

  

Penjadwalan Multiple Feedback Queues (MFQ)

Penjadwalan Multiple Feedback Queues (MFQ)

  Penjadwalan ini merupakan : Penjadwalan preemptive (by time ) dan berprioritas dinamis.

  

Latihan Penjadwalan Non Preemtive

Latihan Penjadwalan Non Preemtive

  Hitunglah waktu Turn Around (TA), Total dan Reratanya!

  

1. Diketahui 10 antrian proses yaitu : A-B-C-D-E-F-G-H-I-J

dengan waktu kedatangan semuanya 0 dan prosesor sedang tidak aktif (PP=0), lama proses berturut-turut antara lain 8,5,4,10,3,9,2,1,7,8 (Menggunakan FIFO).

  2. Diketahui 7 antrian proses yaitu : P-Q-R-S-T-U-V dengan waktu kedatangan semuanya 0 dan prosesor sedang tidak aktif (PP=0), lama proses berturut-turut antara lain 6,9,1,5,7,7,2 (Menggunakan SJF).

3. Diketahui 5 antrian proses yaitu : A-B-C-D-E dengan

  

Latihan Penjadwalan Non Preemtive

Latihan Penjadwalan Non Preemtive

  4. Diketahui 5 antrian proses yaitu : P-Q-R-S-T dengan waktu kedatangan berturut-turut 0,1,3,5,8 dan prosesor sedang tidak aktif (PP=0), lama proses berturut-turut antara lain 8,5,4,10,3 (Menggunakan FIFO).

  5. Diketahui 6 antrian proses yaitu : E-F-G-H-I-J dengan waktu kedatangan berturut-turut 0,2,3,5,7,9 dan prosesor sedang tidak aktif (PP=0), lama proses berturut-turut antara lain 1,5,7,9,10,12 (Menggunakan SJF dan HRN)

  Penjadwalan Preemtive

  • Pada penjadwalan RR ini Eksekusi dijalankan secara giliran berdasarkan antrian ( Non – Preemptive),

    prosesor mengerjakan sesaat setiap proses secara

    berturut-turut.
  • • Proses yang telah dieksekusi tapi belum selesai akan

    kembali ke antrian terakhir.

  CONTOH SOAL I Jika diketahui waktu tiba proses sama yaitu 0, dengan Quantum (Q) = 2.

  Hitunglah waktu Turn Arround (TA) untuk tiap-tiap proses, Total TA dan Rata-rata TA- nya?!

  A B A B C D E A C E C

  3

  6

  9

  11

  14

  17

  19

  22

  25

  26

  28 JAWAB SOAL I

CONTOH SOAL II

  Jika diketahui waktu tiba proses bukan 0, dengan Quantum (Q) = 2.

  Hitunglah waktu Turn Arround (TA) untuk tiap-tiap proses?!

  JAWAB SOAL II A B A B C D E A C E C E C

  2

  4

  6

  7

  9

  10

  12

  13

  15

  17

  19

  21

  22 NAMA WAKTU LAMA MULAI SELESA TA PROSES TIBA EKSEKUS EKSEKUS

  I I

  I EKSEKU SI

  A

  5

  13

  13 B

  1

  3

  2

  7

  6 C

  5

  7

  7

  22

  17

CONTOH SOAL III:

  Misal kumpulan proses datang pada waktu 0 dengan spesifikasi :

Jika digunakan quantum time 4 milidetik, maka proses P1

mendapat 4 milidetik yang pertama, 20 milidetik berikutnya akan disela oleh proses P2 dan P3 secara bergantian, sehingga Gantt Chart-nya dapat digambarkan sbb:

  Waktu tunggu untuk tiap-tiap proses :

CONTOH SOAL IV:

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

  

Penjadwalan Shortest-Remaining-First (SRF)

Penjadwalan Shortest-Remaining-First (SRF)

  Penjadwalan ini merupakan : Penjadwalan preemptive dengan sisa waktu terpendek.

  • Penjadwalan berprioritas dinamis.
  • Contoh Soal

  I Penjadwalan Shortest-Remaining-First (SRF) Penjadwalan Shortest-Remaining-First (SRF)

  Jawab Soal I NAMA PROSES WAKTU TIBA LAMA EKSEKUS

  4

  14

  9

  5

  4

  2

  19 A B B D A C

  23

  14

  9

  3 C

  I MULAI EKSEKUS

  5

  2

  3

  2

  14 B

  14

  7

  A

  I EKSEKU SI TA

  I SELESA

  23

  

Penjadwalan Shortest-Remaining-First (SRF)

Contoh Soal II

Hitunglah waktu tunggu tiap-tiap proses dan rata-

ratanya (AWT) dari tabel proses di bawah ini?!

PROSES WAKTU LAMA

  P1

  10 P2

  3

  6 P3

  7

  12 P4

  9

  8 P5

  10

  6

  

Penjadwalan Shortest-Remaining-First (SRF)

Jawab Soal II P1 P2 P2 P1 P1 P5 P4 P4

  3

  7

  9

  10

  16

  22

  30

  42 PROSE WAKTU LAMA MULAI SELESAI WAKTU S ID TIBA EKSEKUS EKSEKU EKSEKUS TUNGGU

  I SI I (WT)

  P1

  10 16 (0-0) +(9- 3)=6

  P2

  3

  6

  3 7 (3-3)=0 P3

  7

  12

  30 42 (30-7)=23 Penjadwalan Priority Schedulling (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.

  Prioritas dapat diberikan secara : Prioritas statis (static priorities).

  • Prioritas dinamis (dynamic priorities).
  • Prioritas Statis Prioritas statis berarti prioritas tak berubah. Prioritas Dinamis

  Merupakan mekanisme menanggapi perubahan lingkungan sistem beroperasi. Prioritas awal yang diberikan ke proses mungkin hanya

  

Penjadwalan Priority Schedulling (PS)

Contoh : Jika ada 5 proses P1, P2, P3, P4 dan P5 dengan CPU burst :

  Gant Chart:

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

  Prioritas biasanya menyangkut masalah : waktu, memori yang dibutuhkan, Penjadwalan Guaranteed Schedulling (GS) Penjadwalan Guaranteed Schedulling (GS)

  Penjadwalan ini harus menjamin bahwa algoritma tersebut Penjadwalan ini harus menjamin bahwa algoritma tersebut mempunyai kinerja yang cukup bagus dan menjanjikan mempunyai kinerja yang cukup bagus dan menjanjikan

kelangsungan hidup yang baik. Contoh : misal ada n user yang

kelangsungan hidup yang baik. Contoh : misal ada n user yang

sedang login, maka tiap-tiap user dijanjikan akan menerima 1/ sedang login, maka tiap-tiap user dijanjikan akan menerima 1/ n dari kemampuan CPU. n dari kemampuan CPU. Untuk meyakinkan bahwa setiap user mendapatkan jatah waktu menggunakan CPU sesuai dengan haknya maka sistem harus tahu berapa CPU time yang diperlukan oleh setiap proses dalam 1 user. Dan juga CPU time yang diperlukan oleh tiap-tiap user.

  Total waktu yang dibutuhkan untuk mengakses kelima user tersebut adalah 20 ms, sehingga diharapkan tiap user mendapatkan 20/5 = 4 ms. Pada kenyataannya, mulai dari login hingga saat ini tiap-tiap user telah mendapatkan CPU seperti terlihat pada tabel berikut. Dan rasio antara CPU yang diperoleh sampai saat ini (aktual) dengan CPU yang seharusnya diperoleh (4ms) dapat dicari :

  Dapat dilihat bahwa user A memiliki rasio 0.75, artinya A baru mendapatkan ¾ dari jatah waktu yang seharusnya diterima. User B memiliki rasio 1.5, artinya B telah mendapatkan 1.5 waktu dari yang

  Penjadwalan Guaranteed Schedulling (GS) Penjadwalan Guaranteed Schedulling (GS)

  1. Terdapat 5 job yang datang hampir pada saat yang

bersamaan. Estimasi waktu eksekusi (burst time) masing-

masing 10, 6, 2, 4 dan 8 menit dengan prioritas masing-

masing 3, 5, 2, 1 dan 4, dimana 5 merupakan prioritas tertinggi. Tentukan rata-rata waktu turnaround untuk penjadwalan CPU dengan menggunakan algoritma PS

  Latihan Penjadwalan Preemtive Latihan Penjadwalan Preemtive

2. Diketahui proses berikut :

  Proses Waktu eksekusi P1

  11 P2

  4 P3

  6 P4

  16 P5

  9