[PERTEMUAN 1 - SISTEM OPERASI - KELAS E

25 November 2013 22:01:54 Dibaca : 142

Desain Kernel

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 layerpada 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.

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.

Selanjutnya, para arsitek sistem operasi mengembangkan kernel sistem operasi yang pada akhirnya terbagi menjadi empat bagian yang secara desain berbeda, sebagai berikut:

1. Monolitik Kernel

Monolitik Kernel adalah kebalikan dari mikrokernel karena mereka tidak hanya mencakup CPU, memori, dan IPC, tetapi juga mencakup hal-hal seperti driver device, manajemen file sistem, dan panggilan sistem server. Monolitik kernel cenderung lebih baik dalam mengakses hardware dan multitasking karena jika program perlu mendapatkan informasi dari memori atau proses lain yang sedang berjalan maka ia dapat memiliki garis yang lebih langsung untuk mengaksesnya dan tidak harus menunggu dalam antrian untuk mendapatkan sesuatu. Namun ini dapat menyebabkan masalah karena semakin banyaknya hal-hal yang berjalan dalam mode supervisor, maka semakin banyak pula hal yang dapat membawa sistem untuk tidak berperilaku baik.

Monolitik Kernel merupakan suatu arsitektur kernel yang melingkupi keseluruhan dari sistem operasi untuk berjalan pada ruang kernel dalam modus supervisor. Berbeda dengan arsitektur kernel lainnya, kernel monolitik menyediakan layananan virtual atas perangkat keras secara penuh pada level tingkat tinggi, disertai dengan serangkaian layanan pada level tingkat bawah yang bersifat primitif sebagai layanan basis sistem operasi. Di bawah ini ada beberapa sistem operasi yang menggunakan Monolitik kernel:

  1. Kernel sistem operasi UNIX tradisional, seperti halnya kernel dari sistem operasi UNIX keluarga BSD (NetBSD, BSD/I, FreeBSD, dan lainnya).
  2. Kernel sistem operasi GNU/Linux, Linux.
  3. Kernel sistem operasi Windows (versi 1.x hingga 4.x; kecuali Windows NT).

 

 

 

 

 

 

 

2. Mikrokernel

Mikrokernel merupakan seperangkat perangkat lunak dalam jumlah minimum yang meyediakan beragam mekanisme dasar yang dibutuhkan untuk bekerja sebagai 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 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.

Server atau disebut sebagai peladen adalah sebuah program, seperti halnya program lainnya. Server dapat mengizinkan sistem operasi agar dapat dimodifikasi hanya dengan menjalankan program atau menghentikannya. Sebagai contoh, untuk sebuah mesin yang kecil tanpa dukungan jaringan, server jaringan (istilah server di sini tidak dimaksudkan sebagai komputer pusat pengatur jaringan) tidak perlu dijalankan. Pada sistem operasi tradisional yang menggunakan monolithic kernel, hal ini dapat mengakibatkan pengguna harus melakukan rekompilasi terhadap kernel, yang tentu saja sulit untuk dilakukan oleh pengguna biasa yang awam.

Dalam teorinya, sistem operasi yang menggunakan microkernel disebut jauh lebih stabil dibandingkan dengan monolithic kernel, karena sebuah server yang gagal bekerja, tidak akan menyebabkan kernel menjadi tidak dapat berjalan, dan server tersebut akan dihentikan oleh kernel utama. Akan tetapi, dalam prakteknya, bagian dari system state dapat hilang oleh server yang gagal bekerja tersebut, dan biasanya untuk melakukan proses eksekusi aplikasi pun menjadi sulit, atau bahkan untuk menjalankan server-server lainnya.

Sistem operasi yang menggunakan microkernel umumnya secara dramatis memiliki kinerja di bawah kinerja sistem operasi yang menggunakan monolithic kernel. Hal ini disebabkan oleh adanya overhead yang terjadi akibat proses input/output dalam kernel yang ditujukan untuk mengganti konteks (context switch) untuk memindahkan data antara aplikasi dan server.

Beberapa sistem operasi yang menggunakan microkernel:

  1. IBM AIX, sebuah versi UNIX dari IBM
  2. Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi
  3. Kernel Mach, yang digunakan di dalam sistem operasi GNU/Hurd, NexTSTEP, OPENSTEP, dan Mac OS/X
  4. Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan edukasi
  5. Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone, handheld device, embedded device, dan PDA Phone.

 

 

 

 

 

 

 

 

 

3. Kernel hibrida

Kernel hibrida adalah pendekatan desain microkernel yang dimodifikasi. Pada hybrid kernel, terdapat beberapa tambahan kode di dalam ruangan kernel untuk meningkatkan performanya.

Kernel Hibrida memiliki kemampuan untuk memilih dan memilih apa yang ingin mereka jalankan dalam user mode dan apa yang mereka ingin jalankan dalam mode supervisor. Sering kali hal-hal seperti device driver dan file system I / O akan dijalankan dalam user mode sementara inter-process communication (IPC) dan server panggilan akan disimpan dalam mode supervisor. Ini merupakan pilihan terbaik dari kedua dunia yang berbeda, tetapi kernel ini akan memerlukan lebih banyak pekerjaan dari produsen hardware karena semua tanggung jawab driver diserahkan kepada mereka.

Hal ini juga dapat memiliki beberapa masalah antrian yang melekat dengan microkernels. Pendekatan kernel hibrida menggabungkan kecepatan dan desain sederhana sebuah kernel monolitik dengan modularitas dan keselamatan pelaksanaan sebuah mikrokernel.

Di bawah ini adalah beberapa sistem operasi yang menggunakan kernel hibrida:

  1. BeOS, sebuah sistem operasi yang memiliki kinerja tinggi untuk aplikasi multimedia.
  2. NovellNetWare, sebuah sistem operasi yang pernah populer sebagai sistem operasi jaringan berbasis IBM PC dan kompatibelnya.
  3. MicrosoftWindows NT (dan semua keturunannya).

 

 

 

 

 

 

 

 

 

 

4. Eksokernel

Exokernel merupakan sebuah struktur sistem operasi yang disusun secara vertikal. 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 monolitik kernel.

Exokernel mengizinkan akses terhadap hardware secara langsung pada tingkat yang rendah: aplikasi dan abstraksi dapat melakukan request sebuah alamat memori spesifik baik itu berupa lokasi alamat physical memory dan blok di dalam hard disk. Tugas kernel hanya memastikan bahwa sumber daya yang diminta itu sedang berada dalam keadaan kosong (belum digunakan oleh yang lainnya) dan tentu saja mengizinkan aplikasi untuk mengakses sumber daya tersebut.

Exokernel biasanya menggunakan library yang disebut dengan libOS untuk melakukan abstraksi. libOS memungkinkan para pembuat aplikasi untuk menulis abstraksi yang berada pada level yang lebih tinggi, seperti halnya abstraksi yang dilakukan pada sistem operasi tradisional, dengan menggunakan cara-cara yang lebih fleksibel, karena aplikasi mungkin memiliki abstraksinya masing-masing. Secara teori, sebuah sistem operasi berbasis Exokernel dapat membuat sistem operasi yang berbeda seperti halnya Linux, UNIX, dan Windows dapat berjalan di atas sistem operasi tersebut.

Kategori

  • Masih Kosong

Blogroll

  • Masih Kosong