kernel adalah suatu perangkat lunak yang menjadi  bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam  program aplikasi untuk mengakses perangkat keras komputer secara aman. Karena akses terhadap perangkat keras terbatas, sedangkan ada lebih  dari satu program yang harus dilayani dalam waktu yang bersamaan, maka  kernel juga bertugas untuk mengatur kapan dan berapa lama suatu program  dapat menggunakan satu bagian perangkat keras tersebut. Hal tersebut  dinamakan sebagai multiplexing.
Akses kepada perangkat keras secara langsung merupakan masalah yang  kompleks, oleh karena itu kernel biasanya mengimplementasikan sekumpulan  abstraksi hardware. Abstraksi-abstraksi tersebut merupakan sebuah cara  untuk menyembunyikan kompleksitas, dan memungkinkan akses kepada  perangkat keras menjadi mudah dan seragam. Sehingga abstraksi pada  akhirnya memudahkan pekerjaan programer. Dalam sebuah perangkat komputer, kernel merupakan komponen inti dari  Sistem Operasi yang berjalan dalam perangkat tersebut. Kernel bertugas untuk  mengatur pembagian sumber daya sistem; komunikasi antara komponen hardware dan  software.
Kernel menghubungkan antara software aplikasi dan hardware komputer.  Ia menyediakan abstraction layer pada level terendah untuk  resource-resource seperti memori, prosesor dan perangkat I/O di mana suatu software aplikasi  harus mengontrol resource-resource tersebut agar dapat berfungsi. Kernel mampu  menyediakan fasilitas seperti ini bagi proses-proses aplikasi melalui mekanisme IPC (Inter  Process Communication) dan System call.

Tugas utama kernel adalah membantu eksekusi aplikasi dan mendukungnya  dengan fitur seperti abstraksi hardware. Suatu proses mendefinisikan  seberapa porsi memori yang dapat diakses oleh suatu aplikasi. Pengaturan proses kernel  harus memperhitungkan perangkat yang dibawa oleh hardware untuk  perlindungan memori. Untuk menjalankan aplikasi, sebuah kernel pertama kali harus  menyediakan space address untuk aplikasi, lalu me-load file yang berisi kode aplikasi  ke dalam memori, mempersiapkan stack untuk program dan percabangan ke lokasi lain  dalam program, dan kemudian baru memulai eksekusi program.
Dalam sebuah sistem pre-emptive multitasking, kernel akan memberi  slot waktu kepada setiap program dan berpindah dari satu proses ke proses yang  lain dengan cepat hingga terlihat seperti proses-proses ini dieksekusi secara  bersamaan.
Kernel menggunakan algoritma penjadwalan utnuk menentukan proses mana yang  akan Tujuan utama dari adanya kernel adalah untuk mengatur pembagian  sumbersumber daya dan program mana yang boleh mengakses dan menggunakan sumber  daya tersebut. Pada umumnya, sumber daya tersebut antara lain adalah CPU,  memori dan Perangkat I/O
- Central Processing Unit (CPU).
Sebagai bagian utama komputer, CPU  bertugas dalam mengeksekusi program atau proses. Dalam hal ini, kernel  bertugas menentukan setiap saat berapa banyak program yang harus dialokasikan  ke CPU. 
- Memori Komputer.
Memori digunakan untuk menyimpan instruksi program  dan juga data. Keduanya dibutuhkan oleh memori agar suatu program dapat dieksekusi. Biasanya beberapa program akan berusaha mengakses meori, bahkan seringkali meminta memori melebihi yang dimiliki komputer. Di  sinilah kernel bertugas untuk menentukan porsi pemakaian memori yang dapat  dipakai oleh tiap program dan menentukan apa yang akan dikerjakan ketika  tidak cukup tersedia memori.
- Perangkat I/O.
Beberapa perangkat I/O yang umumnya dipakai,  misalnya: keyboard, mouse, monitor, Hard Disk, printer, scanner, dsb. Kernel melanjutkan request dari suatu aplikasi yang ingin melakukan suatu  aksi I/O kepada perangkat yang sesuai.
Sebuah kernel sistem operasi tidak harus ada dan dibutuhkan untuk  menjalankan sebuah komputer. Program dapat langsung dijalankan secara  langsung di dalam sebuah mesin (contohnya adalah CMOS Setup).
0 komentar:
Posting Komentar
Don't Spam Please !