Monday, April 11, 2016

Penjadwalan Proses

Pada komputer multiprogramming, sejumlah proses/thread yang berada dalam ready state berkompetisi mendapatkan CPU. Seketika CPU tidak bekerja, pilihan proses mana yang di-run berikutnya harus ditentukan. Bagian dari SO yang menentukan pilihan tersebut disebut penjadwalan (scheduler), dan algoritma yang digunakan disebut algoritma penjadwalan (scheduling algorithm).

Scheduler (penjadwal) bertugas :
- Memutuskan proses mana yang harus berjalan
- Kapan dan berapa lama proses berjalan

Salah satu parameter penting bagi algoritma penjadwalan adalah karakteristik proses yang akan dieksekusi. Karekteristik proses berdasarkan lama pemakaian CPU dan I/O :
- Proses dengan tipe CPU bound
- Proses dengan tipe I/O bound
Prioritaskan I/O bound untuk mengoptimalkan utilisasi sistem.

Terjadinya Penjadwalan















1. Process creation
2. Process termination
3. Blocking system call
4. I/O interrupt
5. Hardware clock → preemptive atau non-preemptive?

Preemptive
- Prosesor belum selesai mengeksekusi suatu proses. Dengan sifat preemptive, prosesor dapat diambil alih oleh proses lain dengan prioritas lebih tinggi.
- Proses yang disela beralih : running → ready
- Berguna pada sistem yang proses-prosesnya perlu tanggapan prosesor secara cepat.
- Preemptive bagus, tapi memberi overhead karena banyak tabel yang harus dikelola.

Non-preemptive
- Begiru proses diberi jatah layanan prosesor, maka tidak dapat diambil alih oleh proses lain sampai proses itu selesai.
- Eksekusi proses hingga proses selesai, atau blocked karena meminta layanan I/O.

Kategori Algoritma Penjadwalan

Berdasarkan lingkungannya :
1. Batch
2. Interactive
3. Real time

1. Lingkungan Batch
- User tidak butuh respon yang cepat, cocok menggunakan non-preemptive, atau preemptive dengan waktu yang panjang.
- Mengurangi peralihan proses, sehingga meningkatkan performa.

2. Lingkungan Interactive
- Perlu preemptive :
  Interactive user
  Mencegah satu proses mendominasi pemakaian CPU.
  Mencegah satu proses memblokir proses lain karena bug.
- Diterapkan pada server. Melayani banyak user (jarak jauh) yang meminta layanan cepat.
- Menjalankan berbagai jenis proses yang harus diatur agar tidak mengganggu proses lain.

3. Lingkungan Real-Time
- Tidak memerlukan preemption.
- Hanya menjalankan program tertentu untuk satu tujuan.

Tujuan Penjadwalan pada Semua Sistem
- Fairness : semua proses mendapat layanan CPU.
- Policy enforcement : memastikan kebijakan yang diterapkan berjalan
- Balance : mengupayakan semua bagian sistem dalam keadaan sibuk.

Penjadwalan dalam Sistem Batch
1. FCFS (First Come First Serve) → non-preemptive
Tidak berprioritas, sehingga proses-proses yang membutuhkan waktu lama membuat proses-proses pendek menunggu, dan proses-proses tidak penting dapat membuat proses-proses penting menunggu.
Ketentuan :
  >> Proses-proses diberi jatah waktu , prosesor diurutkan berdasarkan waktu kedatangan proses.
  >> Begitu proses mendapat jatah waktu prosesor, proses dijalankan samapi selesai.

2. SJF (Shortest Job First) → non-preemptive
Mendahulukan proses dengan waktu jalan terpendek sampai selesai, setelah itu proses dengan waktu jalan terpendek berikutnya dijadwalkan.

3. SRTF (Shortest Remaining Time First) → preemptive
Mengestimasi waktu proses terendah untuk dijalankan, termasuk proses-proses yang abru tiba.
Proses yang running dapat diambil alih oleh proses baru yang sisa waktu jalannya lebih rendah.





No comments:

Post a Comment