Rangkuman Dasar Jaringan dan Dasar Sistem Operasi

I. Sistem Terdistribusi
Sistem Terdistribusi adalah suatu sistem yang terdiri dari komputer otonom yang dihubungkan oleh jaringan komunikasi dengan sistem software yang dirancang untuk menghasilkan fasilitas komputer yang terintegrasi dan lingkungan komputasi yang konsisten. Sistem terdistribusi mempunyai beberapa karakteristik, yaitu
1. Konkruensi adalah suatu sistem atau program yang berjalan bersama-sama tanpa terjadi suatu konflik,
2. Tidak ada Global Clock, yaitu setiap komputer mempunyai clock yang berbeda dalam sistem terdistribusi, Agar tidak terjadi conflict clock antar komputer, diperlukan proses pertukaran pesan antar komputer, dan
3. Kegagalan independent. Suatu sistem dapat mengalami kegagalan akan mempengaruhi sistem lainnya. Namun, ada beberapa komponen lain yang dapat berjalan dengan baik sebagai back-up.
Adapun dalam sistem teridistribusi juga mempunyai permasalahan, seperti: masalah konkruensi atau clock, keamanannya, proses sinkronisasi, model pemakaian yang beragam, dan lain-lain. Selain itu, adanya tantangan-tantangan yang harus dipenuhi oleh sistem terdistribusi antara lain:
1. Heteroginity, suatu sistem terdistribusi dibangun dari berbagai macam perangkat yang berbeda, yakni jaringan, sistem operasi, hardware, maupun software.
2. Openess, kemampuan sistem terdistribusi yang dapat masuk ke segala sistem.
3. Security, keamanan dalam sistem terdistribusi dilengkapi dengan enskripsi.
4. Scalability, sebuah sistem terdistribusi dapat meningkatkan kinerja sistem tanpa mengubah komponen-komponen yang berada di dalamnya.
5. Failure, setiap sistem dapat mengalami kegagalan secara independen, namun ada sistem lain yang harus tetap berjalan dengan baik.
6. Concurrency, suatu komponen dalam sistem terdistribusi dapat diakses secara bersamaan oleh banyak pengguna.
7. Quality of Service, yang terdiri dari
Throughput : kecepatan asli paket data,
Delay : waktu tunggu dalam paket data, dan
Jitter : variasi mengenai delay.
8. Transparansi. Untuk pengguna, keberadaan berbagai macam perangkat dalam sistem terdistribusi tampak sebagai satu sistem.

II. Sistem Operasi Terdistribusi pada Mikrokernels
Mikrokernel adalah sistem operasi yang relatif kecil dengan fungsi yang terbatas. Ada beberapa mikrikernel yang terkenal, yakni Amoeba, Chorus, Mach, dan V.
Sistem operasi terdistribusi yang menggunakan microkernel disebut lebih stabil dibandingkan dengan monolithic kernel, karena sebuah server yang gagal bekerja, tidak akan menyebabkan kernel menjadi tidak dapat berjalan, dan server tersebut akan dihentikan oleh kernel utama. Akan tetapi, dalam prakteknya, bagian dari system state dapat hilang oleh server yang gagal bekerja tersebut, dan biasanya untuk melakukan proses eksekusi aplikasi pun menjadi sulit, atau bahkan untuk menjalankan server-server lainnya. Keuntungan sistem operasi menggunakan mircrokernel, yakni sebagai berikut:
– Interface seragam pada request dibuat oleh suatu proses. tidak ada yang membedakan antar kernel-level dengan user-level karena semuanya berkomunikasi menggunakan via message passing
– Extensibility merupakan penambahan fitur-fitur terbaru tanpa harus melakukan compile ulang..
– Flexibility berarti kita dapat menambahkan fitur-fitur baru, atau memodifikasi fitur yang sudah ada sehingga lebih efisien dan memenuhi kebutuhan.
– Portability berarti melakukan proses porting ke prosesor lain.
– Reliability berarti dengan desain dengan pendekatan berlapis sangatlah membantu dalam proses kinerja kernel, microkernel sendiri dapat diuji secara intensif menggunakan API sehingga meningkatkan kualitas code luar kernel
– Dukungan sistem terdistribusi pada sistem operasi berorientasi obyek karena microkernel sangat cocok dengan sistem operasi yang berorientasi pada obyek misalnya pada MAC-OS.

III. Paradigma Client-Server
Dalam paradigma client-server, server merupakan suatu proses yang menyediakan layanan tertentu, contohnya adalah mail server, database server, print server, dan sebagainya. Sedangkan, client merupakan suatu proses yang meminta layanan. Untuk mendapatkan layanan, client mengirimkan pesan ke server, dan menunggu jawaban, kemudian server melakukan tugas yang diminta dan mengirimkan hasilkan pada client.

proses client-server

gambar 1. ilustrasi paradigma client-server

     Model client-server cocok dengan mikrokernel. Dengan memiliki server di luar kernel, model client-server dan mikrokernel dapat sangat modular. Ini juga memungkinkan untuk memiliki beberapa file server ysng berjalan bersamaan dan menawarkan layanan pada client yang berbeda.

IV. UNIX sebagai aplikasi
Apabila sistem operasi harus didasarkan pada microkernel yang dijalakan oleh proses server, maka dapat ditarik kesimpulan bahwa UNIX harus dijalankan sebagai aplikasi. Dalam jangka pendek, kompatibilitas biner dibutuhkan untuk menjalankan perangkat lunak yang kode sumbernya tidak tersedia. Untuk menyediakan kompatibilitas biner, Mach dan Chorus melakukan dua pendekatan.
Pendekatan pertama adalah dengan memetakan emulation library menjadi bagian atas alamat dari semua proses UNIX. Ketika proses membuat system call, mickrokernel merangkap panggilan dan melakukan penanganan pada emulation library. Kemudian library memanggil server UNIX untuk melakukan pekerjaannya.
Pendekaan kedua adalah menyediakan library dari UNIX system calls dan mengkompilasi ulang program yang menggunakan perpustakaan baru. Perpustakaan ini dapat memanfaatkan layanan apapun untuk mendapatkan task dan tidak memiliki overhead pada kernel. Dalam jangka panjang, pendekaran ini yang paling efisien karena menghindari perangkap emulasi.

V. Internet Protokol yang didukung Jaringan Internetwork
Kebanyakan protokol jaringan di desain untuk mendukung bit stream yang reliable antara single sender dan single receiver. Sistem Operasi Terdistribusi memiliki kebutuhan yang agak spesial seperti tercapainya transparansi, kemanan, manajemen jaringan, grup komunikasi, dan remote procedure call (RPC). Lebih jauh lagi, aplikasi yang berada dalam sistem operasi terdisitribusi seringkali menggunakan komunikasi lokal internetwork yang kompleks.

VI. Kebutuhan Sistem Terdistribusi
Suatu sistem terdistribusi harus memenuhi kebutuhan-kebutuhan sebagai berikut.
1. Transparansi
Sistem Terdistribusi dibangun dari banyaknya jumlah prosesor yang terkoneksi dengan menggunakan LAN, BUS, dan komunikasi data lainnya. Di mana pun proses dijalankan, ia harus bisa berkomunikasi dengan proses lainnya yang berada dalam sistem menggunakan mekanisme tunggal yang independen mau dimanapun dilakukannya proses.
2. Remote Procedure Call (RPC)
Sistem Operasi Terdistribusi memiliki tipikal yang terstruktur diantara paradigma client-server. Di dalam model ini, seorang client yang melakukan request terhadap user process lainnya yang tidak lain adalah sebuah server dengan cara mengirumkan pesan kepada server lalu melakukan blocking hingga server mengirim balasan. Mekanisme komunikasi ini yang digunakan dalam model client-server disebut dengan RPC.
3. Komunikasi Kelompok
Walaupun RPC merupakan sebuah abstraksi yang baik untuk tipe komunikasi request/reply , namun terdapat aplikasi yang membutuhkan komunikasi grup agar banyak proses-proses yang berdekatan bisa saling berkomunikasi. Komunikasi kelompok memungkinkan terjadinya pengiriman pesan (dari jaringan terpercaya) dari 1 pengirim ke n penerima.
4. Keamanan
Walaupun keamanan tidak dapat hanya di dukung oleh protokol komunikasi saja, namun protokol yang baik dapat menyajikan sebuah mekanisme untuk membangun sistem terdistribusi yang aman dan efisien. Dengan protokol saat ini, address seringkali dapat dipalsukan, membuatnya mungkin melakukan proses untuk meniru sebuah proses penting. Sebagai contohnya adalah, dalam sistem yang banyak, client dapat meniru proses dari server selama ia tahu address dari file server.
Protokol komunikasi dapat mengaktifkan enkripsi pesan baik secara otomatis ataupun diaktifkan secara manual oleh pengguna. Adapun cara lain yang dapat meningkatkan performansi protokol dengan hanya melakukan enkripsi terhadap pesan yang berasal dari jaringan terpercaya.
5. Manajemen Jaringan
Di dalam sebuah lingkungan dengan banyaknya processor dan jaringan, akan sering terjadinya kejadian di mana processor harus dibawa untuk dilakukan pemeliharan dan jaringan yang harus di rekonfigurasi ulang.
6. Wide-Networking Area
Setiap proses yang ada pada sistem terdistribusi hanya saling berkomunikasi jika lokasi proses-proses tersebut berada di lokasi yang berdekatan. Meski proses-proses tersebut bisa berkomunikasi dengan proses yang berada di lokasi yang berbeda, namun hal itu tidak dilakukan untuk menghindari penurunan performansi.

VII. Layanan FLIP
Fast Local Internet Protocol (FLIP) merupakan protokol tanpa jaringan yang didesain untuk mendukung transparansi, RPC yang efisien, komunikasi secara berkelompok, komunikasi yang aman, dan kemudahan manajemen jaringan.
FLIP mempunyai ciri-ciri sebagai berikut :
1) FLIP melakukan identifikasi entity dengan menggunakan location-independent 64-bit identifier
2) FLIP menggunakan one-way mapping antara address yang bersifat privat (yang digunakan untuk melakukan registrasi endpoint pada koneksi jaringan) dan publik (yang digunakan untuk menyebarkan endpoint tersebut)
3) FLIP mengirimkan pesan berdasarkan 64-bit identifier
4) FLIP dapat mencari rute berdasarkan permintaan
5) FLIP menggunakan sebagian bit pada header pesan yang bersifat sensitif untuk melakukan permintaan transmisi pada jaringan yang terpercaya

VIII. Penggunaan FLIP pada Amoeba
FLIP merupakan bagian dasar dari semua komunikasi yang ada pada sistem terdistribusi Amoeba. Berikut adalah bagaimana cara FLIP bekerja pada sistem terdistribusi Amoeba berdasarkan kebutuhan-kebutuhan sistem terdistribusi yang sudah disebutkan di bagian sebelumnya.
a) Transparansi : FLIP menggunakan dua tingkat skema, yaitu kapabilitas dan FLIP address Setiap objek dijadikan sebagai kapabilitas dan layanan akan mengatur tiap objek yang berbeda tipe. Jika client akan melakukan operasi pada sebuah objek, maka client akan mengirim pesan permintaan pada layanan yang mengatur objek tersebut. Layanan akan diarahkan oleh port yang merupakan bagian dari kapabilitas. sehingga dapat disimpulkan bahwa kapabilitas digunakan sebagai pengenal objek.
b) RPC : dalam mengatasi masalah pesan permintaan yang sudah diproses atau belum, FLIP mengatur bahwa setiap kali server diaktifkan, maka server akan memilih FLIP address yang baru. Sehingga setiap pesan permintaan yang dikirim pada server yang rusak/crash secara otomatis akan gagal diproses karena FLIP address yang digunakan tidak dikenali.
c) Komunikasi Kelompok : jika FLIP box mengenali FLIP address diarahkan ke lokasi tujuan sebanyak n pada satu jaringan yang sama, maka FLIP box akan mengambil address untuk lokasi tersebut dari network-dependent layer. Untuk selanjutnya, network layer yang akan menentukkan pembentukan multicast address dan menyakinkan bahwa lokasi-lokasi tersebut akan menerima address tersebut. Setelahnya network layer membuat packet switch sebuah multicast address dan daftar lokasi-lokasi yang menerima multicast address. Kemudian packet switch akan menggunakan multicast address. Implementasi dari proses ini pada Ethernet layer akan dilakukan setelah FLIP box berhasil memetakan address pada dua lokasi yang menggunakan jaringan yang sama.
d) Keamanan : menyediakan dua mekanisme yang mendukung keamanan sistem terdistribusi. Pertama, pesan akan ditandai oleh pengirim dengan menggunakan security bit sehingga pesan tersebut tidak akan dikirim pada jaringan yang tidak terpercaya. Kedua, pesan yang melintasi FLIP akan ditandai sebagai unsafe (menggunakan unsafe bit), sehingga penerima pesan dapat mengetahui ada tidaknya jalur yang aman digunakan untuk mengirim pesan balasan kepada pengirim pesan sebelumnya. Jika proses mengetahui jalur tersebut, maka pesan balasan dapat dikirim tanpa dienkripsi terlebih dahulu. Sebaliknya bila jalur tersebut tidak ditemukan, maka pesan balasan akan dienkripsi sebelum dikirim.
e) Manajemen Jaringan : FLIP akan mengatur system administrator untuk menandai sebuah interface jaringan sebagai “trusted” atau “untrusted” karena FLIP tidak dapat menentukan tipe jaringan (yang akan diproses) secara otomatis

Sumber :
[1] FRANS KAASHOEK, M., RENESSE, ROBBERT VAN., STAVEREN, HANS VAN., AND TANENBAUM, ANDREW S. FLIP : An Internetwork Protocol for Supporting Distributed Systems. ACM Transactions on Computer Systems (FEB. 1993), pp. 73-106
[2] Tanenbaumt, Andrew S. Distributed Operating System Anno 1992. What have we learned so far?. Distributed System Engineering 1 (1993), pp. 3-10