Anda di halaman 1dari 6

MAKALAH

“CPU SCHEDULING”
SISTEM OPERASI

DOSEN
Nono Heryana, M.kom.

DISUSUN OLEH
Hans Daniel William Tucunan
(1910631250046)

UNIVERSITAS SINGAPERBANGSA KARAWANG


FAKULTAS ILMU KOMPUTER
SISTEM INFORMASI
2020
➢ CPU Scheduling
Penjadwalan CPU adalah permasalahan menentukan proses pada ready queue yang
dialokasikan ke CPU, jadi pada penjadwalan CPU ini kita memilih proses-proses yang
berada di memori (ready to execute) dan memberikan jatah CPU ke salah satu proses
tersebut. Terdapat beberapa algoritma penjadwalan CPU, diantaranya :

1. Algoritma Penjadwalan First Come, First Served (FCFS).


2. Algoritma Penjadwalan Shortest Job First.
3. Algoritma Penjadwalan Priority Schedulling (jadwal prioritas).
4. Algoritma Penjadwalan Round Robin.

• Keputusan algoritma dilakukan ketika suatu proses :


1. Beralih dari status berjalan ke status menunggu 2.
2. Beralih dari status berjalan ke status siap
3. Beralih dari status menunggu ke siap
4. Berakhir

Setiap algoritma diukur “waktu berputar” dan “waktu menunggu” untuk membandingkan
kinerja algoritma satu dengan algoritma lain. Dan untuk mengukur waktu berputar dan waktu
menunggu, digunakan “Gant Chart” . CPU time (Burst Time) membutuhkan semua proses,
jadi proses satu dengan proses lainnya harus diketahui. Arrival time untuk setiap proses pada
ready queue juga harus diketahui.

1. Algoritma Penjadwalan First Come, First Served (FCFS)

Proses yang pertama kali meminta bagian waktu untuk menggunakan CPU akan diproses
terlebih dahulu. Dan rata-rata waktu untuk menunggu cukup tinggi. Algoritma penjadwalan
FCFS merupakan salah satu program penjadwalan non-Preemptive karena sekali CPU
disediakan pada suatu proses, maka proses tersebut akan tetap memakai CPU sampai proses
tersebut berakhir, yaitu jika proses berhenti atau meminta I/O. Kelemahan dari Algoritma
penjadwalan ini adalah adanya convoy effect yang berarti adanya proses menunggu proses
besar yang sedang dieksekusi. skema proses yang meminta CPU mendapat prioritas.
Implementasi dari FCFS mudah diatasi dengan FIFO queue.

Contoh 1 :

Misalkan proses tiba dalam urutan : P1, P2, P3. Sedangkan diagram Gantt untuk jadwal
adalah:
• Waktu tunggu untuk P1 = 0; P2 = 24; P3 = 27
• Rata-rata waktu tunggu : (0 + 24 + 27) / 3 = 17

Contoh 2 :

Misalkan proses tiba dalam urutan : P2, P3, P1. Sedangkan diagram Gantt untuk jadwal
adalah:

• Waktu tunggu untuk P1 = 6; P2 = 0; P3 = 3


• Rata-rata waktu tunggu: (6 + 0 + 3) / 3 = 3

2. Algoritma Shortest Job First Scheduler

Algoritma ini digunakan ketika CPU bebas proses yang mempunyai waktu paling sedikit
untuk menyelesaikannya mendapat pengistimewaan bagian. Tetapi, jika ada dua proses atau
lebih yang mempunyai waktu yang sama maka algoritma yang paling tepat untuk digunakan
sebagai penyelesaiannya adalah algoritma FCFS. Prinsip algoritma penjadwalan ini adalah,
proses yang memiliki CPU burst paling kecil akan diproses terlebih dahulu dari pada proses
yang lain. Oleh karena itu, algoritma ini sangat optimal jika digunakan, tetapi algoritma ini
jug memiliki kekurangan yaitu sulit untuk diimplementasikan karena sulit mengetahui CPU
burst selanjutnya. Ada dua skema dalam SJFS ini yaitu:

1. Non premptive : ketika CPU memberikan kepada proses itu tidak bisa ditunda
hingga selesai, jadi harus menunggu dan tidak boleh ditunda
2. Premptive : jika ada sebuah proses datang untuk diselesaikan dan
memiliki waktu proses lebih pendek daripada waktu proses yang sedang dilayani dan
disempurnakan oleh CPU maka proses yang waktunya lebih pendek akan
mendapatkan prioritas atau pengutamaan. Skema ini memiliki nama lain, yaitu Short
– Remaining Time First (SRTF). Contoh :

Average waiting time = (0 + 6 + 3 + 7)/4 = 4


✓ Contoh SJF Primtive SJF algoritma adalah yang paling optimal, karena ia
memberikan rata-rata minimum waktu menunggu untuk kumpulan dari proses yang
mengantri.

Average waiting time = (9 + 1 + 0 +2)/4 = 3

3. Algoritma Penjadwalan Priority Schedulling (jadwal prioritas)

a) Setiap proses akan mempunyai prioritas (bilangan integer). CPU diberikan ke


proses dengan prioritas tertinggi (integer terkecil ≡ highest priority) .
b) Preemptive : proses dapat di interupsi jika terdapat prioritas yang lebih
tinggi yang memerlukan CPU.
c) Nonpreemptive : proses dengan prioritas tinggi akan menggantikan saat
pemakain time-slice habis.
SJF adalah contoh penjadwalan prioritas dimana prioritas ditentukan oleh waktu
pemakaian CPU berikutnya

Contoh :

4. Algoritma Penjadwalan Round Robin


Setiap proses yang akan berjalan mendapat bagian waktu penggunaan CPU (time
slice/quantum) yang berbeda-beda, misalkan 10 atau 100 milidetik. Setelah
mendapatkan waktu tersebut maka proses akan segera di-preempt dan dipindahkan ke
ready queue. Jika terdapat n (sesuai jumlah proses nanti) proses di “ready queue” dan
waktu quantum q (milidetik), maka setiap proses akan mendapatkan 1/n dari waktu
CPU. Proses tidak akan menunggu lebih lama dari perumusan: (n-1)q time units.
Kinerja Algoritma :
❖ q besar => FIFO
❖ q kecil => q harus besar sehubungan dengan sakelar konteks, jika tidak
overhead terlalu tinggi
contoh :

Preemptive Shortest Job First ( PSJF )

Preemptive Shortest Job First (PSJF) memiliki nama lain yaitu Shortest Remaining Time
First. PSJF merupakan penjadwalan dengan prioritas dan dengan preempsi. Prioritas
didasarkan kepada pendeknya sisa proses. Makin pendek sisa proses makin tinggi
prioritasnya. Oleh karena itu dengan adanya penentuan ini, maka ketika tiba proses terpendek
di bagian belakang antrian tidak saja berpindah ke bagian depan antrian, melainkan juga
melalui preempsi, yaitu kegiatan mengeluarkan proses yang pada saat itu berada di dalam
proses (jika ada).

Pada PSJF, jika ada proses yang sedang disempurnakan dan diselesaikan oleh CPU dan
terdapat proses di ready queue dengan burst time yang lebih kecil daripada proses yang
sedang dieksekusi tersebut, maka proses yang sedang disempurnakan dan diselesaikan oleh
CPU akan digantikan oleh proses yang berada di ready queue tersebut. Beberapa istilah yang
akan sering muncul :

• Process : Urutan proses yang akan dilakukan

• Arrival Tim : Waktu kedatangan dari proses yang akan dilakukan

• Average Turn Around Time : Rata-rata total waktu yang kira-kira akan dihabiskan
oleh sebuah proses dari awal datang sampai selesai dieksekusi oleh CPU

• Burst Time: perkiraan waktu yang akan digunakan untuk mengeksekusi sebuah proses

• Average Waiting Time: Rata-rata waktu yang dihabiskan proses selama berada pada
status ready ( menunggu eksekusi CPU ) atau bisa dibilang menunggu antrian

Misalnya ada 2 buah proses yang datang berurutan yaitu P1 dengan arrival time pada 0.0 ms
dan burst time 10 ms, P2 dengan arrival time pada 2.0 ms dan burst time 2 ms.
Process Arrival Time Burst Time
P1 0.0 10
P2 2.0 2

waiting time PSJF nya :

P1 = 0 + ( 4 ms – 2 ms ) = 2 ms

P2 = 0

Average waiting time : (2 ms + 0 ms ) / 2 = 2 ms

Average turn around : (12 ms + 0 ) / 2 = 12 ms

Tabel Solusi

Arrival Burst Waktu Waktu Waiting Turn


Process
Time Time Mulai selesai Time Around
P1 0 10 0 12 2 12
P2 2 2 0 4 0 0
Average 2 12

Anda mungkin juga menyukai