1.Deadlock dan Starvation
a.)-Deadlock : Suatu kondisi dimana dua proses atau lebih saling menunggu proses yang
lain untuk melepaskan resource yang sedang dipakai,dimana beberapa proses itu
saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut.
-Starvation : Kondisi yang biasanya terjadi setelah deadlock. Proses yang kekurangan resource(karena terjadi deadlock) tidak akan pernah mendapat resource yang dibutuhkan
sehingga mengalami starvation (kelaparan). Namun, starvation juga bisa terjadi tanpa deadlock
b.) -Proses Deadlock : Proses yang satu menunggu sumber daya yang sedang dipegang oleh
proses lain yang sedang menunggu sumber daya yang dipegang oleh
proses tersebut.
-Proses Starvation : Terdapat kesalahan dalam sistem sehingga terjadi ketimpangan dalam
pembagian resource
c.) Untuk dapat RUNNING Proses 0 (P0) dan Proses 1 (P1) membutuhkan 2 sumber daya
sekaligus, yaitu Resource 0 dan Resource 1. Tetapi dalam kenyataannya resource tersebut masing-masing dimiliki Proses yang ada, dimana Resource 0 dimiliki Proses 0 dan Resouce 1 dimiliki Proses 1. Masing-masing proses tidak akan memberikan Resource yang dimilikinya karena Proses tersebut pun sama membutuhkan dan tidak mau mengalah. Dengan demikian maka akan terjadi deadlock dimana Proses-proses tersebut saling menunggu Resource yang tidak akan mungkin didapatnya dalam jangka waktu yang tak terhingga.
2.Macam-macam distro linux serta kelebihan dan kekurangannya
- Fedora
Kelebihan Fedora dibanding distro lainnya:
1. Sangat inovatif, Fedora selalu mengeluarkan versi terbaru setiap 6 bulan sekali. Tingkat sekuriti
yang baik yaitu adanya paket SELinux (Security-Enhanced Linux).
2. Dukungan paket aplikasi yang sangat banyak.
Kekurangan:
1. Tidak sestabil Debian atau Slackware untuk server.
2. Tidak semudah dan semutakhir Suse atau Mandrake untuk penggunaan desktop.
3. Multimedia yang kurang (secara default) tidak dapat memutar format Windows Media, MP3, atau DVD.
- Suse
Kelebihan :
1. Tool konfigurasi nan komprehensif dan intuitif.
2. Repository package software sangat banyak.
3. Infrastruktur web site dan dokumentasi bentuk buku (printed) begitu apik.
Kekurangan :
1. Setup desktop dan utility grafis yang rakus resource seringkali membuat distro ini “bloated and slow”.
1. Tool konfigurasi nan komprehensif dan intuitif.
2. Repository package software sangat banyak.
3. Infrastruktur web site dan dokumentasi bentuk buku (printed) begitu apik.
Kekurangan :
1. Setup desktop dan utility grafis yang rakus resource seringkali membuat distro ini “bloated and slow”.
- Ubuntu
Kelebihan :
1.3D Interface, pada versi Ubuntu 7.04, banyak orang yang mengatakan bahwa interface Ubuntu (Beryl) justru lebih menawan daripada Aero – dan hanya membutuhkan spesifikasi komputer yang tidak terlalu tinggi.
2. Kompatibilitas, Ubuntu kompatibel dengan hampir semua perangkat keras terbaru.
3. Kemudahan migrasi, sejak versi Ubuntu 7.04, Ubuntu sudah menyertakan Migration Tool. Feature ini sudah menjadi tool default. Utility akan membantu anda dalam memindahkan data anda dari Windows ke Ubuntu dengan sangat mudah.
Kekurangan :
2. Kompatibilitas, Ubuntu kompatibel dengan hampir semua perangkat keras terbaru.
3. Kemudahan migrasi, sejak versi Ubuntu 7.04, Ubuntu sudah menyertakan Migration Tool. Feature ini sudah menjadi tool default. Utility akan membantu anda dalam memindahkan data anda dari Windows ke Ubuntu dengan sangat mudah.
Kekurangan :
1. Fitur standard, setelah proses instalasi selesai, sistem operasi ubuntu tidak sepenuhnya bisa dipakai langsung oleh pengguna. Dalam pemakaiannya ada beberapa fitur yang harus kita tambahkan sendiri setelah proses instalasi, seperti saat pengguna akan memutar mp3 file, untuk menjalankan file tersebut sang pengguna harus menambahkan plugin untuk mp3 tersebut. Namun jika ingin di install secara offline, anda harus mempunyai CD/DVD Repository yang berisi segala kebutuhan yang terdapat di dalamnya.
2. Koneksi internet, dalam penginstalan software – software tambahan dan pluginnya, ubuntu sangat memerlukan koneksi internet. Ubuntu yang telah kita install terhubung dengan mirror untuk installasi tambahan, update dsb. Pada saat kita akan menambahkan aplikasi kedalamnya melalui Synaptic Package Manager, atau install manual melalui Terminal, kita akan melewati mirror site yang terdaftar di OS tersebut, kemudian didownloadlah aplikasi tersebut.
3. Tidak user friendly, mungkin inilah salah satu kekurangan ubuntu yang paling mengena dipara penggunanya. Dari segi penempatan menu, management file & propertiesnya, aplikasi – aplikasi di dalamnya dll, akan membuat kaku para penggunanya karena ketidakbiasaan dalam menjalankannya (mungkin efek dari penerapan pendidikan yang mengenalkan product Microsoft semenjak bangku sekolah). Dalam menggunakannya mungkin akan dibanding – bandingkan dengan OS yang sering mereka pakai sebelumnya. Dalam administrasinya seperti konfigurasi, installasi dsb secara default Ubuntu masih menggunakan file teks dan memerlukan terminal (console).
2. Koneksi internet, dalam penginstalan software – software tambahan dan pluginnya, ubuntu sangat memerlukan koneksi internet. Ubuntu yang telah kita install terhubung dengan mirror untuk installasi tambahan, update dsb. Pada saat kita akan menambahkan aplikasi kedalamnya melalui Synaptic Package Manager, atau install manual melalui Terminal, kita akan melewati mirror site yang terdaftar di OS tersebut, kemudian didownloadlah aplikasi tersebut.
3. Tidak user friendly, mungkin inilah salah satu kekurangan ubuntu yang paling mengena dipara penggunanya. Dari segi penempatan menu, management file & propertiesnya, aplikasi – aplikasi di dalamnya dll, akan membuat kaku para penggunanya karena ketidakbiasaan dalam menjalankannya (mungkin efek dari penerapan pendidikan yang mengenalkan product Microsoft semenjak bangku sekolah). Dalam menggunakannya mungkin akan dibanding – bandingkan dengan OS yang sering mereka pakai sebelumnya. Dalam administrasinya seperti konfigurasi, installasi dsb secara default Ubuntu masih menggunakan file teks dan memerlukan terminal (console).
- Redhat
Kelebihan :
1. Instalasinya mudah . Karena merupakan revolusioner Linux.
2. Standar baku file binner pada Linux.
1. Instalasinya mudah . Karena merupakan revolusioner Linux.
2. Standar baku file binner pada Linux.
Kekurangan :
1. Dukungan multimedia buruk.
2. Transisi RedHat ke Fedora mengkhawatirkan.
3. Namanya kurang familiar.
- Mepis
Kelebihan :
1. Package management lebih mudah berkat Adept, tersedia banyak aplikasi.
2. WiFi berjalan mulus dan mudah dokonfigurasi menggunakan wlassistant
3. Developer dan user community sangat banyak, sharing dengan ubuntu.
Kekurangan :
2. WiFi berjalan mulus dan mudah dokonfigurasi menggunakan wlassistant
3. Developer dan user community sangat banyak, sharing dengan ubuntu.
Kekurangan :
1. Kubuntu tidak menggunakan firefox dan thunderbird “standar” Mozilla.Org dan Acrobat Reader, lantaran masalah dependency gtk library.
2. Ada kendala suara tidak keluar pada CD player.
3. Tidak ada password root, harus menggunakan perintah sudo.
2. Ada kendala suara tidak keluar pada CD player.
3. Tidak ada password root, harus menggunakan perintah sudo.
3. Komponen-komponen dan skema blok pada sistem computer
Komponen sistem komputer :
1. Pemroses (processor)
Berfungsi mengendalikan operasi komputer & melakukan fungsi pemrosesan data.
2. Memori utama
- Berfungsi menyimpan data & program
- Biasanya volatile : tidak dapat mempertahankan data & program yang disimpan bila sumber daya energi (listrik) dihentikan.
- Biasanya volatile : tidak dapat mempertahankan data & program yang disimpan bila sumber daya energi (listrik) dihentikan.
3. Perangkat masukan dan keluaran
Berfungsi memindahkan data antara komputer & lingkungan eksternal yaitu : perangkat penyimpan sekunder, perangkat komunikasi, terminal, dsb
4. Interkoneksi antarkomponen (bus)
Adalah struktur & mekanisme untuk menghubungkan pemroses, memori utama, & perangkat masukan/keluaran.
4. 4 (empat) hal yang menyebabkan proses transfer atau upload data tidak berhasil dalam seuah jaringan
1. Terdapat virus jaringan yang menyebabkan proses komunikasi data terhambat2. Media transmisi bermasalah.misal kabel jaringan putus (disconnected)
3. Jaringan sibuk
4. Kegagalan system
5. Jaringan sedang maintanance
5. Jika suatu handphone memakai sistem operasi Windows, Apakah handphone tersebut rentan terkena virus ? Jika ya jelaskan kerusakan akibat virus tersebut ? dan sebutkan penanganannya ?
akibatkan dari si pengguna yang sering menggunakan internet melalui handphone,bisa juga di
akibatkan karena Bluetooth,
Dampak akibat dari virus tsb,system hanphone akan berjalan lambat,hapi suka mati sendiri,
Cara menangani nya dengan memasang anti virus dan bisa juga dengan riset ulang handphone.
6. Jelaskan mengenai system calls dan gambarkan contohnya ?
Komputer digunakan untuk melakukan suatu proses yang dikehendaki user. Oleh karena
itu harus ada suatu bentuk komunikasi antara user dan hardware. Komunikasi itu terjadi dalam bentuk system calls. SO melalui shell-nya akan menangkap perintah dari user yang kemudian akan dikomunikasikan melalui system calls. Disinilah peran SO sebagai jembatan komunikasi antara user dan hardware itu terjadi. System calls itu sendiri umumnya ditulis dalam bahasa C dan C++.
Mengenai shell, shell itu sendiri secara umum adalah layer yang berfungsi sebagai interface antara user dan inti dalam sistem operasi (kernel). Melalui shell, user dapat memberi perintah-perintah yang akan dikirim ke sistem operasi, sehingga shell ini merupakan layer yang menerima interaksi dari user secara langsung. Shell dalam SO secara umum dibagi menjadi 2, Command Line(CLI) dan Graphical(GUI). Jadi dengan kata lain, system calls berperan sebagai interface dalam layanan-layanan yang disediakan oleh sistem operasi.
Untuk lebih jelasnya lihat gambar berikut. Contoh di atas adalah sytem calls di dalam program yang membaca data dari satu file lalu meng- copy-nya ke file lain.
7. Multithreading Models
Sistem-sistem yang ada sekarang sudah banyak yang bisa mendukung untuk kedua pengguna dan kernel thread, sehingga model-model multithreading-nya pun menjadi beragam. Implementasi multithreading yang umum akan kita bahas ada tiga, yaitu model many-to-one, one-to-one, dan many-to-many.
Model Many to One
Model many-to-one ini memetakan beberapa tingkatan pengguna thread hanya ke satu buah kernel thread. Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi efisien, tetapi apabila sebuah thread melakukan sebuah pemblokingan terhadap sistem pemanggilan, maka seluruh proses akan berhenti (blocked). Kelemahan dari model ini adalah multihreads tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor dikarenakan hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.
Model Many to Many
Beberapa tingkatan thread pengguna dapat menggunakan jumlah kernel thread yang lebih
kecil atau sama dengan jumlah thread pengguna. Jumlah dari kernel thread dapat
dispesifikasikan untuk beberapa aplikasi dan beberapa mesin (suatu aplikasi dapat dialokasikan
lebih dari beberapa kernel thread dalam multiprosesor daripada dalam uniprosesor) dimana
model many-to-one mengizinkan pengembang untuk membuat thread pengguna sebanyak
mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh
kernel dalam satu waktu. Model one-to-one mempunyai konkurensi yang lebih tinggi, tetapi
pengembang harus hati-hati untuk tidak membuat terlalu banyak thread tanpa aplikasi dan dalam
kasus tertentu mungkin jumlah thread yang dapat dibuat dibatasi.
Beberapa tingkatan thread pengguna dapat menggunakan jumlah kernel thread yang lebih
kecil atau sama dengan jumlah thread pengguna. Jumlah dari kernel thread dapat
dispesifikasikan untuk beberapa aplikasi dan beberapa mesin (suatu aplikasi dapat dialokasikan
lebih dari beberapa kernel thread dalam multiprosesor daripada dalam uniprosesor) dimana
model many-to-one mengizinkan pengembang untuk membuat thread pengguna sebanyak
mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh
kernel dalam satu waktu. Model one-to-one mempunyai konkurensi yang lebih tinggi, tetapi
pengembang harus hati-hati untuk tidak membuat terlalu banyak thread tanpa aplikasi dan dalam
kasus tertentu mungkin jumlah thread yang dapat dibuat dibatasi.
Model one-to-one
Model one-to-one memetakan setiap thread pengguna ke dalam satu kernel thread. Hal ini membuat model one-to-one lebih sinkron daripada model many-to-one dengan mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan; hal ini juga mengizinkan multiple thread untuk berjalan secara parallel dalam multiprosesor. Kelemahan model ini adalah dalam pembuatan thread pengguna dibutuhkan pembuatan korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem. Model one-to-one diimplementasikan oleh Windows NT dan OS/2.
8.Jelaskan dan Gambarkan mengenai hubungan kernel dengan aplikasi ?
a. Monolithic Kernel
Didefinisikan sebagai sebuah antarmuka virtual yang berada pada tingkat tinggi di atas perangkat keras, dengan sekumpulan primitif atau system call untuk mengimplementasikan layanan-layanan sistem operasi, seperti halnya manajemen proses, konkurensi (concurrency), dan manajemen memori pada modul-modul kernel yang berjalan di dalam mode supervisor.
Pada sistem operasi modern yang menggunakan monolithic kernel, seperti halnya Linux, FreeBSD, Solaris, dan Microsoft Windows, dapat memuat modul-modul yang dapat dieksekusi pada saat kernel tersebut dijalankan sehingga mengizinkan ekstensi terhadap kemampuan kernel sesuai kebutuhan, dan tentu saja dapat membantu menjaga agar kode yang berjalan di dalam ruangan kernel (kernel-space) seminim mungkin.
Di bawah ini ada beberapa sistem operasi yang menggunakan Monolithic kernel:
• Kernel sistem operasi UNIX tradisional, seperti halnya kernel dari sistem operasi UNIX keluarga BSD (NetBSD, BSD/I, FreeBSD, dan lainnya).
• Kernel sistem operasi GNU/Linux, Linux.
• Kernel sistem operasi Windows (versi 1.x hingga 4.x; kecuali Windows NT).
b. Microkernel
Sebuah abstraksi yang sederhana terhadap hardware, dengan sekumpulan primitif atau system call yang dapat digunakan untuk membuat sebuah sistem operasi agar dapat berjalan, dengan layanan-layanan seperti manajemen thread, komunikasi antar address space, dan komunikasi antar proses. Layanan-layanan lainnya, yang biasanya disediakan oleh kernel, seperti halnya dukungan jaringan, pada pendekatan microkernel justru diimplementasikan di dalam ruangan pengguna (user-space), dan disebut dengan server.
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 :
• IBM AIX, sebuah versi UNIX dari IBM.
• Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi.
• Kernel Mach, yang digunakan di dalam sistem operasi GNU/Hurd, NexTSTEP, OPENSTEP, dan Mac OS/X.
• Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan edukasi Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone, handheld device, embedded device, dan PDA Phone.
Sebuah abstraksi yang sederhana terhadap hardware, dengan sekumpulan primitif atau system call yang dapat digunakan untuk membuat sebuah sistem operasi agar dapat berjalan, dengan layanan-layanan seperti manajemen thread, komunikasi antar address space, dan komunikasi antar proses. Layanan-layanan lainnya, yang biasanya disediakan oleh kernel, seperti halnya dukungan jaringan, pada pendekatan microkernel justru diimplementasikan di dalam ruangan pengguna (user-space), dan disebut dengan server.
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 :
• IBM AIX, sebuah versi UNIX dari IBM.
• Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi.
• Kernel Mach, yang digunakan di dalam sistem operasi GNU/Hurd, NexTSTEP, OPENSTEP, dan Mac OS/X.
• Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan edukasi Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone, handheld device, embedded device, dan PDA Phone.
c. Hybrid Kernel
Kernel hibrida aslinya adalah mikrokernel yang memiliki kode yang tidak menunjukkan bahwa kernel tersebut adalah mikrokernel di dalam ruangan kernel-nya. Kode-kode tersebut ditaruh di dalam ruangan kernel agar dapat dieksekusi lebih cepat dibandingkan jika ditaruh di dalam ruangan user. Hal ini dilakukan oleh para arsitek sistem operasi sebagai solusi awal terhadap masalah yang terjadi di dalam mikrokernel: kinerja.
Beberapa orang banyak yang bingung dalam membedakan antara kernel hibrida dan kernel monolitik yang dapat memuat modul kernel setelah proses booting, dan cenderung menyamakannya. Antara kernel hibrida dan kernel monolitik jelas berbeda. Kernel hibrida berarti bahwa konsep yang digunakannya diturunkan dari konsep desain kernel monolitik dan mikrokernel. Kernel hibrida juga memiliki secara spesifik memiliki teknologi pertukaran pesan (message passing) yang digunakan dalam mikrokernel, dan juga dapat memindahkan beberapa kode yang seharusnya bukan kode kernel ke dalam ruangan kode kernel karena alasan kinerja.
Di bawah ini adalah beberapa sistem operasi yang menggunakan kernel hibrida:
• BeOS, sebuah sistem operasi yang memiliki kinerja tinggi untuk aplikasi multimedia.
• Novell NetWare, sebuah sistem operasi yang pernah populer sebagai sistem operasi jaringan berbasis IBM PC dan kompatibelnya.
• Microsoft Windows NT (dan semua keturunannya).
Kernel hibrida aslinya adalah mikrokernel yang memiliki kode yang tidak menunjukkan bahwa kernel tersebut adalah mikrokernel di dalam ruangan kernel-nya. Kode-kode tersebut ditaruh di dalam ruangan kernel agar dapat dieksekusi lebih cepat dibandingkan jika ditaruh di dalam ruangan user. Hal ini dilakukan oleh para arsitek sistem operasi sebagai solusi awal terhadap masalah yang terjadi di dalam mikrokernel: kinerja.
Beberapa orang banyak yang bingung dalam membedakan antara kernel hibrida dan kernel monolitik yang dapat memuat modul kernel setelah proses booting, dan cenderung menyamakannya. Antara kernel hibrida dan kernel monolitik jelas berbeda. Kernel hibrida berarti bahwa konsep yang digunakannya diturunkan dari konsep desain kernel monolitik dan mikrokernel. Kernel hibrida juga memiliki secara spesifik memiliki teknologi pertukaran pesan (message passing) yang digunakan dalam mikrokernel, dan juga dapat memindahkan beberapa kode yang seharusnya bukan kode kernel ke dalam ruangan kode kernel karena alasan kinerja.
Di bawah ini adalah beberapa sistem operasi yang menggunakan kernel hibrida:
• BeOS, sebuah sistem operasi yang memiliki kinerja tinggi untuk aplikasi multimedia.
• Novell NetWare, sebuah sistem operasi yang pernah populer sebagai sistem operasi jaringan berbasis IBM PC dan kompatibelnya.
• Microsoft Windows NT (dan semua keturunannya).
d. Exokernel
Exokernel bukanlah pendekatan kernel sistem operasi yang umumseperti halnya microkernel atau monolithic kernel yang populer, melainkan sebuah struktur sistem operasi yang disusun secara vertikal.
Ide di balik exokernel adalah untuk memaksa abstraksi yang dilakukan oleh developer sesedikit mungkin, sehingga membuat mereka dapat memiliki banyak keputusan tentang abstraksi hardware. Exokernel biasanya berbentuk sangat kecil, karena fungsionalitas yang dimilikinya hanya terbatas pada proteksi dan penggandaan sumber daya.
Kernel-kernel klasik yang populer seperti halnya monolithic dan microkernel melakukan abstraksi terhadap hardware dengan menyembunyikan semua sumber daya yang berada di bawah hardware abstraction layer atau di balik driver untuk hardware. Sebagai contoh, jika sistem operasi klasik yang berbasis kedua kernel telah mengalokasikan sebuah lokasi memori untuk sebuah hardware tertentu, maka hardware lainnya tidak akan dapat menggunakan lokasi memori tersebut kembali.
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 kosongbelum digunakan oleh yang lainnya dan tentu saja mengizinkan aplikasi untuk mengakses sumber daya tersebut. Akses hardware pada tingkat rendah ini mengizinkan para programmer untuk mengimplementasikan sebuah abstraksi yang dikhususkan untuk sebuah aplikasi tertentu, dan tentu saja mengeluarkan sesuatu yang tidak perlu dari kernel agar membuat kernel lebih kecil, dan tentu saja meningkatkan performa.
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.
Tidak ada komentar:
Posting Komentar