Penjadwalan CPU dan I/O adalah dua aspek penting dalam sistem operasi yang berkaitan dengan pengelolaan proses dan sumber daya. Penjadwalan CPU bertujuan untuk memaksimalkan pemanfaatan CPU dengan menentukan proses mana yang akan dieksekusi oleh CPU pada setiap saat. Penjadwalan I/O bertujuan untuk meminimalkan waktu tunggu dan meningkatkan throughput dari operasi I/O dengan menentukan urutan permintaan I/O yang akan dilayani oleh perangkat I/O.
Penjadwalan CPU
Penjadwalan CPU dilakukan oleh sistem operasi dengan menggunakan algoritma penjadwalan tertentu yang mempertimbangkan beberapa faktor, seperti prioritas, waktu tiba, durasi, dan frekuensi I/O dari proses. Beberapa algoritma penjadwalan CPU yang umum digunakan adalah:
- First Come First Serve (FCFS): Algoritma ini mengeksekusi proses sesuai dengan urutan kedatangannya di antrian siap. Algoritma ini mudah diimplementasikan, tetapi dapat menyebabkan waktu tunggu yang tinggi dan tidak adil bagi proses yang datang belakangan.
- Shortest Job First (SJF): Algoritma ini mengeksekusi proses yang memiliki durasi CPU burst terpendek terlebih dahulu. Algoritma ini dapat meminimalkan waktu tunggu rata-rata, tetapi membutuhkan pengetahuan tentang durasi CPU burst dari setiap proses, yang sulit untuk diprediksi secara akurat.
- Round Robin (RR): Algoritma ini mengeksekusi proses secara bergiliran dengan menggunakan interval waktu (quantum) yang tetap. Algoritma ini dapat memberikan pelayanan yang adil dan responsif, tetapi dapat menyebabkan overhead yang tinggi karena banyaknya pergantian konteks.
- Priority Scheduling: Algoritma ini mengeksekusi proses yang memiliki prioritas tertinggi terlebih dahulu. Algoritma ini dapat memenuhi kebutuhan proses yang penting, tetapi dapat menyebabkan masalah starvation, yaitu proses yang memiliki prioritas rendah tidak pernah mendapatkan kesempatan untuk dieksekusi.
- Multilevel Queue: Algoritma ini mengelompokkan proses ke dalam beberapa antrian berdasarkan karakteristiknya, seperti jenis, prioritas, atau memori yang dibutuhkan. Setiap antrian memiliki algoritma penjadwalan sendiri, dan sistem operasi menentukan antrian mana yang akan dilayani terlebih dahulu.
Penjadwalan I/O
Penjadwalan I/O dilakukan oleh sistem operasi dengan menggunakan algoritma penjadwalan tertentu yang mempertimbangkan beberapa faktor, seperti lokasi, arah, dan ukuran permintaan I/O. Beberapa algoritma penjadwalan I/O yang umum digunakan adalah:
- First Come First Serve (FCFS): Algoritma ini melayani permintaan I/O sesuai dengan urutan kedatangannya di antrian. Algoritma ini mudah diimplementasikan, tetapi dapat menyebabkan waktu layanan yang tinggi dan tidak efisien.
- Shortest Seek Time First (SSTF): Algoritma ini melayani permintaan I/O yang memiliki jarak terdekat dengan posisi saat ini dari kepala disk. Algoritma ini dapat meminimalkan jumlah pergerakan kepala disk, tetapi dapat menyebabkan masalah starvation, yaitu permintaan I/O yang berada di ujung disk jarang dilayani.
- SCAN: Algoritma ini melayani permintaan I/O dengan menggerakkan kepala disk secara bolak-balik dari ujung ke ujung disk, dan melayani permintaan I/O yang ada di sepanjang jalurnya. Algoritma ini dapat memberikan pelayanan yang adil dan merata, tetapi dapat menyebabkan waktu layanan yang tinggi untuk permintaan I/O yang berada di ujung disk.
- C-SCAN: Algoritma ini melayani permintaan I/O dengan menggerakkan kepala disk secara melingkar dari ujung ke ujung disk, dan melayani permintaan I/O yang ada di sepanjang jalurnya. Algoritma ini dapat memberikan pelayanan yang lebih merata daripada SCAN, tetapi tetap dapat menyebabkan waktu layanan yang tinggi untuk permintaan I/O yang berada di ujung disk.
- LOOK: Algoritma ini melayani permintaan I/O dengan menggerakkan kepala disk secara bolak-balik dari ujung ke ujung permintaan I/O yang ada, dan melayani permintaan I/O yang ada di sepanjang jalurnya. Algoritma ini dapat meminimalkan jumlah pergerakan kepala disk, tetapi tetap dapat memberikan pelayanan yang adil dan merata.