Kernel Mode atau Modus Kernel, disebut juga sebagai modus sistem, yaitu salah satu dari dua mode yang berbeda dari operasi CPU (central processing unit) di Linux. Yang lainnya adalah mode pengguna, mode non-privilege untuk program
pengguna, yaitu, untuk segala sesuatu selain kernel.
Ketika CPU dalam mode kernel, CPU dianggap menjalankan perangkat lunak, sehingga dapat melaksanakan segala petunjuk dan setiap referensi lokasi memori. Kernel merupakan inti dari sistem operasi dan memiliki kendali penuh atas segala sesuatu yang terjadi dalam sistem perangkat lunak, tapi semua program lain merupakan tidak dipercaya. Jadi, semua perangkat lunak mode pengguna harus meminta penggunaan kernel melalui system call untuk melakukan instruksi istimewa, seperti proses penciptaan atau operasi input / output.
Sebuah system call adalah permintaan ke kernel dalam sistem operasi mirip Unix oleh proses aktif untuk layanan dilakukan oleh kernel. Sebuah proses adalah turunan pelaksana program. Suatu proses yang aktif adalah proses yang saat ini maju dalam CPU (sementara proses lainnya yang menunggu di memori untuk bergantian menggunakan CPU). Input / output (I / O) adalah setiap program, operasi atau perangkat yang mentransfer data ke atau dari CPU dan ke atau dari perangkat periferal (seperti disk drive, keyboard, mouse dan printer).
Kernel Linux adalah non-preemptive melalui Versi 2.4. Artinya, sementara suatu proses dalam mode kernel, tidak dapat sewenang-wenang ditunda dan diganti dengan proses lain (yaitu, mendahului) untuk durasi irisan waktu (yaitu, interval alokasi waktu dalam CPU), berbeda dengan mode pengguna , kecuali bila secara sukarela melepaskan kontrol CPU. Proses dalam mode kernel bisa, bagaimanapun, terganggu oleh interrupt atau pengecualian.
Interrupt adalah sinyal untuk sistem operasi bahwa suatu peristiwa telah terjadi, dan itu menghasilkan perubahan dalam urutan instruksi yang dieksekusi oleh CPU. Dalam kasus hardware mengganggu, sinyal berasal dari sebuah perangkat keras seperti keyboard (misalnya, ketika pengguna menekan tombol), tikus atau sistem jam (sirkuit yang menghasilkan pulsa pada interval yang tepat yang digunakan untuk mengkoordinasikan komputer kegiatan). Sebuah software interrupt adalah interrupt yang berasal dalam perangkat lunak, dan biasanya dipicu oleh sebuah program dalam mode pengguna. Prosedur standar untuk berubah dari user mode ke mode kernel adalah untuk memanggil software interrupt 0x80. pengecualian adalah suatu kondisi yang tidak biasa, misalnya sebuah instruksi tidak
Valid dalam program.
Semua proses mulai eksekusi dalam mode pengguna, dan mereka beralih ke mode kernel hanya ketika mendapatkan layanan yang disediakan oleh kernel. Perubahan dalam mode yang disebut switch mode, tidak boleh disamakan dengan context switch (meskipun kadang-kadang), yang merupakan switching dari CPU dari satu proses yang lain.
Ketika sebuah proses user menjalankan sebagian dari kode kernel melalui system call, proses sementara menjadi suatu proses kernel dan dalam mode kernel. Sedangkan dalam mode kernel, proses ini akan memiliki akar (yaitu, administratif) hak istimewa dan akses ke sumber daya sistem kunci. Kernel secara keseluruhan, yang bukan merupakan proses tetapi kontroler proses, melaksanakan hanya dalam mode kernel. Ketika kernel telah memenuhi permintaan sebuah proses, ia mengembalikan proses ke mode pengguna.
Beberapa CPU, termasuk (misalnya, Intel-compatible) x86-kompatibel hampir di mana-mana prosesor, dirancang untuk mengakomodasi lebih dari dua mode eksekusi. Namun, semua kernel standar dalam sistem operasi mirip Unix hanya menggunakan kernel mode dan user mode.
Beberapa sistem operasi, seperti MS-DOS (pendahulu untuk sistem operasi Microsoft Windows) tidak memiliki mode kernel yang berbeda, melainkan memungkinkan program pengguna untuk berinteraksi langsung dengan komponen perangkat keras. Namun, sistem operasi mirip Unix menggunakan mekanisme modus ganda untuk menyembunyikan semua rincian tingkat rendah mengenai organisasi fisik dari sistem dari program aplikasi yang diluncurkan oleh pengguna sebagai sarana untuk memastikan stabilitas sistem dan keamanan.
Kernel Linux Versi 2.6 (yang diperkenalkan pada akhir 2003) adalah preemptive. Artinya, sebuah proses yang berjalan dalam mode kernel bisa ditunda dalam rangka untuk menjalankan proses yang berbeda. Hal ini bisa menjadi manfaat penting untuk aplikasi real time (yakni, sistem yang harus merespon kejadian eksternal hamper bersamaan ).
Kernel Unix-seperti juga reentrant, yang berarti bahwa beberapa proses dapat dalam mode kernel secara bersamaan. Namun, pada sistem prosesor tunggal, hanya satu proses, terlepas dari modus tersebut, akan maju dalam CPU pada setiap saat, dan yang lain akan sementara diblokir sampai giliran.
0 komentar:
Posting Komentar
Silahkan Tinggalkan Komentar Anda