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

2. Sistem Layered/Berlapis

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.

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


Kelebihan Virtual Machine:
  • 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.

4. Mikrokernel

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