Jumat, 22 April 2011

Microkernels

Microkernel adalah inti (kernel)  dari operating system yang paling sederhana, tidak ada fasilitas apapun, menjadikannya kernel ini berukuran sangat kecil dan biasanya sangat stabil (hamper biasa dipastikan tidak ada lagi bugsnya).
Kelebihan Microkernel
  • Interface yang seragam.
Proses tidak lagi dibedakan, baik atnara kernel-level maupun user-level, karena semuanya berkomunikasi via message passing.
  • Extensibility.
Dapat ditambah fitur-fitur baru tanpa perlu compile ulang.
  • Flexibility.
Fitur-fitur yang ada dapat dikurangi, atau dimodifikasi sesuai kebutuhan.
  • Portability.
Dapat dilakukan proses porting ke prosesor lain dengan sedikit usaha.
  • Reliability.
Karena menggunakan API sedikit, dapat meningkatkan kualitas code di luar kernel.
  • Mendukung OS yang Object Oriented.
Sangat sesuai untuk mengembangkan sistem operasi yang berorientasi pada objek seperti TRU64 UNIX, MacOSX, dan QNX.
  • Realtime Applications
Karena sistem microkernel menggunakan thread yang dieksekusi secara parallel, microkernel sangat mudah mendukung aplikasi realtime meskipun system sedang overloaded. Sedangkan pada arsitektur monolithic, aplikasi realtime akan terputus-putus pada saat system overloaded.
  • Robustness/Keandalan Tinggi
Microkernel sangat sederhana, sehingga bisa dipastikan bebas bugs. Selain itu proses di dalam microkernel berjalan secara independent. Sehingga microkernel memiliki keandalan sangat tinggi, jauh lebih tinggi dibandingkan dengan monolithic. Oleh karena itu arsitektur microkernel banyak dipakai pada aplikasi mission critical pada embedded system.
  • Security/Keamanan Tinggi
Microkernel menggunakan prinsip miminal privilege, di mana setiap proses hanya dapat mengeksekusi instruksi sederhana yang sangat spesifik.Sehinggapengaturan security menjadi sangat mudah.
Kinerja microkernel
Mikrokernel merupakan modul inti yang meyediakan beragam mekanisme yang dibutuhkan untuk mengembangkan sebuah sistem operasi, seperti halnya manajemen pengalamatan ruang tingkat rendah, manajemen thread, dan komunikasi antar proses. Dalam implementasinya mikrokernel merupakan satu-satunya perangkat lunak yang berjalan dengan tingkat kewenangan tertinggi (umumnya disebut sebagai modus supervisor atau modus kernel) dari serangkaian level kewenangan yang tersedia pada perangkat kerasnya. Layanan yang disediakan oleh sebuah sistem operasi beberapa diantaranya adalah device driver, protokol jaringan, sistem berkas, dan kode antarmuka pengguna yang berada dalam ruang pengguna.

Karena sebuah mikrokernal harus dapat meletakkan layanan-layanan sistem operasi pada level teratas, fungsionalitas yang harus dimiliki oleh mikrokernel setidaknya melingkupi:
  • Mekanisme pengaturan pengalamatan ruang, — dibutuhkan untuk mengatur proteksi ingatan.
  • Mekanisme eksekusi secara abstrak untuk mengatur alokasi CPU — biasanya adalah thread atau pengaktifan penjadual; dan
  • Komunikasi antarproses — dibutuhkan untuk menyediakan mekanisme pemanggilan peladen yang berjalan pada alamat ruang spesifik.
Hal terpenting yang harus dimiliki oleh sebuah mikrokernel adalah keberadaan mekanisme Komunikasi antarproses yang handal, dan disain pengatur ingatan virtual yang memungkinkan manajemen ingatan dan melakukan pertukaran alamat (swapping) secara dengan aman. Selanjutnya, karena pada akhirnya semua layanan sistem operasi dipanggil oleh program yang berjalan pada modus user membuat tingkat efisiensi mekanisme komunikasi antar program yang terdapat pada sebuah mikrokernel menjadi sangat penting.
Beberapa sistem operasi yang menggunakan microkernel:
Rancangan Microkernel
Microkernel. Microkernel menyediakan sedikit saja dari abstraksi perangkat keras dan menggunakan aplikasi yang berjalan di atasnya—yang disebut dengan server—untuk melakukan beberapa fungsionalitas lainnya.

Manajemen Memory
Manajemen memory level bawah (low-level): Memetakan setiap page virtual ke frame fisik. Sebagian besar tugas manajemen memory terjadi dalam user space.
Gambar Manajemen Memory: page fault processing

Komunikasi Antar Proses (IPC)
Komunikasi antar proses (Interprocess Communication) atau thread dalam suatu SO mikrokernel adalah melalui message.
Suatu message menyertakan:
  • Header yang mengidetifikasi proses pengiriman dan penerimaan, dan
  • Body yang mengandung data langsung, pointer ke suatu block data, atau beberapa informasi kontrol mengenai proses.
Inter-Process Communication (IPC) atau Komunikasi antar proses adalah cara atau mekanisme pertukaran data antara satu proses dengan proses lainnya, baik itu proses yang berada di dalam komputer yang sama, atau komputer jarak jauh yang terhubung melalui jaringan. IPC terdiri atas protokol yang menjamin sebuah respons dari sebuah permintaan. Contoh dari IPC adalah Socket dalam sistem operasi keluarga UNIX, message dalam sistem operasi RISC OS, port dalam sistem operasi Mach, Named Pipe dalam OS/2, Dynamic Data Exchange (DDE) dalam sistem operasi Windows, SPX dalam sistem operasi Novell, IAC dalam sistem operasi Apple Macintosh (khususnya AppleEvents) dan beberapa komponen perangkat lunak seperti CORBA atau Component Object Model (COM).
Meskipun IPC secara otomatis dilakukan oleh program, sebuah fungsi yang sama juga dapat dilakukan secara interaktif ketika pengguna melakukan operasi copy-cut-paste dari satu proses ke proses lainnya dengan menggunakan clipboard.
Beberapa jenis IPC yang disediakan oleh sistem operasi dapat disatukan dalam tabel berikut
Metode Sistem Operasi/Lingkungan
File Semua sistem operasi mendukung metode ini
Signal Semua sistem operasi
Pipe Semua sistem operasi yang mendukung standar POSIX
Named pipe Semua sistem operasi yang mendukung standar POSIX
Shared memory Semua sistem operasi yang mendukung standar POSIX
Message passing Digunakan dalam paradigma Message Passing Interface (MPI), Java RMI, CORBA, atau lainnya
Memory map Semua sistem operasi yang mendukung standar POSIX; Mungkin dapat menyebabkan kondisi kompetisi (race condition) jika sebuah berkas sementara (temporary file) digunakan.
Message queue Kebanyakan sistem operasi
Mailbox Beberapa sistem operasi
Mailslot Windows NT, IBM OS/2
Manajemen I/O & Interrupt
Di dalam mikrokernel, adalah mungkin menangani interupsi hardware sebagai message dan menyertakan port I/O dalam ruang alamat.
Prinsip manajemen perangkat I/O. Terdapat dua sasaran perancangan I/O, yaitu:
a. Efisiensi.
Aspek penting karena operasi I/O sering menimbulkan bottleneck.
b. Generalitas(device independence).
Manajemen perangkat I/O selain berkaitan dengan simplisitas dan bebas kesalahan, juga menangani perangkat secara seragam baik dari cara proses memandang maupun cara sistem operasi mengelola perangkat dan operasi I/O.

3 komentar: