Scheduling (Penjadwalan)

Nama              : I Kadek Owen Nirvana Kaskora
NIM                  : 1605551115
Mata Kuliah : Network Operating System
Dosen             : I Putu Agus Eka Pratama, S.T., M.T.
Jurusan Teknologi Informasi/Fakultas Teknik/Universitas Udayana


Scheduling (Penjadwalan)


Apakah teman sudah mengetahui tentang penjadwalan?? Umumnya penjadwalan dibuat agar kita bisa menargetkan sesutau agar selesai tepat pada waktunya. Nah, kali ini kita akan mempelajari tentang penjadwalan pada sistem operasi.

Scheduling (penjadwalan), apakah itu? 
Penjadwalan merupakan 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. Penjadwalan ada pada setiap sistem operasi.

Multi programming dan Multiprocessing

Multiprogramming → kemampuan sistem operasi untuk menjalankan 2 aplikasi atau lebih secara bersama – sama, menghasilkan sejumlah proses. Multiprogramming memiliki pengertian yaitu Sistem Operasi dapat melayani banyak program yang tidak ada hubungannya antar program satu dengan yang lain, dan program-program tersebut dapat dijalankan sekaligus dalam satu komputer yang sama. Pelaksanaan instruksi yang terjadi oleh Sistem Operasi adalah pada mulanya program dimuat ke dalam memori terlebih dahulu, kemudian program dijalankan hingga mengakses perangkat input dan output, kemudian software akan berpindah ke pekerjaan yang lainnya begitu pula jika ada program yang akan di jalankan lagi, dengan program yang sebelumnya telah dijalankan masih terus berjalan.

Multiprocessing → kemampuan penanganan 2 process atau lebih secara bersama – sama. Isilah Multiprocessing mangacu kepada abilitas pemrosesan komputer yang dilakukan secara serentak. Hal ini memungkinkan dengan adanya penggunaan dua prosesor lebih dalam sebuah komputer lalu meng-alokasikan perintah kepada prosesor-prosesor tersebut. Multiprocessing juga kadang mengacu pada 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 diibaratkan dalam perangkat keras atau hardware (dengan menggunakan beberapa CPU sekaligus), sementara multiprogramming sering digunakan dalam perangkat lunak(software). Suatu sistem mungkin dapat memiliki dua kemampuan tersebut, salah satu diantaranya, atau tidak sama sekali.

Peran Scheduling
  1. Memaksimalkan throughput
  2. Memaksimalkan kinerja dan waktu processor
  3. Efsiensi process
  4. Keadilan (fairness) pada semua job dan aplikasi
  5. Meminimalkan waktu tanggap (time respond)
  6. Optimalisasi sumber daya (resource)
4 Jenis Scheduling
  1. Penjadwalan Jangka Panjang (Long Term Scheduling)
    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
  2. Penjadwalan Jangka Menengah (Medium Term Scheduling)
    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.
  3. Penjadwalan Jangka Pendek (Short Term Scheduling)
    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).
  4. Penjadwalan I/O (I/O Scheduling)
    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. Berikut adalah gambaran proses dari scheduling.



Proses penjadwalan dimulai dari proses baru yang akan dijadwalkan. Kemudian proses tersebut akan mengalami suatu scheduling yang disebut Long Therm Scheduling atau Penjadwalan Jangka Panjang. Setelah mengalami kejadian tersebut, maka proses akan menuju 2 kejadian apakah itu ready/suspend ataupun ready. Jika proses tersebut ready/suspend maka proses tersebut akan mengalami Medium Term Scheduling atau Penjadwalan Jangka Menengah dan selanjutnya proses akan ready. Jika proses tersebut langsung ready maka proses tersebut akan mengalami Short Term Scheduling atau Penjadwalan Jangka Pendek dan selanjutnya proses tersebut akan berjalan atau running. Tapi jika proses tersebut menuju Blocked/atau suspend maka proses tersebut akan mengalami Medium Term Scheduling atau Penjadwalan Jangka Menengah dan proses tersebut akan ter-block.

Algoritma Scheduling
Ada banyak sekali agoritma scheduling di dalam sisem operasi, namun akan dibahas yang terpenting saja (fundamental dan digunakan di banyak sistem operasi : windows, linux, mac, free bsd, android). Algoritma scheduling membantu alur scheduling pada sistem serta membantu programmer di dalam pengembangan aplikasi terkait dengan sistem operasi.

  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. Time quantum jangan terlalu kecil (process tidak dapat selesai dalam 1 quantum), jangan juga terlalu besar (akan menjadi FCFS/First Come First Serve). Nilai idela time quantum = 80 (dari skala 0 - 100).
  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 preemptivemaupun 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.
  3. Multilevel Queue
    Ide dasar dari algoritma ini berdasarkan pada sistem prioritas proses. 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. 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.
  5. FIFO (First In First Out)
    FIFO adalah akronim untuk First In, First Out (Pertama Masuk, Pertama Keluar), sebuah abstraksi yang berhubungan dengan cara mengatur dan memanipulasi data relatif terhadap waktu dan prioritas. Ungkapan ini menggambarkan prinsip teknik pengolahan antrean atau melayani permintaan yang saling bertentangan dengan proses pemesanan berdasarkan perilaku first come first served (FCFS): di mana orang-orang meninggalkan antrean dalam urutan mereka tiba, atau menunggu giliran satu di sebuah sinyal kontrol lalu lintas.
  6. SJF (Shorted Job First)
    Setiap proses yang ada di ready queue akan dieksekusi berdasarkan burst time terkecil. Mengakibatkan waiting time yang pendek untuk setiap proses dan waiting time rata-ratanya juga menjadi pendek, sehingga dapat dikatakan ini adalah algoritma yang optimal.

Sumber :
  1. I Putu Agus Eka Pratama
  2. WikiPedia

Komentar

Post Populer