PENGERTIAN THREAD
Thread merupakan kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh, karena thread dalam program memiliki fungsi dan tugas tersendiri. Dengan adanya thread, dapat membuat program yang lebih efisien dalam hal kecepatan maupun penggunaan sumber daya, karena kita dapat membagi proses dalam aplikasi kita pada waktu yang sama. Thread umumnya digunakan untuk pemrograman multitasking, networking, yang melibatkan pengaksesan ke sumber daya secara konkuren.
Ada dua cara yang bisa digunakan dalam membuat sebuah thread, yaitu :
Membuat subclass dari thread Untuk menjalankan thread, dapat dilakukan dengan memanggil method start(). Saat start() dijalankan, maka sebenarnya method run() dari class akan dijalankan. Jadi untuk membuat thread, harus mendefinisikan method run()
Keuntungan dari THREAD :
- Membuat aplikasi yang interaktif menjadi multithreading dapt membuat sebuah program terus berjalan meskipun sebagian dari program tersebut doblok atau melakukan operasi yang panjang. Karena itu dapt meningkatkan respons kepada pengguna. Sebagai contohnya dalam web browser yang multithreading. Sebuah thread dapt melayani permintaan pengguna sementara thread lain berusaha menampilkan image.
- Thread berbagi memori daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengijinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
- Utilisasi arsitektur multiprocessor, yaitu keuntungan dati multithreading dapat sangat meningkat pada arsitektur multiprosessor.
Penjelasan dari User THREAD
- User Thread didukung diatas kernel dan diimplementasikan oleh thread library pada level user.
- Library mendukung pembuatan thread, penjadwalan, dan manajemen tanpa dukungan langsung dari kernel.
- Karena kernel tidak menyadari adanya user-level threads maka pembuatan semua thread dan penjadwalan dilakukan didalam user space tanpa intervensi dari kernel.
- Three primary threads libraries :
· POSIX pthread
· Win32 thread
· Java thread
Penjelasan dari kernel Thread :
- Kernel thread didukung secara langsung dari system operasi. Pembuatan thread, penjadwalan, dan manajemen di lakukan oleh SO.. atau secara umun user thread lebih cepat di buat dari pada membuat kernel thread.
Penjelasan dari Model MultiThreading
a. Thread pengguna: Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.
b. Thread Kernel: Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna.
Model-Model MultiThreading:
a. Model Many-to-One .
Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh: Solaris Green Threads dan GNU Portable Threads.
b. Model One-to-One .
Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlahthread dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9.
c. Model Many-to-Many
Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.
Penjelasan dari Thread Cancellation :
- Thread cancellation adalah sebuah tugas untuk memberhentikan thread tersbut selesai. missal, JVM akan mematikan seluruh thread sebelum end.
- Thread uang akan diberhentikan disebut targer thread.
- 2 skrenario thread cancellation:
· Asynchronous cancellation : satu thread memberhentikan target thread seketika itu juga.
· Deferred cancellation : target thread secara periodik dapat mengecek apakah dia harus berhenti, skrenario ini dapat member kesempatan kepada target thread untuk memberhentkan dirinya sendiri.
Penjelasan dari Thread Pool Arsitektur
Aplikasi berikut bisa mendapatkan keuntungan dari menggunakan kolam thread:
- Sebuah aplikasi yang sangat paralel dan dapat mengirimkan sejumlah besar item pekerjaan kecil asynchronously (seperti pencarian indeks didistribusikan atau jaringan I / O).
- Sebuah aplikasi yang menciptakan dan menghancurkan sejumlah besar thread yang masing-masing berjalan untuk waktu yang singkat. Menggunakan kolam thread dapat mengurangi kompleksitas pengelolaan benang dan overhead terlibat dalam pembuatan benang dan kehancuran.
- Sebuah aplikasi yang proses item pekerjaan independen di latar belakang dan secara paralel (seperti memuat banyak tab).
- Sebuah aplikasi yang harus melakukan menunggu eksklusif pada objek kernel atau memblokir pada peristiwa masuk pada objek. Menggunakan kolam thread dapat mengurangi kompleksitas manajemen benang dan meningkatkan kinerja dengan mengurangi jumlah switch konteks.
- Sebuah aplikasi yang menciptakan benang pelayan kustom untuk menunggu peristiwa.
Penjelasan dari LINUX Thread
- Thread pada Linux mulai digunakan di kernel versi 2.2
- Thread lebih dianggap sebagai tasks
- Linux menyediakan 2 sistem call yang berhubungan dengan thread :
· Fork (), duplikasi proses, dimana proses anakk independen
· Clone (), mirip seperti fork(), namun selain meng-copy proses yang akan memanggilnya, method ini membuat proses baru yang berbagi addres space yang sama dengan proses yang memanggilnya, sehingga sama persis dengan induknya.
- Context switch Linux lebih cepat
Penjelasan dari JAVA Thread
Suatu thread bisa berada pada salah satu dari status berikut :
• N ew.
T h re a d yang berada di status ini adalah objek dari kelasThread yang baru dibuat,
yaitu saat instansiasi objek dengan statement new. Saatt hre a d berada di statusnew, belumada sumber daya yang dialokasikan, sehinggathread belum bisa menjalankan perintahapapun.
◊ Menjalankant hre a d. Agart hre a d bisa menjalankan tugasnya, methodstart() dari
kelasThread harus dipanggil. Ada dua hal yang terjadi saat pemanggilan method
start(), yaitu alokasi memori untukth rea d yang dibuat dan pemanggilan method
run().
• Ru n n a b le.
Saat methodrun() dipanggil, statusth rea d berubah menjadirunnabl e, artinya
thread tersebut sudah memenuhi syarat untuk dijalankan oleh JVM. Thread yang sedang
berjalan juga dikategorikan dalam statusrunnable.
◊ Blocking statement dan interupsi M/K, yaitu kondisi yang menghalangi
pengeksekusiant hre a d. Ada berbagai jenis blocking statement. Yang pertama adalahpemanggilan method sleep(), suatu method yang menerima argumen bertipeint egerdalam bentuk milisekon. Argumen tersebut menunjukkan seberapa lamath rea d akan"tidur". Selainsleep(), dulunya dikenal methodsuspend(), tetapi sudahdisarankan untuk tidak digunakan lagi karena mengakibatkan terjadinyadeadlock.Di samping blocking statement, adanya interupsi M/K juga dapat menyebabkan
threadmenjadi blocked.
• Blocked.
Statusbloc king menunjukkan bahwa sebuaht h re a d terhalang untuk menjalankan
tugasnya, sehingga dapat dikatakant hre a d tersebut terhenti untuk sementara.
Thred akanmenjad irunnable kembali jika interval methodsleep() nya sudah berakhir, ataupemanggilan methodresume() untuk mengakhiri methodsuspend(,) atau karena M/Ksudah tersedia lagi.
◊ Keluar dari methodrun(). Hal ini bisa terjadi karenat hre a d tersebut memang telah
menyelesaikan pekerjaannya di methodrun(), maupun karena adanya pembatalan
thread.
• Dead.
Setelah keluar dari methodrun(),thread akan berada dalam statusdead dan menjadi tidak aktif lagi. Status jelas dari sebuahthread tidak dapat diketahui, tetapimethodisAlive() mengembalikan nilai boolean untuk mengetahui apakahthreadtersebutdead atau tidak.
1. Hard Real time
2. Soft Real time
3. Firm Real time
1. Monolithic kernel. Kernel yang menyediakan abstraksi perangkat keras yang kaya dan tangguh.
2. Microkernel. Kernel yang menyediakan hanya sekumpulan kecil abstraksi perangkat keras sederhana, dan menggunakan aplikasi-aplikasi yang disebut sebagai server untuk menyediakan fungsi-fungsi lainnya.
3. Hybrid (modifikasi dari microkernel). Kernel yang mirip microkernel, tetapi ia juga memasukkan beberapa kode tambahan di kernel agar ia menjadi lebih cepat.
4. Exokernel. Kernel yang tidak menyediakan sama sekali abstraksi hardware, tapi ia menyediakan sekumpulan pustaka yang menyediakan fungsi-fungsi akses ke perangkat keras secara langsung atau hampir-hampir langsung.
Penjelasan dari Penjadwalan CPU
Konsep Dasar
Tujuan dari multi programming adalah untuk mempunyai proses berjalan secara bersamaan, unutk memaksimalkan kinerja dari CPU. Untuk sistem uniprosesor, tidak pernah ada proses yang berjalan lebih dari satu. Bila ada proses yang lebih dari satu maka yang lain harus mengantri sampai cpu bebas.
Ide dari multi porgamming sangat sederhana. Ketika sebuah proses dieksekusi yang lain harus menunggu sampai selesai. Di sistem komputer yang sederhana CPU akan banyak dalam posisi idle.Semua waktu ini sangat terbunag,. Dengan multiprogamming kita mencoba menggunakan waktu secara produktif. Beberapa proses di simpan dalam memori dalam satu waktu. Ketika proses harus menuggu. Sistem operasi mengmbil cpu untuk memproses proses tersebut dan meninggalkan proses yang sedang dieksekusi.
penjadwalan adalah fungsi dasar dari suatu sistem opersai. Hampir semua sumber komputer dijadwalkan sebelum digunakan. CPU salah satu sumber dari komputer yang penting yang menjadi sentral dari sentral penjadwalan di sistem operasi.
Penjadwalan CPU mungkin akan dijalankan ketika proses :
1. Berubah dari running ke waiting state
2. Berubah dari running ke ready state
3. Berubah dari waiting ke ready
4. Terminates
Penjadwalan dari no 1 sampai 4 non premptive sedangkan yang lain premptive. Dalam penjadwalan nonpreemptive sekali cpu telah dialokasikan untuk sebuah proses , maka tidak bisa di ganggu, penjadwalan model seperti ini digunakan oleh windows 3.x; windows 95 telah menggunakan penjadwalan preemptive.
Kriteria Penjadwalan
Algoritma penjadwalan CPU yang berbeda mempunyai property yang berbeda. Dalam memilih algoritma yang digunakan untuk situasi tertentu, kita harus memikirkan properti yang berbeda untuk algoritma yang berbeda. Banyak kriteria yang dianjurkan utnuk membandingkan penjadwalan CPU algoritma. Kritria yang biasanya digunakan dalam memilh adalah :
1. CPU utilization : kita ingin menjaga CPU sesibuk mungkin. CPU utilization akan mempunyai range dari 0 ke 100 persen. Di sistem yang sebenarnya seharusnya ia mempunyai range dari 40 persen samapi 90 persen
2. Throughput : jika cpu sibuk mengeksekusi proses, jika begitu kerja telah dilaksanakan. Salah satu ukuran kerja adalah banyak proses yang diselesaikan per unit waktu, disebut througput. Untuk proses yang lama mungkin 1 proses per jam ; untuk proses yang sebentar mungkin 10 proses perdetik.
3. Turnaround time : dari sudur pandang proses tertentu, kriteria yang penting adalah berapa lama untuk mengeksekusi proses tersebut. Interval dari waktu yang dijinkan dengan waktu yang dibutuhkan untuk menyelesaikan sebuah prose disebut turn around time. Trun around time adalah jumlah periode untuk menunggu untuk bisa ke memori, menunggu di ready queue, eksekusi di CPU, dan melakukan I/O
4. Waiting time : algoritma penjadwalan cpu tidak mempengaruhi waktu untuk melaksanakan proses tersebut atau I/O; itu hanya mempengaruhi jumlah waktu yang dibutuhkan proses di antrian ready. Waiting time adalah jumlah periode menghabiskan di antrian ready.
5. Response time : di sistem yang interaktif, turnaround time mungkin bukan waktu yang terbaik untuk kriteria. Sering sebuah proses bisa memproduksi output diawal, dan bisa meneruskan hasil yang baru sementara hasil yang sebelumnya telah diberikan ke user. Ukuran yang lain adalah waktu dari pengiriamn permintaan sampai respon yang pertama di berikan. Ini disebut response time, yaitu waktu untuk memulai memberikan respon, tetapi bukan waktu yang dipakai output untu respon tersebut.
Biasanya yang dilakukan adalah memaksimalkan CPU utilization dan throughput, dan minimalkan turnaround time, waiting time, dan response time dalam kasus tertentu kita mengambil rata-rata.
Dispatcher
Komponen yang lain yang terlibat dalam penjadwalan CPU adalan dispatcher. Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang fungsinya adalah :
1. Switching context
2. Switching to user mode
3. Lompat dari suatu bagian di porgam user untuk mengulang progam.
Dispatcher seharusnya secepat mungkin,
Algoritma Penjadwalan
Penjadwalan CPU berurusan dengan permasalahan memutuskan proses mana yang akan dillaksanakan , oleh karena itu banyak bermacam algoritma penjadwalan.
First Come, First Served
Ini merupakan algoritma yang paling sederhana , dengan skema proses yang meminta cpu mendapat prioritas. Implementasi dari FCFS mudah diatasi dengan FIFO queue.
Penjadwalan Shortest Job First
Salah satu algoritma yang lain adalah Shortest Job First. ALgoritma ini berkaitan dengan waktu setiap proses . Ketika CPU bebas proses yang mempunyai waktu terpendek untuk menyelesaikannya mendapat prioritas. Seandainya dua proses atau lebih mempunyai waktu yang sama maka FCFS algoritma digunakan untuk menyelsaikan masalah tersebut.
Ada dua skema dalam SJFS ini yaitu :
1. nonpremptive — ketika CPU memberikan kepada proses itu tidak bisa ditunda hingga selesai
2. premptive — bila sebuah proses datang dengan waktu prose lebih rendah dibandingkan dengan waktu proses yang sedang dieksekusi ooleh CPU maka proses yang waktunya lebih rendah mendapatkan prioritas. Skema ini disebut juga Short -Remaining Time First (SRTF)
Penjadwalan prioritas
Pendawalan SJF(Shorthest Job First) adalah kasus khusus untuk algoritma penjadwalan Prioritas. Prioritas dapat diasosiasikan masing-masing proses dan CPU dialokasikan untuk proses dengan prioritas tertinggi. Untuk proritas yang sama dilakukan dengan FCFS.
Adapun algoritma penjadwalam prioritas adalah sebagai berikut :
· Setiap proses akan mempunyai prioritas (bilangan integer). Beberapa sistem menggunakan integer dengan urutan kecil untuk proses dengan prioritas rendah, dan sistem lain juga bisa menggunakan integer urutan kecil untuk proses dengan prioritas tinggi. Tetapi dalam teks ini diasumsikan bahwa integer kecil merupakan prioritas tertinggi.
· CPU diberikan ke proses dengan prioritas tertinggi (integer kecil adalah prioritas tertinggi).
· Dalam algoritma ini ada dua skema yaitu :
1. Preemptive: proses dapat di interupsi jika terdapat prioritas lebih tinggi yang memerlukan CPU.
2. Nonpreemptive: proses dengan prioritas tinggi akan mengganti pada saat pemakain time-slice habis.
· SJF adalah contoh penjadwalan prioritas dimana prioritas ditentukan oleh waktu pemakaian CPU berikutnya.
Permasalahan yang muncul dalam penjadwlan prioritas adalah indefinite blocking atau starvation
· Kadang-kadang untuk kasus dengan prioritas renda mungkin tidak pernah dieksekusi
Solusi untuk algoritma penjadwalan prioritas adalah aging
· Prioritas akan naik jika proses makin lama menunggu waktu jatah CPU.
Penjadwalan Round Robin
Algoritma Round Robin (RR) didisain untuk sistem time sharing. Algoritma ini mirip dengan penjadwalan FCFS , namun preemption ditambahkan untuk switch antara proses. Antrian ready diperlakukan atau dianggap sebagai antrian sirkular. CPU menglilingi antrian ready dan mengalokasikan masing-masing proses untuk interval waktu tertentu sampai satu time slice /quantum.
Berikut algritma untuk penjadwalan Round Robin :
· Setiap proses mendapat jatah waktu CPU (time slice/quantum) tertentu Time slice/quantum umumnya ntara 10 - 100 milidetik.
1. Setelah time slice/quantum maka proses akan di-preempt dan dipindahkan ke antrian ready.
2. Proses ini adil dan sangat sederhana.
· Jika terdapat n proses di "antrian ready " dan waktu quantum q (milidetik), maka:
1. Maka setiap proses akan mendapatkan 1/n dari waktu CPU.
2. Proses tidak akan menunggu lebih lama dari: (n-1)q time units.
· Performance dari algoritma ini tergantung dari ukuran time quantum
1. Time Quantum dengan ukuran yang besar maka akan sama dengan FCFS
2. Time Quantum dengan ukuran yang kecil maka time quantum harus diubah ukurannya lebih besar dengan respek pada context switch sebaliknya akan memerlukan ongkos yang besar.
Penjelasan dari Multiprocessor
Multiprocessor
Yaitu Sistem komputer dengan dua atau lebih CPU identik yang membagi akses secara penuh kepada common RAM ( Shared Memory MultiProcessor ).
System real time
Disebut juga dengan Sistem waktu nyata. Sistem yang harus menghasilkan respon yang tepat dalam batas waktu yang telah ditentukan. Jika respon komputer melewati batas waktu tersebut, maka terjadi degradasi performansi atau kegagalan sistem. Sebuah Real time system adalah sistem yang kebenarannya secara logis didasarkan pada kebenaran hasil-hasil keluaran sistem dan ketepatan waktu hasil-hasil tersebut dikeluarkan. Aplikasi penggunaan sistem seperti ini adalah untuk memantau dan mengontrol peralatan seperti motor, assembly line, teleskop, atau instrumen lainnya. Peralatan telekomunikasi dan jaringan komputer biasanya juga membutuhkan pengendalian secara Real time.
Berdasarkan batasan waktu yang dimilikinya, Real time system ini dibagi atas:
1. Hard Real time
2. Soft Real time
3. Firm Real time
Komponen dari dari real time system ini adalah :
1. Perangkat keras
2. System operasi real time
3. Bahasa pemrograman real time
4. System komunikasi
Penjadwalan Asymmetric MultiProcessing (AMP)
Pendekatan pertama untuk penjadwalan prosesor jamak adalah penjadwalan asymmetric multiprocessing atau biasa disebut juga sebagai penjadwalan Master Slave MultiProcessor. Dimana pada metode ini satu prosesor bertindak sebagai master dan prosesor lainnya sebagai slave. Master Processor bertugas untuk menjadualkan dan mengalokasikan proses yang akan dijalankan oleh Slave Processors. Master Processor melakukan pekerjaan yang berhubungan dengan System, Slave Processor melayani user requests dalam pengeksekusian program. Pemrosesan yang banyak tidak menyebabkan penurunan performance. Metode ini sederhana karena hanya satu prosesor yang mengakses struktur data sistem dan juga mengurangi data sharing. Sebagai contoh, prosesor master memilih proses yang akan dieksekusi, kemudian mencari prosesor yang available, dan memberikan instruksi start processor. Prosesor slave memulai eksekusi pada lokasi memori yang dituju. Saat slave mengalami sebuah kondisi tertentu, prosesor slave member interupsi kepada prosesor master dan berhenti untuk menunggu perintah selanjutnya. Perlu diketahui bahwa prosesor slave yang berbeda dapat ditujukan untuk suatu proses yang sama pada waktu yang berbeda. Master processor dapat mengeksekusi OS dan menangani I/O, sedangkan sisanya processor tidak punya kemampuan I/O dan disebut sebagai Attached Processor (Aps). APs mengeksekusi kodekode user dibawah pengawasan master processor.
Penjadwalan Symmetric MultiProcessing (SMP)
Penjadwalan SMP adalah pendekatan kedua untuk penjadwalan prosesor jamak. Pada metode ini setiap prosesor menjadwalkan dirinya sendiri (self scheduling). Penjadwalan terlaksana dengan menjadwalkan setiap prosesor untuk memeriksa antrian ready dan memilih suatu proses untuk dieksekusi. Jika suatu sistem prosesor jamak mencoba untuk mengakses dan mengupdate suatu struktur data, penjadwal dari prosesor-prosesor tersebut harus diprogram dengan hati-hati, kita harus yakin bahwa dua prosesor tidak memilih proses yang sama dan proses tersebut tidak hilang dari antrian. Secara virtual, semua sistem operasi modern mendukung SMP, termasuk Windows XP, Windows 2000, Windows Vista, Solaris, Linux, dan Mac OS X.
Load balancing
Load balancing adalah suatu jaringan komputer metodologi untuk mendistribusikan beban kerja di beberapa komputer atau cluster komputer , link jaringan, unit pengolahan pusat, disk drive, atau sumber daya lainnya, untuk mencapai pemanfaatan sumber daya yang optimal, memaksimalkan throughput, meminimalkan waktu respon, dan menghindari overload. Menggunakan beberapa komponen dengan load balancing, bukannya komponen tunggal, dapat meningkatkan kehandalan melalui redundansi . Layanan load balancing biasanya diberikan oleh perangkat lunak khusus atau perangkat keras, seperti switch multilayer atau Domain Name System server.
symetric multhithreading
Sistem SMP mengizinkan beberapa thread untuk berjalan secara bersamaan dengan menyediakan banyak physical processor. Ada sebuah strategi alternatif yang lebih cenderung untuk menyediakan logical processor daripada physical processor. Strategi ini dikenal sebagai SMT ( Symetric Multithreading). SMT juga biasa disebut teknologi hyperthreading dalam prosesor intel.
Ide dari SMT adalah untuk menciptakan banyak logical processor dalam suatu physical processor yang sama dan mempresentasikan beberapa prosesor kepada sistem operasi. Setiap logical processor mempunyai state arsitekturnya sendiri yang mencangkup general purpose dan machine state register. Lebih jauh lagi, setiap logical prosesor bertanggung jawab pada penanganan interupsinya sendiri, yang berarti bahwa interupsi cenderung dikirimkan ke logical processor dan ditangani oleh logical processor bukan physical processor. Dengan kata lain, setiap logical processor men- share resource dari physical processor-nya, sepertichace dan bus.
Microcernel
mikrokernel adalah-minimum jumlah dekat perangkat lunak yang dapat menyediakan mekanisme yang diperlukan untuk menerapkan sistem operasi . Mekanisme ini termasuk low-level address spacemanajemen, benang manajemen, dan proses komunikasi antar (IPC).
Dalam hal ukuran kode sumber, microkernels (sebagai patokan) cenderung berada di bawah 10.000 baris kode.MINIX3 misalnya memiliki sekitar 4.000 baris kode. Kernel lebih besar dari 20.000 baris pada umumnya tidak dianggap microkernels.
Sebagai desain pendekatan sistem operasi, microkernels pelayanan perizinan sistem operasi khusus, seperti device driver , tumpukan protokol , file sistem kode, untuk berjalan di ruang pengguna .
Jika perangkat keras menyediakan beberapa cincin atau mode CPU , mikrokernel adalah perangkat lunak hanya pelaksana di tingkat yang paling istimewa (umumnya disebut sebagai supervisor atau kernel mode ).
Microkernels erat hubungannya dengan exokernels . Mereka juga memiliki banyak kesamaan dengan hypervisors , namun yang terakhir tidak membuat klaim untuk minimalitas dan khusus untuk mendukung mesin virtual , memang, mikrokernel L4 sering menemukan penggunaan dalam kapasitas hypervisor .
Katagori kernel
Ada 4 kategori kernel:
1. Monolithic kernel. Kernel yang menyediakan abstraksi perangkat keras yang kaya dan tangguh.
2. Microkernel. Kernel yang menyediakan hanya sekumpulan kecil abstraksi perangkat keras sederhana, dan menggunakan aplikasi-aplikasi yang disebut sebagai server untuk menyediakan fungsi-fungsi lainnya.
3. Hybrid (modifikasi dari microkernel). Kernel yang mirip microkernel, tetapi ia juga memasukkan beberapa kode tambahan di kernel agar ia menjadi lebih cepat.
4. Exokernel. Kernel yang tidak menyediakan sama sekali abstraksi hardware, tapi ia menyediakan sekumpulan pustaka yang menyediakan fungsi-fungsi akses ke perangkat keras secara langsung atau hampir-hampir langsung.



