Sabtu, 30 Maret 2013

KONSEP DASAR PENJADUALAN PROSES

1. KONSEP DASAR PENJADUALAN PROSES

Konsep Dasar Penjadwalan Proses

Penjadwalan adalah fungsi dasar dari sistem operasi  semua resources komputer dijadwalkan sebelum digunakan.
Penjadwalan CPU adalah pemilihan proses dari Ready Queue untuk dapat dieksekusi.
Penjadwalan CPU didasarkan pada sistem operasi yang menggunakan prinsip Multiprogramming.
Penjadwalan bertugas memutuskan :

  • Proses yang harus berjalan.
  • Kapan dan selama berapa lama proses itu berjalan.

Kita mengenal istilah multiprograming, yang bertujuan untuk memaksimalkan penggunaan CPU dengan cara mengatur alokasi waktu yang digunakan oleh CPU, sehingga proses berjalan sepanjang waktu dan memperkecil waktu idle. Akibatnya sistem operasi dapat membuat komputer lebih produktif. Oleh karena itu perlu adanya penjadwalan proses-proses yang ada pada sistem.
Penjadwalan CPU adalah suatu proses pengaturan atau penjadwalan proses-proses yang ada di dalam komputer. Dimana proses-proses tersebut berjalan dalam pola yang disebut Siklus Burst yang akan dijelaskan pada bab ini.
 Penjadwalan CPU secara garis besar dibagi menjadi 2, yaitu Penjadwalan Preemptive dan Penjadwalan Non Preemptive. kriteria yang baik bagi suatu konsep penjadwalan dan penjelasan mengenai dispatcher, yaitu suatu komponen yang turut terlibat dalam penjadwalan. Penjadwalan sangat penting dalam menentukan performance sebuah komputer karena mengatur alokasi resource dari CPU untuk menjalankan proses-proses di dalam komputer. Penjadwalan CPU merupakan suatu konsep dasar dari multiprograming, karena dengan adanya penjadwalan dari CPU itu sendiri maka proses-proses tersebut akan mendapatkan alokasi resource dari CPU.

1.1 PREEMPTIVE SCEDULING

 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 state.
  4. Dihentikan.
Penjadwalan Preemptive mempunyai arti kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi. Penjadwalan ini bisa saja termasuk penjadwalan proses atau M/K. Penjadwalan Preemptive memungkinkan sistem untuk lebih bisa menjamin bahwa setiap proses mendapat sebuah slice waktu operasi. Dan juga membuat sistem lebih cepat merespon terhadap event dari luar (contohnya seperti ada data yang masuk) yang membutuhkan reaksi cepat dari satu atau beberapa proses. Membuat penjadwalan yang Preemptive mempunyai keuntungan yaitu sistem lebih responsif daripada sistem yang memakai penjadwalan Non Preemptive.
Dalam waktu-waktu tertentu, proses dapat dikelompokkan ke dalam dua kategori: proses yang memiliki Burst M/K yang sangat lama disebut I/O Bound, dan proses yang memiliki Burst CPU yang sangat lama disebut CPU Bound. Terkadang juga suatu sistem mengalami kondisi yang disebut busywait, yaitu saat dimana sistem menunggu request input(seperti disk, keyboard, atau jaringan). Saat busywait tersebut, proses tidak melakukan sesuatu yang produktif, tetapi tetap memakan resource dari CPU. Dengan penjadwalan Preemptive, hal tersebut dapat dihindari.
Dengan kata lain, penjadwalan Preemptive melibatkan mekanisme interupsi yang menyela proses yang sedang berjalan dan memaksa sistem untuk menentukan proses mana yang akan dieksekusi selanjutnya.
Penjadwalan nomor 1 dan 4 bersifat Non Preemptive sedangkan lainnya Preemptive. Penjadwalan yang biasa digunakan sistem operasi dewasa ini biasanya bersifat Preemptive. Bahkan beberapa penjadwalan sistem operasi, contohnya Linux 2.6, mempunyai kemampuan Preemptive terhadap system call-nya ( preemptible kernel). Windows 95, Windows XP, Linux, Unix, AmigaOS, MacOS X, dan Windows NT adalah beberapa contoh sistem operasi yang menerapkan penjadwalan Preemptive.
Lama waktu suatu proses diizinkan untuk dieksekusi dalam penjadwalan Preemptive disebut time slice/quantum. Penjadwalan berjalan setiap satu satuan time slice untuk memilih proses mana yang akan berjalan selanjutnya. Bila time slice terlalu pendek maka penjadwal akan memakan terlalu banyak waktu proses, tetapi bila time slice terlau lama maka memungkinkan proses untuk tidak dapat merespon terhadap event dari luar secepat yang diharapkan.

NON PREEMPTIVE SCEDULING

Penjadwalan Non Preemptive ialah salah satu jenis penjadwalan dimana sistem operasi tidak pernah melakukan context switch dari proses yang sedang berjalan ke proses yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt.
Penjadwalan Non Preemptive terjadi ketika proses hanya:
  1. Berjalan dari running state sampai waiting state.
  2. Dihentikan.
Ini berarti CPU menjaga proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses tidak diganggu). Metode ini digunakan oleh Microsoft Windows 3.1 dan Macintosh. Ini adalah metode yang dapat digunakan untuk platforms hardware tertentu, karena tidak memerlukan perangkat keras khusus (misalnya timer yang digunakan untuk meng interupt pada metode penjadwalan Preemptive).

1.2 DISPATCHER

Dispatcher

Komponen yang lain yang terlibat dalam penjadwalan CPU adalah dispatcher. Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang sedang terjadwal. Fungsinya adalah:
  1. Context switchingMengganti state dari suatu proses dan mengembalikannya untuk menghindari monopoli CPU time. Context switching dilakukan untuk menangani suatu interrupt(misalnya menunggu waktu M/K). Untuk menyimpan state dari proses-proses yang terjadwal sebuah Process Control Block harus dibuat untuk mengingat proses-proses yang sedang diatur scheduler. Selain state suatu proses, PCB juga menyimpan process ID, program counter(posisi saat ini pada program), prioritas proses dan data-data tambahan lainnya.
  2. Switching to user mode dari kernel mode
  3. Lompat dari suatu bagian di progam user untuk mengulang program. 
Dispatch Latency adalah waktu yang dibutuhkan untuk menghentikan suatu proses dan menjalankan proses yang lain. 

2. KRITERIA PENJADUALAN

  KRITERIA PENJADWALAN 

Algoritma penjadwalan CPU yang berbeda akan memiliki perbedaan properti,sehingg untuk memiliki algoritma ini harus di pertimbangkan duluh properti-properti algoritma tersebut.

1. CPU utilization: Diharapkan agar CPU selalu dalam keadaan sibuk

2. Throughput: Throughput adalah banyaknya proses yang selesai di kerjakan dalam satu satuan waktu

3. Turnaround time: Banyaknya waktu yang di perlukan untuk mengeskusi proses,dari mulai menunggu untuk memerintah tempat di memori utama,menunggu di ready queue,eksekusi oleh CPU,dan mengerjakan I/O samapi semua proses-proses tersebut diselesaikan.

4. Waiting time: Waktu yang di perlukan oleh suatu proses untuk menunggu di ready queue

5. Response time: Waktu yang di butuhkan oleh suatu proses dari minta di layani hingga ada respont pertama yang menanggapi permintaan tersebut

6.FairnessSuatu algoritma harus memperhatikan pengawasan nilai prioritas dari suatu proses (menghindari terjadinya starvation CPU time).

7.Efisiensi. Rendahnya overhead dalam context switching, penghitungan prioritas dan sebagainya menentukan apakah suatu algoritma efisien atau tidak.

Sebaiknya ketika kita akan membuat algoritma penjadwalan yang dilakukan adalah memaksimalkan CPU utilization dan throughput, dan meminimalkan turnaround time, waiting time, dan response time.

SOURCES :
 http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch13.html#c31301

http://megaputrisenyum.blogspot.com/2010/04/konsep-dasar-penjadwalan-proses.html

http://padjefadishaydan.blogspot.com/2011/12/tugas-sistem-operasi-penjadwalan-proses.html














Tidak ada komentar:

Posting Komentar

Related Posts Plugin for WordPress, Blogger...