processor untuk memroses B. Disebut virtual processor karena kernel dapat mengalokasikan processorfisik yang berbeda pada masing-masing proses dengan sejalannya waktu.Jumlah virtual processor yang dibutuhkan bervariasi. Proses dapat balik memberi suatu virtualprocessor yang tidak dibutuhkan lagi, proses juga dapat meminta tambahan virtual processor. Gambardi atas yang b memperlihatkan proses memberitahu kernel ketika dua tipe kejadian terjadi. Gambartersebut juga memperlihatkan bahwa kernel memberitahu proses ketika beberapa dari 4 kejadian terjadi.Suatu scheduler activation (SA) merupakan suatu panggilan dari kernel ke proses yang memberitahukanpenjadwalan proses dari suatu event. Penjadwal level pengguna mempunyai tugas untuk menandaithread READY-nya untuk mengeset SA. Empat tipe event di mana kernel memberitahukan kepenjadwal level pengguna yaitu:Pengalokasian virtual processor: kernel menandai suatu virtual processor yang baru ke proses, danini merupakan bagian yang pertama. Penjadwal dapat membuka SA dengan conteks dari suatu threadREADY yang dapat merekomendasikan eksekusiSA diblok: suatu SA telah memblok pada kernel, dan kernel menggunakan SA untuk memberitahupenjadwal. Penjadwal mengeset bagian dari thread yang berhubungan untuk BLOCKED dan dapatmengalokasikan suatu thread READY untuk memberitahu SA.SA tidak diblok: suatu SA yang diblok pada kernel menjadi tidak diblok dan siap untuk dieksekusilagi pada level pengguna. Penjadwal dapat mengembalikan thread yang bersangkutan pada daftarREADY. Untuk membentuk pemberitahuan ke SA, kernel juga mengalokasikan suatu processor virtualyang baru untuk memroses atau harus menduduki SA lain pada proses yang sama.SA di-preempt: kernel telah mengambil spesifikasi SA dari proses. Penjadwal meletakkan threadyang di-preempt pada daftar READY dan mengevaluasi ulang alokasi thread.Skema penjadwalan hirarki ini fleksibel karena proses penjadwal level pengguna dapatmengalokasikan thread ke SA dalam berbagai persyaratan masih dapat dibangun pada puncak eventDukungan Sistem Operasi 12
level rendah. Sekema tersebut efisien karena tidak ada thread level pengguna yang butuh tinggal padadaerah READY jika terdapat virtual processor yang menjalankannya.5. Komunikasi Dan PemanggilanBeberapa kernel didesain untuk sistem terdistribusi telah menyediakan komunikasi primitif ke tipepemanggilan. Meletakkan komunikasi level tinggi secara fungsional pada kernel mempunyai keuntungandari efisiensi. Pada prakteknya, middleware, bukan kernel, menyediakan hampir semua fasilitas komunikasilevel tinggi yang ditemukan pada sistem saat ini, termasuk RPC/RMI, pemberitahuan event dan komunikasigrup. Mengembangkan semacam software yang kompleks seperti kode level pengguna lebih sederhanadibandingkan mengembangkannya pada kernel. Pengembang biasanya mengimplementasikan middlewaremelalui socket memberikan akses ke protokol standar internet. Alasan menggunakan socket adalah karenaportabilitas dan interoperabilitasnya. Middleware dibutuhkan untuk mengoperasikan selebar mungkin sistemoperasi yang mungkin ddigunakan.Salah satu satu persyaratan utama dari sistem operasi adalah untuk menyediakan protokol standar yangmemungkinkan internetworking antar implementasi middleware pada platform yang berbeda. Kernel hanyamenyediakan pesan lewat antar proses lokal saja, dan meninggalkan proses protokol jaringan ke suatu serveryang berjalan pada puncak dari kernel.Kompabilitas pada level TCP dan UDP dibutuhkan oleh sistem operasi pada hampir semua peralatanjaringan yang terkecil, dan sistem operasi masih dibutuhkan untuk mengaktifkan middleware untukmendapatkan keuntungan dari protokol level rendah. Protokol biasanya disusun pada suatu tumpukan layer.Banyak sistem operasi mengijinkan layer yang baru untuk diintegrasikan secara statis dengan memasukkansuatu layer seperti IrDA sebagai suatu driver protokol yang terinstal secara permanen. Dynamic protocolcomposition merupakan suatu teknik di mana tumpukan protokol dapat disusun pada suatu ruang untukmenemukan persyaratan dari suatu bagian aplikasi, dan untuk mengoptimalkan phisical layer yang ada padaplatform.Contoh dari dynamic protocol composition digunakan pada protokol request-reply melalui suatulayer jaringan nirkabel untuk menurunkan latensi.5.1 Kinerja PemanggilanKinerja pemanggilan merupakan faktor penting dalam desain sistem terdistribusi. Semakinperancang memisahkan fungsionalitas antara ruang alamat, semakin dibutuhkan juga pemanggilanpemanggilanremote (jarak jauh). Klien dan server dapat membuat banyak jutaan operasi pemanggilanterhubungdalam siklus hidupnya, sehingga sebagian kecil dalam milidetik dihitung dalam kebutuhanpemanggilan. Teknologi jaringan terus membaik, tetapi kebutuhan waktu pemanggilan tidak berkurangsecara proporsional dengan kenaikan bandwidth jaringan. Bagian ini akan menjelaskan bagaimanaoverhead perangkat lunak sering mendominasi overhead jaringan dalam waktu pemanggilan - palingtidak, untuk kasus LAN atau intranet. Hal ini berbeda dengan pemanggilan remote melalui internet -misalnya, mengambil sumber daya web. Di Internet, latency jaringan sangat bervariasi, tetapi rata-ratamempunyai nilai yang tinggi, bandwidth seringkali rendah, dan beban server sering mendominasisepanjang kebutuhan pemrosesan per-request.Implementasi RPC dan RMI telah menjadi subjek studi, karena secara luas mekanisme inidigunakan untuk client-server-processing secara umum. Banyak penelitian telah dilakukan berdasarpemanggilan dalam jaringan, dan terutama mengenai bagaimana mekanisme pemanggilan dapatmengambil keuntungan dari kinerja tinggi jaringan [Hutchinson et al. 1989, van Renesse et al. 1989,Schroeder dan Burrows 1990, Johnson dan Zwaenepoel 1993, von Eicken et al.1995, Gokhale danSchmidt 1996]. Ada juga, seperti yang akan kita tunjukkan, kasus penting RPC antar proses dikontrololeh komputer yang sama [Bershad et al. 1990, Bershad et al. 1991].Dukungan Sistem Operasi 13