12 November 2014

tugas: Penjadwalan Proses


Penjadwalan Proses
Penjadwalan CPU merupakan basis dari multiprogramming sistem operasi. Dengan men-switch CPU diantara proses, akibatnya sistem operasi dapat membuat komputer lebih produktif.
Apa itu MULTIPROGRAMMING?
Multiprogramming adalah suatu proses menjalankan proses-proses di dalam computer secara bersamaan (yang disebut paralel). Multiprogramming dapat meningkatkan produktivitas dari sebuah komputer. Tujuan dari multiprogramming adalah menjalankan banyak proses secara bersamaan, untuk meningkatkan performance dari komputer.
Tipe Penjadwalan ada 3, yaitu:
  1. Penjadwalan jangka pendek, bertugas menjadwalkan alokasi pemroses diantara proses-proses ready di memori utama.
  2. Penjadwalan jangka menengah, bertugas mengendalikan transisi dari keadaan suspend ke ready proses-proses swapping.
  3. Penjadwalan jangka panjang, bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi.

Properti Penjadwalan
CPU Burst
Yaitu pengeksekusian dari proses tersebut terdiri atas siklus CPU ekskusi dan I/O Wait (bolak-balik). Pengeksekusian proses dimulai dengan CPU Burst, setelah itu diikuti oleh I/O burst, kemudian CPU Burst lagi lalu I/O Burst lagi begitu seterusnya dan dilakukan secara bergiliran. CPU Burst terakhir, akan berakhir dengan permintaan sistem untuk mengakhiri pengeksekusian daripada melalui I/O Burst lagi.

Dispatcher
adalah modul yang memberikan kontrol CPU kepada proses yang fungsinya adalah:
o   Switching context
o   Switching to user mode
o   Lompat dari suatu bagian di progam user untuk mengulang progam.
Dispatch Latency adalah waktu yang diperlukan dispatcher untuk menghentikan suatu proses dan memulai proses yang lain.
 
Kriteria Optimalisasi Kinerja 
  1. Adil (fairness) >> Proses-proses diberlakukan sama (mendapat jatah waktu pemroses yang sama & tak ada proses yang tak kebagian layanan pemroses). Sasaran: menjamin tiap proses mendapat bagian dari pemroses yang adil.
  2.  Efisiensi >> Pemroses dihitung dengan berapa perbandingan (rasio) waktu sibuk pemroses. Sasaran: menjaga proses agar tetap dalam keadaan sibuk (efisiensi maksimum).
  3. Waktu Tanggap (response time) >> Waktu yg dihabiskan dari saat karakter terakhir dari perintah dimasukkan program sampai hasil pertama yg muncul di layar. Sasaran: meminimalkan waktu tanggap.
  4.  Turn Arrround Time >> Waktu yg dihabiskan dari saat program/job mulai masuk ke sistem sampai proses diselesaikan system. Sasaran: meminimalkan turn arround time. TA = waktu eksekusi + waktu menunggu 
  5. Waiting Time >> Waiting time adalah jumlah waktu yang dibutuhkan proses di antrian ready. Sasaran: meminimalkan waktu tunggu masing-masing proses. 
  6. Throughput >> jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Sasaran: memaksimalkan jumlah job yang diproses per satu interval waktu. Lebih tinggi angka throuhput, lebih banyak kerja yang dilakukan sistem. 
Kondisi Penjadwalan CPU

Penjadwalan CPU mungkin akan dijalankan ketika proses dalam keadaan:

  • Berubah dari running ke waiting state.

  • Berubah dari running ke ready state.

  • Berubah dari waiting ke ready.

  • Terminates


Preemptive
Dalam penjadwalan preemptive, semua proses yang ada dalam antrian ready (siap) harus dikerjakan oleh CPU. CPU sendiri harus memilih salah satu proses yang akan dikerjakan dalam satu waktu. Pemilihan tersebut dilakukan oleh short term scheduler dan proses yang dipilih akan dieksekusi dalam CPU dalam satu waktu yang telah ditentukan oleh scheduler.

Non-Preemptive
Dalam penjadwalan non-preemptive sekali CPU telah dialokasikan untuk sebuah proses, maka tidak dapat di ganggu. Ini berarti CPU  menjaga proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses tidak diinterupt). Metode ini digunakan oleh Microsoft Windows 3.1 dan Macintosh versi lama.



FCFS / FIFO (FIRST IN FIRST OUT)
FCFS (FIRST COME FIRST SERVE) adalah proses yg tiba lebih dahulu akan dilayani lebih dahulu. Kalau ada proses tiba pada waktu yg sama, maka pelayanan mereka dilaksanakan melalui urutan mereka dalam antrian. Proses di antrian belakang harus menunggu sampai semua proses di depannya selesai. Setiap proses yang berada pada status ready dimasukkan ke dalam FCFS queue sesuai dengan waktu kedatangannya.
Kelemahan dari algoritma ini:

  • Waiting time rata-ratanya cukup lama.
  • Terjadinya convoy effect, yaitu proses-proses menunggu lama untuk menunggu 1 proses besar yang sedang dieksekusi oleh CPU.
  • Algoritma ini juga menerapkan konsep nonpreemptive, yaitu setiap proses yang sedang dieksekusi oleh CPU tidak dapat di-interrupt oleh proses yang lain.

SJF (Shortest-Job First)
SJF adalah 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. Langkahnya:
Langkah I: tentukan urutan prioritas berdasarkan pendeknya proses yang dilayani
Langkah II: penentuan proses mana yg dilayani oleh pemroses

Priority Scheduling merupakan algoritma penjadwalan yang mendahulukan proses yang memiliki prioritas tertinggi. Setiap proses memiliki prioritasnya masing-masing. Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain: Time limit, Memory requirement, Akses file, Perbandingan antara I/O Burst dengan CPU Burst dan Tingkat kepentingan proses.
Priority Scheduling juga dapat dijalankan secara preemptive maupun non-preemptive.

  • 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.
  • non-preemptive, proses yang baru datang tidak dapat menganggu proses yang sedang berjalan, tetapi hanya diletakkan di depan queue
Kelemahan:
Dapat terjadinya indefinite blocking (starvation). Yaitu suatu proses dengan prioritas yang rendah memiliki kemungkinan untuk tidak dieksekusi jika terdapat proses lain yang memiliki prioritas lebih tinggi darinya.

Round Robin adalah algoritma yang 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. Proses ini cukup adil karena tak ada proses yang diprioritaskan, semua proses dapat jatah waktu yang sama dari CPU.
Kelemahan Round Robin:
Permasalahan utama adalah menentukan besarnya time quantum. Jika time quantum yang ditentukan terlalu kecil, maka sebagian besar proses tidak akan selesai dalam 1 time quantum. Hal ini tidak baik karena akan terjadi banyak switch, padahal CPU memerlukan waktu untuk beralih dari suatu proses ke proses lain (context switches time). Jika time quantum terlalu besar, algoritma Round Robin akan berjalan seperti algoritma First Come First Served.

Multilevel Queue ini berdasarkan pada sistem prioritas proses. Prinsipnya adalah, jika setiap proses dapat dikelompokkan berdasarkan prioritasnya, maka akan didapati queue.
Kelemahan:
algoritma ini pun memiliki kelemahan yang sama dengan priority scheduling, yaitu suatu proses pada queue dengan prioritas rendah bisa saja tidak mendapat jatah CPU. Untuk mengatasinya, memodifikasi algoritma ini dengan adanya jatah waktu maksimal untuk tiap antrian, jika antrian memakan terlalu banyak waktu, maka prosesnya akan dihentikan dan digantikan oleh antrian dibawahnya (batas waktu untuk tiap antrian bisa berbeda tergantung pada prioritas masing-masing antrian)

Multilevel Feedback Queue 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 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 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

Tidak ada komentar:

Posting Komentar