Kernel Petra Novandi 13505059 Anis Kamilah 13505075 Ginar Santika 13505079 Rosalina Paramita 13505125
Kernel
Kernel Perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. Melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman. Bagian pertama yang di-load ke memory saat boot Menyediakan fasilitas berupa service dasar untuk menangani manajemen memori, process management, file management and I/O (input/output) management (i.e., accessing the peripheral devices).
Jenis-jenis Kernel Monolithic Kernels Microkernels Hybrid Kernels Exokernels
Monolithic Kernel Biasa digunakan dalam Unix dan oS yang sejenis dengan UNIX Berisi semua OS core function dan device driver
Microkernel Biasanya hanya menyediakan minimal services, seperti : memory address spaces interprocess communication (IPC) process management Fungsi lain diimplementasikan sebagai proses yang dijalankan secara independen
Hybrid Kernel Mirip dengan microkernels Terdapat additional code dalam kernel space sehingga code tersebut dapat berjalan lebih cepat dibandingkan dalam user space Dapat me-load modul setelah booting Digunakan oleh sebagian besar modern operating systems
Exokernel Pendekatan eksperimental Fungsionalitas hanya terbatas pada proteksi dan multipleksi hardware tanpa menyediakan abstraksi hardware untuk aplikasi Memfasilitasi programmer untuk menentukan penggunaan efisien bagi hardware untuk setiap program.
Studi Kasus FreeBSD 5.3 Solaris 10 Linux 2.6
Scheduling & Scheduler Solaris : kthread_t (kernel thread), proc_t (process), klwp_t (lightweight process) FreeBSD thread, proc, ksegrp (kernel scheduler entity group) Linux task_struct
Scheduling & Scheduler Scheduling Priorities Solaris : 0-59 time sharing, interactive, fixed, fair share scheduler 60-99 system threads 100-159 real time threads 160-169 low priority interrupts (makin besar makin baik)
Scheduling & Scheduler FreeBSD: 0-63 interrupts 64-127 top half kernel 128-159 real time user threads 160-223 time shared user threads 224-255 idle user threads (makin kecil makin baik)
Scheduling & Scheduler Linux: 0-99 system threads, real time threads, SCHED_FIFO, SCHED_RR 100-139 user thread, SCHED_NORMAL (makin kecil makin baik)
Memory Management & Paging Solaris : Address space in “Segments” FreeBSD : Address space in “Regions” Linux : Address space in “Memory Area”
Paging Semuanya memakai variasi algoritma LRU untuk page replacement Semuanya mempunyai daemon untuk mengukur waktu page.
File System Ketiga OS mengimplementasikan “virtual file system” untuk menyembunyikan operasi file system dari pengguna suatu file. Linux mempunyai operasi inode dan operasi file biasa. Solaris dan FreeBSD mengabungkannya ke vnode.
Kernel Mode dan User Mode
Kernel Mode Mode untuk menjalankan software yang sudah dipercaya (trusted software) misal: OS Privileged mode Dapat diinterupsi oleh interrupt atau exception Untuk Linux 2.6 kernel mode bersifat preemptive Pada Unix kernel mode bersifat reentrant
User Mode Mode untuk menjalankan software selain sistem operasi Privileged mode Non-privileged mode Melakukan interupsi berupa system calls
Aktivitas Kernel
Dalam banyak kasus, boot loader memulai eksekusi kernel dalam mode supervisor. Kernel kemudian menginisialisasi dirinya sendiri dan memulai proses. Setelah itu kernel hanya menunggu event-event eksternal seperti system calls atau juga interrupt.