INFOCUS FC

INFOCUS FC
logo infocus

Jumat, September 19, 2008

Materi 1 pemogramaan non procedural


Dasar Pemrograman
· Paradigma à berbagai pendekatan dalam bidang pemrograman dalam menghasilkan
suatu program.
· Beberapa paradigma dalam pemrograman
1. Paradigma pemrograman Prosedural/Imperatif
2. Paradigma pemrograman Fungsional
3. Paradigma pemrograman Deklaratif/ Predikatif / Logik
4. Paradigma Berorientasi Objek ( Object Oriented)
5. Paradigma Konkuren
· Bahasa Pemrograman
Banyak sekali bahasa pemrograman sampai saat ini, mulai dari bahasa tingkat
rendah (bahasa mesin dalam biner), bahasa assembler, bahasa tingkat tinggi,
sampai bahasa generasi keempat (4GL).
Pada setiap paradigma, terdapat bahasa pemrograman yang mempermudah
implementasi rancangan penyelesaian masalahnya. Contoh bahasa pemrograman
yang ada :
1. Prosedural : Algol, Pascal, Fortran, Basic, Cobol, C
2. Fungsional : LOGO, APL, LISP
3. Deklaratif : PROLOG
4. Object Oriented Murni : Smalltalk, Eifel
PDF created with pdfFactory Pro trial version www.pdffactory.com
2
Paradigma-paradigma dalam pemrograman :
1. Paradigma pemrograman Prosedural/Imperatif
· Didasari oleh konsep mesin Von Newmann à sekelompok tempat penyimpanan
(memori), yang dibedakan menjadi memori instruksi dan memori data. Instruksi
akan dieksekusi satu per satu secara berurutan oleh suatu pemroses tunggal.
· Beberapa instruksi menentukan instruksi berikutnya yang akan dieksekusi
(percabangan kondisional). Data diperiksa dan dimodifikasi secara berurutan.
· Didasari pada strukturisasi informasi di dalam memori dan manipulasi dari
informasi yang disimpan tersebut.
· Kata kuncinya Algoritma + Struktur Data = Program
· Keuntungan pemrograman dengan paradigma ini adalah efisiensi eksekusi, karena
dekat dengan mesin.
2. Paradigma pemrograman Fungsional
· Didasari oleh konsep pemetaan dan fungsi pada matematika.
· Fungsi dapat berbentuk sebagai fungsi ‘primitif’ atau komposisi dari fungsi lain
yang terdefinisi.
· Pemrogram mengasumsikan bahwa ada fungsi dasar yang dapat dilakukan.
Penyelesaian masalah didasari atas aplikasi dari fungsi-fungsi tersebut. Dasar
pemecahan persoalan adalah transformasional.
· Semua kelakuan program adalah suatu rantai transformasi dari sebuah keadaan
awal menuju ke suatu rantai keadaan akhir, melalui keadaan antara, melalui suatu
aplikasi fungsi.
· Paradigma ini tidak mempersoalkan memorisasi dan struktur data, tidak ada
pemilahan antara data dan program, tidak ada lagi pengertian tentang ‘variabel’.
· Pemrogram tidak perlu lagi mengetahui bagaimana mesin mengeksekusi atau
bagaimana informasi disimpan dalam memori. Adapun yang menjadi perhatian
adalah keadaan awal dan akhir saja.
PDF created with pdfFactory Pro trial version www.pdffactory.com
3
· Paradigma ini harus dolah lebih dari program procedural (oleh pemroses
bahasanya), karena itu salah satu keberatan adalah kinerja dan efisiensinya.
3. Paradigma pemrograman Deklaratif/ Predikatif / Logik
· Paradigma ini didasari oleh pendefinisian relasi antar individu yang dinyatakan
sebagai predikat.
· Sebuah program logik adalah kumpulan aksioma (fakta dan aturan deduksi).
· Pemrogram menguraikan sekumpulan fakta dan aturan (inferences rules).
· Saat program dieksekusi, pemakai mengajukan pertanyaan (Query), lalu program
akan menjawab apakah pertanyaan itu dapat dideduksi dari aturan dan fakta yang
ada. Program akan memakai aturan deduksi dan mencocokkan pertanyaan dengan
fakta-fakta yang ada untuk menjawab pertanyaan.
4. Paradigma Berorientasi Objek ( Object Oriented)
· Didasari oleh Kelas dan Objek
· Objek adalah instanisasi dari kelas. Objek mempunyai atribut (kumpulan sifat),
dan mempunyai kelakuan (kumpulan reaksi, metode).
· Objek yang satu dapat berkomunikasi dengan objek yang lain melalui ‘pesan’,
dengan tetap terjaga integritasnya.
· Kelas mempunyai hirarki, anggota dari suatu kelas juga mendapatkan turunan
atirbut dari kelas di atasnya.
· Paradigma ini menawarkan konsep modularitas, penggunaan kembali, kemudahan
modifikasi. Dalam paradigma ini masih terkandung dari paradigma imperatif,
karena mengkonstruksi program dari objek dan kelas adalah tidak berbeda dengan
mengkonstruksi program dari struktur dan algoritma, dengan cara enskapsulasi
menjadi kelas.
· Salah satu aspek penting pemrograman berorientasi objek adalah aspek konkuren.
Karena pada saat runtime akan lahir banyak (lebih dari satu objek), dengan
kelakuan masing-masing, maka aspek konkuren tidak dapat dipisahkan dari
pemrograman objek.
PDF created with pdfFactory Pro trial version www.pdffactory.com
4
5. Paradigma Konkuren
· Didasari oleh kenyataan bahwa dalam keadaan nyata, sebuah sistem komputer
harus menangani beberapa program (task) yang harus dieksekusi bersama dalam
sebuah lingkungan (baik mono atau multi prosesor).
· Pada pemrograman konkuren, tidak lagi beripikir sekuensial, melainkan harus
menangani komunikasi dan sinkronisasi antar task.
PEMROGRAMAN FUNGSIONAL
· Paradigma pemrograman fungsional didasari oleh konsep pemetaan dan fungsi pada
matematika. Fungsi dapat berbentuk:
• fungsi primitif/dasar, atau
• komposisi dari fungsi-fungsi lain yang telah terdefinisi.
· Pemrogram mengasumsikan bahwa sudah terdefinisi fungsi dasar. Dari komposisi
fungsi dasar tersebut dapat dibentuk fungsi baru. Penyelesaian masalah didasari atas
aplikasi dari fungsi-fungsi tersebut. Jadi dasar pemecahan persoalan adalah
transformasional. Semua kelakuan program adalah suatu rantai transformasi dari
sebuah keadaan awal menuju ke suatu rantai keadaan akhir, yang mungkin melalui
keadaan antara, melalui aplikasi fungsi.
· Paradigma fungsional tidak lagi mempernasalahkan memorisasi dan struktur data,
tidak ada pemilahan antara data dan program, tidak ada lagi pengertian tentang
"variabel". Pemrogram tidak perlu lagi mengetahui bagaimana mesin mengeksekusi
atau bagaimana informasi disimpan dalam memori, setiap fungsi adalah "kotak
hitam", yang menjadi perhatiannya hanya keadaan awal dan akhir. Dengan merakit
kotak hitam ini, pemrogram akan menghasilkan program besar.
· Berlainan sekali dengan paradigma prosedural, program fungsional harus diolah lebih
dari program prosedural (oleh pemroses bahasanya), karena itu salah satu keberatan
adalah kinerja dan efisiensinya. Karena itu, dalam bahasa pemrograman fungsional,
PDF created with pdfFactory Pro trial version www.pdffactory.com
5
program adalah fungsi hasil komposisi dari fungsi-fungsi lain, apakah fungsi itu dasar
atau hasil komposisi dari fungsi dasar. Bahasa pemrograman fungsional memperoleh
hasil dengan cara mengaplikasikan fungsi terhadap argumen atau parameternya, yang
juga dapat berupa fungsi.
· Bahasa pemrograman fungsional menonjol dalam kemampuan struktur datanya.
Karena bahasa ini tidak dibatasi oleh variabel yang berasosiasi dengan lokasi memori,
maka sebuah struktur data cukup ditangani sebagai sebuah nilai.
· Bahasa pemrograman fungsional tertua adalah LISP. Dan hanya bahasa inilah yang
dalam perkembangannya juga digunakan secara komersial. Sehingga penggunaannya
meluas.
NOTASI FUNGSIONAL
· Program adalah model solusi persoalan informatik, berisi kumpulan informasi penting
yang mewakili persoalan.
· Dalam konteks fungsional, program digambarkan dalam : himpunan nilai type,
dengan nilainya adalah konstanta.
· Fungsi di sini merupakan asosiasi antara 2 type yaitu domain dan range.
· Domain range dapat berupa : type dasar dan type terkomposisi (bentukan).
· Penulisan suatu program fungsional, dipakai bahasa ekspresi à tiga macam bentuk
komposisi ekspresi adalah ekspresi fungsional dasar, konditional dan rekursif.
· Pemrograman fungsional didasari atas analisa top down. Analisa top down dalam
pemrograman fungsional: Problema, Spesifikasi dan Dekomposisi .
· Fungsi pada analisa topdown adalah strukturisasi teks. Sebuah fungsi mewakili
sebuah tingkatan abstraksi.
PDF created with pdfFactory Pro trial version www.pdffactory.com
6
Konstruksi Program Fungsional
· Definisi Fungsi : Menentukan nama dan mendefinisikan domain dan range dari
fungsi.
· Spesifikasi fungsi : menentukan “arti” dari fungsi.
Contoh : Fungsi bernama Pangkat3(x) artinya menghitung pangkat tiga x seperti pada
umumnya.
· Realisasi fungsi : mengasosiasikan pada nama fungsi, sebuah ekspresi fungsional
dengan parameter formal yang cocok.
Contoh : mengasosiasikan pada Pangkat Tiga: a*a*a atau a3 dengan a adalah nama
parameter formal. Parameter formal fungsi adalah nama yang dipilih untuk
mengasosiasikan domain dan range.
· Aplikasi fungsi : memakai fungsi dalam ekspresi, yaitu dengan menggantikan semua
nama parameter formal dengan nilai. Dengan aplikasi fungsi, akan dievaluasi ekspresi
fungsional.
Contoh : Pangkat Tiga (2) + Pangkat Tiga(3).
Argumen pada saat dilakukan aplikasi fungsi disebut parameter actual.
· Notasi untuk menuliskan program fungsional disebut dengan notasi fungsional,
dimana terdiri dari empat bagian sesuai dengan tahapan pemrograman.
Contoh generic(template) teks program dalam notasi fungsional.
Judul Nama-fungsi (list parameter formal) à Bagian I
Definisi dan Spesifikasi à Bagian II
Nama-fungsi : domain à range
{Tuliskan spesifikasi fungsi yang nama, domain dan range nya sama dengan diatas}
Realisasi à Bagian III
Nama-Fungsi (list parameter) : <>
Aplikasi à Bagian IV
=> Nama-Fungsi (list parameter actual)
PDF created with pdfFactory Pro trial version www.pdffactory.com
7
=> Nama-Fungsi (list parameter actual)
Referensi :
1. Sri Purwanti, Diktat LISP, Teknik Informatika ITB, Bandung, 2003
2. Inggriani Liem, Diktat Pemrograman Fungsional, Teknik Informatika ITB,
Bandung 2003.
3. T.Van Le, Techniques of Prolog Programming with implementation of logical
negation and quantified goals, University of Canberra, 1993.
4. Suyoto, Intelegensi Buatan (Teori Pemrograman), Yogyakarta: Penerbit Gava
Media, 2004.

Kamis, Juni 26, 2008

TUGAS SISTEM OPERASI TERSEBAR

INTERNETWORKING / WAN (Wide Area Network)

adalah cara kita menghubungkan jaringan-jaringan kecil menjadi jaringan yang besar. Menghubungkan jaringan satu dengan jaringa yang lain inilah yang biasanya disebut dengan internetworking.
Internetworking umumnya dibangun menggunakan tiga elemen yang berbeda:
· hubungan data LAN
biasanya terbatas dalam satu bangunan atau kampus dan beroperasi menggunakan sistem pengkabelan private
· hubungan data WAN
umumnya menggunakan saluran telekomunikasi data public, seperti X.25 PSDN, Frame Relay, ISDN, ATM
· devais penghubung jaringan
devais ini secara umum dibagi dalam beberapa katagori:
1. repeater
2. bridge
3. router
4. switch
5. converter
Dari kelima katagori devais di atas, lebih mudah menentukan kapan menggunakan repeater, switch, dan konverter dalam situasi internetwork. Keputusan mengenai pemilihan penggunaan router atau bridge merupakan keputusan yang lebih sulit.
Berikut ini perbandingan elemen-elemen internetworking mengacu kepada layer-layer arsitektur jaringan komputer:





1. Repeater
Fasilitas paling sederhana dalam internetwork adalah repeater. Fungsi utama repeater adalah menerima sinyal dari satu segmen kabel LAN dan memancarkannya kembali dengan kekuatan yang sama dengan sinyal asli pada segmen (satu atau lebih) kabel LAN yang lain. Repeater beroperasi pada Physical layer dalam model jaringan OSI. Jumlah repeater biasanya ditentukan oleh implementasi LAN tertentu.
Penggunaan repeater antara dua atau lebih segmen kabel LAN mengharuskan penggunaan protocol Physical layer yang sama antara segmen-segmen kabel tersebut. Sebagai contoh, repeater dapat menghubungkan dua buah segmen kabel Ethernet 10BASE2.

2. Brigde
Sebuah bridge juga meneruskan paket dari satu segmen LAN ke segmen lain, tetapi bridge lebih fleksibel dan lebih cerdas daripada repeater. Bridge menghubungkan segmen-segmen LAN di Data Link layer pada model OSI. Beberapa bridge mempelajari alamat Link setiap devais yang terhubung dengannya pada tingkat Data Link dan dapat mengatur alur frame berdasarkan alamat tersebut. Semua LAN yang terhubung dengan bridge dianggap sebagai satu subnetwork dan alamat Data Link setiap devais harus unik. LAN yang terhubung dengan menggunakan bridge umum disebut sebagai Extended LAN.
Bridge dapat menghubungkan jaringan yang menggunakan metode transmisi berbeda dan/atau medium access control yang berbeda. Misalnya, bridge dapat menghubungkan Ethernet baseband dengan Ethernet broadband. Bridge mungkin juga menghubungkan LAN Ethernet dengan LAN token ring, untuk fungsi ini, bridge harus mampu mengatasi perbedaan format paket setiap Data Link.
Bridge mampu memisahkan sebagian trafik karena mengimplementasikan mekanisme pemfilteran frame (frame filtering). Mekanisme yang digunakan di bridge ini umum disebut sebagai store and forward sebab frame yang diterima disimpan sementara di bridge dan kemudian di-forward ke worksation di LAN lain. Walaupun demikian, broadcast traffic yang dibangkitkan dalam LAN tidak dapat difilter oleh bridge.



3. Router
Router memberikan kemampuan melalukan paket dari satu sistem ke sistem lain yang mungkin memiliki banyak jalur di antara keduanya. Router bekerja pada lapisan Network dalam model OSI. Umumnya router memiliki kecerdasan yang lebih tinggi daripada bridge dan dapat digunakan pada internetwork dengan tingkat kerumitan yang tinggi sekalipun. Router yang saling terhubung dalam internetwork turut serta dalam sebuah algoritma terdistribusi untuk menentukan jalur optimum yang dilalui paket yang harus lewat dari satu sistem ke sistem lain.
Router dapat digunakan untuk menghubungkan sejumlah LAN (dan extended LAN) sehingga trafik yang dibangkitkan oleh sebuah LAN terisolasikan dengan baik dari trafik yang dibangkitkan oleh LAN lain dalam internetwork. Jika dua atau lebih LAN terhubung dengan router, setiap LAN dianggap sebagai subnetwork yang berbeda. Mirip dengan bridge, router dapat menghubungkan data link yang berbeda. Seperti contoh, router dapat menghubungkan dua LAN yang berbeda atau untuk menghubungkan data link LAN dengan data link WAN.

4 Switch
Di samping repeater, bridge, dan router, terdapat sejumlah tipe peralatan switching lain yang dapat digunakan dalam membangun internetwork. Tujuan utama menghubungkan LAN menggunakan repeater dan bridge adalah meningkatkan keleluasaan atas beberapa keterbatasan media komunikasi LAN. Alat penghubung ini mampu menambah jumlah perangkat jaringan yang terhubung dalam LAN.
Peralatan switch didesain dengan tujuan yang berbeda dengan repeater, bridge, dan router. Jika perangkat jaringan yang terhubung dalam sebuah LAN menjadi terlalu banyak maka kebutuhan transmisi meningkat melebihi kapasitas yang mampu dilayani oleh medium komunikasi jaringan. Salah satu ide penggunaan router adalah mengisolasikan group fisik jaringan dengan yang lain. Penggunaan router cocok pada sistem internetwork dengan kelompok-kelompok kerja yang terletak dalam lokasi yang kecil. Lalu lintas data dalam jaringan kelompok-kelompok kerja ini tentu lebih besar dibandingkan dengan lalu lintas antar kelompok kerja.
Dalam kasus kelompok-kelompok kerja yang terletak terpisah secara geografis, penggunaan router tetap tidak dapat mengisolasikan lalu lintas data. Lalu lintas data dalam kelompok kerja yang tinggi akan menyebabkan beban di router tetap tinggi karena lalu lintas tersebut selalu melewati router. Cara mengatasi hal ini adalah dengan menggunakan beberapa segmen medium tranmisi secara paralel dalam internetwork. Router sendiri tetap dapat digunakan untuk menghubungkan segmen-segmen tersebut dan tetap mampu mengisolasi trafik antarsegmen. Perangkat network dapat dihubungkan ke medium transmisi yang sesuai atau dengan menggunakan hub yang mengimplementasikan fasilitas switching, seperti module assignment hub, bank assignment hub, dan port assignment hub.
5 Converter
Converter dapat dianggap sebagai tipe devais yang berbeda daripada repeater, bridge, router, atau switch dan dapat digunakan bersama-sama. Converter (kadang disebut gateway) memungkinkan sebuah aplikasi yang berjalan pada suatu sistem berkomunikasi dengan aplikasi yang berjalan pada sistem lain yang berjalan di atas arsitektur network berbeda dengan sistem tersebut. Converter bekerja pada lapisan Application pada model OSI dan bertugas untuk melalukan paket antar jaringan dengan protokol yang berbeda sehingga perbedaan tersebut tidak tampak pada lapisan aplikasi.
Di samping menggunakan converter, metode lain untuk menghubungkan jaringan dengan arsitektur berbeda adalah dengan tunelling. Metode ini membungkus paket -termasuk protokolnya- yang akan dilewatkan pada protokol lain. Pembungkusan ini dilakukan dengan menambahkan header protokol pada paket yang akan dilewatkan. Metode ini dapat dilihat sebagai sebuah arsitektur jaringan yang berjalan di atas arsitektur jaringan yang lain. Perangkat tempat terjadinya proses tunnelling ini disebut sebagai portal
A.Internetwork heterogen
Sebuah LAN secara data link sebenarnya dapat terdiri atas beberapa arsitektur jaringan individual yang masing-masing tidak dapat berkomunikasi dengan arsitektur lain. Pada lapisan Data Link NIC di sebuah sistem masih mampu berkomunikasi dengan NIC di sistem lain. Software jaringan yang terletak pada lapisan di atas Data Link hanya akan memperhatikan sistem lain yang kompatibel dengannya dan tidak dapat berkomunikasi dengan sistem yang berjalan dengan software jaringan yang tidak kompatibel dengannya. Fungsi lapisan Transport dan Network pada setiap sistem TCP/IP hanya bisa berkomunikasi dengan sistem TCP/IP lain, NetWare hanya berkomunikasi dengan sistem NetWare lain, begitu pula dengan sistem jaringan lain. LAN seperti ini disebut sebagai LAN heterogen dan internetwork yang menghubungkan LAN-LAN seperti ini disebut sebagai internetwork heterogen.
Sebuah sistem dapat saja mempunyai sebuah data link dengan beberapa jenis software (protokol) jaringan pada lapisan atasnya. Dengan cara ini sebuah sistem dapat berkomunikasi dengan beberapa protokol jaringan sehingga misalnya sebuah sistem dapat berkomunikasi dengan server TCP/IP dan server NetWare. Tujuan umum dalam dunia jaringan di masa ini adalah agar pengguna dapat berkomunikasi dengan sistem komputasi lain di internetwork.
· Internetwork menggunakan bridge
Bridge yang bekerja pada lapisan Data Link mampu menghubungkan LAN-LAN yang berbeda protokol. Bridge tidak akan memeriksa jenis protokol setiap frame yang perlu dilewatkan. Contoh internetwork menggunakan bridge dapat dilihat pada gambar. Dalam internetwork tersebut setiap sistem TCP/IP dapat berhubungan dengan sistem TCP/IP lain, demikian pula dengan sistem NetWare.


Gambar Internetwork menggunakan bridge
Keuntungan menggunakan bridge:
1.biaya; bridge adalah perangkat yang cukup sederhana dan umumnya lebih murah daripada router
2.kemudahan penggunaan; bridge umumnya lebih mudah dipasang dan dirawat
3.kinerja; karena bridge cukup sederhana, overhead pemrosesan lebih kecil dan cenderung mampu menangani traffic yang lebih tinggi

Kerugian menggunakan bridge
1.volume traffic; bridge lebih cocok pada jaringan dengan volume traffic total yang relatif rendah
2.broadcast storm; frame broadcast dilewatkan bridge ke seluruh LAN dan ini dapat menyebabkan traffic melebihi kapasitas medium jaringan
3.loop; kesalahan mengkonfigurasi bridge dapat menyebabkan frame berputar melewati bridge tanpa henti
4.alamat yang sama; alamat fisik setiap stasiun dalam jaringan harus berbeda dengan yang lain
5.nama yang sama; jika nama network yang sama digunakan oleh dua atau lebih user akan menyebabkan traffic yang berlebihan

· Internetwork menggunakan router
Keunggulan utama menggunakan bridge dalam membentuk internetwork adalah tidak terlihat oleh fungsi lapisan Transport dan Network. Dari sudut pandang lapisan atas jaringan, extended LAN yang dibangun menggunakan bridge beroperasi sama seperti hubungan data link LAN biasa. Karakteristik seperti ini bisa menjadi kelemahan jika internetwork tumbuh menjadi lebih besar. Extended LAN dapat tumbuh menjadi sangat besar sehingga setiap LAN dapat mengalami saturasi ketika menangani multicast traffic. Dalam hal ini router dapat digunakan untuk menghubungkan LAN-LAN jika memang diinginkan untuk mengisolasi multicass traffic.
Router bekerja pada lapisan Network dan hanya mampu melewatkan paket-paket yang bersesuaian dengan protokol yang diimplementasikan padanya. Untuk router pada internetwork heterogen diperlukan satu buah router untuk setiap jenis protokol pada internetwork tersebut. Contoh internetwork menggunakan router dapat dilihat pada gambar 1. Pada internetwork tersebut setiap sistem TCP/IP dapat saling berhubungan dengan sistem lain sedangkan sistem NetWare pada sebuah LAN tidak mampu berhubungan dengan sitem NetWare pada LAN yang lain karena tidak terdapat router NetWare yang menghubungkan ketiga LAN di internetwork. Untuk dapat menghubungkan NetWare dalam internetwork ini dapat ditambahkan sebuah router Netware (gambar 2).

Gambar 1 Internetwork menggunakan router

Gambar 2 router penghubung Netware ke internetwork
Keuntungan menggunakan router:
1.isolasi traffic broadcast; kemampuan ini memperkecil beban internetwork karena traffic jenis ini dapat diisolasikan pada sebuah LAN saja
2.fleksibilitas; router dapat digunakan pada topologi jaringan apapun dan tidak peka terhadap masalah kelambatan waktu yang dialami jika menggunakan bridge
3.pengaturan prioritas; router dapat mengimplementasikan mekanisme pengaturan prioritas antar protokol
4.pengaturan konfigurasi; router umumnya dapat lebih dikonfigurasi daripada bridge
5.isolasi masalah; router membentuk penghalang antar LAN dan memungkinkan masalah yang terjadi di sebuah LAN diisolasikan pada LAN tersebut
6.pemilihan jalur; router umumnya lebih cerdas daripada bridge dan dapat menentukan jalur optimal antara dua sistem.

Kerugian menggunakan router:
1.tergantung pada protokol; router yang beroperasi pada lapisan Network OSI hanya mampu melalukan traffic yang sesuai dengan protokol yang diimplementasikan padanya saja
2.biaya; router umunya lebih kompleks daripada bridge dan lebih mahal;; overhead pemrosesan pada router lebih besar sehingga troughput yang dihasilkannya dapat lebih rendah daripada bridge
3.pengalokasian alamat; dalam internetwork yang menggunakan router, memindahkan sebuah mesin dari LAN yang satu ke LAN yang lain berarti mengubah alamat network pada sistem itu
4.sistem tak terjangkau; penggunaan tabel routing yang tidak dinamik menyebabkan beberapa sistem dapat terjangkau oleh sistem lain

NETWORK FILE SYSTEM


Protokol NFS
Ide dasar NFS cukup sederhana. Ketika kita menambahkan suatu disk pada sistem UNIX, maka kita menggabungkan disk itu pada file system yang sudah ada dengan menggunakanperintah mount. Disk yang baru membentuk cabang baru dari tiga struktur. Kita dapat berpindah ke dalamnya dengan perintah cd dan mengakses file-filenya. Dengan NFS Kita melakukan hal yang sama. Kita sebagai client, memberikan perintah mount yang dikirimkan ke remote server, dan bagian dari struktur file system menggabungkan lokal file system. Server sekarang mempunyai daftar mesin yang diijinkan mengakses file system tersebut.
Pada SunOS, daftar tersebut terdapat pada file yang bernama /etc/exports. Pada Solaris, daftar dikontrol oleh perintah share, yang dapat ditemukan pada /etc/dfs/dfstab. Ketika proses pada client mengakses remote file dengan membaca system, sebagai contoh, maka panggilan sistem tersebut akan dikembalikan ke network dengan menggunakna protokol NFS. Server mengecek validitas dari request, dan menampilkan operasi yang diinginkan.
Sekali kita telah me-mount remote file system pada satu struktur file, kapanpun kita menginginkan file pada tempat kita melakukan mount, sytem akan menerjemahkan perintah itu ke dalam NFS request dan mengirimkan ke network dari server. Server akan mengeksekusi permintaan tersebut dan akan mengembalikan kepada kernel. Sebagai balasannya, kernel akan memberikan resume ke proses jika permintaan itu dilayani oleh local disk.
NFS protokol mengasumsikan bahwa server tidak menahan kondisi apapun dari client. Sebagai contoh, UNIX yang normal membaca panggilan sistem mengingan seberapa jauh proses yang berbeda harus membaca suatu file yang ditulis. Panggilan yang berurut dapat digunakan suatu file dari awal hingga akhir. NFS akan memberikan “ dimana kita sekarang “ pada satu client, dan ketika menscan suatu file, ini merupakan kerjaan client untuk mengirimkan perintah-perintah membaca dan masing-masingnya berisi posisi dan ukuran informasi.
Jadi dalam hal ini server tidak cerdas. Ia tidak tahu menahu tentang apa-apa ynag dilakukan user. Client melakukan beberapa hal untuk efisiensi, yaitu : mengingan posisi, dan menyimpan informasi sehingga tidak harus mengulang dengan menelusuri jaringan kembali.
Tujuan awal dari desain NFS serndiri adalah agar remote file system tidak harus terikat pada UNIX, sehingga tidak kaku untuk menggunakan UNIX file system. Maka tujuan untuk membuat suatu system yang dapat mensupport berbagai tipe file sisyem yang ada telah terlaksana.
NFS server stateless. Karena secara sedern\hana ia mengirimkan permintaan transaksi dan melakukan proses. Setiap permintaan adalah kejadian yang independent dan secara teori, pengapdate-an file dapat terjadi dalam berbagai cara. Statelessness merupakan criteria desain asli dari NFS yang dapat mencegah dari crash recovery. Ketika server crash, client cukup menunggu sampai server kembali jalan dan meneruskan operasi.

NFS versi 3
Masalah terbesar dari NFS versi 2 adalah kebutuhan server NFS untuk melakukan penulisan secara sinkron. Ketika satu client memberikan permintaan untuk menulis, ia mengirimkan satu RPC yang mengatakan “ Tulis data ini pada posisi ini dan ini pada file. Server tidak dapat membalas RPC ini dengan menjawab “dane” sampay data benar-benar telah tersimpan pada media penyimpanan yang aman, antara lain Hardisk ataupun magnetik disk. Jika dikatakan “OK” ketika ia masih ada di memory dan tiba-tiba sistem crash. sebelum sempat menulisnya ke dalam media penyimpanan, maka kemudian file berada dalam kondisi yang tidak konsisten karena client mengira bahwa ia menulis data yang sebenarnya tidak ada pada disk. Server harus melakukan penulisan dan tidak mengembalikan hasilnya sampai data benar-benar telah tertulis pada disk. Client harus menunggu sampai operasi write telah selesai.
Hal ini menghasilkan bottle neck untuk pengimplementasian NFS. Beberapa sistem memberikan kondisi tidak aman untuk mode menulis dimana data ditahan pada memori server dan harapan client untuk tidak sering terjadi crash.
Saat ini data ditulis pada disk. Sehingga jika sistem crash sistem akan menuliskan data yang belum senpat di save sebelum melakukan bootstraping.
Versi 3 meningkatkan performansi dengan mengijinkan client untuk memilih transaksi asyncronous dan kemudian mengirimkan perintah yang mengatakan “ ok dan tulis data pada disk”. Operasinya dipenuhi dengan “ write verifier” .
Versi 3 mengijinkan NFS menggunakan hubungan TCP/IP pada remote machine dibandingkan dengan menggunakan UDP. Penggunaan UDP justru kemunduran karena kelambatannya. Pemikiran bahwa TCP/IP menyebabkan terlalu banyak protokol yang tidak digunakna dan otomatis akan menurunkan kecepatan operasi NFS. dDisainer NFS kemudian menemukan bahwa ada kebutuhan untuk memberikan banyak layanan dari TCP/IP, seperti reliability, error recovery, congestion control, timeout dan seterusnya. Kode UDP menjadi dapat diimplementasikan pada aspek tertentu dari TCP/IP. Agar adil, kecepatan meningkat dengan meningkatnya kecepatan prosesor dimana disain NFS yang asli membuat protokol TCP semakin efisien.
Versi 3 memiliki tambahan performansi dengan mengurangi protokol yang menganggur ketika mengembalikan informasi direktori. Tujuannya adalah untuk mendukung pada kondisi yang sering terjadi.
Versi 3 menyediakan beberapa help untuk client untuk mempunyai cache informasi yang disimpan pada server.
Akhirnya Versi 3 support file 64-bit.
Oleh karena itu, gunakan versi 3 jika dapat, karena keuntungan diatas, dan tentu saja semampuan internetwork pada implementasi sebelumnya juga menjadi salah satu tujuan pendesainannya.