Minggu, 15 Februari 2015

Operasi System

Kernel
Pengertian 
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.


Gambar 1. Kernel merupakan penghubung antara aplikasi dengan hardware 

Abstraction Layer adalah suatu cara untuk menyembunyikan detail implementasi dari sekumpulan fungsi. Model software yang menggunakan layer-layer abstraaction seperti ini misalnya model OSI layer untuk protokol jaringan komputer serta library grafik pada OpenGL. 

Gambar 2. Desain arsitektur komputer sebagai rangkaian abstraction layer


Fasilitas Dasar yang disediakan oleh Kernel
  
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 dan  menyediakan metode yang sesuai untuk memakai perangkat tersebut. 


Beberapa desain Kernel
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) sehingga para pembuat program tersebut membuat program tanpa adanya dukungan dari sistem operasi atau hardware abstraction. Cara kerja seperti ini, adalah cara kerja yang digunakan pada zaman awal-awal dikembangkannya komputer (pada sekitar tahun 1950). Kerugian dari diterapkannya metode ini adalah pengguna harus melakukan reset ulang komputer tersebut dan memuatkan program lainnya untuk berpindah program, dari satu program ke program lainnya. Selanjutnya, para pembuat program tersebut membuat beberapa komponen program yang sengaja ditinggalkan di dalam komputer, seperti halnya loader atau debugger, atau dimuat dari dalam ROM (Read-Only Memory). Seiring dengan perkembangan zaman komputer yang mengalami akselerasi yang signifikan, metode ini selanjutnya membentuk apa yang disebut dengan kernel sistem operasi.

Gambar3. Beberapa desain kernel sistem operasi 

Selanjutnya, para arsitek sistem operasi mengembangkan kernel sistem operasi yang pada akhirnya terbagi menjadi empat bagian yang secara desain berbeda, sebagai berikut: ·
-Monolithic Kernel. 
Monolithic kernel mengintegrasikan banyak fungsi di dalam kernel dan  menyediakan lapisan abstraksi perangkat keras secara penuh terhadap  perangkat  keras yang berada di bawah sistem operasi. · 
-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. · 
-Hybrid kernel. 
Hybrid kernel adalah pendekatan desain microkernel yang dimodifikasi.  Pada  hybrid kernel, terdapat beberapa tambahan kode di dalam ruangan  kernel untuk  meningkatkan performanya. · 
-Exokernel. 
Exokernel menyediakan hardware abstraction secara minimal, sehingga  program  dapat mengakses hardware secara langsung. Dalam pendekatan  desain exokernel,  library yang dimiliki oleh sistem operasi dapat  melakukan abstraksi yang mirip  dengan abstraksi yang dilakukan dalam  desain monolithic kernel.