Sistem Operasi untuk Client Server
I Made Wiryana
Anatomi suatu program server
Peranan utama suatu program server adalah melayani client yang berjumlah banyak yang memiliki tujuan untuk menggunakan secara bersama sumber daya yang dimiliki oleh server tersebut. Berikut ini adalah karasteristik suatu yang biasanya dimiliki oleh suatu program server.
* Menanti permintaan client. Program server menghabiskan sebagian besar waktu kerjanya secara pasif menanti permintaan client. Biasanya permintaan ini datang dalam bentuk message melalui sessi komunikasi. Beberapa server menggunakan suatu sesi khusus untuk setiap client. Server yang lainnya menggunakan session yang digunakan secara dinamis. Ada juga yang menggunakan gabungan kedua teknik ini (dedicated dan dinamis). Untuk dapat bekerja dengan baik, server harus tetap dapat bekerja ketika terjadi permintaan yang banyak (rush hour traffic).
* Melaksanakan banyak permintaan pelayanan pada saat yang bersamaan. Server harus sesegera mungkin melaksanakan pelayanan yang diminta oleh client. Jelas ini berarti, bahwa client tak boleh bergantung pada proses server yang hanya memiliki thread tunggal. Server harus dapat secara konkuren menyediakan pelayanan dengan tetap menjaga integritas sumber dayanya.
* Mendahulukan client yang memiliki prioritas lebih tinggi (VIP). Server harus menyediakan beberapa tingkatan prioritas untuk clientnya. Misal untuk suatu pekerjaan batch dilakukan pada tingkatan prioritas yang rendah, sedangkan untuk pekerjaan yang berkaitan dengan On Line Transaction Processing (OLTP) dilakukan dengan prioritas tinggi.
* Memulai dan melaksanakan aktifitas pekerjaan di background. Server harus dapat menjalankan program di back ground, misal melakukan download record dari database utama selama waktu tidak sibuk. Inisiatif ini harus dapat dilakukan secara otomatis oleh server.
* Tetap menjaga agar sistem tetap selalu bekerja. Program server biasanya tergolong mission-critical application. Akan terjadi kerugian bila server tak bekerja melayani client. Dengan demikian program server dan environmentnya harus dapat bekerja secara robust (tahan terhadap gangguan).
* Bertambah besar. Biasanya program server membutuhkan memori dan prosesor yang besar. Environment dari server haruslah dapat di upgrade dan memiliki skalabilitas yang baik.
Sistem Operasi untuk Server
Pada suatu lingkungan sistem terdistribusi, sistem operasi menyediakan fungsi yang bersifat :
* Base services : pelayanan utama. Biasanya merupakan bagian dari sistem operasi standard.
* Extendes services : pelayanan tambahan. Biasanya bersifat software tambahan (add on) yang modular.
Pelayanan utama
Program server haruslah memiliki konkurensi tinggi. Secara ideal, task yang terpisah dapat diberikan untuk setiap client, dan didisain agar task tersebut selalu memberikan dukungan konkurensi. Pengelolaan task (task management) terbaik dilakukan oleh sistem operasi multitasking. Multitasking merupakan cara alami untuk menyederhanakan suatu aplikasi kompleks yang dapat dibagi-bagi menjadi kumpulan task yang dapat berjalan secara konkuren. Task-task ini secara logis terpisah. Hal ini akan meningkatkan, unjuk kerja, keluaran (throughput), modularitas, dan respons dari program server. Multitasking juga berkaitan dengan suatu mekanisme untuk mengkoordinasikan antar task, dan pertukaran informasi antar task.
Server juga membutuhkan konkurensi tingkat tinggi untuk program tunggal. Program server akan berjalan lebih efisien bila task task tersebut dialikasi pada program yang sama,daripada dialokasikan pada berbagai task. Bagian kecil program inilah yang lazim disebut coroutines atau thread. Task dengan program yang sama akan mempercepat pergantian konteks (context switching) dan untuk menggunakan data secara bersama.
Berikut ini adalah pelayanan dasar dari suatu Sistem Operasi pada server:
* Task preemption. Suatu Sistem operasi yang bersifat task premptive, harus dapat berpindah ke task yang lain sebelum task ini selesai. Akan lebih aman bila program dijalankan pada suatu sistem operasi yang telah menangani pemindahan task secara pre empsi ini.
* Task priority. Suatu sistem operasi harus melaksanakan task berdasarkan prioritas yang dimiliki oleh task tersebut. Dengan cara ini memungkinkan servers untuk membedakan tingkatan pelayanan berdasarkan prioritas client.
* Semaphore. Suatu sistem operasi harus menyediakan mekanisme sikronisasi yang sederhadan untuk menjaga task yang berjalan secara konkuren untuk saling mengganggu ketika sedang mengakses sumber daya yang sama. Mekanisme ini dikenal dengan nama semaphore, digunakan untuk mensinkronisasi aksi task yang mandiri, dan memberi peringatan ketika terjadi suatu error.
* Interprocess Communication (IPC). Suatu sistem operasi juga harus menyediakan mekanisme agar task yang mandiri tersebut dapat saling bertukar data atau menggunakan data secara bersama.
* Local/Remote IPC. Suatu sistem operasi harus dapat melakukan pembelokan (redirection) secara transparan ketika terjadi pemanggilan interprocess untuk suatu proses remote melalui jaringan. Hal ini dilakukan tanpa program aplikasi menyadarinya. Perpanjangan dari kemampuan ini menjadikan sumber daya dan proses dapat dengan mudah dipindahkan ke mesin lainnya.
* Thread. Digunakan untuk menghasilkan suatu program yang sangat konkuren dan bekerja berdasarkan event-driven. Untuk setiap event yang akan terjadi dapat ditunjuk suatu thread yang akan memblok hingga event tersebut terjadi. Dengan menggunakan thread ini CPU dapat digunakan secara lebih efisien.
* Intertask Protection. Sistem operasi harus mampu melindungu task agar saling tak mengganggu. Suatu task tunggal tak boleh membuat keseluruhan sistem berhenti bekerja. Proteksi juga dilakukan pada sistem file dan pemanggilan fungsi sistem operasi.
* Multiuser High Performance File System. Sistem file harus mendukung task banyak dan menyediakan fasilitas locking yang melindungi integritas data. Program server biasanya bekerja dengan beberapa file secara bersamaan. Sistem operasi harus mendukung kemampuan membuka file dalam jumlah besar secara bersama-sama tanpa banyak mempengaruhi unjuk kerja.
* Pengelolaan memori secara efisien. Sistem memori harus mendukung secara efisien program yang besar dan data object yang besar (grafik, suara dll). Program dan data object ini haruslah dapat diswap secara mudah dari dan ke disk, lebih baik dengan blok yang kecil.
* Dynamically Linked Run Time Extensions. Kemampuan sistem operasi haruslah dapat ditambah dengan mudah. Suatu mekanisme haruslah disediakan agar pelayanan dapat bertambah pada saat penggunaan, tanpa perlu melakukan kompilasi pada seluruh sistem operasi.
Pelayanan tambahan (extended services)
Pelayanan tambahan ini menyediakan software sistem tambahan yang dapat memanfaatkan potensi jaringan yang terdistribusi, akses yang fleksible untuk menggunakan informasi bersama-sama, dan memungkinkan sistem lebih mudah dikelola dan dirawat. Di samping itu juga menjadikan pembuat perangkat lunak dan sistem integrator menjadi lebih mudah menyusun suatu aplikasi server yang baru.
Berikut ini adalah pelayanan tambahan, sebagian ada yang belum tersedia pada sistem operasi komersial pada saat ini :
* Fasilitas Komunikasi DataKemampuan tambahan operasing sistem harus memiliki fungsi yang mendukung stack protocol komunikasi data. Sehingga memungkinkan server berkomunikasi dengan server yang lainnya dan kepada client yang berbeda jenisnya. Server juga mampu berkomunikasi dengan server lainnya ketika membutuhkn kemampuan server lainnya tersebut.
* Network Operating SystemKemampuan tambahan sistem operasi harus mampu memberikan fasilitas untuk menyediakan file dan print service melalui jaringan komputer. Idealnya suatu aplikasi harus dapat secara transparan mengakses perangkat remote seperti file dan printer sebagaimana peralatan tersebut terletak secara lokal
* Binary Large Objects (BLOB)Image, Video, Graphics, Intelligent Document, dan database snapshot akan menguji kemampuan sistem operasi, database dan jaringan. Object yang besar ini membutuhkan kemampuan sistem operasi tambahan, seperti intelligent message streams, format represetansi objects. Juga kemampuan jaringan untuk memindahkan data dalam jumlah besar. Database, dan sistem file harus mampu menyimpan data berukuran besar ini. Protokol tambahan juga dibutuhkan agar dapat dilakukan pertukaran data BLOB antar program aplikasi.
* Direktori global dan Network Yellow Pages Kemampuan tambahan sistem operasi harus mampu menyediakan cara untuk client agar dapat mengetahui lokasi server di jaringan dan service yang disediakannya dengan menggunakan sistem direktori yang mampu bekerja secara global. Sumber daya di jaringan harus dapat diperoleh dengan cukup dengan menggunakan nama saja. Secara dinamis server mampu mendaftarkan pada penyedia direktori seluruh service yang disediakannya.
* Authentication and Authorization Services Kemampuan tambahan sistem operasi ini harus menyediakan cara agar server dapat membuktikan keabsahan client. Sistem otorisasi menentukan jika sistem otentikasi memberikan izin pada client untuk menggunakan sumber daya.
* Pengelolaan Sistem (System Mangement) Kemampuan tambahan sistem operasi ini harus mampu mengintegrasikan pengelolaan jaringan dan sistem. Sistem harus dapat di kelola sebagaimana halnya sistem tunggal atau sebagai server jamak yang diacu kepada suatu domain. Pengelolaan sistem termasuk service untuk mengkonfigurasi sistem dan menyediakan kemampuan memonitor kemampuan seluruh elemen, serta membangkitkan peringatan ketika terjadi kesalahan. Ditambah lagi dengna kemampuan mendistribusikan dan mengelola perangkat lunak untuk client, memeriksa virus dan intruder, serta kemampuan melakukan perhitungan biaya penggunaan sumber daya (software metering).
* Network Time Kemampuan tambahan sistem operasi ini harus menyediakan suatu mekanisme bagi client dan server untuk melakukan sinkronisasi clock. Clock ini harus dikoordinasikan dengan suatu otoritas waktu yang universal.
* Pelayanan Database dan Transaksi. Kemampuan tambahan sistem operasi ini harus dapat menyediakan suatu DBMS multi user yang robust. Idealnya DBMS ini harus mendukung SQL untuk decision support dan server-stored procedures untuk pelayanan transaksi. Server-stored procedure dibuat di luar sistem operasi oleh programmer. Fungsi yang lebih canggih lagi termasuk Transaction Processing Monitor (TP Monitor) untuk mengelola sotred procedured (atau transaksi) secara satuan kerja atomik yang dieksekusi pada satu atau lebih server.
* Pelayanan Internet. Internet adalah suatu jaringan yang memberikan kesempatan penggunaan suatu server. Diharapkan pada masa mendatang pelayanan Internet menjadi kemampuan standard dari suatu sistem operasi termasuk, HTTP daemon, Secure Socket Layers (SSL), firewall, Domain Name System (DNS), file system yang berbasiskan HTML, kerangka kerja untuk perdagangan elektronis.
* Pelayanan Object Oriented. Kemampuan ini masih belum banyak tersedia pada sistem operasi komersial pada saat ini. Pada masa mendatang, pelayanan akan menjadi lebih berorientsi pada obyek. Sistem operasi akan meyediakan object broker services yang memungkinkan setiap obyek berinteraski dengan obyek lainnya di jaringan. Sistem operasi juga harus menyediakan pelayanan pertukaran obyek (object interchange services) dan kumpulan obyek (object repository). Aplikasi client server di masa mendatang akan merupakan komunikasi antar obyek.
Kemampuan tambahan sistem operasi tersebut mendukung suatu lingkungan komputasi yang terdistribusi. Pada saat ini belum ada sistem operasi (versi komersial) yang telah memenuhi seluruh fungsi tambahan tersebut. Tetapi pada saat ini sebagian besar sistem operasi mendukung ke arah sana. Untuk menambahkan kemampuan tambahan tersebut, dapat dilakukan dengan menambahkan perangkat lunak tambahan dari vendor lainnya.
sumber:http://www.wosoc-conference.org/~made/artikel/so_cs.html
Tidak ada komentar:
Posting Komentar