Sunday, November 7, 2010

Penjadwalan Sistem Operasi

image Dalam pemroses  tunggal, hanya  satu proses  yang dapat dijalankan pada  saat  tertentu,  sedangkan yang lain harus menunggu CPU bebas dan dijadwal ulang. Multiprogramming merupakan cara untuk menjalankan proses setiap waktu sehingga memaksimalkan penggunaan CPU.
Penjadwalan merupakan  salah  satu  fungsi  dasar  dari  sistem  operasi. Hampir  semua  sumber  daya komputer dijadwalkan sebelum digunakan.

•    CPU-I/O Burst Cycle
Kesuksesan penjadwaln CPU tergantung dari observasi proses-proses. Pengeksekusian proses terdiri putaran ekseskusi CPU dan penungguan  I/O. Eksekusi   proses dimulai dari CPU burst,  yaitu diikuti oleh I/O burst kemudian diikuti CPU burst lainnya lalu I/O burst lainnya dan begitu seterusnya.
image
Gambar 1 Urutan pergantian CPU Burst dengan I/O Burst
•    Penjadwalan CPU
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.  Ada  tiga  tipe  penjadwal  yang  berada  bersama  pada sistem operasi kompleks, yaitu : 
a.    Penjadwal jangka pendek yang bertugas menjadwalkan alokasi pemroses di antara proses-proses yang telah siap di memori utama.
b.    Penjadwal  jangka menengah  akan menangani  serta mengendalikan  transisi  dari  suspended-to-ready dari proses-proses swapping.
c.    Penjadwal  jangka  panjang  bekerja  terhadap  antrian  batch  dan  memilih  batch  berikutnya  yang harus dieksekusi.
image
Gambar 2 Tipe-tipe penjadwalan

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.

Penjadwalan nomor 1 dan 4 bersifat non-preemptive atau cooperative sedangkan lainnya preemptive. Dalam penjadwalan non-preemptive sekali CPU  telah dialokasikan untuk sebuah proses, maka  tidak dapat  di  ganggu,  penjadwalan  model  seperti  ini  digunakan  oleh Windows  3.x; Windows  95  telah
menggunakan  penjadwalan  preemptive  yaitu  saat  suatu  proses  sedang  dieksekusi,  CPU  dapat diambil alih oleh proses lain sehingga proses di tunda dan dilanjutkan kembali hingga proses selesai.

•    Kriteria Penjadwalan
Setiap algoritma penjadwalan dapat berbeda dengan nilai yang berbeda dan   sistem komputer yang berbeda. Dalam penjadwalan CPU diperlukan beberapa kriteria diantaranya adalah:
o    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).
o    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.
o    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.
o    Turnaround = waktu eksekusi + waktu menunggu
o    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 dbutuhkan proses di antrian ready.
o    Response  time. Di  sistem  yang  interaktif,  turnaround  time mungkin  bukan waktu  yang  terbaik untuk kriteria. Sering sebuah proses dapat memproduksi output di awal, dan dapat meneruskan hasil  yang  baru  sementara  hasil  yang  sebelumnya  telah  diberikan  ke  pengguna.  ukuran  lain adalah waktu dari pengiriman permintaan sampai respon yang pertama diberikan. Hal ini disebut response  time, yaitu waktu untuk memulai memberikan respon,  tetapi bukan waktu yang dipakai output  untuk  respon  tersebut.  Turnround  time  umumnya  dibatasi  oleh  kecepatan  peralatan keluaran. Ada dua  jenis  response  time  berdasarkan penggunaannya pada  sistem  interaktif dan sistem waktu nyata (real time), yaitu:
1.    Terminal  response  time  merupakan  response  time  pada  sistem  interaktif  sebagai  waktu yang dihabiskan dari  saat  karakter  terakhir dari perintah dimasukkan atau  transaksi  sampai hasil pertama muncul di layar.
2.     Event response time merupakan response time pada sistem waktu nyata sebagai waktu dan kejadian (internal/eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi.
Sebaiknya ketika kita akan membuat algoritma penjadwalan yang dilakukan adalah memaksimalkan
penggunaan CPU dan  throughput,  dan meminimalkan  turnaround  time, waiting  time,  dan  response
time.

•    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.
o    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.
o    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.
o    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:
a.    Batas waktu
b.    Kebutuhan Memori
c.    Akses file
d.    Perbandingan antara I/O Burst dengan CPU Burst
e.    Tingkat kepentingan proses
o    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.
o    Antrian Multilevel (Multilevel Queue)
Ide dasar dari algoritma  ini adalah berdasarkan pada sistem prioritas proses. Prinsipnya adalah,  jika setiap proses dapat dikelompokkan berdasarkan prioritasnya.
o    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.


Sebuah Blog Tempat Ekspresi Diri | By www.bangjohan.com