Senin, 19 Desember 2011

STRUKTUR SISTEM OPERASI



Pendekatan yang umum suatu sistem yang besar dan kompleks adalah dengan memecah tugas- tugas  (task)   ke  bentuk  komponen-komponen  kecil  dibandingkan  dalam  bentuk  sistem  tunggal (monolithic). Komponen-komponen tersebut akan akan di bahas pada bagian berikut ini.

Struktur Sederhana
Banyak sistem operasi komersial yang tidak terstruktur dengan baik. Kemudian sistem operasi dimulai dari yang terkecil, sederhana dan terbatas lalu berkembang dengan ruang lingkup originalnya. Contoh dari  sistem  operasi  ini  adalah  MS-DOS  dan  UNIX.  MS-DOS  merupakan  sistem  operasi  yang menyediakan fungsional dalam ruang yang sedikit sehingga tidak dibagi menjadi beberapa  modul,  sedangkan  UNIX  menggunakan  struktur  monolitik  dimana  prosedur  dapat  saling  dipanggil  oleh prosedur lain di sistem bila diperlukan dan kernel berisi semua layanan  yang  disediakan sistem operasi untuk pengguna. Inisialisasi-nya terbatas pada fungsional  perangkat keras yang terbagi menjadi dua bagian yaitu kernel dan sistem program. Kernel terbagi menjadi serangkaian interface dan device driver dan menyediakan sistem file, penjadwalan CPU, manajemen memori, dan fungsi-fungsi sistem operasi lainnya melalui system calls.


Gambar 1 Struktur Lapisan MS-DOS
Kelemahan struktur monolitik adalah:
•     Pengujian dan penghilangan kesalahan sulit karena tidak dapat dipisahkan dan dialokasikan
•     Sulit dalam menyediakan fasilitas pengamanan
•     Merupakan pemborosan memori bila setiap komputer harus menjalan kernel monolitik,  karena semua layanan tersimpan dalam bentuk tunggal sedangkan tidak semua layanan diperlukan.
•     Kesalahahan sebagian fungsi menyebabkan sistem tidak berfungsi.

Keuntungan struktur monolitik adalah layanan dapat dilakukan dengan cepat karena terdapat dalam satu ruang.


Pendekatan Berlapis (Layer Approach)
Sistem operasi dibagi menjadi beberapa lapisan.  Lapisan terbawah (layer  0)  adalah hardware  dan yang  tertinggi  (layer  N)  adalah  user  interface.  Lapisan  N  memberi  layanan  untuk  lapisan  N+1 sedangkan  proses-proses  di  lapisan  N  dapat  meminta  layanan  lapisan  N-1  untuk  membangun layanan lapisan N+1.  Lapisan N dapat meminta layanan lapisan N-1  namun  lapisan  N tidak dapat meminta layanan lapisan N+1. Masing-masing berjalan pada lapisannya sendiri.
Gambar 2 Lapisan Sistem Operasi

[MDGR2006] Menurut Tanenbaum dan Woodhull, sistem terlapis terdiri dari enam lapisan, yaitu:
•     Lapisan 0. Mengatur alokasi prosesor, pertukaran antar proses ketika interupsi terjadi atau waktu habis dan lapisan ini mendukung dasar multi-programming pada CPU.
•     Lapisan 1. Mengalokasikan ruang untuk proses di memori utama dan pada 512 kilo word drum yang digunakan untuk menahan bagian proses ketika tidak ada ruang di memori utama.
•     Lapisan 2. Menangani komunikasi antara masing-masing proses dan operator console. Lapisan ini masing-masing proses secara efektif memiliki operator console sendiri.
•     Lapisan 3. Mengatur peranti I/O dan menampung informasi yang mengalir dari/ke proses tersebut.
•     Lapisan 4. Tempat program pengguna. Pengguna tidak perlu memikirkan tentang proses, memori, console, atau manajemen I/O.
•     Lapisan 5. Merupakan operator sistem.

Contoh sistem operasi yang menggunakan pendekatan berlapis adalah THE yang dibuat oleh Djikstra dan mahasiswa-mahasiswanya, serta sistem operasi MULTICS.

Kelemahan struktur ini adalah fungsi-fungsi sistem operasi harus diberikan ke tiap lapisan secara hati-hati.  Sedangkan keunggulannya adalah memeliki semua kelebihan  rancangan modular, yaitu sistem dibagi  menjadi beberapa modul dan tiap modul dirancang secara independen. Tiap   lapisan   dapat   dirancang,   dikode   dan   diuji   secara   independen.   Pendekatan   berlapis menyederhanakan rancangan, spesifikasi dan implementasi sistem operasi.


Microkernels
Metode struktur ini adalah menghilangkan komponen-komponen yang tidak diperlukan dari kernel dan mengimplementasikannya sebagai sistem dan program-program level user. Hal ini akan menghasilkan kernel yang kecil. Fungsi utama dari jenis ini adalah menyediakan fasilitas komunikasi antara program client  dan  bermacam  pelayanan  yang  berjalan  pada  ruang  user.  Contoh  sistem  operasi  yang menggunakan metode ini adalah TRU64 UNIX, MacOSX dan QNX

Keuntungan  dari  kernel  ini  adalah kemudahan  dalam  memperluas  sistem operasi,  mudah  untuk diubah ke bentuk arsitektur baru, kode yang kecil dan lebih aman. Kelemahannya adalah kinerja akan berkurang selagi bertambahnya fungsi-fungsi yang digunakan.



Modular (Modules)
Kernel mempunyai kumpulan komponen-komponen inti dan secara dinamis terhubung pada penambahan layanan selama waktu boot atau waktu berjalan. Sehingga strateginya menggunakan pemanggilan modul secara dinamis (Loadable Kernel Modules). Umumnya sudah diimplementasikan oleh sistem operasi modern seperti Solaris, Linux dan MacOSX.


Gambar 3 Solaris loadable modules
Sistem   Operasi   Apple   Macintosh   Mac   OS   X   menggunakan   struktur   hybrid.   Strukturnya menggunakan teknik berlapis dan satu lapisan diantaranya menggunakan Mach microkernel.

Virtual Machine
Dalam struktur ini user seakan-akan mempunyai seluruh komputer dengan simulasi atas pemroses yang digunakan. Sistem operasi melakukan simulasi mesin nyata yang digunakan user, mesin virtual ini merupakan tiruan seratus persen atas mesin nyata.


Gambar 4 (a) Non virtual Machine (b) Virtual Machine
Teknologi ini aawalnya digunakan pada IBM S/370, menyediakan mesin virtual untuk setiap user dengan membuat mesin virtual baru pada saat user tersebut melakukan log system. Kemudian teknik ini berkembag menjadi operating system emulator sehingga dapat menjalankan aplikasi-aplikasi untuk system yang lain.
Dalam lingkungan ini terdapat proteksi berbagai sumber daya sistem. Setiap virtual-machine secara lengkap mengisolasi dari semua virtual-machine yang lain, sehingga tidak ada masalah proteksi. Ada dua pendekatan dalam penyediaan sharing yang diimplementasikan, pertama hal ini memungkinkan share  minidisk  dan  share  files.  Kedua,  memungkinkan  pendefinisian  jaringan   virtual-machine, sehingga dapat mengirim informasi melalui virtual jaringan komunikasi.
Contoh dari pengembangan itu adalah sebagai berikut:
•     Sistem operasi MS-Windows NT dapat menjalankan aplikasi untuk MS-DOS, OS/2 mode teks dan aplikasi WIN16.
•     IBM mengembangkan WABI untuk meng-emulasikan Win32 API sehingga sistem operasi yang menjalankan WABI dapat menjalankan aplikasi-aplikasi untuk MS-Windows.
•     Para  pengembang  Linux  membuat  DOSEMU  untuk  menjalankan  aplikas-aplikasi  DOS  pada sistem operasi Linux, WINE untuk menjalankan aplikasi-aplikasi MS-Windows.
•     VMWare  merupakan  aplikasi  komersial yang  meng-abstraksikan perangkat keras  intel 80x86 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. 



Gambar 5 Arsitektur Virtual Machine