Nim : 1605551120
Mata
Kuliah : Network Operating Sistem
Dosen : I Putu Agus Eka Pratama, ST.,
MT
Teknologi
Informasi / Fakultas Teknik / Universitas Udayana
Pendahuluan
Matakuliah Network Operating System
merupakan matakuliah yang membahas seputar konsep dasar scheduling, definisi
scheduling, process & multiprogramming, serta membahas empat jenis
scheduling dan algoritma pada scheduling.
Kosep dasar
Scheduling
Penjadwalan proses merupakan kumpulan
kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan
kerja yang dilakukan sistem komputer. Penjadwalan dilakukan untuk melakukan
proses yang harus berjalan, kapan dan selama berapa lama proses itu berjalan.
Ketika CPU mengalami waktu idle, sistem
operasi harus memilih salah satu proses untuk masuk kedalam antrian yang akan
untuk dieksekusi. Pemilihan tersebut dilakukan oleh penjadwal jangka pendek
atau penjadwal CPU.
|
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.
Kriteria
Penjadwalan
Setiap algoritma penjadwalan dapat
berbeda dengan nilai yang berbeda dan sistem komputer yang berbeda. Dalam
penjadwalan CPU diperlukan beberapa kriteria diantaranya adalah:
•
CPU Utilization.
Kita menginginkan kerja CPU sesibuk mungkin.
Konsepnya pemanfaatan CPU mempunyai jangkauan dari 0 sampai 100 persen. Di
sistem yang sebenarnya mungkin hanya mempunyai jangakuan dari 40 (untuk
pemanggilan ringan sistem) sampai 90 persen (pemanggilan berat sistem).
•
Throughput.
Pengukuran kinerja CPU adalah banyaknya proses yang
diselesaikan per satuan waktu. Jika kita mempunyai beberapa proses yang sama
dan memiliki beberapa algoritma penjadwalan yang berbeda, hasil kinerja bisa
menjadi salah satu kriteria penilaian, dimana algoritma yang menyelesaikan
proses terbanyak mungkin yang terbaik.
•
Turnaround Time.
Dari sudut pandang proses tertentu, kriteria yang
penting adalah berapa lama untuk mengeksekusi proses tersebut. Memang, lama
pengeksekusian sebuah proses sangat tergantung dari hardware yang dipakai,
namun kontribusi algoritma penjadwalan tetap ada dalam lama waktu yang dipakai
untuk menyelesaikan sebuah proses. Misal, kita memilki sistem komputer yang
identik dan proses-proses yang identik pula, namun kita memakai algoritma yang
berbeda, algoritma yang mampu menyelesaikan proses yang sama dengan waktu yang
lebih singkat mungkin lebih baik dari algoritma yang lain. Interval waktu yang
diijinkan dengan waktu yang dibutuhkan untuk menyelesaikan sebuah proses
disebut turnaround time.Turnaround time adalah jumlah periode tunggu untuk
dapat ke memori, menunggu di ready queue, eksekusi CPU, dan melakukan operasi
I/O atau waktu yang dihabiskan dari saat program atau job mulai masuk sistem sampai
proses diselesaikan sistem.
Turnaround = waktu
eksekusi + waktu menunggu
•
Waiting Time.
Algoritma penjadwalan CPU tidak mempengaruhi waktu
untuk melaksanakan proses tersebut atau I/O, karena hanya mempengaruhi jumlah
waktu yang dibutuhkan proses diantrian ready. Waiting time adalah jumlah waktu
yang dibutuhkan proses di antrian ready.
4 Dasar
Scheduling (Penjadwalan)
Ada empat tipe penjadwal yang berada bersama pada
sistem operasi kompleks, yaitu :
- Penjadwal jangka pendek yang bertugas menjadwalkan alokasi pemroses di antara proses-proses yang telah siap di memori utama.
- Penjadwal jangka menengah akan menangani serta mengendalikan transisi dari suspended-to-ready dari proses-proses swapping.
- Penjadwal jangka panjang bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi
- Penjadwal I/O memilih process mana yang tertunda yang dapat dilanjutkan kembali berdasarkan ketersediaan perangkat I/O.
Multiprogramming
& Multiprocessing
1.
Multiprogramming
Merupakan suatu metode
yang memungkinkan dua buah program atau lebih dijalankan secara serentak dalam
sebuah komputer. Bebagi sumber daya dalam waktu yang berlainan. Sebagai
contoh,dalam satu waktu sebuah program sedang menggnakan CPU, sedangkan program
yang lain menggunakan printer. Di dalam sistem Multiprograming, sebuah program
dijalankan dalam CPU sampai terjadi suatu interupsi seperti permintaan masukan.
Pada
saat program meminta masukan, program berikutnya yang telah di muat dalam
memory akan di jalankan sampai terjadi interupsi. Ketika pemrosesan interupsi
telah berakhir, kontrol dikembalikkan ke program yang telah diinterupsi. Siklus
seperti ini diulang sehingga program-program yang telah dimuat memory utamaakan
diproses secara bergantian.
2.
Multiprocessing
Merupakan
suatu kemampuan sistem opersi yang menjalankan dua atau lebih instruksi secara
serentak. Dengan menggunakan sejumlah CPU dalam sebuah komputer. Dengan
pendekatan seperti ini, sistem operasi dapat mengatur agar sejumlah CPU
menjalankan instruksi-instruksi yang berbeda yang terletak dalam sebuah program
dalam waktu yang sama
Algoritma
Penjadwalan
Masalah penjadwaln 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.
1.
First-Come First-Served (FCFS)
Algoritma ini merupakan algoritma penjadwalan yang
paling sederhana yang digunakan CPU. Dengan menggunakan algoritma ini seiap
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
2.
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 dan karena 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:
• 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.
• 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.
3.
Penjadwalan dengan Prioritas
Priority Scheduling
merupakan algoritma penjadwalan yang mendahulukan proses dengan nilai prioritas
tertinggi. Setiap proses memiliki prioritasnya masing-masing. Prioritas suatu
proses dapat ditentukan melalui beberapa karakteristik antara lain:
•
Batas waktu
•
Kebutuhan Memori
•
Akses file d.
Perbandingan antara I/O Burst dengan CPU Burst.
•
Tingkat
kepentingan proses
Penjadwalan dengan
prioritas juga dapat dijalankan secara preemptive maupun non-preemptive. Pada
preemptive, jika ada suatu proses yang baru datang memiliki prioritas yang
lebih tinggi daripada proses yang sedang dijalankan, maka proses yang sedang
berjalan tersebut dihentikan, lalu CPU dialihkan untuk proses yang baru datang
tersebut. Sementara itu, pada non-preemptive, proses yang baru datang tidak
dapat menganggu proses yang sedang berjalan, tetapi hanya diletakkan di depan
antrian.
4.
Round Robin
Algoritma ini didesin
untuk sistem time-sharing. Proses akan mendapat jatah sebesar time quantum
dengan nilai quantum umumnya sebesar 10-100 ms. Jika time quantum-nya habis
atau proses sudah selesai CPU akan dialokasikan ke proses berikutnya. Tentu
proses ini cukup adil karena tak ada proses yang diprioritaskan, semua proses
mendapat jatah waktu yang sama dari CPU (1/n), dan tak akan menunggu lebih lama
dari (n-1)/q.
Algoritma ini
sepenuhnya bergantung besarnya time quantum. Jika terlalu besar, algoritma ini
akan sama saja dengan algoritma first-come first-served. Jika terlalu kecil,
akan semakin banyak peralihan proses sehingga banyak waktu terbuang.
5.
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. 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
6.
Antrian Multilevel (Multilevel Queue)
Ide dasar dari
algoritma ini adalah berdasarkan pada sistem prioritas proses. Prinsipnya
adalah, jika setiap proses dapat dikelompokkan berdasarkan prioritasnya, maka
akan didapati queue seperti pada gambar berikut:
|
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.
Contoh Scheduling Linux
Contoh Scheduling Linux
|
Contoh Scheduling Windows
|
Referensi
[1] I Putu Agus Eka Pratama,“PPT Matakuliah Network Operating System Pertemuan 3 : Scheduling,”2018.
[1] I Putu Agus Eka Pratama,“PPT Matakuliah Network Operating System Pertemuan 3 : Scheduling,”2018.