Konsep Penjadwalan
* Anggota Kelompok
- A 0606101912 Rifqi Fuadi
- A 0606101906 Ridho Budiharto
- B 0606101345 Faruk Candra Farabi
* Komentar Umum
Penjadwalan merupakan bagian yang sangat menarik dalam kuliah ini karena penjadwalan
menjadi bagian yang sangat penting dalam perancangan OS untuk membuat setiap proses
dapat berjalan dengan performa maksimal dan waktu yang dibutuhkan juga menjadi
semakin cepat. Di samping itu konsep-konsep penjadwalan ini akan terus berkembang
sesuai dengan perkembangan prosesor yang saat ini sudah sangat pesat, terbukti dengan
sudah diproduksinya quadcore dengan fitur hyperthreading.
* Usulan kelengkapan
-Untuk siklus burst, lebih baik menggunakan gambar Silberschatz, yang hanya melibatkan
tiga state saja karena lebih mudah dimengerti.
Appendiks :
* Tambahan yang kami rasa diperlukan pada BAB13 Konsep Penjadwalan adalah sebagai
berikut
Bag 13.2
- Siklus burst
Dirujuk dari :
[Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems
Concepts. Seventh Edition. John Wiley & Sons.
Dirujuk dari :
[Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems
Concepts. Seventh Edition. John Wiley & Sons.
Bag 13.3
- Preemptive Scheduling in Linux
Dirujuk dari :
[WEBLNXDvc2008] From Linux Devices homepage. 2008. Preemptive –
http://www.linuxdevices.com/files/misc/kalinsky_whitepaper_files/figure3.gif. Diakses 10 April
2008.
Dirujuk dari:
[WEBMicrosoft2008] From Microsoft homepage. 2008. Preemptive –
http://www.microsoft.com/mspress/books/sampchap/4354/0735610215-19.JPG Diakses 10 April
2008.
Dirujuk dari:
[Tanenbaum2006] Andrew S. Tanenbaum dan Albert S. Woodhull. 2006. Operating Systems: Design
and Implementation. Third Edition. Pearson Education, Inc.
Bag 13.5
Context switching. Sebuah context switch adalah pergantian pada CPU dari satu proses atau thread
ke proses atau thread lainnya. Context adalah isi dari CPU register dan program counter(PC) pada
setiap waktu. Context switching terjadi pada saat kernel mode aktif dan dapat digambarkan dengan
lebih jelas melalui urutan aktivitas yang dilakukan kernel sebagai berikut :
1) Menghentikan jalannya suatu proses dan menyimpan state (context) CPU dari proses tersebut
pada suatu alamat di memory.
2) Menerima context proses selanjutnya dari memory dan mengisi kembali CPU register
3) Mengembalikan lokasi yang ditunjuk oleh program counter untuk memulai proses
sebelumnya kembali.
Dirujuk dari :
[WEBLNXInfo2008] From Linux Info homepage. 2008. Context Switch –
http://www.linfo.com/fcontext_switch.html. Diakses 10 April 2008.
HASIL
REVISI BUKU
Bab 13. Konsep Penjadwalan
13.1. Pendahuluan
Kita mengenal istilah multiprograming, yang bertujuan untuk memaksimalkan penggunaan CPU
dengan cara mengatur alokasi waktu yang digunakan oleh CPU, sehingga proses berjalan
sepanjang waktu dan memperkecil waktu idle. Akibatnya sistem operasi dapat membuat komputer
lebih produktif. Oleh karena itu perlu adanya penjadwalan proses-proses yang ada pada sistem.
Penjadwalan CPU adalah suatu proses pengaturan atau penjadwalan proses-proses yang ada di
dalam komputer. Dimana proses-proses tersebut berjalan dalam pola yang disebut Siklus Burst
yang akan dijelaskan pada bab ini. Penjadwalan CPU secara garis besar dibagi menjadi 2, yaitu
Penjadwalan Preemptive dan Penjadwalan Non Preemptive. Bab ini juga akan memaparkan
mengenai kriteria yang baik bagi suatu konsep penjadwalan dan penjelasan mengenai dispatcher,
yaitu suatu komponen yang turut terlibat dalam penjadwalan. Penjadwalan sangat penting dalam
menentukan performance sebuah komputer karena mengatur alokasi resource dari CPU untuk
menjalankan proses-proses di dalam komputer. Penjadwalan CPU merupakan suatu konsep dasar
dari multiprograming, karena dengan adanya penjadwalan dari CPU itu sendiri maka proses-proses
tersebut akan mendapatkan alokasi resource dari CPU.
Dari gambar dapat kita lihat bahwa Burst CPU time yang lama jarang terjadi karena kebanyakan
proses akan melakukan antara output ke layar atau file, maupun meminta input dari user atau file
sehingga situasi dimana proses bekerja dengan memory dan register dalam jangka waktu lama tidak
terlalu banyak ditemukan.
Dengan kata lain, penjadwalan Preemptive melibatkan mekanisme interupsi yang menyela proses
yang sedang berjalan dan memaksa sistem untuk menentukan proses mana yang akan dieksekusi
selanjutnya.
Penjadwalan nomor 1 dan 4 bersifat Non Preemptive sedangkan lainnya Preemptive. Penjadwalan
yang biasa digunakan sistem operasi dewasa ini biasanya bersifat Preemptive. Bahkan beberapa
penjadwalan sistem operasi, contohnya Linux 2.6, mempunyai kemampuan Preemptive terhadap
system call-nya (preemptible kernel). Windows 95, Windows XP, Linux, Unix, AmigaOS, MacOS X,
dan Windows NT adalah beberapa contoh sistem operasi yang menerapkan penjadwalan
Preemptive.
Lama waktu suatu proses diizinkan untuk dieksekusi dalam penjadwalan Preemptive disebut time
slice/quantum. Penjadwalan berjalan setiap satu satuan time slice untuk memilih proses mana yang
akan berjalan selanjutnya. Bila time slice terlalu pendek maka penjadwal akan memakan terlalu
banyak waktu proses, tetapi bila time slice terlau lama maka memungkinkan proses untuk tidak
dapat merespon terhadap event dari luar secepat yang diharapkan.
Ini berarti CPU menjaga proses sampai proses itu pindah ke waiting state ataupun dihentikan
(proses tidak diganggu). Metode ini digunakan oleh Microsoft Windows 3.1 dan Macintosh. Ini
adalah metode yang dapat digunakan untuk platforms hardware tertentu, karena tidak memerlukan
perangkat keras khusus (misalnya timer yang digunakan untuk menginterupt pada metode
penjadwalan Preemptive).
13.5. Dispatcher
Komponen yang lain yang terlibat dalam penjadwalan CPU adalah dispatcher. Dispatcher adalah
modul yang memberikan kontrol CPU kepada proses yang sedang terjadwal. Fungsinya adalah:
1. Context switching. Sebuah context switch adalah pergantian pada CPU dari satu proses atau
thread ke proses atau thread lainnya. Context adalah isi dari CPU register dan program
counter(PC) pada setiap waktu. Context switching terjadi pada saat kernel mode aktif dan dapat
digambarkan dengan lebih jelas melalui urutan aktivitas yang dilakukan kernel sebagai berikut :
1) Menghentikan jalannya suatu proses dan menyimpan state (context) CPU dari proses
tersebut pada suatu alamat di memori.
2) Menerima context proses selanjutnya dari memory dan mengisi kembali CPU register
3) Mengembalikan lokasi yang ditunjuk oleh program counter untuk memulai proses
sebelumnya kembali.
Mengganti state dari suatu proses dan mengembalikannya untuk menghindari monopoli CPU
time. Context switching dilakukan untuk menangani suatu interrupt (misalnya menunggu waktu
I/O). Untuk menyimpan state dari proses-proses yang terjadwal sebuah Process Control Block
harus dibuat untuk mengingat proses-proses yang sedang diatur scheduler. Selain state suatu
proses, PCB juga menyimpan process ID, program counter (posisi saat ini pada program),
prioritas proses dan data-data tambahan lainnya.
2. Switching to user mode dari kernel mode.
3. Lompat dari suatu bagian di progam user untuk mengulang program.
Dispatcher seharusnya dapat dilakukan secepat mungkin. Dispatch Latency adalah waktu yang
diperlukan dispatcher untuk menghentikan suatu proses dan memulai proses yang lain.
13.7. Rangkuman
Penjadwalan CPU adalah pemilihan proses dari antrian ready untuk dapat dieksekusi. Penjadwalan
CPU merupakan konsep dari multiprogramming, dimana CPU digunakan secara bergantian untuk
proses yang berbeda. Suatu proses terdiri dari dua siklus yaitu I/O Burst dan CPU Burst yang
dilakukan bergantian hingga proses selesai. Penjadwalan CPU mungkin dijalankan ketika proses:
Proses 1 dan 4 adalah proses Non Preemptive, dimana proses tersebut tidak bisa di-interrupt,
sedangkan 2 dan 3 adalah proses Preemptive, dimana proses boleh di-interrupt.
Komponen yang lain dalam penjadwalan CPU adalah dispatcher, dispatcher adalah modul yang
memberikan kendali CPU kepada proses. Waktu yang diperlukan oleh dispatcher untuk
menghentikan suatu proses dan memulai proses yang lain disebut dengan dispatch latency.
Jika dalam suatu proses CPU Burst jauh lebih besar daripada I/O Burst maka disebut CPU Bound.
Demikian juga sebaliknya disebut dengn I/O Bound.
Dalam menilai baik atau buruknya suatu algoritma penjadwalan kita bisa memakai beberapa
kriteria, diantaranya CPU utilization, throughput, turnaround time, waiting time, dan response time.
Algoritma yang baik adalah yang mampu memaksimalkan CPU utilization dan throughput, dan
meminimalkan turnaround time, waiting time, dan response time.
Rujukan
[Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems
Concepts. Seventh Edition. John Wiley & Sons.
[Stallings2001] William Stallings. 2001. Operating Systems: Internal and Design Principles.
Fourth Edition. Edisi Keempat. Prentice-Hall International. New Jersey.