Apakah peralihan konteks terjadi pada sistem yang antrian siap pakainya hanya memiliki satu proses dan menggunakan penjadwalan round-robin?
Asumsikan bahwa ledakan cpu saat ini dari proses tunggal mencakup lebih dari satu potongan waktu algoritma round-robin.
Alasan saya seperti di bawah ini
Langkah-langkah yang mungkin terjadi ketika interupsi pengatur waktu terjadi pada kasus biasa adalah
- Interupsi terjadi. Beralih ke mode kernel
- OS menyimpan konteks saat ini ke dalam PCB (menyimpan register, status proses, dan info manajemen memori dari proses saat ini)
- Lakukan banyak operasi khusus arsitektur, termasuk menghapus data dan cache instruksi serta TLB.
- Masukkan proses saat ini ke dalam antrian siap
- Pilih proses baru untuk dijalankan
- Muat konteks dari PCB proses itu
- Beralih ke mode pengguna. Mulai jalankan proses baru
Saya sekarang berpikir bahwa OS sebaiknya memeriksa antrian siap terlebih dahulu dan memeriksa apakah ada proses lain. Jika tidak ada maka tidak diperlukan peralihan konteks. Jadi penanganan interupsi pengatur waktu akan memerlukan peralihan antara mode pengguna dan mode kernel, memeriksa Q yang siap, dan beralih kembali ke mode pengguna untuk melanjutkan eksekusi proses.
Apakah ini yang terjadi? Atau apakah terjadi peralihan konteks yang tepat yang melibatkan penyimpanan yang tidak perlu dari keadaan saat ini dari satu-satunya proses dan pemulihannya?
Jika nanti memang terjadi, apakah ada alasan khusus?
Kebingungan ini muncul karena adanya pertanyaan di kertas ujian mengenai penghitungan waktu yang dihabiskan dalam peralihan konteks dalam situasi seperti itu. Jawaban yang diberikan menyiratkan bahwa peralihan konteks memang terjadi.
Saya berharap orang-orang yang telah mempelajari kode kernel dapat memahami hal ini. Demikian pertanyaan tentang stackoverflow ini.