Sesungguhnya. tidak ada system operasi terdistribusi pada penggunaan secara umum , hanya sistemoperasi jaringan seperti UNIX, MacOS dan macam-macam Windows. Hal ini untuk tinggal kasus ini, untukdua pertimbangan utama. Yang pertama, para pengguna telah banyak menginvestasikan pada aplikasiperangkat lunak mereka, yang mana sering mereka temui kebutuhan pemecahan masalah saat ini; merekatidak akan mengadopsi suatu sistem operasi baru yang tidak akan bisa menjalankan aplikasi mereka, apapunefisiensi keuntungan ditawarkan. Percobaan yang telah dibuat untuk meyaingi UNIX dan kernel sistemoperasi lain di atas kernel baru, tetapi performa system operasi saingan tersebut belum memuaskan.Bagaimanapun juga, memelihara persaingan semua sistem operasi utama yang terbaru meningkatkanmenjadi suatu karya sangat besar.Alasan yang kedua adalah perlawanan terhadap adopsi dari sistem operasi terdistribusi adalah bahwapara pengguna cenderung untuk menyukai untuk mempunyai suatu tingkat derajat otonomi untuk mesinmereka. Hal tersebut terutama sekali karena performa [Douglis dan Ousterhout 1991].Kombinasi middleware dan sistem operasi jaringan menyediakan suatu keseimbangan yang dapatditerima antara kebutuhan untuk otonomi, pada satus sisi, dan sumber daya network-transparent untukmengakses pada sisi lainnya. Sistem operasi jaringan memungkinkan para pengguna untuk menjalankanpengolah kata favorit mereka dan aplikasi lain berdiri sendiri. Middleware memungkinkan untuk mengambilkeuntungan dari servis yang tersedia pada sistem yang terdistribusi.Bagian yang berikutnya menjelaskan fungsi lapisan sistem operasi. Bagian 6.2 menguji mekanismelow-level untuk perlindungan sumber daya, yang perlu kita pahami dalam rangka menghargai hubunganantara proses dan threads, dan peran kernelnya sendiri. Bagian 6.4 untuk menguji proses, alamat proses danthreads abstrak. Di sini topik yang utama adalah concurrency, manajemen sumber daya lokal danperlindungan, dan penjadwalan. Bagian 6.5 kemudian meliputi komunikasi sebagai bagian dari pemanggilanmekanisme. Bagian 6.6 mendiskusikan jenis arsitektur sistem operasi yang berbeda, mencakup hal yangdisebut monolitis dan microkernel disain.2. Layer Sistem OperasiPara pengguna akan senang jika kombinasi middleware-OS mereka mempunyai performa yang baik.Middleware dapat berjalan pada berbagai kombinasi (platform) OS-Hardware di node suatu sistemterdistribusi. OS yang berjalan pada suatu node, suatu kernel dan servis user-level yang berhubungan,contohnya libraries, menyediakan abstraksi sendiri dari sumber daya perangkat keras local untukmemproses, media penyimpanan dan komunikasi. Middleware menggunakan kombinasi dari sumber dayalokal ini untuk menerapkan mekanismenya untuk pemanggilan jarak jauh antar object atau proses di node.Tujuan kita di dalam bab ini adalah untuk menguji dampak dari mekanisme OS tertentu padakemampuan middleware untuk mengirimkan sumber daya terdistribusi yang digunakan secara bersama kepara pengguna. Kernel dan klien dan proses server yang mengeksekusi atas proses tersebut adalahkomponen arsitektural utama yang berhubungan dengan proses tersebut. Kernel dan Proses Server adalahkomponen yang mengatur sumber daya dan klien kini hadir dengan suatu alat penghubung kepada sumberdaya itu. Sehingga sedemikian rupa, kita memerlukan sedikitnya di antara hal-hal berikut :- Encapsulation : Mereka harus menyediakan suatu servis yang bermanfaat untuk menghubungkan kesumber daya mereka, itu adalah satu set operasi yang sama dengan kebutuhan c1ients. Detil sepertimanajemen memori dan alat yan digunakan untuk menimplmentasikan sumber daya harustersembunyi dari klien.- Protection : Sumber daya memerlukan perlindungan dari akses yang illegalDukungan Sistem Operasi 2
- Concurent processing : Klien mungkin menggunakan bersama sumber daya dan mengaksesnyasecara bersamaan.Klien mengakses sumber daya dengan cara pembuatan, sebagai contoh, pemanggilan metode jarakjauh bagi suatu server obyek, atau sistem yang dipanggil ke suatu kernel. Kita menyebut pengaksesan suatusumber daya yang terbungkus adalah suatu mekanisme pemanggilan, bagaimanapun hal tersebut diterapkan.Suatu kombinasi libraries, kernel dan servers mungkin dipanggil untuk melaksanakan pemanggilan tugasberikut yang terkait :- Communication : Parameter operasi dan hasilnya harus melalui dan berasal dari para manajersumber daya, di atas suatu jaringan atau di dalam suatu komputer.- Scheduling : Ketika suatu operasi dilibatkan, pengolahan nya harus dijadwalkan di dalam kernel atauserver.Perangkat lunak OS dirancang untuk menjadi suatu yang dapat dibawa antara arsitektur computeryang mungkin. Hal ini berarti bahwa mayoritasnya adalah coded pada suatu high-level language seperti C,C++, atau Modula-3, dan bahwa fasilitas adalah berupa lapisan sedemikian sehingga komponen machinedependentdikurangi menjadi minimal suatu lapisan paling bawah. Beberapa kernel dapat mengeksekusishared-memory multiprocessors.Komponen inti OS adalah sebagai berikut :- Process Manager : Menangani penciptaan dan operasi atas proses. Suatu proses adalah suatu unitmanajemen sumber daya, mencakup suatu alamat dan satu atau lebih threads.- Threads Manger : Menciptakan Threads, sinkronisasi dan penjadwalan. Threads adalah aktivitasterjadwal yang terkait dengan proses.- Communication Manager : Komunikasi antara threads berkait dengan proses yang berbeda padasuatu komputer yang sama. Beberapa kernel juga mendukung komunikasi antara thread pada prosejarak jauh. Kernel lain tidak mempunyai pemikiran dari komputer lain untuk membangun kedalamnya, dan suatu servis tambahan yang diperlukan untuk komunikasi eksternal.- Memory Manager : Manajemenen fisik dan memori virtual.- Supervisor : Pengiriman interrupt, sistem yang sering disebut perangkap dan pengecualian lainnya :kendali manajemen unit memori dan tempat hardware caches; pengolah dan manipulasi floatingpoint unit register3. ProteksiUntuk memahami apa yang yang disebut dengan 'akses ilegal` untuk suatu sumber daya, denganmempertimbangkan sebuah file. Untuk menjelaskan hal itu, di mana pembukaan file yang mempunyai duaoperasi, yaitu write dan read. Melindungi file terdiri dari dua sub-problems. Yang pertama adalah untukmemastikan bahwa masing-masing file dua operasi dapat dilakukan hanya oleh klien dengan hak untukmelaksanakan itu.Jenis lain dari akses ilegal, yang kita akan tunjukkan di sini adalah jika sebuah kejahatan klien operasisidesteps yang merupakan sumber daya ekspor. Tentu saja, ini adalah suatu operasi tidak berarti yang akanmengganggu penggunaan file normal dan pekerjaan file itu tidak pernah akan dirancang untuk mengekspor.Kita dapat melindungi sumber daya dari pemanggilan ilegal seperti setFilePointerRandomly. Suatu arahuntuk menggunakan suatu bahasa program type-safe, seperti Java atau Modula-3. Suatu bahasa type-safesedemikian hingga tidak ada modul yang boleh untuk mengakses suatu target modul kecuali jika hal itumempunyai suatu acuan untuk target modul tersebut. sebagaimana mungkin pada C atau C++. Dan mungkinhanya menggunakan acuannya kepada modul target untuk melaksanakan pemanggilan (method calls atauDukungan Sistem Operasi 3