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 !