Rabu, 28 Februari 2018

Scheduling Sistem Operasi

Nama                : Made Andika Verdiana
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 Windows

Referensi
[1] I Putu Agus Eka Pratama,“PPT Matakuliah Network Operating System Pertemuan 3 : Scheduling,”2018.