Saya membaca buku Sistem Operasi oleh Galvin. Galvin menjelaskan, apa itu mode kernel & pengguna, hak istimewa instruksi yang diberikan untuk kedua mode & juga tentang mode-bit. Tapi saya tertarik untuk mengetahui bagaimana perubahan mode dari satu ke yang lain. Pada dasarnya saya ingin menyelesaikan pertanyaan berikut:
CPU memiliki 2 mode, privilege dan non-privilege. Untuk mengubah mode dari yang dicegah menjadi yang tidak dicegah
a) Diperlukan interupsi perangkat keras
b) Diperlukan interupsi perangkat lunak.
c) Instruksi istimewa dibutuhkan.
d) Suatu instruksi yang tidak istimewa diperlukan.
Dari apa yang saya mengerti,
dari mode pengguna ke mode kernel - Interupsi Perangkat Keras diperlukan [seperti pada Disk I / O]. Sekarang, jika pengguna program ban untuk mengakses memori yang berada di luar jangkauan yang diizinkan, terjadi jebakan, yang pada dasarnya adalah gangguan perangkat lunak yang akan ditangani oleh OS. Sekarang, dalam mode pengguna kami tidak dapat menjalankan instruksi istimewa. Jadi, instruksi yang tidak istimewa seperti permintaan I / O dapat mengubah pengguna ke mode kernel. Jadi saya pikir, untuk berubah
dari non-privilege (pengguna) ke privilege (kernel) - H / W Interrupt, S / W Interrupt & instruksi non-Privileged akan dilakukan.
Sekarang datang ke, kernel ke mode pengguna. OS dapat mengubah kernel ke mode pengguna. Jadi, itu hanya akan menjalankan instruksi istimewa untuk mengubah dari mode kernel ke pengguna. Tidak perlu menghasilkan interupsi H / w atau S / w. Jadi saya menyimpulkan, untuk berubah
dari berlaku untuk non-dicegah - instruksi istimewa akan dilakukan.
Apakah saya benar ?
Juga ketika menjalankan dalam mode kernel, semua interupsi akan dinonaktifkan kan? Jadi jawabannya tidak bisa (a) atau (b). Juga, karena OS pada dasarnya adalah perangkat lunak, itu tidak dapat menghasilkan interupsi H / W.
Juga, karena OS itu sendiri menangani interupsi, tidak masuk akal bagi saya mengapa harus menghasilkan interupsi (& service it) untuk berubah dari kernel ke mode pengguna.
Tolong beri tahu saya jika ada yang salah. Setiap bantuan mengenai hal ini sangat kami hargai.
Dari mode kernel (istimewa) ke pengguna (unprivileged), kami menggunakan RtI (kembali dari interupsi), yang merupakan instruksi istimewa ( https://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix .alangref / idalangref_rfi_retfinter_instrs.htm ). jadi, menurut saya itu harus menjadi opsi C.
sumber