PENJADWALAN PROSES
Pengertian proses sebagaimana telah dijelaskan pada materi sebelumnya merupakan program yang dieksekusi. Eksekusi program tersebut dapat berasal dari sistem operasi sendiri, misalnya pada saat komputer pertama kali dihidupkan, dan dari user yang umumnya menjalankan progrm aplikasi. Sistem operasi saat ini juga telah menyediakan kemampuan penjadwalan proses ini baik oleh sistem operasi sendiri ataupun oleh user.
Penjadwalan proses biasa digunakan untuk menyatakan kegiatan penjadwalan yang dilakukan sistem operasi terhadap proses yang berjalan. Sedangkan penjadwalan tugas (task) adalah penjadwalan yang dilakukan oleh user (administrator) untuk menyelesaikan satu atau lebih tugas tertentu. Materi mengenai penjadwalan tugas akan dibahas berikutnya.
PENJADWALAN PROSES
Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem yang berkaitan dengan urutan kerja yang dilakukan. Pada sistem operasi, penjadwalan bertugas memutuskan:
- Proses yang harus berjalan
- Kapan dan selama berapa lama proses itu berjalan
Sasaran utama penjadwalan proses
Penjadwalan ini dilakukan oleh sistem operasi untuk mendukung kelancaran kebutuhan kinerja baik oleh sistem maupun user. Ada banyak proses yang dikelola oleh sistem secara bersamaan (pseudoparalleism). Oleh karena itu, perlu adanya pengaturan eksekusi dalam hal ini penjadwalan ekskusi proses agar semuanya dapat berjalan secara optimal. Berikut ini beberapa kriteria yang banyak digunakan untuk menentukan penjadwalan tersebut.
- Adil (fairness)
- Efisiensi
- Waktu tanggap (response time)
- Turn around time
- Throughput
ADIL (FAIRNESS)
Kriteria ini menunjukkan bahwa setiap proses seharusnya dilayani secara merata oleh sistem operasi. Merata disini maksudnya, pembagian jatah waktu proses yang sama dan tak ada proses yang tidak kebagian layanan pemroses sehingga mengalami startvation.
Sasaran penjadwalan seharusnya menjamin tiap proses mendapat pelayanan dari pemroses yang adil.
EFISIENSI
Sistem Operasi Jaringan
Efisiensi pemroses ini dihitung dengan menggunakan perbandingan terhadap waktu sibuk pemroses.
Efisiensi ini terkait dengan kemampuan sistem operasi untuk memanfaatkan pemroses semaksimal mungkin dalam menyelesaikan semua proses yang ada. Memaksimalkan ini dapat diartikan juga dengan membuat pemroses dalam keadaan selalu sibuk (tidak menganggur).
WAKTU TANGGAP (RESPONSE TIME)
Waktu tanggap ini berbeda untuk sistem interaktif dan sistem waktu nyata (real time). Pada sisem interaktif waktu tanggap didefinisikan sebagai waktu yang diperlukan untuk menjalankan suatu proses dari saat karakter terakhir dari perintah atau transaksi dimasukkan sampai hasil pertama muncul dilayar. Nama lain dari waktu tanggap ini adalah terminal response time.
Pada sistem waktu nyata (real time) waktu tanggap didefinisikan sebagai waktu yang diperlukan oleh sistem operasi untuk menjalankan proses dari saat kejadian (baik internal atau eksternal) sampai instruksi pertama dari proses tersebut dieksekusi. Waktu ini sering juga disebut dengan istilah event response time.
TURN AROUND TIME
Ini adalah waktu yang diperlukan oleh suatu proses dieksekusi oleh sistem operasi mulai dari saat proses masuk ke sistem hingga eksekusi berakhir. Dalam waktu ini termasuk juga waktu tunggu proses tersebut, saat sistem mengalihkan eksekusinya ke proses lain.
Sasaran penjadwalan adalah meminimalkan turn around time.
THROUGHPUT
Dalam kaitannya dengan penjadwalan throughput adalah nilai yang menunjukkan jumlah proses yang dapat dijalankan oleh sistem operasi pada selang waktu tertentu. Sasaran dari penjadwalan terkait dengan ini adalah memperbesar nilainya. Lebih tinggi throughput, lebih banyak kerja yang dapat dilakukan oleh sistem dalam satu waktu sehingga lebih banyak yang dapat diselesaikan.
Kriteria-kriteria ini dapat memiliki keterkaitan atau pertentangan antara satu dengan yang lainnya, sehingga tidak dimungkinkan optimasi semua kriteria secara simultan. Contohnya, untuk memberi waktu tanggap kecil memerlukan penjadwalan yang sering beralih di antara proses-proses itu. Cara ini akan meningkatkan beban (overhead) sistem dan mengurangi/mereduksi nilai throughput.
Kebijaksanaan perancangan penjadwalan melibatkan kompromi di antara kebutuhan-kebutuhan yang saling bertentangan. Kompromi ini bergantung sifat dan penggunaan sistem komputer.
Dalam implementasinya penjadwalan ini merupakan hal yang kompleks dalam sistem operasi karena dapat melibatkan lebih dari satu aturan. Dari kompleksitas tersebut, penjadwalan dibagi menjadi tiga tipe, yakni:
- Penjadwal jangka pendek. Penjadwalan ini digunakan untuk menentukan proses apa yang akan dijalankan berikutnya setelah proses saat ini berakhir. Proses yang dipilih adalah proses-proses yang telah dinyatakan siap untuk dieksekusi oleh pemroses (CPU).
- Penjadwal jangka menengah. Penjadwal ini digunakan untuk menanganai proses-proses yang perlu dipindahkan dari memori utama ke memori sekunder. Pemindahan ini dikenal dengan sebutan swapping. Swapping terhadap suatu proses dilakukan apabila proses tersebut perlu melakukan akses ke perangkat masukan/keluaran (I/O) atau pemanggilan system call.
- Penjadwal jangka panjang. Dengan adanya penjadwal ini akan memungkinkan sistem operasi menjalankan proses-proses yang memiliki prioritas rendah.
Terdapat dua strategi penjadwalan, yaitu:
- Penjadwalan nonpreemptive (run-to-completion). Pada penjadwalan ini proses yang mendapatkan kesempatan dieksekusi oleh pemroses (CPU) akan dijalankan sampai selesai sebelum menjalankan proses lainnya.
- Penjadwalan preemptive. Ini merupakan kebalikan dari nonpreemptive, dimana untuk satu proses yang sedang dieksekusi oleh pemroses memiliki kemungkinan untuk dihentikan sementara dan eksekusi dialihkan ke proses lainnya.
Penjadwalan preemptive baik digunakan untuk sistem yang setiap prosesnya perlu dieksekusi secara cepat, misalnya pada sistem waktu nyata, dimana apabila terjadi interupsi sistem dituntut untuk dapat menangani interupsi tersebut dengan cepat. Agar dapat melakukan peralihan proses dengan cepat, maka pada strategi ini semua proses yang akan dijalankan ditempakan di memori utama. Di sisi lain walaupun cepat melakukan peralihan dan eksekusi proses strategi ini memerlukan konsumsi memori utama yang cukup besar.
Terdapat sangat banyak algoritma penjadwalan, baik nonpreemptive ataupun preemptive. Algoritma-algoritma yang menerapkan strategi nonpreemptive di antaranya:
- FIFO (First In First Out)
- SJF (Shortest Job First)
- HRN (Highest Ratio Next)
- MFQ (Multiple Feedbback Queues)
Sedangkan algoritma-algoritma yang menerapakan strategi preemptive, di antaranya:
- RR (Round Robin)
- SRF (Shortest Remaining First)
- PS (Priority Schedulling)
- GS (Guaranteed Schedulling)
Klasifikasi lain selain berdasarkan dapat/tidaknya suatu proses diambil alih secara paksa adalah klasifikasi berdasarkan prioritas di proses-proses, yaitu:
- Algoritma penjadwalan tanpa prioritas
- Algoritma penjadwalan berprioritas, terdiri dari algoritma penjadwalan berprioritas statik dan dinamis.
Tidak ada komentar:
Posting Komentar