Sistem operasi modern memiliki kecenderungan untuk memindahkan kode-kode lapisan yang lebih tinggi dan menghapus sebanyak mungkin kode-kode tersebut dari sistem operasi akan meninggalkan kernel yang minimal. Konsep ini biasa diimplementasikan dengan cara menjadikan fungsi-fungsi yang ada pada sistem operasi menjadi user proses.
Jika satu proses minta untuk dilayani, misalnya satu blok file, maka user proses (di sini dinamakan Client proses) mengirim permintaan tersebut ke user proses. Server proses akan melayani permintaan tersebut kemudian mengirimkan jawabannya kembali. Semua pekerjaan kernel dilakukan pada pengendalian komunikasi antara client dan server.
Dengan membagi sistem operasi menjadi beberapa lapisan, di mana tiap-tiap bagian mengendalikan satu segi sistem, seperti pelayanan file, pelayanan proses, pelayanan terminal, atau pelayanan memori, maka tiap-tiap bagian menjadi lebih sederhana dan dapat diatur.
Selain itu, karena semua server berjalan pada user mode proses, dan bukan merupakan monitor mode, maka server tidak dapat mengakses hardware secara langsung. Akibatnya, jika terjadi kerusakan pada file server, maka pelayanan file akan terganggu. Namun ha ini tidak akan sampai menggangu sistem lainnya.
Masalah yang sering terjadi pada sistem client-server adalah tidak semua tugas dapat dijalankan di tingkat pemakai, tapi kesulitan ini dapat diatasi dengan:
- Proses server kritis tetap di kernel, yaitu proses yang biasanya berhubungan dengan hardware.
- Mekanisme ke kernel seminimal mungkin sehingga pengaksesan ruang pemakai dapat dilakukan secepat mungkin.
Keuntungan dari model client-server ini adalah:
- Dapat diadaptasikan pada sistem terdistribusi.
- Jika suatu client berkomunikasi dengan server dengan cara mengirimkan pesan, maka server tidak perlu tahu apakah pesan itu dikirim oleh dan dari mesin itu sendiri (local) atau dikirim oleh mesin yang lain melalui jaringan.
- Pengembangan dapat dilakukan secara modular.
- Kesalahan pada suatu subsistem tidak menggangu subsistem lain sehingga tidak mengakibatkan sistem mati secara keseluruhan.
Sedangakan kelemahan dari sistem client-server adalah:
- Pertukaran pesan dapat menjadi bottleneck.
- Layanan dilakukan secara "lambat" karena harus melalui pertukaran pesan antar client-server.
Sumber: Pangera, Abas Ali dan Ariyus, Dony. 2010. Sistem Operasi. Yogyakarta: Penerbit Andi.

0 Comments