MAKALAH
SISTEM OPERASI
PENJADWALAN CPU
Disusun
Oleh :
Anna Muslimah (12161508)
Nadia Fatihatuz Z. (12161528)
Navida Shofuro (12161529)
Rahma Sunita (12161531)
Uswatun Khasanah (23160332)
KATA
PENGANTAR
Puji
dan syukur kami panjatkan kepada Allah SWT, karena atas
rahmat dan hidayah-Nyalah sehingga kami
dapat menyelesaikan tugas mata kuliah Sistem Operasi yang berjudul “Penjadwalan CPU”.
Makalah
ini berisi tentang penjadwalan CPU yang
terdiri dari Konsep
Dasar, Kriteria Penjadwalan,
Algoritma Penjadwalan, Multiple-Processor Scheduling,
Real-Time Penjadwalan,
Penjadwalan Thread,
Contoh Sistem Operasi, Penjadwalan Java Thread,
dan Evaluasi Algoritma.
Semoga
makalah ini dapat menambah
wawasan yang lebih luas kepada pembaca, walaupun
makalah ini memiliki kelebihan dan
kekurangan. Penyusun mohon untuk saran dan kritiknya. Terima kasih.
Penyusun
BAB
I
PEMBAHASAN
PENJADWALAN
CPU
A.
KONSEP DASAR
Tujuan dari multi programming
adalah untuk mempunyai proses yang berjalan secara bersamaan, untuk
memaksimalkan kinerja dari CPU. Untuk sistem uniprosesor, tidak pernah ada
proses yang berjalan lebih dari satu. Bila ada proses yang lebih dari satu maka
yang lain harus mengantri sampai CPU bebas.
Penjadwalan adalah fungsi dasar dari suatu sistem operasi. Hampir semua sumber komputer dijadwalkan sebelum digunakan. CPU yaitu salah satu sumber dari komputer yang penting yang menjadi sentral dari sentral penjadwalan di sistem operasi. Maksimum utilisasi CPU diperoleh dengan multiprogramming CPU-I / O Burst Cycle – Eksekusi proses terdiri dari siklus eksekusi CPU dan I / O menunggu CPU burst distribusi.Ide dari
multi porgamming sangat sederhana. Ketika sebuah proses dieksekusi, yang lain
harus menunggu sampai selesai. Di system komputer yang sederhana CPU akan
banyak dalam posisi idle.Semua waktu ini sangat terbuang,. Dengan multiprogramming
kita mencoba menggunakan waktu secara produktif. Beberapa proses di simpan
dalam memori dalam satu waktu. Ketika proses harus menunggu, sistem operasi
mengambil CPU untuk memproses proses tersebut dan meninggalkan proses yang
sedang dieksekusi.
CPU-I/O Burst Cycle
Keberhasilan dari penjadwalan
CPU tergantung dari beberapa properti prosesor. Proses eksekusi mengandung
siklus CPU ekskusi dan I/O Wait. Proses hanya akan bolak-balik dari dua state
ini. Proses eksekusi dimulai dengan CPU Burst, setelah itu diikuti oleh I/O
burst, dan dilakukan secara bergiliran.
Durasi
dari CPU burst ini telah diukur
secara ekstensif, walaupun mereka sangat berbeda dari proses ke proses. Mereka
mempunyai frekuensi kurva yang sama seperti yang diperlihatkan gambar dibawah
ini.
Histogram CPU-burst
Times
Penjadwalan CPU
Ketika CPU mengalami waktu idle, sistem
operasi harus memilih salah satu proses untuk masuk kedalam antrian yang akan dieksekusi.
Pemilihan tersebut dilakukan oleh penjadwal jangka pendek atau penjadwal CPU.
Ada tiga tipe penjadwal yang berada bersama pada sistem
operasi kompleks, yaitu :
a.
Penjadwal jangka pendek
yang bertugas menjadwalkan alokasi pemroses di antara proses-proses yang telah
siap di memori utama.
b.
Penjadwal jangka
menengah akan menangani serta mengendalikan transisi dari suspended-toready dari
proses-proses swapping.
c.
Penjadwal jangka
panjang bekerja terhadap antrian batch dan memilih batch berikutnya yang harus
dieksekusi.
Penjadwalan memilih proses yang ada di memori serta
siap untuk dieksekusi, dan mengalokasikan CPU untuk mengeksekusinya.
Penjadwalan CPU mungkin akan dijalankan ketika
proses dalam keadaan:
1. Berubah dari running ke waiting state.
2. Berubah dari running ke ready state.
3. Berubah dari waiting ke ready.
4. Terminates.
Penjadwalan nomor 1 dan 4 bersifat non-preemptive
atau cooperative sedangkan lainnya preemptive. Dalam
penjadwalan non-preemptive sekali CPU telah dialokasikan untuk sebuah
proses, maka tidak dapat di ganggu, penjadwalan model seperti ini digunakan
oleh Windows 3.x; Windows 95 telah menggunakan penjadwalan preemptive yaitu
saat suatu proses sedang dieksekusi, CPU dapat diambil alih oleh proses lain
sehingga proses di tunda dan dilanjutkan kembali hingga proses selesai.
B. KRITERIA
PENJADWALAN
Setiap algoritma penjadwalan dapat
berbeda dengan nilai yang berbeda dan sistem komputer yang berbeda. Dalam
penjadwalan CPU diperlukan beberapa kriteria diantaranya adalah:
1.
CPU utilization : kita ingin
menjaga CPU sesibuk mungkin. CPU utilization akan mempunyai range dari 0 ke 100
persen. Di sistem yang sebenarnya seharusnya ia mempunyai range dari 40 persen
samapi 90 persen
2.
Throughput : jika CPU sibuk
mengeksekusi proses, jika begitu kerja telah dilaksanakan. Salah satu ukuran
kerja adalah banyak proses yang diselesaikan per unit waktu, disebut throughput.
Untuk proses yang lama mungkin 1 proses per jam ; untuk proses yang sebentar
mungkin 10 proses perdetik.
3.
Turnaround time : dari sudut
pandang proses tertentu, kriteria yang penting adalah berapa lama untuk
mengeksekusi proses tersebut. Interval dari waktu yang dijinkan dengan waktu
yang dibutuhkan untuk menyelesaikan sebuah prose disebut turn around time. Trun
around time adalah jumlah periode untuk menunggu untuk bisa ke memori, menunggu
di ready queue, eksekusi di CPU, dan melakukan I/O
4.
Waiting time : algoritma
penjadwalan CPU tidak mempengaruhi waktu untuk melaksanakan proses tersebut
atau I/O; itu hanya mempengaruhi jumlah waktu yang dibutuhkan proses di antrian
ready. Waiting time adalah jumlah periode menghabiskan di antrian ready.
5.
Response time : di sistem yang
interaktif, turnaround time mungkin bukan waktu yang terbaik untuk kriteria.
Sering sebuah proses bisa memproduksi output diawal, dan bisa meneruskan hasil
yang baru sementara hasil yang sebelumnya telah diberikan ke user. Ukuran yang lain
adalah waktu dari pengiriman permintaan sampai respon yang pertama di berikan.
Ini disebut response time, yaitu waktu untuk memulai memberikan respon, tetapi
bukan waktu yang dipakai output untu respon tersebut.
Biasanya yang dilakukan adalah
memaksimalkan CPU utilization dan throughput, dan minimalkan turnaround time,
waiting time, dan response time dalam kasus tertentu kita mengambil rata-rata.
C. ALGORITMA
PENJADWALAN
Masalah penjadwalan CPU adalah
memutuskan proses mana yang berada di dalam antrian ready akan dialokasikan
ke CPU. Ada beberapa algoritma penjadwalan CPU, beberapa diantaranya akan di jelaskan
pada bagian berikut ini.
First-Come First-Served (FCFS)
Algoritma ini merupakan algoritma
penjadwalan yang paling sederhana yang digunakan CPU. Dengan menggunakan
algoritma ini setiap proses yang berada pada status ready dimasukkan ke
dalam antrian FIFO sesuai dengan waktu kedatangannya. Proses yang tiba terlebih
dahulu yang akan dieksekusi terlebih dahulu.
Misalnya ada tiga buah proses yang ystem
secara bersamaan yaitu pada 0 ms, P1 memiliki burst time 24 ms, P2
memiliki burst time 5 ms, P3 memiliki burst time 3 ms. Hitunglah
wating time rata-rata dan turnaround time (burst time + waiting time)
dari ketiga proses tersebut dengan menggunakan algoritma FCFS.
Proses
|
Burst Time
|
P1
|
24 ms
|
P2
|
5 ms
|
P3
|
3 ms
|
Waiting time untuk P1 adalah 0 ms (P1 tidak perlu
menunggu), sedangkan untuk P2 adalah sebesar 24 ms (menunggu P1 selesai) dan
untuk P3 sebesar 29 ms (menunggu P1 dan P2 selesai). Waiting time rata-ratanya
adalah sebesar (0+24+29)/3 = 17,6 ms.
Turnaround time untuk P1 sebesar 24 ms, sedangkan
untuk P2 sebesar 29 ms (dihitung dari awal kedatangan P2 hingga selesai
dieksekusi), untuk p3 sebesar 32 ms. Turnaround time rata-rata untuk ketiga
proses tersebut adalah (24+29+32)/3 = 28,3 ms.
Kelemahan dari algoritma ini:
b. Terjadinya convoy effect, yaitu
proses-proses menunggu lama untuk menunggu satu proses besar yang sedang
dieksekusi oleh CPU.
Algoritma ini juga menerapkan
konsep non-preemptive, yaitu setiap proses yang sedang dieksekusi oleh CPU
tidak dapat di-interrupt oleh proses yang lain.
Shortest-Job First (SJF)
Algoritma ini mempunyai cara
penjadwalan yang berbeda dengan FCFS. Dengan algoritma ini maka setiap proses
yang ada di antrian ready akan dieksekusi berdasarkan burst time terkecil.
Hal ini mengakibatkan waiting time yang pendek untuk setiap proses sistem hal tersebut maka waiting
time rata-ratanya juga menjadi pendek, sehingga dapat dikatakan bahwa
algoritma ini adalah algoritma yang optimal.
Ada beberapa kekurangan dari algoritma ini yaitu:
• Kesulitan untuk memprediksi burst time proses yang
akan dieksekusi selanjutnya .
• Proses yang mempunyai burst time yang besar
akan memiliki waiting time yang besar pula
karena yang dieksekusi terlebih dahulu adalah proses dengan burst
time yang lebih kecil.
Algoritma
ini dapat dibagi menjadi dua bagian yaitu:
1. Preemptive.
Jika ada proses yang sedang dieksekusi oleh CPU dan terdapat proses di antrian ready dengan burst time yang
lebih kecil daripada proses yang sedang dieksekusi tersebut, maka proses yang
sedang dieksekusi oleh CPU akan digantikan oleh proses yang berada di antrian ready
tersebut. Preemptive SJF sering disebut juga Shortest-Remaining-Time-First
scheduling.
Proses
|
Arrival
Time
|
Burst Time
|
P1
|
0
ms
|
7
ms
|
P2
|
2
ms
|
4
ms
|
P3
|
4
ms
|
1
ms
|
P4
|
5
ms
|
4
ms
|
2. Non-preemptive.
CPU tidak memperbolehkan proses yang ada di antrian ready untuk
menggeser proses yang sedang dieksekusi oleh CPU meskipun proses yang baru
tersebut mempunyai burst time yang lebih kecil.
Misalnya ada empat buah proses dengan masing-masing
waktu kedatangan burst time di jelaskan pada yste di bawah ini. Hitunglah
waiting time rata-rata dan turnaround time dari keempat proses tersebut dengan
mengunakan algoritma SJF.
Solusi preemptive:
Rata-rata waiting time adalah (9 + 1 + 0 +2)/4 = 3,
dimana :
P1: (0-0+11-2) = 9
P2: (2-2+5-4) = 1
P3: (4-4) = 0
P4: (7-5) = 2
Rata-rata turnaround
time adalah ((9+7)+(1+4)+(0+1)+(4+2))/4 = 7
Solusi Non-preemptive:
Rata-rata waiting time adalah (0 + 6 + 3 + 7)/4 = 4,
dimana:
P1: (0-0) = 0
P2: (8-2) = 6
P3: (7-4) = 3
P4: (12-5) = 7
Rata-rata turnaround
time adalah ((0+7)+(6+4)+(3+1)+(7+4))/4 = 8
Meskipun algoritma ini optimal, namun pada
kenyataannya sulit untuk diimplementasikan karena sulit untuk mengetahui
panjang CPU burst berikutnya. Namun nilai ini dapat diprediksi. CPU burst berikutnya
biasanya diprediksi sebagai suatu rata-rata eksponensial yang ditentukan dari CPU
burst sebelumnya atau “Exponential Average”.
Penjadwalan dengan prioritas (Priority Scheduling)
Algoritma SJF adalah suatu kasus
khusus dari penjadwalan berprioritas. Tiap-tiap proses dilengkapi dengan nomor
prioritas (integer). CPU dialokasikan untuk proses yang memiliki prioritas
paling tinggi (nilai integer terkecil biasanya merupakan prioritas terbesar).
Jika beberapa proses memiliki prioritas yang sama, maka akan digunakan algoritma
FCFS. Penjadwalan berprioritas terdiri dari dua skema yaitu non preemptive dan
preemptive. Jika ada proses P1 yang ystem pada saat P0 sedang
berjalan, maka akan dilihat prioritas P1. Seandainya prioritas P1 lebih
besar dengan prioritas P0, maka pada non-preemptive, algoritma
tetap akan menyelesaikan P0 sampai habis CPU burst-nya, dan
meletakkan P1 pada posisi head queue. Sedangkan pada preemptive,
P0 akan dihentikan dulu, dan CPU ganti dialokasikan untuk P1.
Misalnya terdapat lima proses P1, P2, P3,
P4 dan P5 yang sistem secara
berurutan dengan CPU burst dalam milidetik.
Process
|
Burst Time
|
Priority
|
P1
|
10
|
3
|
P2
|
1
|
1
|
P3
|
2
|
3
|
P4
|
1
|
4
|
P5
|
5
|
2
|
Waktu tunggu untuk P1
adalah 6, P2 adalah 0, P3 adalah 16, P4 adalah 18 dan P5
adalah
1 sehingga rata-rata
waktu tunggu adalah (6 + 0 +16 + 18 + 1)/5 = 8.2 milidetik.
Round-Robin Scheduling
Konsep dasar dari algoritma ini
adalah dengan menggunakan time-sharing. Pada dasarnya algoritma ini sama dengan
FCFS, hanya saja bersifat preemptive. Setiap proses mendapatkan waktu CPU yang
disebut dengan waktu quantum (quantum time) untuk membatasi waktu
proses, biasanya 1-100 milidetik. Setelah waktu habis, proses ditunda dan
ditambahkan pada ready queue.
Jika suatu proses memiliki CPU
burst lebih kecil dibandingkan dengan waktu quantum, maka proses tersebut akan melepaskan
CPU jika telah selesai bekerja, sehingga CPU dapat segera digunakan oleh proses
selanjutnya. Sebaliknya, jika suatu proses memiliki CPU burst yang lebih besar
dibandingkan dengan waktu quantum, maka proses tersebut akan dihentikan
sementara jika sudah mencapai waktu quantum, dan selanjutnya mengantri kembali
pada posisi ekor dari ready queue, CPU kemudian menjalankan proses berikutnya.
Jika terdapat n proses pada
ready queue dan waktu quantum q, maka setiap proses mendapatkan 1/n dari
waktu CPU paling banyak q unit waktu pada sekali penjadwalan CPU. Tidak
ada proses yang menunggu lebih dari (n-1)q unit waktu. Performansi
algoritma round robin dapat dijelaskan sebagai berikut, jika q besar, maka yang
digunakan adalah algoritma FIFO, tetapi jika q kecil maka sering terjadi
context switch.
Misalkan ada 3 proses: P1, P2, dan
P3 yang meminta pelayanan CPU dengan
quantum-time sebesar
4 milidetik.
Process
|
Burst Time
|
P1
|
24
|
P2
|
3
|
P3
|
3
|
Waktu tunggu untuk P1 adalah 6, P2 adalah
4, dan P3 adalah 7 sehingga rata-rata waktu
tunggu adalah (6 + 4 + 7)/3 = 5.66 milidetik.
Algoritma Round-Robin ini di satu sisi memiliki
keuntungan, yaitu adanya keseragaman waktu. Namun di sisi lain, algoritma ini
akan terlalu sering melakukan switching seperti yang terlihat pada Gambar 4-4.
Semakin besar quantum-timenya maka switching yang terjadi akan semakin sedikit.
Waktu turnaround juga tergantung ukuran waktu
quantum. Seperti pada Gambar 4-5, rata-rata waktu turnaround tidak meningkat
bila waktu quantum dinaikkan. Secara umum, rata-rata waktu turnaround dapat
ditingkatkan jika banyak proses menyelesaikan CPU burst berikutnya sebagai satu
waktu quantum. Sebagai contoh, terdapat tiga proses masing-masing 10 unit waktu
dan waktu quantum 1 unit waktu, rata-rata waktu turnaround adalah 29. Jika
waktu quantum 10, sebaliknya, rata-rata waktu turnaround turun menjadi 20.
Antrian Multilevel (Multilevel Queue)
Ide dasar dari algoritma ini adalah
berdasarkan pada system
prioritas proses. Prinsipnya adalah, jika setiap proses dapat dikelompokkan
berdasarkan prioritasnya, maka akan didapati queue seperti pada gambar berikut:
Gambar 3 Penjadwalan multilevel queue
Dari gambar tersebut terlihat bahwa
akan terjadi pengelompokan-pengelompokan proses-proses berdasarkan
prioritasnya. Kemudian muncul gagasan untuk menganggap kelompok-kelompok tersebut
sebagai sebuah antrian-antrian kecil yang merupakan bagian dari antrian
keseluruhan proses, yang sering disebut dengan algoritma multilevel queue.
Dalam hal ini dapat dilihat bahwa
seolah-olah algoritma dengan prioritas yang dasar adalah algoritma multilevel
queue dimana setiap antrian akan berjalan dengan algoritma FCFS dan dapat
diketahui bahwa algoritma FCFS memiliki banyak kelemahan, oleh karena itu dalam
prakteknya, algoritma multilevel queue memungkinkan adanya penerapan algoritma
internal dalam masing-masing subantriannya untuk meningkatkan kinerjanya,
dimana setiap sub-antrian bisa memiliki algoritma internal yang berbeda.
Berawal dari priority scheduling,
algoritma ini pun memiliki kelemahan yang sama dengan priority scheduling,
yaitu sangat mungkin bahwa suatu proses pada queue dengan prioritas rendah bisa
saja tidak mendapat jatah CPU. Untuk mengatasi hal tersebut, salah satu caranya
adalah dengan memodifikasi algoritma ini dengan adanya jatah waktu maksimal
untuk tiap antrian, sehingga jika suatu antrian memakan terlalu banyak waktu,
maka prosesnya akan dihentikan dan digantikan oleh antrian dibawahnya, dan
tentu saja batas waktu untuk tiap antrian bisa saja sangat berbeda tergantung
pada prioritas masing-masing antrian.
Multilevel Feedback Queue
Algoritma ini mirip sekali dengan
algoritma Multilevel Queue. Perbedaannya ialah algoritma ini mengizinkan proses
untuk pindah antrian. Jika suatu proses menyita CPU terlalu lama, maka sistem akan dipindahkan ke
antrian yang lebih rendah. Ini menguntungkan proses interaksi, karena proses ini
hanya memakai waktu CPU yang sedikit. Demikian pula dengan proses yang menunggu
terlalu lama. Proses ini akan dinaikkan tingkatannya.
Biasanya prioritas tertinggi
diberikan kepada proses dengan CPU burst terkecil, dengan begitu CPU akan
dimanfaatkan penuh dan I/O dapat terus sibuk. Semakin rendah tingkatannya,
panjang CPU burst proses juga semakin besar.
Algoritma ini didefinisikan melalui beberapa
parameter, antara lain:
• Jumlah antrian
• Algoritma penjadwalan tiap antrian
• Kapan menaikkan proses ke antrian yang lebih
tinggi
• Kapan menurunkan proses ke antrian yang lebih
rendah
• Antrian mana yang akan dimasuki proses yang
membutuhkan
Gambar
4 Antrian multilevel feedback
Dengan pendefinisian seperti tadi
membuat algoritma ini sering dipakai. Karena algoritma ini mudah dikonfigurasi
ulang supaya cocok dengan ystem. Tapi untuk mengatahui mana penjadwal terbaik,
kita harus mengetahui nilai parameter tersebut. Multilevel feedback queue
adalah salah satu algoritma yang berdasar pada algoritma ystemic queue.
Perbedaan mendasar yang membedakan multilevel feedback queue dengan multilevel
queue biasa adalah terletak pada adanya kemungkinan suatu proses berpindah dari
satu antrian ke antrian lainnya, entah dengan prioritas yang lebih rendah ataupun
lebih tinggi, misalnya pada contoh berikut.
·
Semua proses yang baru system akan diletakkan
pada antrian 0 (quantum = 8 ms)
·
Jika suatu proses tidak
dapat diselesaikan dalam 8 ms, maka proses tersebut akan dihentikan dan
dipindahkan ke antrian pertama (quantum = 16 ms)
·
Antrian pertama hanya
akan dikerjakan jika tidak ada lagi proses di antrian 0, dan jika suatu proses
di antrian pertama 1 tidak selesai dalam 16 ms, maka proses tersebut akan
dipindahkan ke antrian kedua
·
Antrian kedua akan
dikerjakan bila antrian 0 dan 1 kosong, dan akan berjalan dengan algoritma FCFS.
Disini terlihat bahwa ada
kemungkinan terjadinya perpindahan proses antar queue, dalam hal ini ditentukan
oleh time quantum, namun dalam prakteknya penerapan algoritma multilevel
feedback queue akan diterapkan dengan mendefinisikan terlebih dahulu
parameter-parameternya, yaitu:
a. Jumlah antrian
b. Algoritma internal tiap antrian
c. Aturan sebuah proses naik ke antrian yang lebih
tinggi
d. Aturan sebuah proses turun ke antrian yang lebih
rendah
e. Antrian yang akan dimasuki tiap proses yang baru ystem
Berdasarkan hal-hal di atas maka algoritma ini dapat
digunakan secara fleksibel dan diterapkan sesuai dengan kebutuhan ystem. Pada
masa sekarang ini algoritma multilevel feedback queue adalah salah satu yang
paling banyak digunakan.
D.
MULTIPLE PROCESSOR SCHEDULING
·
Aturan yang berbeda untuk prosesor
homogen atau heterogen.
·
Load berbagi dalam pembagian
kerja, seperti
semua prosesor yang
memiliki
jumlah yang sama untuk
melakukannya.
·
Setiap
processor dapat menjadwalkan dari ready
queue umum (setara
mesin) ATAU bisa
menggunakan pengaturan budak master.
Dalam
ilmu komputer,
penjadwalan multiprosesor adalah masalah optimasi
NP-Lengkap. Maka
perumusan masalahnya adalah: “Diberikan J set
pekerjaan di mana ji pekerjaan
telah li panjang dan
jumlah prosesor mi, apa mungkin
waktu minimum yang diperlukan untuk
jadwal semua pekerjaan di J
pada prosesor m sedemikian
sehingga tidak ada tumpang tindih?”
Aplikasi dari masalah
ini sangat banyak, tetapi, seperti yang disarankan
dengan nama masalah,
paling kuat terkait
dengan penjadwalan tugas komputasi dalam
lingkungan multiprosesor.
E.
PENJADWALAN
REAL-TIME
·
Hard real-time
sistem – yang
dibutuhkan untuk menyelesaikan
tugas yang kritis dalam jumlah dijamin
waktu.
·
Soft real-time
komputasi – mensyaratkan
bahwa proses yang
kritis menerima prioritas di atas yang kurang
beruntung.
Sebuah operasi real-time sistem (RTOS) adalah sebuah
sistem operasi (OS) yang
dimaksudkan
untuk melayani permintaan aplikasi real-time.
Karakteristik kunci dari RTOS adalah
tingkat konsistensinya tentang jumlah waktu yang diperlukan untuk menerima dan
menyelesaikan tugas suatu aplikasi, variabilitas adalah jitter. Sebuah sistem real-time operasi yang sulit telah jitter kurang dari satu sistem operasi
soft real-time. Tujuan utama desain bukan throughput yang tinggi, melainkan jaminan kategori
kinerja lunak atau keras. Sebuah RTOS yang biasanya atau umumnya dapat memenuhi batas waktu adalah OS
real-time lembut, tapi jika dapat memenuhi batas waktu deterministik itu adalah
OS real-time keras.
A real-time OS memiliki algoritma lanjutan untuk
penjadwalan. Penjadwal memungkinkan fleksibilitas orkestrasi, lebih luas
komputer sistem prioritas proses, tetapi real-time OS lebih sering
didedikasikan untuk satu set sempit aplikasi. Faktor kunci dalam OS real-time
adalah latency interrupt, latency minimal dan benang minimal switching, tetapi
real-time OS dinilai lebih untuk seberapa cepat atau seberapa kemampuannya dalam merespon jumlah pekerjaan yang dilakukan dalam jangka waktu tertentu.
F.
PENJADWALAN THREAD
·
Lokal Penjadwalan
– Bagaimana perpustakaan
benang yang memutuskan benang untuk
menempatkan ke suatu LWP yang tersedia.
·
Global Penjadwalan
– Bagaimana kernel
yang memutuskan untuk menjalankan kernel thread berikutnya
Threads dapat dijadwalkan,
dan perpustakaan benang
menyediakan beberapa fasilitas untuk menangani dan
mengendalikan penjadwalan benang. Hal ini juga
menyediakan fasilitas untuk mengontrol penjadwalan
threads selama operasi
sinkronisasi seperti mengunci sebuah mutex. Setiap
thread telah menetapkan sendiri parameter penjadwalan.
Parameter ini dapat diatur menggunakan atribut objek
thread sebelum thread
dibuat. Parameter juga dapat dinamis set
selama eksekusi thread.
Mengontrol penjadwalan thread
bisa menjadi tugas yang rumit. Karena
scheduler
menangani semua benang
systemwide, parameter penjadwalan dari thread
berinteraksi dengan orang-orang dari semua thread
lain dalam proses
dan dalam proses
lainnya. Fasilitas berikut ini adalah yang pertama digunakan jika Anda ingin
mengontrol penjadwalan thread.
Perpustakaan thread memungkinkan
programmer untuk mengontrol
penjadwalan pelaksanaan thread dengan cara berikut:
·
Dengan menetapkan atribut
penjadwalan saat membuat
thread
·
Dengan dinamis mengubah
penjadwalan atribut thread dibuat
·
Dengan mendefinisikan efek
mutex pada penjadwalan
thread ketika membuat
mutex (dikenal sebagai
penjadwalan sinkronisasi)
·
Dengan dinamis mengubah
penjadwalan thread selama operasi sinkronisasi
(dikenal sebagai penjadwalan
sinkronisasi)
G. CONTOH
SISTEM OPERASI
Solaris
scheduling
Proses Penjadwalan Solaris
Pada Solaris, prioritas tertinggi dijadwalkan pertama.
Kernel thread informasi penjadwalan dapat diungkapkan dengan ps-elcL. Sebuah proses bisa ada di salah satu
dari status berikut: berjalan, tidur atau siap. Kernel Threads Model Solaris 10 kernel threads model terdiri dari objek utama
berikut:
·
Kernel thread: Ini adalah apa yang dijadwalkan /
dijalankan pada prosesor
·
User benang: Benang user-level negara dalam proses.
·
Proses: Objek yang melacak lingkungan eksekusi dari
sebuah program.
·
Proses (LWP) ringan: Eksekusi konteks untuk thread
pengguna. Associates thread
pengguna dengan
kernel thread.
Pada Solaris 10
kernel, kernel layanan dan tugas dijalankan sebagai thread kernel. Ketika
benang pengguna dibuat, LWP terkait dan inti thread juga dibuat dan terkait
dengan thread pengguna.
(Model tunggal tingkat pertama kali diperkenalkan pada Solaris 8’s perpustakaan benang alternatif, yang dibuat default di Solaris 9. Sebelum itu, benang pengguna harus mengikat ke LWP yang tersedia sebelum menjadi layak untuk berjalan di prosesor.)
Model Prioritas
(Model tunggal tingkat pertama kali diperkenalkan pada Solaris 8’s perpustakaan benang alternatif, yang dibuat default di Solaris 9. Sebelum itu, benang pengguna harus mengikat ke LWP yang tersedia sebelum menjadi layak untuk berjalan di prosesor.)
Model Prioritas
Kernel Solaris sepenuhnya RTI. Ini berarti bahwa semua thread, termasuk
thread yang mendukung kegiatan sendiri kernel, dapat ditangguhkan untuk
memungkinkan thread-prioritas yang lebih tinggi untuk menjalankan.
Solaris mengakui 170 prioritas yang berbeda, 0-169. Dalam prioritas
tersebut jatuh beberapa kelas penjadwalan yang berbeda:
·
TS (timeshare): Ini adalah kelas standar untuk proses dan
kernel thread terkait. Prioritas dalam rentang kelas 0-59, dan disesuaikan
secara dinamis dalam upaya untuk mengalokasikan sumber daya prosesor secara
merata.
·
IA (interaktif): Ini adalah versi yang disempurnakan dari
kelas TS yang berlaku untuk jendela di-fokus di GUI. Tujuannya adalah untuk
memberikan sumber daya tambahan untuk proses terkait dengan jendela tertentu.
Seperti TS, range IA adalah 0-59.
·
FSS (wajar-saham scheduler): Kelas ini adalah berbagi
berbasis bukan prioritas berbasis. Threads dikelola oleh FSS dijadwalkan
berdasarkan saham yang terkait dan penggunaan prosesor. FSS juga memiliki
jangkauan 0-59.
·
FX (tetap prioritas): Prioritas untuk benang yang terkait
dengan kelas ini adalah tetap. (Dengan kata lain, mereka tidak bervariasi
secara dinamis selama masa pakai benang.) FX juga memiliki jangkauan 0-59.
·
SYS (sistem): Kelas SYS digunakan untuk jadwal thread
kernel. Threads di kelas ini adalah “terikat” benang, yang berarti bahwa mereka
berjalan sampai mereka blok atau lengkap. Prioritas untuk SYS benang berada di
kisaran 60-99.
·
RT (real-time): Thread di kelas RT adalah tetap
prioritas, dengan kuantum waktu tetap. Prioritas mereka berkisar 100-159,
sehingga benang yang RT akan mendahului thread sistem.
Dari jumlah tersebut, FSS dan FX dilaksanakan di Solaris
9. (Pilihan ekstra-biaya untuk Solaris 8 termasuk SHR (saham-based) kelas,
tetapi ini telah dimasukkan ke dalam FSS.)
Windows XP
scheduling
H.
PENJADWALAN
JAVA THREAD
Fitur:
1. JVM menggunakan algoritma jadwal, penjadwalan preemptive berdasarkan prioritas.
2. Semua thread Java mempunyai prioritas dan thread dengan prioritas tertinggi ia
1. JVM menggunakan algoritma jadwal, penjadwalan preemptive berdasarkan prioritas.
2. Semua thread Java mempunyai prioritas dan thread dengan prioritas tertinggi ia
dijadwalkan
untuk dijalankan oleh JVM.
3.
Dalam kasus dua thread memiliki prioritas yang sama FIFO
sebuah pemesanan diikuti.
Sebuah thread yang berbeda dipanggil untuk berjalan dalam satu kasus peristiwa berikut terjadi:
Sebuah thread yang berbeda dipanggil untuk berjalan dalam satu kasus peristiwa berikut terjadi:
1. sedang berjalan
keluar thread yaitu negara Runnable baik balok atau
berakhir.
2.
Sebuah thread
dengan prioritas lebih tinggi daripada thread yang sedang berjalan memasuki
negara Runnable. Benang prioritas yang lebih rendah adalah mendahului dan
thread dengan prioritas tinggi dijadwalkan untuk berjalan.
Waktu Mengiris tergantung pada pelaksanaannya.
Sebuah thread
sukarela dapat menghasilkan kontrol melalui hasil () method. Setiap kali thread
yeilds kontrol CPU thread lain dengan prioritas yang sama dijadwalkan untuk
berjalan. Sebuah thread sukarela menghasilkan kontrol CPU disebut Koperasi
Multitasking.
Thread Prioritas
JVM memilih untuk menjalankan thread Runnable dengan
prioritas tertinggi.
Semua thread Java mempunyai prioritas dalam kisaran 1-10.
Prioritas utama adalah 10, prioritas terendah adalah
1.Normal yaitu prioritas. Prioritas secara default adalah 5.
Thread.MIN_PRIORITY – prioritas thread minimum
Thread.MAX_PRIORITY – prioritas thread maksimum
Thread.NORM_PRIORITY – prioritas thread maksimum
Setiap kali Java thread baru dibuat ia mempunyai prioritas yang sama
seperti benang yang menciptakannya.Thread prioritas dapat diubah oleh
setpriority () method. Java Berdasarkan Round-Robin Scheduler
I.
EVALUASI
ALGORITMA
Bagaimana memilih algoritma
penjadwalan untuk sistem tertentu? Masing-masing algoritma mempunyai
parameter-parameter tersendiri. Pemilihan algoritma penjadwalan merupakan hal
yang sulit. Persoalan pertama adalah mendefinisikan kriteria untuk pemilihan
algoritma.
Kriteria-kriteria yang sering digunakan adalah fairness
(keadilan), efisiensi, waktu tanggap, turn around time, dan throughput.
Kriteria kemudian dapat menjadi :
·
Memaksimumkan utilisasi pemroses dengan konstrain waktu
tanggap maksismum adalah 500 milidetik, atau
·
Memaksimumkan throughput bahwa turn around time adalah
berbanding linear dengan waktu eksekusi total
Begitu kriteria pemilihan telah didefinisikan, kita dapat
mengevaluasi beragam algoritma. Terdapat sejumlah metode evaluasi untuk
melakukan hal ini, yaitu :
1. Pemodelan deterministik
Pemodelan deterministik merupakan
evaluasi analitis. Evaluasi analitis menggunakan algoritma dan beban kerja sistem
untuk menghasilkan satu rumus atau angka yang menunjukkan kinerja algoritma
untuk beban kerja itu. Pemodelan deterministik menggunakan suatu beban kerja
tertentu yang telah ditentukan dan mendefinisikan kinerja algoritma untuk beban
kerja itu.
2. Pemodelan antrian
Sistem komputer dipandang sebagai
satu jaringan pelayan (server). Masing-masing pelayan mempunyai satu antrian
dari proses-proses yang menunggu layanan. Pemroses adalah satu pelayan dengan
satu antrian proses yang siap menerima layanan, begitu juga perangkat I/O
adalah antrian perangkat. Dengan mengetahui rate kedatangan dan rate layanan,
maka kita dapat mengkomputasi utilisasi, panjang antrian rata-rata, waktu
tunggu rata-rata dan sebagainya. Bidang studi ini adalah analisis jaringan
antrian (queueing network analysis).
3. Simulasi
Simulasi dapat memberikan evaluasi
algoritma penjadwalan dengan lebih akurat. Simulasi melibatkan pemrograman model
system komputer. Dengan simulasi akan diperoleh statistik yang menyatakan
kinerja algoritma
4. Implementasi
Simulasi pun hanya memberikan
akurasi yang terbatas. Satu-satunya cara paling akurat dalam mengevaluasi
algoritma penjadwalan adalah mengimplementasikannya, menjalankannya pada sistem
nyata dan melihatnya bekerja. Pendekatan ini adalah menjalankan algoritma nyata
di sistem nyata untuk keperluan evaluasi pada beban atau kondisi operasi yang
nyata
Masing-masing cara evaluasi
algoritma penjadwalan mempunyai kelebihan dan kelemahan
BAB
II
PENUTUP
Kesimpulan
Penjadwalan CPU adalah
pemilihan proses dari antrian ready untuk dapat dieksekusi. Algoritma yang
digunakan dalam penjadulan CPU ada bermacam-macam. Diantaranya adalah First
Come Firsrt Serve ( FCFS ), merupakan algoritma sederhana dimana proses yang
datang duluan maka dia yang dieksekusi pertama kalinya. Algoritma lainnya
adalah Sorthest Job First ( SJF ), yaitu penjadulan CPU dimana proses yang
paling pendek dieksekusi terlebih dahulu. Kelemahan algoritma SJF adalah tidak
dapat menghindari starvation. Untuk itu diciptakan algoritma Round Robin ( RR ).
Penjadulan CPU dengan Round Robin adalah membagi proses berdasarkan waktu
tertentu yaitu waktu quantum q. Setelah proses menjalankan eksekusi selama q
satuan waktu maka akan digantikan oleh proses yang lain. Permasalahannya adalah
bila waktu quantumnya besar sedang proses hanya membutuhkan waktu sedikit maka
akan membuang waktu. Sedang bila waktu quantum kecil maka akan memakan waktu
saat contect-swicth. Penjadwalan FCFS adalah nonpreemtive yaitu tidak dapat
diinterupsi sebelum proses dieksekusi seluruhnya. Penjadwalan RR adalah
preemtive yaitu dapat dieksekusi saat prosesnya masih dieksekusi. Sedangkan
penjadwalan SJF dapat berupa nonpreemtive dan preemtive.
DAFTAR PUSTAKA
http://wandiso.blogspot.co.id/2011/04/penjadwalan-cpu.html
http://modulmakalah.blogspot.co.id/2015/11/pengertian-dan-tipe-penjadwalan-cpu.html
http://mahasiswa-masagitu.blogspot.co.id/2014/11/penjadwalan-cpu-pada-sistem-operasi.html
http://arminlawi.my-php.net/s1-pso/D42109254.docx
Tidak ada komentar:
Posting Komentar