Struktur Sistem Operasi
Struktur Sistem Operasi
1. Monolithic
Sistem Monolitik adalah struktur sistem operasi
sederhana yang dilengkapi dengan operasi dual pelayanan atau sistem call yang
diberikan oleh sistem operasi.
Model struktur monolitik
sistem operasi pada gambar di bawah ini.
Pada model struktur monolitik di atas, dapat
dilihat bahwa tiap-tiap sistem call memiliki satu service
procedure. Utility procedure melakukan tugas-tugas yang
dibutuhkan oleh beberapa service procedure, seperti mengambil data
dari user program.
Prinsip Kerja Model Struktur Monolitik
- User program melakukan trapping pada karnel
- Kemudian, instruksi berpindah dari user dilakukan melalui monitor
mode dan melakukan mentransfer control ke sistem operasi.
- Sistem operasi kemudian mengecek parameter-parameter dari
pemanggilan itu, dan menentukan sistem call mana yang akan di panggil.
- Sistem operasi kemudian menunjuk ke suatu table kontrol yang berisi
slot ke-k yang menunjuk sistem call K (Kontrol).
- Kontrol akan dikembalikan kepada user program, ketika sistem call
selesai mengerjakan tugasnya.
Tahap-tahap di atas memperlihatkan struktur dasar sistem operasi, yang dapat
kita ketahui sebagai berikut :
- Program utama meminta service procedure
- Kumpulan service procedure yang dibaca oleh sistem call
- Kumpulan utility procedure yang membantu service procedure
Keunggulan dan Kelemahan
Sistem Monolitik
Keunggulan sistem monolitik adalah terdapat layanan atau job-job yang dapat dilakukan secara cepat karena berada pada satu ruang alamat memori.
Kelemahan dari sistem monolitik sendiri ada beberapa, diantaranya
- Pengujian serta menghilangkan kesalahan sangat sulit untuk
dilakukan, hal ini dikarenakan tidak dapat untuk dipisahkan dan
di lokasikan
- Sulit menyediakan fasilitas pengamanan
- Kurang efisien dalam penggunaan memori. Setiap komputer harus
menjalankan kernel yang besar sedangkan tidak diperlukan seluruh layanan
yang tersedia pada kernel
- Kesalahan pemrograman pada satu bagian kernel dapat menyebabkan
matinya seluruh sistem
Sistem operasi dibentuk secara hirarki berdasar lapisan-lapisan, dimana
lapisan-lapisan bawa memberi layanan lapisan lebih atas. Lapisan yang paling
bawah adalah perangkat keras, dan yang paling tinggi adalah user interface.
Sebuah lapisan adalah implementasi dari obyek abstrak yang merupakan
enkapsulasi dari data dan operasi yang bisa memanipulasi data tersebut.
Struktur berlapis dimaksudkan untuk mengurangi kompleksitas rancangan dan
implementasi sistem operasi. Tiap lapisan mempunyai fungsional dan antarmuka
masukan keluaran antara dua lapisan bersebelahan yang terdefinisi bagus.
Sedangkan menurut Tanenbaum dan Woodhull, sistem terlapis terdiri dari enam lapisan, yaitu:
Lapis 5 – The
operator
Berfungsi
untuk pemakai operator.
Lapis 4 –
User programs
Berfungsi
untuk aplikasi program pemakai.
Lapis 3 –
I/O management
Berfungsi
untuk menyederhanakan akses I/O pada level atas.
Lapis 2
-Operator-operator communication
Berfungsi
untuk mengatur komunikasi antar proses.
Lapis 1
-Memory and drum management
Berfungsi
untuk mengatur alokasi ruang memori atau drum magnetic.
Lapis 0
-Processor allocation and multiprogramming
Berfungsi
untuk mengatur alokasi pemroses dan switching, multi programming dan pengaturan
prosessor.
Kelebihan Sistem Berlapis (layered system):
- Memiliki rancangan
modular, yaitu sistem dibagi menjadi beberapa modul & tiap modul
dirancang secara independen.
- Pendekatan berlapis
menyederhanakan rancangan, spesifikasi dan implementasi sistem operasi.
Kekurangan Sistem Berlapis (layered system):
- Fungsi-fungsi sistem
operasi diberikan ke tiap lapisan secara hati-hati.
Contoh: Sistem operasi yang menggunakan pendekatan berlapis
adalah THE yang dibuat oleh Djikstra dan mahasiswa-mahasiswanya, serta sistem
operasi MULTICS.
3. Virtual Machine
Virtual Machine mempunyai sistem timesharing yang berfungsi untuk menyediakan kemampuan untuk multi programming dan perluasan mesin dengan
antarmuka yang lebih mudah.
Struktur Mesin maya ( CP/CMS, VM/370 ) terdiri atas komponen dasar utama
:
- Control Program, yaitu
virtual machine monitor yang mengatur fungsi dari prosessor, memori dan
piranti I/O. Komponen ini berhubungan langsung dengan perangkat keras.
- Conventional Monitor Sistem, yaitu sistem operasi sederhana yang mengatur fungsi dari proses, pengelolaan informasi dan pengelolaan piranti.
- Konsep mesin virtual
menyediakan proteksi yang lengkap untuk sumber daya sistem sehingga
masing-masing mesin virtual dipisahkan mesin virtual yang lain. Isolasi
ini tidak memperbolehkan pembagian sumber daya secara langsung.
- Sistem mesin virtual
adalah mesin yang sempurna untuk riset dan pengembangan sistem operasi.
Pengembangan sistem dikerjakan pada mesin virtual, termasuk di dalamnya
mesin fisik dan tidak mengganggu operasi sistem yang normal.
Kekurangan Virtual Machine:
- Konsep mesin virtual
sangat sulit untuk mengimplementasikan kebutuhan dan duplikasi yang tepat
pada mesin yang sebenarnya.
Contoh:
- Sistem operasi MS-Windows
NT dapat menjalankan aplikasi untuk MS-DOS, OS/2 mode teks dan aplikasi
WIN16.
- IBM mengembangkan WABI
untuk mengemulasikan Win32 API sehingga sistem operasi yang menjalankan
WABI dapat menjalankan aplikasi-aplikasi untuk MS-Windows.
- Para pengembang Linux
membuat DOSEMU untuk menjalankan aplikasi-aplikasi DOS pada sistem operasi
Linux, WINE untuk menjalankan aplikasi-aplikasi MS-Windows.
- VMWare merupakan aplikasi
komersial yang meng-abstraksikan perangkat keras intel 80×86 menjadi
virtual mesin dan dapat menjalan beberapa sistem operasi lain (guest operating
system) di dalam sistem operasi MS-Windos atau Linux (host operating
system). VirtualBox merupakan salah satu aplikasi
sejenis yang opensource.
Mikrokernel adalah inti OS kecil yang menyediakan dasar untuk modular
extensesi. Metode ini menyusun sistem operasi dengan menghapus semua komponen
yang tidak esensial dari kernel, dan mengimplementasikannya sebagai program
sistem dan level pengguna. Hasilnya kernel yang lebih kecil. Pada umumnya
mikrokernel mendukung proses dan menagemen memori yang minimal, sebagai
tambahan untuk fasilitas komunikasi.
Fungsi utama mikrokernel adalah mendukung fasilitas komunikasi antara program klien dan bermacam-macam layanan yang juga berjalan di user space. Komunikasi yang dilakukan secara tidak langsung, didukung oleh sistem message passing, dengan bertukar pesan melalui mikrokernel. Salah satu keuntungan mikrokernel adalah ketika layanan baru akan ditambahkan ke user space, kernel tidak perlu dimodifikasi. Kalau pun harus, perubahan akan lebih sedikit. Hasil sistem operasinya lebih mudah untuk ditempatkan pada suatu desain perangkat keras ke desain lainnya. Mikrokernel juga mendukung keamanan reliabilitas lebih, karena kebanyakan layanan berjalan sebagai pengguna proses. Jika layanan gagal, sistem operasi lainnya tetap terjaga.
Mikro Kernel meiliki beberpa kelebihan diantaranya:
1. Interface yang seragam.
Proses tidak lagi dibedakan, baik antara kernel-level maupun user-level, karena
semuanya berkomunikasi via message passing.
2. Extensibility. Bisa
menambahkan fitur-fitur baru tanpa perlu melakukan kompilasi ulang
3. Flexibility. Fitur-fitur
yang sudah ada bisa dikurangi, atau dimodifikasi sesuai dengan kebutuhan
sehingga menjadi lebih efisien. Misalnya tidak semua pengguna membutuhkan
security yang sangat ketat, atau kemampuan untuk melakukan distributed
computing.
4. Portability. Pada mikro
kernel, semua atau sebagian besar kode yang prosesor-spesifik berada di
dalamnya. Jadi, proses porting ke prosesor lain bisa dilakukan dengan relatif
sedikit usaha. Pada kelompok desktop misalnya, tampaknya dominasi Intel makin
kuat. Tapi, sampai seberapa lama itu bisa bertahan? Karena itulah, portability
adalah salah satu isu yang sangat penting.
5. Reliability. Semakin
besar suatu software, maka tentulah semakin sulit untuk menjamin
reliabilitynya. Desain dengan pendekatan berlapis sangatlah membantu, dan
dengan pendekatan mikro kernel bisa lebih lagi. Mikro kernel dapat diuji secara
ekstensif karena dia menggunakan API yang sedikit, sehingga bisa meningkatkan
kualitas kode di luar kernel.
6. Support for object-oriendted OS. Model mikro kernel sangat sesuai untuk mengembangkan sistem operasi yang berbasis object-oriented. Contoh sistem operasi yang menggunakan mikro kernel adalah MacOS X dan QNX.Microkernel hanya memiliki fungsi manajemen sederhana untuk mendeliver services
Kinerjanya Mikrokernel
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 sistem 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 mikrokernel umumnya secara dramatis memiliki kinerja di bawah kinerja sistem operasi yang menggunakan monolitik 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.
Rancangan Mikrokernel
Kernel adalah komponen sentral dari sistem operasi. Ia mengatur hal-hal seperti interrupt handler (untuk menyediakan layanan interupsi), process scheduler (membagi-bagi proses dalam prosesor), memory management, I/O, dan sebagainya. Atau dengan kata lain, ia adalah jembatan antara hardware dengan software. Cara tradisional untuk membangun sistem operasi adalah dengan membuat kernel monolitis, yaitu semua fungsi disediakan oleh kernel, dan ini menjadikan kernel suatu program yang besar dan kompleks.
Cara yang lebih modern, adalah dengan menggunakan kernel mikro. Pada
awalnya, konsep mikro kernel dikembangkan pada sistem operasi Mach. Ide dasar
dari pengembangan kernel mikro adalah bahwa hanya fitur-fitur yang perlu saja
yang diimplementasikan dalam kernel (mengenai fitur-fitur apa saja yang perlu
diimplementasikan, ini bisa berbeda tergantung desain sistem operasi).
Walaupun garis pembatas mengenai apa saja yang berada di dalam dan luar
kernel mikro bisa berbeda antara desain yang satu dengan yang lain, namun ada
karakteristik yang umum, yaitu servis-servis yang umumnya menjadi bagian sistem
operasi menjadi sub sistem eksternal yang bisa berinteraksi satu sama lain. Ini mencakup device driver, file system, virtual memory
manager, windowing system, dan security devices. Pendekatan kernel mikro
menggantikan pendekatan berlapis yang vertikal tradisional.
Komponen-komponen sistem operasi yang berada di luar kernel mikro diimplementasikan sebagai server process dan berkomunikasi dengan message passing via kernel mikro. Misalnya jika user ingin membuat berkas baru, dia mengirim pesan ke file system server, atau jika ingin membuat proses baru, dia mengirimkan pesan ke process server.
5. Exokernel
Exokernel adalah pendekatan kernel sistem operasi yang tidak umum.
Exokernel sendiri merupakan sebuah struktur sistem operasi yang disusun secara
vertikal.
Tujuan exokernel adalah memaksa abstraksi yang dilakukan developer
sesedikit mungkin. Exokernel biasanya sangat kecil, karena fungsionalitas yang
dimilikinya terbatas pada proteksi dan penggandaan sumber daya.
Exokernel memungkinkan akses terhadap hardware secara langsung pada tingkat yang rendah. Tugas kernel hanya memastikan bahwa sumber daya yang ingin digunakan benar-benar sedang berada dalam keadaan kosong atau belum digunakan oleh yang lainnya.
Kelebihan Exokernel:
Memiliki fungsi perlindungan dan pembagian resource untuk hardware.
Bisa dimasukkan library sistem oparasi lebih dari satu sehingga bisa menjalankan program-program untuk sistem operasi secara bersamaan.




Komentar
Posting Komentar