Rabu, 28 Februari 2018

Scheduling

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.
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
  
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 blockingstarvation). 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

Tidak ada komentar:

Posting Komentar