Rabu, 12 Desember 2012

Penjadwalan Proses

Konsep dasar dibuatnya penjadwalan proses ini yaitu untuk menanggulangi kecepatan prosesor yang tinggi dan prinsip multiprogramming. Kecepatan prosesor yang terlalu cepat harus diimbangi dengan berapa proses yang mampu di kerjakan oleh prosesor tersebut. Dapat saya katakan seperti ini, jika prosesor mempunyai kecepatan yang tinggi tetapi proses yang dapat di kerjakan sedikit maka efektifitas dari prosesor tersebut tidak dapat tercapai atau maksimalitas pemakaian prosesor tidak terwujud. Maka dengan hal tersebut dibutuhkan sebuah penjadwalan proses untuk mengatasi masalah tersebut. 

CPU Scheduler
CPU Scheduler ini bertugas untuk memberikan ruang untuk proses-proses yang akan di eksekusi yang dialokasikan di memory utama. Dalam CPU Scheduler ada tiga bentuk yaitu: 
  1. Long-term Scheduler (Job Scheduler) adalah penjadwalan proses-proses yang di butuhkan oleh pemakai dengan mengalokasikan tempat di memory. Proses-proses ini awalnya di ambil dari hardisk. 
  2. Short-term Scheduler (CPU Scheduler) adalah suatu proses pemilihan proses-proses yang sudah siap untuk di kerjakan oleh CPU dan kemudian akan di bawa ke CPU untuk di proses. Pada saat ini proses berjalan dari ready ke running. 
  3. Medium-term Scheduler adalah suatu proses dimana jika pada saat suatu proses sedang di eksekusi, tetapi pada suatu keadaan CPU disuruh untuk menungggu maka proses tersebut akan dibawa ke hardisk. Pada saat ini akan dilakukan pengecekan kembali proses, jika sudah memenuhi suatu kondisi yaitu ready maka proses ini akan di bawa ke ready queue. 
CPU Dispatcher
CPU Dispatcher adalah suatu proses yang bertugas untuk mencatat dan mengontrol baris-baris program yang sedang di proses, dan apabila pada suatu kondisi program tersebut mengalami block maka CPU Dispatcher ini bertugas untuk mencatat sampai di mana baris program itu di jalankan. Sehingga ketika proses tersebut akan dijalankan lagi, dengan catatan yang telah di buat oleh CPU Dispatcher ini proses akan di lanjutkan sesuai dengan urutan proses yang belum tereksekusi. Pemilihan proses yang dilakukan selama proses ini meliputi: 
  1. Switching context 
  2. Switching ke user mode 
  3. Berpindah dari lokasi tertentu dari user program untuk memulai program. 
  4. Strategi Penjadwalan

Di dalam strategi penjadwalan terdapat dua jenis strategi yaitu sebagai berikut: 
  1. Non Preemptive adalah suatu strategi dimana jika CPU sedang memproses sesuatu namun tidak bisa disela oleh proses-proses yang lain. Dapat dikatakan strategi ini sebagai strategi sekali running dan akan di selesaikan sampai akhir, tanpa satupun selaan yang bisa menyela proses ini. Contoh dari strategi ini yaitu proses penyimpanan data. 
  2. Preemptive adalah kebalikan daripada Non Preemptive dimana saat pengerjaan suatu proses, proses tersebut dapat di sela oleh proses yang lainnya. Proses yang sebelumnya belum selesai untuk di proses akan menunggu sampai CPU selesai memproses data yang menyela tadi. 
Kriteria Penjadwalan
Ada beberapa kriteria yang digunakan untuk melakukan perbandingan algoritma penjadwalan CPU yaitu sebagai berikut: 
  1. CPU utilization adalah salah satu bentuk kriteria penjadwalan dimana kriteria ini berfungsi untuk menjaga CPU selalu dalam keadaan sibuk. 
  2. Throughput adalah banyaknya proses yang dapat dikerjakan dalam satu satuan waktu tertentu. 
  3. Turnaround time adalah suatu bentuk kriteria yang memperhatikan banyaknya waktu yang diperlukan untuk mengeksekusi proses, dimulai dari menunggu untuk meminta tempat di dalam memory utama, menunggu di ready queue, eksekusi oleh CPU, hingga mengerjakan I/O. Pada kriteria ini makin sedikit waktu tunggu yang dibutuhkan untuk proses tersebut maka semakin baik. 
  4. Waiting Time adalah salah satu bentuk kriteria penjadwalan yang mencangkup pada waktu yang diperlukan oleh suatu proses untuk menunggu sampai suatu proses tersebut dalam kondisi ready queue, dimana waiting time tidak dipengaruhi eksekusi proses dan penggunaan I/O. 
  5. Response time adalah waktu yang diperlukan oleh suatu proses dari minta dilayani hingga ada respon pertama yang menanggapi perintah tersebut. Saya contohkan di sini yaitu ketika seseorang membuka sebuah software aplikasi dengan mengklik dua kali ikon daripada aplikasi tersebut, kemudian aplikasi tersebut akan memberikan sebuah respon berupa tampilan aplikasi tersebut. nah pada saat aplikasi di klik hingga memberikan respon awal inilah yang disebut respon time. 
  6. Fairness adalah suatu proses untuk meyakinkan bahwa tiap-tiap proses akan mendapatkan pembagian waktu penggunaan CPU secara terbuka (fair). 
Algoritma Penjadwalan 
Algoritma penjadwalan adalah bentuk penjadwalan CPU yang menyangkut penentuan proses-proses yang terdapat pada ready queue yang pada dasarnya sudah menunggu untuk di proses oleh CPU. Algoritma penjadwalan ini meliputi:
  1. First Come First Served (FCFS) adalah bentuk algoritma penjadwalan yang dipengaruhi oleh siapa yang lebih awal meminta untuk di proses oleh CPU. Yang lebih awal meminta untuk di proses maka dialah yang akan di proses terlebih dahulu, tanpa melihat prioritas datanya ataupun waktu tunggu yang di butuhkan oleh proses tersebut. Kelemahan dari algoritma penjadwalan ini yaitu jika dalam proses eksekusi program membutuhkan waktu tunggu yang lama, maka proses-proses yang menunggu untuk di proses oleh CPU akan menunggu lebih lama hingga proses yang sedang di eksekusi selesai untuk di eksekusi. Sehingga dapat dikatakan bahwa Average Waiting Time (AWT) dari algoritma ini cukup besar. 
  2. Shortest Job First(SJF) adalah salah satu bentuk algoritma penjadwalan yang dipengaruhi oleh waktu tunggu dari sebuah proses. Apabila suatu proses memiliki waktu tunggu sedikit dalam pemrosesannya maka proses tersebut yang akan di kerjakan terlebih dahulu, tanpa melihat proses tersebut lebih awal atau belakangan meminta untuk di proses. 
  3. Shortest Remaining Time First Scheduling (SRTF) adalah salah satu bentuk algoritma penjadwalan dimana dipengaruhi oleh sisa waktu pengerjaan dari suatu proses. Jika sisa waktu pengerjaannya lebih sedikit maka proses tersebut akan di eksekusi lebih dahulu. SRTF adalah bentuk penjadwalan SJF yang preemptive. 
  4. Priority Scheduling. Sesuai dengan namanya priority scheduling maka algoritma penjadwalan ini dipengaruhi oleh prioritas dari proses yang akan di jalankan. Apabila proses yang di jalankan memiliki prioritas yang lebih tinggi daripada proses yang lainnya, maka proses tersebutlah yang akan dikerjakan terlebih dahulu. Nah bagaimana jika beberapa proses memiliki prioritas yang sama? Pada kondisi seperti ini akan digunakan algoritma FCFS. 
  5. Round-Robin Schduling. Konsep dasar algoritma ini adalah sama dengan konsep time sharing, yang berupa algoritma FCFS, hanya bersifat preemptive menggunakan quantum time untuk membatasi waktu proses. Round-Robin bisa dikatakan sebagai system penjadwalan yang paling adil, hal ini dikarenakan oleh pengerjaannya sesuai dengan konsep time sharing yang menggunakan preemptive sebagai proses penyelaan sesuai dengan waktu yang di atur. Program akan dijalankan sesuai dengan time out dan akan berjalan sesuai time out juga. 

Tidak ada komentar:

Posting Komentar

Tolong berkomentar yang baik dan sopan