UTS Sistem Operasi
1. a. Deadlock adalah Suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada komunikasi lagi antar proses atau suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock merupakan masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu. Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain yang sedang menunggu sumber daya yang dipegang oleh proses tersebut. Di kehidupan nyata, deadlock dapat digambarkan dalam gambar dibawah. Pada gambar, deadlock dianalogikan sebagai dua antrian mobil yang akan menyeberangi jembatan. Dalam kasus tersebut, antrian di sebelah kiri menunggu antrian kanan untuk mengosongkan jembatan (resource), begitu juga dengan antrian kanan. Akhirnya tidak terjadi kemajuan dalam kerja dua antrian tersebut.Misal ada proses A mempunyai resource X, proses B mempunyai resource Y. Kemudian kedua proses ini dijalankan bersama, proses A memerlukan resource Y dan proses B memerlukan resource X, tetapi kedua proses tidak akan memberikan resource yang dimiliki sebelum proses dirinya sendiri selesai dilakukan. Sehingga akan terjadi tunggu-menunggu.
Starvation adalah 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. Hal ini ketika terdapat kesalahan dalam sistem sehingga terjadi ketimpangan dalam pembagian resouce. Satu proses selalu mendapat resource, sedangkan proses yang lain tidak pernah mendapatkannya. Ilustrasi starvation tanpa deadlock di dunia nyata dapat dilihat di bawah ini.Pada gambar diatas, pada antrian kanan terjadi starvation karena resource (jembatan) selalu dipakai oleh antrian kiri, dan antrian kanan tidak mendapatkan giliran.
b. Penyebab Deadlock
•Mutual Exclusion: satu proses satu sumber daya
•Hold and Wait: proses yang memegang sumber daya masih bisa meminta sumber daya lain
•No Preemption: sumber daya yang sedang digunakan oleh suatu proses tidak bisa sembarangan diambil dari proses tersebut, melainkan harus dilepaskan dengan sendirinya oleh proses.
•Circular Wait: setiap proses menunggu sumber daya dari proses berikutnya yg sedang dipakai oleh proses lain.
Penyebab Starvation
Starvation terjadi karena terdapat kesalahan dalam sistem sehingga terjadi ketimpangan dalam pembagian resouce. Satu proses selalu mendapat resource, sedangkan proses yang lain tidak pernah mendapatkannya.
c. Capture keadaan ketika deadlock dan starvation
· Kondisi komputer pada saat keadaan deadlock
Gambar 1
Gambar 2
· Kondisi saat komputer mengalami starvation
2. Distro – distro linux disertai dengan kelebihan dan kekurangannya
a. Xandros
Xandros Linux adalah sebuah distro Linux yang berdasarkan pada sistim KDE. Tampilannya sangat mirip dengan Microsoft Windows, jadi apabila dioperasikan sangat mudah dan nyaman.
Xandros Linux adalah sebuah distro Linux yang berdasarkan pada sistim KDE. Tampilannya sangat mirip dengan Microsoft Windows, jadi apabila dioperasikan sangat mudah dan nyaman.
Kelebihan:
~ Lima langkah instalasi grafis yang mudah
~ Lima langkah instalasi grafis yang mudah
~ Manajemen partisi terintegrasi
~ Tampilan yang familiar
~ Aplikasi berkualitas dari para engineer Xandros
~ Kompatibilitas dengan file format Microsoft
Kekurangan
~ Tidak sepenuhnya free
~ Tidak sepenuhnya free
b. DEBIAN
Debian adalah sistem operasi berbasis kernel Linux. Debian termasuk salah satu sistem operasi Linux yang bebas untuk dipergunakan dengan menggunakan lisensi GNU.Debian GNU/Linux adalah distro non komersial yang dihasilkan oleh para sukarelawan dari seluruh dunia yang saling bekerjasama melalui Internet. Distro ini menginginkan adanya semangat open-source yang harus tetap ada pada Debian. Kedinamisan distro ini membuat setiap rilis paket-paketnya di-update setiap waktu dan dapat diakses melalui utilitas apt-get. Apt-get adalah sebuah utilitas baris-perintah yang dapat digunakan secara dinamis untuk meng-upgrade sistem Debian GNU/Linux melalui apt-repository jaringan archive Debian yang luas. Milis dan forum debian selalu penuh dengan pesan-pesan baik mengenai bug, masalah, sharing, dll. Dengan adanya sistem komunikasi ini bug dan masalah keamanan pada tiap paket dapat dilaporkan oleh para pengguna dan pengembang Debian dengan cepat. Debian adalah ‘kernel independen’, yaitu sistem operasi Debian dikembangkan murni tanpa mendasarkan pada sistem operasi yang telah ada.Keuntungan dari Debian adalah upgradability, ketergantungan antar paket didefinisikan dengan baik, dan pengembangannya secara terbuka.
Debian adalah sistem operasi berbasis kernel Linux. Debian termasuk salah satu sistem operasi Linux yang bebas untuk dipergunakan dengan menggunakan lisensi GNU.Debian GNU/Linux adalah distro non komersial yang dihasilkan oleh para sukarelawan dari seluruh dunia yang saling bekerjasama melalui Internet. Distro ini menginginkan adanya semangat open-source yang harus tetap ada pada Debian. Kedinamisan distro ini membuat setiap rilis paket-paketnya di-update setiap waktu dan dapat diakses melalui utilitas apt-get. Apt-get adalah sebuah utilitas baris-perintah yang dapat digunakan secara dinamis untuk meng-upgrade sistem Debian GNU/Linux melalui apt-repository jaringan archive Debian yang luas. Milis dan forum debian selalu penuh dengan pesan-pesan baik mengenai bug, masalah, sharing, dll. Dengan adanya sistem komunikasi ini bug dan masalah keamanan pada tiap paket dapat dilaporkan oleh para pengguna dan pengembang Debian dengan cepat. Debian adalah ‘kernel independen’, yaitu sistem operasi Debian dikembangkan murni tanpa mendasarkan pada sistem operasi yang telah ada.Keuntungan dari Debian adalah upgradability, ketergantungan antar paket didefinisikan dengan baik, dan pengembangannya secara terbuka.
c. KNOPPIX
Knoppix merupakan distro Linux live-cd yang dapat dijalankan melalui CD-ROM tanpa menginstalnya di hard-disk. Distro ini berbasis Debian Linux dan diciptakan oleh Klaus Knopper. Aplikasinya sangat lengkap dan cocok untuk demo atau belajar Linux bagi yang belum mempunyai ruang pada hard-disknya, dapat juga untuk CD rescue. Kelemahan dari knoppix adalah diperlukannya memori yang besar untuk menggunakan modus grafisnya yaitu 96 MB walaupun bisa juga dijalankan pada memori 64 MB dengan swap pada hard-disk seperti pengalaman penulis tapi Anda perlu sedikit bersabar. Distro ini berbasis Debian GNU/Linux.
Knoppix merupakan distro Linux live-cd yang dapat dijalankan melalui CD-ROM tanpa menginstalnya di hard-disk. Distro ini berbasis Debian Linux dan diciptakan oleh Klaus Knopper. Aplikasinya sangat lengkap dan cocok untuk demo atau belajar Linux bagi yang belum mempunyai ruang pada hard-disknya, dapat juga untuk CD rescue. Kelemahan dari knoppix adalah diperlukannya memori yang besar untuk menggunakan modus grafisnya yaitu 96 MB walaupun bisa juga dijalankan pada memori 64 MB dengan swap pada hard-disk seperti pengalaman penulis tapi Anda perlu sedikit bersabar. Distro ini berbasis Debian GNU/Linux.
d. SLACKWARE
Distro ini merupakan distro buatan Patrick Volkerding dari Slackware Linux, Inc. yang terkenal pertama kali setelah SLS. Slackware merupakan salah satu distro awal, dan merupakan yang tertua yang masih dikelola Tujuan utama Slackware adalah stabilitas dan kemudahan desain, serta menjadi distribusi Linux yang paling mirip Unix,sederhana, stabil, mudah dikustom, dan didesain untuk komputer 386/486 atau lebih tinggi. Distro ini termasuk distro yang cryptic dan manual sekali bagi pemula Linux, tapi dengan menggunakan distro ini beberapa penggunanya dapat mengetahui banyak cara kerja sistem dan distro tersebut. Slackware adalah tertua yang masih tegar bertahan di segala jaman. Baru-baru ini merilis generasi barunya Slackware versi 11 diantara gelombang peluncuran distro-distro besar lainnya seperti Mandriva 2007 dan tidak lama lagi Fedora 6.
Distro ini merupakan distro buatan Patrick Volkerding dari Slackware Linux, Inc. yang terkenal pertama kali setelah SLS. Slackware merupakan salah satu distro awal, dan merupakan yang tertua yang masih dikelola Tujuan utama Slackware adalah stabilitas dan kemudahan desain, serta menjadi distribusi Linux yang paling mirip Unix,sederhana, stabil, mudah dikustom, dan didesain untuk komputer 386/486 atau lebih tinggi. Distro ini termasuk distro yang cryptic dan manual sekali bagi pemula Linux, tapi dengan menggunakan distro ini beberapa penggunanya dapat mengetahui banyak cara kerja sistem dan distro tersebut. Slackware adalah tertua yang masih tegar bertahan di segala jaman. Baru-baru ini merilis generasi barunya Slackware versi 11 diantara gelombang peluncuran distro-distro besar lainnya seperti Mandriva 2007 dan tidak lama lagi Fedora 6.
e. MANDRIVA LINUX / LINUX-MANDRAKE
Mandriva Linux (dahulu dikenal dengan nama Mandrakelinux atau Mandrake Linux) adalah sistem operasi yang dibuat oleh Mandriva (dahulu dikenal dengan nama Mandrakesoft).Mandriva Linux menggunakan RPM Package Manager.Linux-Mandrake adalah salah satu distro turunan dari Red Hat Linux yang menyediakan banyak pengembangan dan aplikasi ‘pre-configured’ dan didukung banyak bahasa di seluruh dunia. Distro ini dikenal mudah untuk pemula dan cocok untuk kelas desktop tapi tidak menutup kemungkinan untuk dijadikan platform pada server. Optimasi untuk prosesor kelas Pentium ke atas membuat Linux-Mandrake dapat berjalan dengan baik pada platform tersebut.
3. Sistem komputer terdiri atas 4 komponen yang saling bekerja sama dan berinteraksi untuk mencapai tujuan sistem komputer, yaitu:
a. Pemroses(Processor)
Berfungsi mengendalikan operasi komputer dan melakukan fungsi pemrosesan data. yang bertugas untuk mengolah data dan melaksanakan berbagai perintah.
Langkah – langkah yang dilakukan pemroses:
Langkah – langkah yang dilakukan pemroses:
- Mengambil instruksi yang dikodekan secara biner dari memori utama
- Mengkode instruksi menjadi aksi-aksi sederhana
- Melaksanakan aksi-aksi
· Pemroses terdiri dari:
- CU (Control Unit) : berfungsi mengendalikan operasi yang dilaksanakan sistem komputer.
- ALU (Aritmetic Logic Unit) : untuk komputasi yaitu melakukan operasi aritmatika dan logika.
- Register-Register : berfungsi sebagai memori sangat cepat yang biasanya sebagai tempat operan-operan dari operasi yang akan dilakukan.
Register untuk Kendali dan Status terdiri dari :
1. Register untuk alamat dan buffer (MAR, MBR, I/O AR, I/O BR)
2. Register untuk eksekusi instruksi (PC, IR)
3. Register untuk informasi status (PSW) berisi sign, zero carry, equal, overflow, interupt enable/disable, supervisor.
Skema Blok Pemroses
b. Memori Utama (Main memory)
Berfungsi menyimpan data da program. Biasanya volatile yaitu tidak dapat mempertahankan data dan program yang disimpan bila sumber daya energi (listrik) dihetikan. Menurut urutan dari atas ke bawah dapat diukur hirarki dalam hal :
1. Kecepatan akses
2. Hubungan kapasitas
3. Hubungan frekuensi pengaksesan
4. Hubungan Harga
Hirarki memori berdasarkan kecepatan akses :
Setiap kali pemroses melakukan eksekusi, pemroses harus membaca instruksi dari memori utama. Agar eksekusi dilakukan secara cepat maka harus diusahakan instruksi tersedia di memori pada lapisan berkecepatan tinggi. Kecepatan eksekusi ini akan meningkatkan knerja sistem. Konsep ini emnimplementasikan antara lain:
· Chace Memory
Merupakan memori berkapasitas terbatas, berkecepatan tinggi yang lebih mahal dibanding memori utama. Chace memory adalah diantara memori utama dan register pemroses yang berfungsi agar pemroses tidak langsung mengacu memori utama tetapi di chace memori yang kecepatan akses lebih tinggi. Metode ini akan meningkatkan kinerja sistem.
· Buffering
Bagian memori utama untuk menampung data yang akan ditransfer dari/ ke perangakat masukan/keluaran dan penyimpan sekunder. Buffering dapat mengurangi frekuensi pengaksesan dari/ ke perangkat masukan/keluaran dan penyimpan sekunder sehingga meningkatkan kinerja sistem.
c. Perangkat Masukan /Keluaran
Perangkat masukan/keluaran terdiri dari 2 bagian:
1. Komponen mekanik adalah perangkat itu sendiri
2. Komponen elektronik yaitu pengendali perangkat berupa chip controller
Perangkat adalah perangkat nyata yang dikendalikan chip controller di board system atau card. Controller dihubungkan dengan pemroses dan komponen-komponen lain lewat bus. Controller berbeda-beda, tapi biasanya mempunyai register-register untuk mengendalikannya.
Pengendali perangkat terdapat dua macam :
· Penggerak alat (Device Controller)
· Pekerja alat (Device Drive)
Struktur I/O
1. I/O interupt > I/O device kec rendah
2. Struktur DMA > I/O device kec tinggi
DMA dibagi menjadi : Third Party DMA dan First Party DMA
d. Interkoneksi antar komponen(Bus)
Interkoneksi antar komponen disebut jalur (bus) yang terdapat pada mainboard, bus terdiri dari tiga macam :
1. Bus alamat (address bus), satu arah. 16, 20, 24 jalur
CPU mengirim alamat lokasi memori atau port yang ingin ditulis atau dibaca di bus alamat.
2. Bus data (data bus), dua arah. 8, 16, 32 jalur
CPU dapat membaca dan mengirim data dari/ke memori atau port. Banyak perangkat pada sistem yang dicantolkan ke bus data tapi hanya satu perangkat pada satu saat yang dapat memakainya.
3. Bus kendali (control bus), dua arah. 4-10 jalur
CPU mengirim sinyal-sinyal pada bus kendali untuk memerintahkan memori atau port.
Sinyal bus kendali antara lain:
- Memory read : memerintahkan baca memori.
- Memory write : memrintahkan enulisan memori
- I/O read : memerintahkan baca port I/O
- I/O write : memerintahkan melakukan penulisan memori
Skema Blok Sistem Komputer
4. Hal yang menyebabkan proses transfer atau upload data tidak berhasil dalam sebuah jaringan.
a. Traffic Jaringan Server sibuk. Koneksi terlalu sibuk pada sisi server (dlm hal ini server speedy), biasanya terjadi pada saat jam kerja (dari jam 10.00-15.00), yang dimaksud yakni server komputer tempat site yang kita akses, router server tempat website tersebut, intinya semua perangkat jaringan di sisi server.
b. Traffic Jaringan Router untuk Sharing sibuk. Koneksi terlalu sibuk pada sisi user speedy, misalnya koneksi speedy paket unlimited dipake bersama-sama oleh banyak user. Router yang biasa digunakan untuk sharing misalnya Router Mikrotik, jika managemen tidak bagus dan user yang online terlalu banyak pada saat yang bersamaan sudah pasti akan memperlambat koneksi speedy,
c. Managemen Bandwidth tidak benar. Jika managemen bandwidth tidak benar pada sisi Router maka akan sangat berpengaruh pada kecepatan speedy unlimited. Misal : administrator langsung membagi bandwidth yg dia punya ke semua user, jadi tiap-tiap user sudah langsung dikasi bandwidth sebesar 128 kbps misalnya. Sehingga koneksi speedy sebesar 1 Mbps tidak pernah dinikmati user manapun,
d. Traffic Jaringan yang dilalui sibuk. Koneksi terlalu sibuk pada sisi diantara sisi user dan server, artinya pada jalur yang dilalui data sebelum mencapai server data yang mau diakses. Misalnya seorang user ingin membuka site youtube, karena traffic akses data ke site tersebut sangat ramai maka akan berpengaruh terhadap kecepatan koneksi di sisi user. Sehingga hal ini membuat seolah-olah ada site yang diakses sangat cepat, dan ada juga yang lambat (response time-nya berbeda). Hal ini bisa juga dikenal dengan traffic jaringan pada roouter, hub, switch, modem, dll.
5. Jika handphone memakai sistem operasi Windows, handphone tersebut rentan terkena virus. Kerusakan akibat virus tersebut antara lain tidak bisa menyalakan alpikasi-aplikasi permainan, musik, camera, dll. Penanganannya yaitu dengan cara memasang anti virus pada handphone atau dengan cara di format.
6. Systems calls merupakan suatu mekanisme yang digunakan oleh program aplikasi untuk meminta layanan dari sistem operasi. 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. Sistem operasi melalui shell-nya akan menangkap perintah dari user yang kemudian akan dikomunikasikan melalui system calls. Pada sistem yang berbasis UNIX dan POSIX, system calls yang sering kita dengar antara lain: open, read, write, close, wait, exec, fork, exit, dan kill. Pada saat ini, banyak sistem operasi yang memiliki ratusan system calls. Salah satunya Linux yang memiliki 319 system calls yang berbeda. 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 sistem operasi 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.
Contoh gambar system calls
7. Multithreading Models (Disertai Gambar)
a. One to one
b. Many to one model
Many-to-One model memetakan banyak user-level thread ke saru kernel thread. Pengaturan thread dilakukan di user space, oleh karena itu ia efisien tetapi ia mempunyai kelemahan yang sama dengan user thread. Selain itu karena hanya satu thread yang bisa mengakses thread pada suatu waktu maka multiple thread tidak bisa berjalan secara pararel pada multiprocessor . User-level thread yang diimplementasi pada sistem operasi yang tidak mendukung kernel thread menggunakan Many-to-One model. Contoh: Solaris Green Threads dan GNU Portable Threads.
Many-to-many model multiplexes banyak user-level thread ke kernel thread yang jumlahnya lebih kecil atau sama banyaknya dengan user-level thread. Jumlah kernel thread bisa spesifik untuk sebagian aplikasi atau sebagian mesin. Many-to-One model mengijinkan developer ntuk membuat user thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang bisa dijadwal oleh kernel pada suatu waktu. One-to-One menghasilkan concurrency yang lebih tetapi developer harus hati-hati untuk tidak menciptakan terlalu banyak thread dalam suatu aplikasi( dalam beberapa hal, developer hanya bisa membuat thread dalam jumlah yang terbatas ). Many-to-Many model tidak menderita kelemahan dari 2 model di atas. Developer bisa membuat user thread sebanyak yang diperlukan, dan kernel thread yang bersangkutan bisa bejalan secara pararel pada multiprocessor . Dan juga ketika suatu thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi. Contoh sistem operasi yang mendukung model ini adalah Solaris, IRIX, dan Digital UNIX.
8. Gambar mengenai hubungan kernel dengan aplikasi
a. Monolithic kernel
Kernel yang menyediakan abstraksi perangkat keras yang kaya dan tangguh. Pendekatan kernel monolitik 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.
Meskipun jika setiap modul memiliki layanan operasi-operasi tersebut terpisah dari modul utama, integrasi kode yang terjadi di dalam monolithic kernel sangatlah kuat, dan karena semua modul berjalan di dalam address space yang sama, sebuah bug dalam salah satu modul dapat merusak keseluruhan sistem. Akan tetapi, ketika implementasi dilakukan dengan benar, integrasi komponen internal yang sangat kuat tersebut justru akan mengizinkan fitur-fitur yang dimiliki oleh sistem yang berada di bawahnya dieksploitasi secara efektif, sehingga membuat sistem operasi dengan monolithic kernel sangatlah efisien—meskipun sangat sulit dalam pembuatannya.
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
Kernel yang menyediakan hanya sekumpulan kecil abstraksi perangkat keras sederhana, dan menggunakan aplikasi-aplikasi yang disebut sebagai server untuk menyediakan fungsi-fungsi lainnya.
Pendekatan mikrokernel berisi 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 yang mirip microkernel, tetapi ia juga memasukkan beberapa kode tambahan di kernel agar ia menjadi lebih cepat.
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
Kernel yang tidak menyediakan sama sekali abstraksi hardware, tapi ia menyediakan sekumpulan pustaka yang menyediakan fungsi-fungsi akses ke perangkat keras secara langsung atau hampir-hampir langsung.
Sebenarnya, Exokernel bukanlah pendekatan kernel sistem operasi yang umum, seperti 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 kosong—belum 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.
9. Kasus :
a. Buatlah pemodelan mengenai Remote Procedure Call untuk melakukan input 1 juta data ke dalam satu tabel misalnya Tabel A dalam sebuah database di server.
a. Buatlah pemodelan mengenai Remote Procedure Call untuk melakukan input 1 juta data ke dalam satu tabel misalnya Tabel A dalam sebuah database di server.
b. Script untuk melakuan remote pada linux yaitu
· [root@localhost /]# vi /etc/sysconfig/iptables
Atau
· shell_exec("halt"); ini untuk remote shutdown komputer pake php di linux.