Struktur sistem operasi

Suatu sistem operasi modern merupakan suatu sistem yang besar dan kompleks sehingga strukturnya harus dirancang dengan hati-hati dan saksama supaya dapat berfungsi seperti yang diinginkan serta dapat dimodifikasi dengan mudah. Struktur sistem operasi merupakan komponen-komponen sistem operasi yang dihubungkan dan dibentuk di dalam kernel. Ada beberapa struktur sistem operasi dan pernah dicoba, diantaranya sebagai berikut:
## Sistem monolithic
Struktur sistem operasi di sistem ini tidak terstruktur. Sistem operasi sebagai kumpulan prosedur yang masing-masing dapat saling dipanggil jika dibutuhkan. Setiap prosedur yang ada di dalam sistem ini mempunyai interface yang sudah didefinisikan dengan baik. Dalam hal ini berupa parameter dan hasilnya, serta masing-masing prosedur bebas untuk saling memanggil jika dibutuhkan.
Walaupun disebut tidak berstruktur, sebenarnya sistem monilisthic tetap mempunyai struktur walaupun kecil dan mendasar. . Struktur tersebut adalah:
* Program utama yang meminta layanan prosedur.
* Kumpulan layanan prosedur yang membawa sistem call.
* Kumpulan utilitas prosedur yang membantu layanan prosedur.
Dalam model ini setiap sistem call mempunyai suatu prosedur yang akan mengelolanya. Utilitas prosedur mengerjakan suatu hal yang diinginkan oleh beberapa layanan prosedur.

## Sistem lapisan
Sistem pertama yang dibangun dengan sistem lapisan adalah THE yang dibuat di Technische Hogeschool Eindhoven, Belanda pada tahun 1968 oleh E.W. Dijkstra dan para mahasiswanya. Sistem ini mempunyai enam lapis.

Contoh lain adalah sistem Venus yang mempunyai tujuh lapisan. Lapisan bawah (0sampai 4) digunakan oleh penjadwalan CPU dan manajemen memori yang kemudian diletakkan dalam suatu microcode. Pengaturan ini memberikan keuntungan, seperti eksekusi yang lebih cepat dan interface yang didefinisikan menjadi lebih jelas antara lapisan microcode dengan lapisan yang lebih tinggi.

## Mesin virtual
Secara konsep, sistem computer dibuat berdasarkan lapisan. Hardware atau perangkat lunak merupakan tingkatan terbawah dari keseluruhan sistem. Kernel yang berjalan ditingkatan berikutnya menggunakan instruksi-intruksi perangkat keras untuk membuat kumpulan sistem call yang digunakan oleh lapisan luarnya.
Program di atas kernel dapat menggunakan sistem call atau instruksi-instruksi perangkat keras. Dalam beberapa hal, program sistem tidak membedakan kedua lapisan tersebut. Program sistem memperlakukan sistem call dan perangkat keras di lapisan yang sama, meskipun program beberapa sistem pada tingkat yang lebih tinggi dari rutin-rutin program aplikasi yang lain, program-program aplikasi akan melihat semua yang berada di bawahnya.
Pendekatan sistem lapisan ini menjadi konsep dari mesin virtual. Dengan menggunakan penjadwalan CPU dan teknik virtual memori, sebuah sistem operasi dapat membuat bayangan proses dalam jumlah banyak, yang masing-masing dieksekusi oleh prosesornya sendiri dengan memori (virtual) sendiri. Pada mesin virtual tidak tersedia fungsi-fungsi tambahan tetapi interface yang identik dengan perangkat keras yang mendasarinya. Setiap proses dilengkapi dengan salinan dari computer yang mendasarinya.

## Model client server
Dalam model ini, semua kernel bekerja menangani komunikasi antara server dan client. Dengan membagi sistemoperasi menjadi banyak bagian yang masing-masing hanya menangani bagian tertentu dari sistem. Seperti layanan file, layanan proses, layanan terminal atau layanan memori, maka setiap bagian menjadi lebih kecil dan lebih mudah diatur. Kemudian semua server berjalan daam proses user mode dan tidak dalam kernel mode, maka bagian-bagian tidak mempunyai akses langsung ke perangkat keras. Keuntungannya, bila ada kesalahan di file server, maka layanan file mungkin akan crash, tetapi tidak akan memengaruhi keseluruhan sistem, yang akhirnya dapat mengakibatkan keseluruhan sistem tidak berfungsi.
Keuntungan lain dari sebuah model client-server adalah dapat diadaptasi untuk digunakan dalam sistem terdistribusi. Jika client berkomunikasi dengan server dengan mengirimkan pesan, klien tidak perlu tahu pesan tersebut ditangani secara local daam mesinnya sendiri atau pesan tersebut dikirimkan malalui jaringan ke servel di mesin yang lain.

## Referensi