Distributed operating systems anno 1992. What have we learned so far?

<*>  Pendahuluan

          Ketika istilah ‘sistem terdistribusi’ pertama menjadi populer, setidaknya satu vendor mulai iklan yang sudah memiliki sistem terdistribusi untuk dijual, yang terdiri dari mainframe besar yang beberapa ratus terminal ASCII bisa dihubungkan. sebuah sistem terdistribusi memiliki dua karakteristik penting: Sistem ini memiliki sejumlah independen, otonom, CPU berkomunikasi; Sistem ini terlihat kepada pengguna seperti komputer. Titik pertama berarti bahwa sistem terdiri dari komputer terpisah yang terhubung oleh jaringan. Mainframe tua masih belum sistem terdistribusi, bahkan jika ASCIIterminals diganti dengan X-terminal masing-masing berisi 50 MIPS CPU, 64M RAM, hard disk besar untuk menampung semua font, dan koneksi serat optik ke mainframe. X-terminal tidak komputer independen; itu masih beroperasi sebagai terminal.

<*>  Struktur Sistem

          Observation 1: sistem operasi terdistribusi harus didasarkan pada microkernels. mikrokemel memungkinkan bagi programmer sistem untuk menggunakannya sebagai dasar untuk membangun berbagai sistem operasi di atasnya. Layanan yang diberikan yang dibutuhkan oleh pembangun sistem operasi, tidak yang dibutuhkan oleh pengguna biasa. Berikut ini perbedaan antara microkernel based system dan konvensional. Sebuah mikrokernel adalah sistem operasi kernel yang relatif kecil dengan fungsi terbatas, Microkernel bisa disebut juga sebagai amoeba. Microkernel dapat mengimplemntasikan jadwal proses bedasarkan prioritas. Berikut ini tipe2 fungsi dari microkernel

*Interprocess communication

*Low-level process management

*Low-level memory management

*Input/output

<*>  Komunikasi

        Karena sistem terdistribusi terdiri dari banyak proses berkomunikasi satu sama lain, isu utama dalam desain sistem operasi terdistribusi adalah BAGAIMANA KOMUNIKASI DIKELOLA?

       Tiga pengamatan yang dilakukan oleh penulis makalah, antara lain:

Panggilan Prosedur Remote adalah model komunikasi yang baik

     Dalam sebuah makalah yang klasik, Birrell dan Nelson menunjukkan cara untuk menyembunyikan semua komunikasi, sehingga satu – satunya abstraksi yang dibutuhkan oleh klien dan server adalah panggilan prosedur yang panjang dan familiar. Teknik ini dikenal sebagai Remote Procedure Call (RPC), telah menjadi banyak digunakan sebagai dasar untuk komunikasi dalam sistem operasi terdistribusi. Hal ini diilustrasikan pada Gambar dibawah ini:

Gambar diatas adalah bagian permintaan (request) dari “Remote Procedure Call”. Balasannya (reply) mengikuti jalur sebaliknya.
Gambar diatas adalah bagian permintaan (request) dari “Remote Procedure Call”.
Balasannya (reply) mengikuti jalur sebaliknya.

        Secara singkat, untuk setiap layanan yang ditawarkan oleh server, menyediakan prosedur yang sesuai, yang disebut stub (rintisan), di perpustakaan sehingga klien dapat menggunakannya.

        Keindahan dari skema ini adalah bahwa baik prosedur klien maupun prosedur server harus mengetahui jika mereka saling terlibat dalam komunikasi jarak jauh / remote communication.

()  Klien memanggil prosedur local (stub nya) menggunakan urutan panggilan untuk melalui parameter.

() Server juga dipanggil oleh prosedur local, dan dengan demikian mendapatkan parameter pada stack dengan cara yang biasa.

         Dengan RPC, semua message passing tersembunyi di dalam stubs, yang biasanya dihasilkan oleh compiler dari deskripsi fungsional antarmuka server.

Secara Global memerintahkan, penyiaran yang terpercaya itu berguna

         Jika sejumlah besar CPU yang tersedia untuk digunakan, baik workstation yang menganggur / koleksi terpusat prosesor di ruang mesin, memungkinkan untuk memanfaatkan beberapa mesin untuk bekerjasama secara parallel untuk mempercepat aplikasi tunggal. Atau sistem dapat dirancang dengan cara ini dari awal.

Gambar (a) dan (b) Memerintahkan Broadcast A ke B. Gambar (c) Interleaved Broadcast

Transparansi Komunikasi itu Penting

         Ketika satu proses berbicara kepada proses lain (atau sekelompok prose smenggunakan penyiaran / broadcast) seharusnya tidak perlu khawatir mengenai lokasi relative dari proses.

Skema komunikasi yang memiliki satu semantic ketika pihak yang berkomunikasi berada pada mesin yang sama dan semantic yang berbeda ketika mereka berada di mesin yang berbeda membuat pemrograman lebih sulit.

<*>  Distributed Shared Memory

          Dalam beberapa tahun terakhir, bentuk hibrid telah dikembangkan yang mensimulasikan shared memory pada multicomputers. Teknik ini disebut distributed shared memory. Terdapat 2 jenis, yaitu :

-Page-based : Beroperasi sebagai sistem paging melintasi batas-batas mesin. Ketika kesalahan page terjadi, page yang dibutuhkan diambil dari mesin yang sedang memegang page tersebut.

-Object-based : Operasi didefinisikan pada objek. ketika operasi dijalankan pada objek, perangkat lunak yang mengelola objek berjalan dan mendapat objek.

      Dalam kedua kasus, programmer multicomputer disajikan dengan ilusi  bentuk shared memory. Proses pada mesin yang berbeda dapat menggunakan shared memory untuk komunikasi dan sinkronisasi, yang biasanya jauh lebih nyaman daripada message passing.

<*>  Permasalahan

Machine Ownership

          Masalah kepemilikan mesin(Machine Ownership) akan terjadi ketika ekonomi memungkinkan untuk menyediakannya, dikatakan, 32 kali kebanyakan CPU terdapat penggunanya. Dalam satu model, setiap pengguna mendapat 32-node multiprosesor, khusus untuk dirinya atau untuk dipakai sendiri. Sangat mungkin bahwa hampir semua daya komputasi ini akan menganggur sepanjang waktu,tidak begitu buruk hingga sampai pengguna ingin memulai pekerjaan berat.

File Chaching

        Masalah muncul pada chacing paper ketika caching dilakukan pada klien. Ketika model workstation digunakan, setidaknya jelas di mana caching yang harus dilakukan di mesin client. Komplikasi yang muncul ketika dua klien memiliki file cache yang sama dan keduanya ingin memodifikasinya.

Thread Management

           Tampaknya menjadi kesepakatan umum memiliki beberapa thread kontrol dalam proses yang sangat berguna, baik dalam sistem terpusat dan terdistribusi.

Atomic Transactions

          transaksi atom adalah teknik yang kuat yang digunakan dalam sistem database untuk menjaga konsistensi dalam menghadapi concurrency. Mereka berpotensi berlaku untuk banyak bidang komputasi terdistribusi juga.

Daftar Pustaka

A. S. Tanenbaumt, “Distributed operating systems anno 1992. What we learned so far?*,” Distribution System Engineering, vol. I, pp. 3-10, 1993.

Leave a Reply

Your email address will not be published. Required fields are marked *