Jelaskan Apa Saja Algoritma Penjadwalan Cpu?
Algoritma penjadwalan CPU yang berbeda akan mempunyai perbedaan properti. Untuk menentukan algoritma ini harus dipertimbangkan dulu properti-properti algoritma tersebut. Ada beberapa kriteria yang dipakai untuk melaksanakan pembandingan algoritma penjadwalan CPU, antara lain:
- CPU utilization. Diharapkan biar CPU selalu dalam keadaan sibuk. Utilitas CPU dinyatakan dalam bentuk prosen yaitu 0-100%. Namun dalam kenyataannya hanya berkisar antara 40-90%.
- Throughput. Adalah banyaknya proses yang akibat dikerjakan dalam satu satuan waktu.
- Turnaround time. Banyaknya waktu yang diharapkan untuk mengeksekusi proses, dari mulai menunggu untuk meminta kawasan di memori utama, menunggu di ready queue, sanksi oleh CPU, dan mengerjakan I/O.
- Waiting time. Waktu yang diharapkan oleh suatu proses untuk menunggu di ready queue. Waiting time ini tidak menghipnotis sanksi proses dan penggunaan I/O.
- Response time. Waktu yang dibutuhkan oleh suatu proses dari minta dilayani sampai ada respon pertama yang menanggapi seruan tersebut.
- Fairness. Meyakinkan bahwa tiap-tiap proses akan mendapat pembagian waktupenggunaan CPU secara terbuka (fair).
Dispathcer
Dispatcher yakni suatu modul yang akan menawarkan kontrol pada CPU terhadap penyeleksian proses yang dilakukan selama short-term scheduling. Fungsi-fungsi yang terkandung di dalamnya meliputi:
a. Switching context;
b. Switching ke user-mode;
c. Melompat ke lokasi tertentu pada user kegiatan untuk memulai program. Waktu yang diharapkan oleh dispatcher untuk menghentikan suatu proses dan memulai untuk menjalankan proses yang lainnya disebut dispatch latency.
a. Switching context;
b. Switching ke user-mode;
c. Melompat ke lokasi tertentu pada user kegiatan untuk memulai program. Waktu yang diharapkan oleh dispatcher untuk menghentikan suatu proses dan memulai untuk menjalankan proses yang lainnya disebut dispatch latency.
Algoritma Penjadwalan
Proses memerlukan prosesor dan penjadwalan pemakaian prosesor. Berdasarkan banyak sekali ketentuan pada penjadwalan proses serentak, sanggup disusun teknik penjadwalan prosesor. Dapat dipandang semua proses serentak itu sebagai satu kumpulan proses yang memerlukan prosesor.
Penjadwalan proses didasarkan pada sistem operasi yang memakai prinsip multiprogramming. Dengan cara mengalihkan kerja CPU untuk beberapa proses, maka CPU akan semakin produktif.
Algoritma diharapkan untuk mengatur giliran proses-proses yang ada di ready queue yang mengantri untuk dialokasikan ke CPU. Beberapa algoritma penjadwalan dijelaskan sebagai berikut :
Penjadwalan proses didasarkan pada sistem operasi yang memakai prinsip multiprogramming. Dengan cara mengalihkan kerja CPU untuk beberapa proses, maka CPU akan semakin produktif.
Algoritma diharapkan untuk mengatur giliran proses-proses yang ada di ready queue yang mengantri untuk dialokasikan ke CPU. Beberapa algoritma penjadwalan dijelaskan sebagai berikut :
First Come First Served (FCFS) Scheduling
FCFS merupakan algoritma penjadwalan yang paling sederhana yang dipakai dalam CPU. Dengan memakai algoritma ini setiap proses yang berada pada status ready dimasukkan kedalam FIFO queue atau antrian dengan prinsip first in first out, sesuai dengan waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi.
Kelemahan dari algoritma ini:
Kelemahan dari algoritma ini:
- Waiting time rata-ratanya cukup lama.
- Terjadinya convoy effect, yaitu proses-proses menunggu usang untuk menunggu 1 proses besar yang sedang dihukum oleh CPU. Algoritma ini juga menerapkan konsep non-preemptive, yaitu setiap proses yang sedang dihukum oleh CPU tidak sanggup di-interrupt oleh proses yang lain.
- Pada algoritma ini, maka proses yang pertama kali meminta jatah waktu untuk memakai CPU akan dilayani terlebih dahulu. Pada denah ini, proses yang meminta CPU pertama kali akan dialokasikan ke CPU pertama kali.
Shortest Job First (SJF) Scheduling
Pada algoritma ini setiap proses yang ada di ready queue akan dihukum menurut burst time terkecil. Hal ini mengakibatkan waiting time yang pendek untuk setiap proses dan alasannya yakni hal tersebut maka waiting time rata-ratanya juga menjadi pendek.
Ada beberapa kekurangan dari algoritma ini yaitu:
Ada beberapa kekurangan dari algoritma ini yaitu:
- Susahnya untuk memprediksi burst time proses yang akan dihukum selanjutnya.
- Proses yang mempunyai burst time yang besar akan mempunyai waiting time yang besar pula SJF (Shortest Job First) alasannya yakni yang dihukum terlebih dahulu yakni proses dengan burst time yang lebih kecil.
Algoritma ini sanggup dibagi menjadi dua bab yaitu
- Preemptive. Jika ada proses yang sedang dihukum oleh CPU dan terdapat proses di ready queue dengan burst time yang lebih kecil daripada proses yang sedang dihukum tersebut, maka proses yang sedang dihukum oleh CPU akan digantikan oleh proses yang berada di ready queue tersebut. Preemptive SJF sering disebut juga Shortest-Remaining- Time-First scheduling.
- Non-preemptive. CPU tidak memperbolehkan proses yang ada di ready queue untuk menggeser proses yang sedang dihukum oleh CPU meskipun proses yang gres tersebut mempunyai burst time yang lebih kecil.
Priority Scheduling
Priority Scheduling merupakan algoritma penjadwalan yang mendahulukan proses yang mempunyai prioritas tertinggi. Setiap proses mempunyai prioritasnya masing-masing.
Prioritas suatu proses sanggup ditentukan melalui beberapa karakteristik antara lain:
Prioritas suatu proses sanggup ditentukan melalui beberapa karakteristik antara lain:
- Time limit.
- Memory requirement.
- Akses file.
- Perbandingan antara I/O burst dengan CPU burst
- Tingkat kepentingan proses.
Pada algoritma ini terdapat 2 macam penjadwalan, yaitu :
- Preemptive. Jika ada suatu proses yang gres tiba mempunyai prioritas yang lebih tinggi daripada proses yang sedang dijalankan, maka proses yang sedang berjalan tersebut dihentikan, kemudian CPU dialihkan untuk proses yang gres tiba tersebut.
- Nonpreemtive. Proses yang gres tiba tidak sanggup menganggu proses yang sedang berjalan, tetapi hanya diletakkan di depan queue.
Kelemahan pada priority scheduling yakni sanggup terjadinya indefinite blocking (starvation). Solusi dari permasalahan ini yakni aging, yaitu meningkatkan prioritas dari setiap proses yang menunggu dalam queue secara bertahap.
Round Robin Scheduling
Algoritma ini menggilir proses yang ada di antrian. Setiap proses mendapat jatah sebesar time quantum. Jika time quantum-nya habis atau proses sudah selesai, CPU akan dialokasikan ke proses berikutnya.
Semua proses mendapat jatah waktu yang sama dari CPU yaitu (1/n), dan tak akan menunggu lebih usang dari (n-1)q dengan q yakni usang 1 quantum. Jika q terlalu besar maka akan sama dengan algoritma FCFS. Jika terlalu kecil, akan semakin banyak peralihan proses sehingga banyak waktu terbuang.
Konsep dasar dari algoritma ini yakni dengan memakai time-sharing. Pada dasarnya algoritma ini sama dengan FCFS, hanya saja bersifat preemptive. Setiap proses mendapat waktu CPU yang disebut dengan waktu quantum (quantum time) untuk membatasi waktu proses, biasanya 1-100 milidetik. Setelah waktu habis, proses ditunda dan ditambahkan pada ready queue. Jika suatu proses mempunyai CPU burst lebih kecil dibandingkan dengan waktu quantum, maka proses tersebut akan melepaskan CPU jikalau telah akibat bekerja, sehingga CPU sanggup segera dipakai oleh proses selanjutnya. Sebaliknya, jikalau suatu proses mempunyai CPU burst yang lebih besar dibandingkan dengan waktu quantum, maka proses tersebut akan dilarang sementara jikalau sudah mencapai waktu quantum, dan selanjutnya mengantri kembali pada posisi ekor dari ready queue, CPU kemudian menjalankan proses berikutnya. Jika terdapat n proses pada ready queue dan waktu quantum q, maka setiap proses mendapat 1/n dari waktu CPU paling banyak q unit waktu pada sekali penjadwalan CPU.
Semua proses mendapat jatah waktu yang sama dari CPU yaitu (1/n), dan tak akan menunggu lebih usang dari (n-1)q dengan q yakni usang 1 quantum. Jika q terlalu besar maka akan sama dengan algoritma FCFS. Jika terlalu kecil, akan semakin banyak peralihan proses sehingga banyak waktu terbuang.
Konsep dasar dari algoritma ini yakni dengan memakai time-sharing. Pada dasarnya algoritma ini sama dengan FCFS, hanya saja bersifat preemptive. Setiap proses mendapat waktu CPU yang disebut dengan waktu quantum (quantum time) untuk membatasi waktu proses, biasanya 1-100 milidetik. Setelah waktu habis, proses ditunda dan ditambahkan pada ready queue. Jika suatu proses mempunyai CPU burst lebih kecil dibandingkan dengan waktu quantum, maka proses tersebut akan melepaskan CPU jikalau telah akibat bekerja, sehingga CPU sanggup segera dipakai oleh proses selanjutnya. Sebaliknya, jikalau suatu proses mempunyai CPU burst yang lebih besar dibandingkan dengan waktu quantum, maka proses tersebut akan dilarang sementara jikalau sudah mencapai waktu quantum, dan selanjutnya mengantri kembali pada posisi ekor dari ready queue, CPU kemudian menjalankan proses berikutnya. Jika terdapat n proses pada ready queue dan waktu quantum q, maka setiap proses mendapat 1/n dari waktu CPU paling banyak q unit waktu pada sekali penjadwalan CPU.
Tidak ada proses yang menunggu lebih dari (n-1)q unit waktu. Performansi algoritma round robin sanggup dijelaskan sebagai berikut, jikalau q besar, maka yang dipakai yakni algoritma FIFO, tetapi jikalau q kecil maka sering terjadi context switch.