Nama : Zebedeus Cheyso
NIM : 1605551098
Matkul : Network Operating System
Dosen : I Putu Agus Eka Pratama
Teknologi Informasi
Fakultas Teknik
Universitas Udayana
Scheduling
Definisi
“satu atau beberapa
buah aturan, mekanisme, dan prosedur di dalam sistem operasi (melibatkan
kernel, aplikasi, process) terkait dengan urutan kerja yang dilakukan oleh
komputer dan sistem komputer ”.
Perlu Scheduling
1.Kernel (inti sistem
operasi) memiliki utilitas, fungsi – fungsi utama, dan dukungan terhadap
software dan hardware (sesuai dengan arsitektur komputer : 32 atau 64)
2.Process pada sistem
operasi, di mana Kernel merupakan program komputer yang menjadi inti dari sebuah
sistem operasi komputer, dengan kontrol terhadap segala hal atas sistem
tersebut.
3.Multiprogramming pada
sistem operasi
Multiprogramming adalah
kegiatan menjalankan beberapa program pada memori pada satu waktu. Untuk
meningkatkan keseluruhan kemampuan dari sistem komputer, para developer
memperkenalkan konsep multiprogramming. Dengan multiprogramming, beberapa tugas
disimpan dalam memori dalam satu waktu; CPU digunakan secara bergantian
sehingga menambah utilisasi CPU dan mengurangi total waktu yang dibutuhkan
untuk menyelesaikan tugas-tugas tersebut.
Melayani banyak program yang tidak ada hubungannya
satu sama lain dan dijalankan sekaligus dalam satu komputer yang sama.
Pelaksanaan instruksi yang diterapkan adalah:
- program dimuat ke dalam memori,
- program dijalankan sampai mengakses perangkat I/O,
- berpindah (switch) ke pekerjaan lain,
- langkah tersebut berulang terus menerus,
- untuk proses perpindahan (switching), dilaksanakan oleh software.
- program dimuat ke dalam memori,
- program dijalankan sampai mengakses perangkat I/O,
- berpindah (switch) ke pekerjaan lain,
- langkah tersebut berulang terus menerus,
- untuk proses perpindahan (switching), dilaksanakan oleh software.
Contoh nya adalah menjalankan browser bersamaan
dengan media player atau programm pengolah gambar seperti photoshop.
Yang di maksud dengan multi programming di sini adalah CPU menjalankan beberapa program sekaligus
Yang di maksud dengan multi programming di sini adalah CPU menjalankan beberapa program sekaligus
Multiprocessing adalah
istilah teknologi informasi dalam bahasa Inggris yang merujuk kepada kemampuan
pemrosesan komputer yang dilakukan secara serentak. Hal ini dimungkinkan dengan
menggunakan dua CPU atau lebih dalam sebuah sistem komputer. Istilah ini juga
dapat merujuk kepada dukungan sebuah sistem untuk mendukung lebih dari satu
prosesor dan mengalokasikan tugas kepada prosesor-prosesor tersebut.
Multiprocessing juga
kadang merujuk kepada kemampuan eksekusi terhadap beberapa proses perangkat
lunak dalam sebuah sistem secara serentak, jika dibandingkan dengan sebuah
proses dalam satu waktu, meski istilah multiprogramming lebih sesuai untuk
konsep ini. Multiprocessing sering diimplementasikan dalam perangkat keras
(dengan menggunakan beberapa CPU sekaligus), sementara multiprogramming sering
digunakan dalam perangkat lunak. Sebuah sistem mungkin dapat memiliki dua
kemampuan tersebut, salah satu di antaranya, atau tidak sama sekali.
Contoh nya adalah pada
zaman sekarang banyak processor yang sudah berteknologi dual core sampai quad
core. ini bertujuan untuk hemat waktu.
Maksudnya adalah core
dalam processor menjalankan tugas nya masing2
Peran Scheduling
·
Memaksimalkan throughput.
·
Memaksimalkan kinerja dan waktu
processor.
·
Efsiensi process.
·
Keadilan (fairness) pada semua job dan
aplikasi
·
Meminimalkan waktu tanggap (time
respond).
·
Optimalisasi sumber daya (resource).
Penjadwalan sendiri
dibagi beberapa jenis yaitu :
- Penjadwalan jangka Panjang
Penjadwalan Jangka
Panjang (Long Term) bisa diartikan sebagai suatu penambahan proses baru ke
dalam sekelompok proses yang akan dieksekusi oleh computer. Penjadwalan ini
terjadi ketika suatu proses yang baru diciptakan dan masih berlokasi di dalam
HDD (Harddisk). Frekuensi yang dilakukan oleh penjadwalan ini juga lebih
panjang dari pada medium-term schedulingnya serta apabila penjadwalan tersebut
dalam menambah suatu proses membuat coarse-grained.
Pada penjadwalan jangka
panjang apabila makin banyak proses yang diciptakan maka kualitas tiap layanan
untuk setiap proses berkurang.
- Penjadwalan Jangka menengah
Penjadwalan jangka
menengah atau medium-term adalah suatu keputusan menambah suatu proses secara
keseluruhan/sebagian ke dalam memori utama, scheduling tersebut terjadi saat
swapping. Frekuensinya juga lebih sering dilakukan dari pada long-term
schedulingnya.
- Penjadwalan jangka pendek
Penjadwalan jangka
pendek atau short term adalah keputusan di mana memilih salah satu proses yang
akan dieksekusi diantara beberapa jumlah proses yang sudah atau telah siap
dieksekusi. Scheduling ini sangat sering dilakukan dan penjadwalan tersebut
juga mempunyai tugas untuk mengirimkan job (dispatcher).
- Penjadwalan I/O
Penjadwalan I/O sendiri
berarti memilih proses yang mana yang akan diberi kesempatan terlebih dahulu
untuk menggunakan I/O device diantara beberapa proses yang akan sama-sama
menggunakan device tersebut.
Scheduling
dan State Process
Scheduling selalu
berhubungan dengan process, sehingga juga berhubungan dengan kondisi (state)
dari process.
Algoritma
penjadwalan berfungsi untuk menentukan proses manakah yang ada di ready
queue yang akan dieksekusi oleh CPU.
Bagian berikut ini akan
memberikan ilustrasi beberapa algoritma penjadwalan,baik berupa operasiannya
atau contoh pengoperasiannya
1. Round
Robin.
Algoritma ini menggilir
proses yang ada di antrian. Proses akan mendapat jatah sebesar time
quantum. Jika time quantum-nya habis atau proses sudah selesai,
CPU akan dialokasikan ke proses berikutnya. Jadi,,semua proses mendapat jatah
waktu yang sama dari CPU yaitu (1/n), dan tak akan menunggu lebih lama dari
(n-1)q dengan q adalah lama 1 quantum.
Cukup adil khan..hehe
(soalnya tidak ada proses yang diprioritaskan).
Urutan Kejadian
Algoritma Round Robin:
2.Priority
Scheduling.
Priority Scheduling merupakan
algoritma penjadwalan yang mendahulukan proses yang memiliki prioritas
tertinggi. Setiap proses memiliki prioritasnya masing-masing.Priority
scheduling juga dapat dijalankan secara preemptive maupun non-preemptive.Kelemahan
pada priority scheduling adalah dapat terjadinya indefinite
blocking( starvation). Suatu proses dengan prioritas yang
rendah,memiliki kemungkinan untuk tidak dieksekusi jika terdapat proses lain
yang memiliki prioritas lebih tinggi darinya.
Jadi bisa di bilang
bahwa penjadwalan ini memilih prioritas yg lebih tinggi,jika ada prioritas yang
lebih rendah,maka tidak akan di eksekusi.Solusi dari permasalahan ini adalah aging,
yaitu meningkatkan prioritas dari setiap proses yang menunggu dalam queue secara
bertahap.
Contoh Permasalahan
dalam sistem : Setiap 10 menit, prioritas dari
masing-masing proses yang menunggu dalam queue dinaikkan satu
tingkat. Maka, suatu proses yang memiliki prioritas 127, setidaknya dalam 21
jam 20 menit, proses tersebut akan memiliki prioritas 0, yaitu prioritas yang
tertinggi (semakin kecil angka menunjukkan bahwa prioritasnya semakin tinggi).
3.Multilevel
Queue.
Ide dasar dari
algoritma ini berdasarkan pada sistem prioritas proses. Prinsipnya, jika setiap
proses dapat dikelompokkan berdasarkan prioritasnya, maka akan didapati queue seperti
pada gambar berikut:
Gambar. Multilevel
Queue.
Algoritma ini pun
memiliki kelemahan, 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.
4. 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 proses itu akan dipindahkan ke antrian yang
lebih rendah. Hal 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 terutilisasi penuh dan M/K dapat terus sibuk. Semakin
rendah tingkatannya, panjang CPU burst proses juga semakin besar.
Contoh Permasalahan : Terdapat
tiga antrian; Q1=10 ms, FCFS Q2=40 ms, FCFS Q3=FCFS proses yang masuk, masuk ke
antrian Q1. Jika dalam 10 ms tidak selesai, maka proses tersebut dipindahkan ke
Q2. Jika dalam 40 ms tidak selesai, maka dipindahkan lagi ke Q3. Berdasarkan
hal-hal di atas maka algoritma ini dapat digunakan secara fleksibel dan
diterapkan sesuai dengan kebutuhan sistem. Pada zaman sekarang ini algoritma multilevel
feedback queue adalah salah satu yang paling banyak digunakan.
5. FCFS
(First Come First Served).
Algoritma ini merupakan
algoritma penjadwalan yang paling sederhana yang digunakan CPU. Dengan
menggunakan algoritma ini setiap proses yang berada pada status ready dimasukkan
kedalam FIFO queue atau antrian dengan prinsip first
in first out, sesuai dengan waktu kedatangannya. Proses yang tiba terlebih
dahulu yang akan dieksekusi.
Contoh Permasalahan : Ada
tiga buah proses yang datang secara bersamaan yaitu pada 0 ms, P1 memiliki
burst time 24 ms, P2 memiliki burst time 3 ms, dan P3 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 P1 adalah 0 ms (P1 tidak perlu menunggu), sedangkan untuk P2 adalah
sebesar 24 ms (menunggu P1 selesai), dan untuk P3 sebesar 27 ms (menunggu P1
dan P2 selesai).
Gantt Chart Kedatangan
Proses :
Urutan kedatangan
adalah P1, P2 , P3; gantt chart untuk urutan ini adalah:
Waiting time rata-ratanya
adalah sebesar(0+24+27)/3 = 17ms. Turnaround time untuk P1
sebesar 24 ms, sedangkan untuk P2 sebesar 27 ms (dihitung dari awal kedatangan
P2 hingga selesai dieksekusi), untuk P3 sebesar 30 ms. Turnaround time rata-rata
untuk ketiga proses tersebut adalah (24+27+30)/3 = 27 ms