• Tidak ada hasil yang ditemukan

Materi 3 4 5 Penjadwalan Proses dan Algoritma Full

N/A
N/A
Protected

Academic year: 2019

Membagikan "Materi 3 4 5 Penjadwalan Proses dan Algoritma Full"

Copied!
60
0
0

Teks penuh

(1)

Penjadwalan Proses

Fakultas Ilmu Komputer

(2)

Materi

Deskripsi penjadwalan

Kriteria pengukuran penjadwalan

Tipe-tipe penjadwalan

(3)

Pengertian Penjadwalan

Pengertian

Penjadwalan proses merupakan

kumpulan kebijaksanaan dan

mekanisme

di sistem operasi

yang

berkaitan dengan urutan kerja

yang

(4)

Pengertian Penjadwalan

(lanj)

Adapun

penjadwalan

bertugas

memutuskan

:

1.

Proses yang harus berjalan

2.

Kapan dan berapa lama proses itu

(5)

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

(6)

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:

(7)

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:

Menjaga agar pemroses tetap dalam keadaan

(8)

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

(9)

3.

Waktu tanggap (response

time)

Sasaran penjadwalan

pada kriteria ini adalah

meminimalkan waktu tanggap sehingga

(10)

4.

Turn Around Time

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

(11)

5.

Throughput

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

(12)

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

)

3.

Penjadwal jangka panjang

(

long

(13)

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

utama ke memory sekunder).

Penjadwalan jangka panjang

(long-termscheduller)

Penjadwalan jangka panjang bekerja terhadap

antrian batch (proses – proses dengan

penggunaan sumberdaya yang intensif) dan

(14)

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

(15)

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

(16)

Penjadwal jangka menengah

(

medium term scheduller

)

Begitu kondisi yang membuatnya

(17)
(18)

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

(19)

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

(20)
(21)

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

harus dilanjutkan menunggu jatah waktu

(22)

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

berprioritas

(23)

Algoritma Penjadwalan

1.

Nonpreemptive

FIFO (First In First Out) atau FCFS (First

Come First Serve)

SJF (Shortest Job First)

HRN (Highest Ratio Next)

(24)

Algoritma Penjadwalan

2.

Nonpreemptive

RR (Round Robin)

SRF (Shortest Remaining First)

PS (Priority Schedulling)

(25)
(26)

Penjadwalan FIFO (First In First Out)

[1]

Penjadwalan FIFO (First In First Out)

[1]

Contoh Soal:

Jika diketahui 5 macam antrian proses yaitu : A-B-C-D-E dengan waktu kedatangan semuanya 0 dan prosesor sedang tidak aktif (PP=0), lama proses berturut-turut antara lain 5,2,6,8,3.

Merupakan penjadwalan nonpreemptive dan penjadwalan tidak berprioritas. Penjadwalan FIFO adalah penjadwalan paling

sederhana, yaitu :

• Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan

• Saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai

Penjadwalan ini adil yaitu proses yang datang duluan, dilayani duluan juga. Dikatakan tidak adil karena job-job yang perlu waktu lama membuat job-job pendek menunggu. Job-job tak penting

dapat membuat job-job penting menunggu.

Merupakan penjadwalan nonpreemptive dan penjadwalan tidak berprioritas. Penjadwalan FIFO adalah penjadwalan paling

sederhana, yaitu :

• Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan

• Saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai

Penjadwalan ini adil yaitu proses yang datang duluan, dilayani duluan juga. Dikatakan tidak adil karena job-job yang perlu waktu lama membuat job-job pendek menunggu. Job-job tak penting

(27)

Penjadwalan FIFO (First In First Out)

[2]

(28)

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:

Penjadwalan FIFO (First In First Out)

[3]

(29)

Penjadwalan FIFO (First In First Out)

[4]

Penjadwalan FIFO (First In First Out)

[4]

Selesai Eksekusi = Mulai Eksekusi + Selesai Eksekusi

(30)

Penjadwalan FIFO (First In First Out)

[5]

Penjadwalan FIFO (First In First Out)

[5]

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.

(31)

Penjadwalan FIFO (First In First Out)

[5]

Penjadwalan FIFO (First In First Out)

[5]

Menentukan Turn Around Time dengan FIFO berdasarkan contoh diatas :

(32)

Penjadwalan Shortest Job First (SJF)

[1]

Penjadwalan Shortest Job First (SJF)

[1]

Penjadwalan dengan tipe prioritas tanpa preeemptive.

• Dasar prioritasnya adalah pendeknya proses.

• Makin pendek prosesnya makin tinggi prioritasnya.

Waktu tiba = sama (0)

(33)

Penjadwalan Shortest Job First (SJF)

[2]

(34)

Penjadwalan Highest Ratio Next (HRN)

[1]

Penjadwalan Highest Ratio Next (HRN)

[1]

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:

(35)

Penjadwalan Highest Ratio Next (HRN)

[1]

Penjadwalan Highest Ratio Next (HRN)

[1]

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.

(36)

Penjadwalan Highest Ratio Next (HRN)

[1]

Penjadwalan Highest Ratio Next (HRN)

[1]

Penjadwalan ini merupakan : Penjadwalan non-preemptive

Penjadwalan berprioritas dinamis.

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

(37)

Penjadwalan Highest Ratio Next (HRN)

[2]

Penjadwalan Highest Ratio Next (HRN)

[2]

B=(4-1), C= (4-2),

(38)

Penjadwalan Highest Ratio Next (HRN)

[3]

(39)

Penjadwalan Highest Ratio Next (HRN)

[4]

(40)

Penjadwalan ini merupakan :

Penjadwalan preemptive (by time ) dan berprioritas dinamis.

Penjadwalan Multiple Feedback Queues (MFQ)

(41)

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

waktu kedatangan semuanya 0, 1, 2, 3,4 dan

prosesor sedang tidak aktif (PP=0), lama proses

berturut-turut antara lain 1,5,7,9,10 (HRN)

Latihan Penjadwalan Non Preemtive

(42)

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)

Latihan Penjadwalan Non Preemtive

(43)
(44)

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.

Penjadwalan Round Robin (RR)

[1]

(45)

Penjadwalan Round Robin (RR)

[2]

Penjadwalan Round Robin (RR)

[2]

CONTOH SOAL I

Jika diketahui waktu tiba

proses sama yaitu 0,

dengan Quantum (Q) = 2.

(46)

Penjadwalan Round Robin (RR)

[2]

Penjadwalan Round Robin (RR)

[2]

A B A B C D E A C E C

0 3 6 9 11 14 17 19 22 25 26 28

(47)

Penjadwalan Round Robin (RR)

[3]

Penjadwalan Round Robin (RR)

[3]

CONTOH SOAL II

Jika diketahui waktu tiba

proses bukan 0, dengan

Quantum (Q) = 2.

(48)

Penjadwalan Round Robin (RR)

[3]

Penjadwalan Round Robin (RR)

[3]

A B A B C D E A C E C E C

0 2 4 6 7 9 10 12 13 15 17 19 21 22

NAMA

PROSES WAKTU TIBA EKSEKUSLAMA I

(49)

Penjadwalan Round Robin (RR)

[4]

Penjadwalan Round Robin (RR)

[4]

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 :

(50)

Penjadwalan Round Robin (RR)

[4]

Penjadwalan Round Robin (RR)

[4]

CONTOH SOAL IV:

(51)

Penjadwalan ini merupakan :

Penjadwalan preemptive dengan sisa waktu terpendek.Penjadwalan berprioritas dinamis.

Penjadwalan Shortest-Remaining-First (SRF)

Penjadwalan Shortest-Remaining-First (SRF)

(52)

Penjadwalan Shortest-Remaining-First (SRF)

Penjadwalan Shortest-Remaining-First (SRF)

Jawab Soal I

NAMA

(53)

Penjadwalan Shortest-Remaining-First (SRF)

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

ID WAKTU TIBA EKSEKUSILAMA

P1 0 10

P2 3 6

P3 7 12

P4 9 8

(54)

Penjadwalan Shortest-Remaining-First (SRF)

Penjadwalan Shortest-Remaining-First (SRF)

PROSE

Jawab Soal II

P1 P2 P2 P1 P1 P5 P4 P4

(55)

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 berumur pendek setelah disesuaikan ke nilai yang lebih tepat sesuai lingkungan.

Penjadwalan Priority Schedulling (PS)

[1]

(56)

Penjadwalan Priority Schedulling (PS)

[1]

Penjadwalan Priority Schedulling (PS)

[1]

Contoh :

Prioritas biasanya menyangkut masalah : waktu, memori yang dibutuhkan,

(57)

Penjadwalan Guaranteed Schedulling (GS)

[1]

Penjadwalan Guaranteed Schedulling (GS)

[1]

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

kelangsungan hidup yang baik. Contoh : misal ada n user yang sedang login, maka tiap-tiap user dijanjikan akan menerima 1/ n dari kemampuan CPU.

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

kelangsungan hidup yang baik. Contoh : misal ada n user yang sedang login, maka tiap-tiap user dijanjikan akan menerima 1/ 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

(58)

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 seharusnya ia dapatkan. Algoritma ini kemudian akan menjalankan

proses dengan rasio yang paling rendah dahulu hingga proses tersebut mendapatkan rasio melebihi rasio proses yang sebelumnya punya

rasio satu tingkat lebih tinggi darinya.

(59)

1. Terdapat 5 job yang datang hampir pada saat yang

bersamaan. Estimasi waktu eksekusi (burst time) 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 :

Diketahui waktu tiba proses diatas =0, tentukan rata-rata

turn around time (AWT) menggunakan algoritma penjadwalan RR dengan quantum time=5,

Proses Waktu eksekusi

P1 11

P2 4

P3 6

P4 16

(60)

Referensi

Dokumen terkait