Anda di halaman 1dari 4

Penjadwalan CPU

Dalam sistem CPU, hanya satu proses yang dapat berjalan pada waktu. Yang lainnya
harus menunggu hingga inti CPU kosong dan dapat dijadwal ulang. Tujuan dari
multiprogramming adalah agar beberapa proses dapat bejalan setiap saat, untuk memaksimalkan
penggunaan CPU. Setiap kali CPU menjadi idle, sistem operasi harus memilih salah satu proses
dalam antrian yang siap untuk dieksekusi. Proses seleksi tersebut dilakukan oleh penjadwal CPU,
yang memilih proses dalam memori yang siap dieksekusi dan mengalokasikan CPU ke proses
tersebut.
Penjadwalan Preemptive dan Nonpreemptive
Penjadwalan CPU dapat terjadi dalam 4 keadaan seperti berikut:
 Ketika suatu proses beralih dari status berjalan ke status menunggu
(Misalnya, sebagai hasil dari permintaan I/O atau pemanggilan tunggu() untuk
penghentian proses anak)
 Ketika suatu proses beralih dari status berjalan ke status siap (Misalnya, ketika interupsi
terjadi)
 Ketika sebuah proses beralih dari status menunggu ke status siap (Misalnya, pada
penyelesaian I/O)
 Ketika sebuah proses berakhir
Untuk situasi 1 dan 4, tidak ada pilihan dalam hal penjadwalan. Proses baru
(jika ada dalam antrian siap) harus dipilih untuk dieksekusi. Namun, ada
pilihan untuk situasi 2 dan 3.
Dibawah penjadwalan nonpreemptive, setelah CPU telah dialokasikan ke suatu proses,
proses tersebut mempertahankan CPU sampai ia melepaskannya baik dengan menghentikan atau
dengan beralih ke status menunggu. Hampir semua sistem operasi modern termasuk Windows,
macOS, Linux, dan UNIX menggunakan algoritma penjadwalan preemptive.
Pengirim
Komponen lain yang terlibat dalam fungsi penjadwalan CPU adalah: Petugas operator.
Dispatcher adalah modul yang memberikan kendali inti CPU ke proses yang dipilih oleh
penjadwal CPU. Fungsi ini melibatkan hal-hal berikut:
 Beralih konteks dari satu proses ke proses lainnya
 Beralih ke mode pengguna
 Melompat ke lokasi yang tepat di program pengguna untuk melanjutkan program itu
Dispatcher harus secepat mungkin, karena dipanggil selama setiap sakelar konteks.
Waktu yang diperlukan operator untuk menghentikan satu proses dan memulai proses lainnya
dikenal sebagai Pengiriman latens
Kriteria Penjadwalan
Algoritme penjadwalan CPU yang berbeda memiliki properti yang berbeda, dan pilihan
algoritme tertentu dapat mendukung satu kelas proses daripada yang lain. Dalam memilih
algoritma mana yang akan digunakan dalam situasi tertentu, kita harus mempertimbangkan
properti dari berbagai algoritma. Banyak kriteria yang telah disarankan untuk membandingkan
algoritma penjadwalan CPU. Kriteria tersebut antara lain :

 Pemanfaatan CPU
 Throughtput
 Waktu Penyelesaian
 Waktu Menunggu
 Waktu Merespon

Penjadwalan Shortest-Job-First (SJF)


 Kaitkan dengan setiap proses lamanya CPU burst berikutnya
- Gunakan waktu panjang ini untuk menjadwalkan proses dengan waktu terpendek
 SJF optimal – memberikan waktu tunggu rata-rata minimum untuk set tertentu dari
proses
- Kesulitannya adalah mengetahui panjang permintaan CPU berikutnya
- Bisa bertanya kepada pengguna
 Versi preemptive disebut terpendek-sisa-waktu-pertama
Menentukan Panjang Ledakan CPU Berikutnya
 Hanya dapat memperkirakan panjangnya – harus serupa dengan yang sebelumnya
- Kemudian pilih proses dengan ledakan CPU berikutnya yang diprediksi terpendek
 Dapat dilakukan dengan menggunakan panjang semburan CPU sebelumnya,
menggunakan rata-rata eksponensial
1. tn = Panjang sebenarnya dari CPU burst
2. τ n+1= Nilai prediksi untuk CPU burst berikutnya
3. α ,0 ≤ α ≤ 1
4. Maka
τ n+1= τ n+(1)τn

Penjadwalan theads
Satu perbedaan antara thread tingkat pengguna dan tingkat kernel terletak pada bagaimana
mereka dijadwalkan. Pada sistem yang menerapkan model banyak-ke-satu (Bagian 4.3.1) dan
banyak-ke-banyak (Bagian 4.3.3), pustaka utas menjadwalkan utas tingkat pengguna untuk
dijalankan pada LWP yang tersedia. Skema ini dikenal sebagai processcontention scope (PCS),
karena persaingan untuk CPU terjadi di antara thread yang termasuk dalam proses yang sama
Sekarang, kami menyoroti POSIX Pthread API yang memungkinkan penentuan PCS atau SCS
selama pembuatan thread. Pthreads mengidentifikasi nilai-nilai ruang lingkup pertentangan
berikut:
• PTHREAD SCOPE PROCESS menjadwalkan thread menggunakan penjadwalan PCS.
• PTHREAD SCOPE SYSTEM menjadwalkan thread menggunakan penjadwalan SCS.
Penjadwalan Multi-Prosesor
Secara tradisional, istilah multiprosesor mengacu pada sistem yang menyediakan beberapa
prosesor fisik, di mana setiap prosesor berisi satuinti tunggal CPU. Namun, definisi
multiprosesor telah berkembang secara signifikan, dan pada sistem komputasi modern,
multiprosesor sekarang berlaku untukberikut:
• arsitektur sistem
• multicore CPU
• multithreaded core
• sistem NUMA
• heterogen multiprocessing
Pendekatan standar untuk mendukung multiprosesor adalah symmetric multiprocessing (SMP),
di mana setiap prosesor menjadwalkan sendiri. Penjadwalan berlangsung dengan meminta
penjadwal untuk setiap prosesor memeriksa antrian siap dan memilih utas untuk dijalankan.
Perhatikan bahwa ini memberikan dua kemungkinan strategi untuk mengatur utas yang
memenuhi syarat untuk dijadwalkan:
1. Semua utas mungkin berada dalam antrian siap yang umum.
2. Setiap prosesor mungkin memiliki antrian utas pribadinya sendiri.
Secara tradisional, sistem SMP memungkinkan beberapa proses berjalan secara paralel dengan
menyediakan beberapa prosesor fisik. Namun, sebagian besarkomputer kontemporer perangkat
kerassekarang menempatkan beberapa core komputasi padafisik yang sama chip, menghasilkan
prosesor multicore
Penjadwalan CPU Real-Time
CPU untuk sistem operasi real-time melibatkan masalah khusus. Secara umum, kita dapat
membedakan antara sistem waktu nyata lunak dan sistem waktu nyata keras Sistem soft real-time
tidak memberikan jaminan kapan proseskritis real-timeakan dijadwalkan. Mereka hanya
menjamin bahwa proses akan lebih diutamakan daripada proses yang tidak kritis. Sistem hard
real-time memiliki persyaratan yang lebih ketat
Meminimalkan Latensi
Pertimbangkan sifat event-driven dari sistem real-time. Sistem biasanya menunggu peristiwa
secara real time terjadi. Peristiwa dapat muncul baik dalam perangkat lunak persyaratan latensi
untuk sistem rem anti penguncian mungkin 3 hingga 5 milidetik. Artinya, dari saat roda pertama
kali mendeteksi bahwa itu meluncur, sistem yang mengendalikan rem anti penguncian memiliki
waktu 3 hingga 5 milidetik untuk merespons dan mengendalikan situasi.
Dua jenis latency mempengaruhi kinerja sistem real-time:
1. Interrupt latency
2. Dispatch latency
Interrupt latency mengacu pada periode waktu dari kedatangan interupsi di CPU ke awal
rutinitas yang melayani interupsi.
Fasedari latensi pengiriman memiliki dua komponen:
1. Preemption dari setiap proses yang berjalan di kernel
2. Rilis oleh proses berprioritas rendah sumber daya yang dibutuhkan olehberprioritas tinggi
proses Setelah fase konflik, fase pengiriman menjadwalkan prioritas tinggi proses ke CPU yang
tersedia.

Anda mungkin juga menyukai