1. Komunikasi Data
Komunikasi data adalah merupakan bagian
dari telekomunikasi yang secara khusus berkenaan dengan transmisi atau
pemindahan data dan informasi diantara komputer-komputer dan piranti-piranti
yang lain dalam bentuk digital yang dikirimkan melalui media komunikasi data.
Komponen Komunikasi Data
-
Pengirim, adalah piranti yang mengirimkan data
-
Penerima, adalah piranti yang menerima data
-
Data, adalah informasi yang akan dipindahkan
-
Media pengiriman, adalah media atau saluran yang
digunakan untuk mengirimkan data
-
Protokol, adalah aturan-aturan yang berfungsi
untuk menyelaraskan hubungan.
2. Protocol
Protokol dapat diartikan sebagai sebuah
aturan yang mendefinisikan beberapa fungsi yang ada dalam sebuah jaringan
komputer, misalnya mengirim pesan, data, informasi dan fungsi lain yang harus
dipenuhi oleh sisi pengirim dan sisi penerima agar komunikasi dapat berlangsung
dengan benar, walaupun sistem yang ada dalam jaringan tersebut berbeda sama
sekali.
Secara umum fungsi dari protokol adalah
untuk menghubungkan sisi pengirim dan sisi penerima dalam berkomunikasi serta
dalam bertukar informasi agar dapat berjalan dengan baik dan benar. Sedangkan
fungsi protokol secara detail dapat dijelaskan berikut:
-
Fragmentasi dan reassembly
Fungsi dari
fragmentasi dan reassembly adalah membagi informasi yang dikirim menjadi
beberapa paket data pada saat sisi pengirim mengirimkan informasi dan setelah
diterima maka sisi penerima akan menggabungkan lagi menjadi paket informasi
yang lengkap.
-
Encapsulation
Fungsi dari encapsulation
adalah melengkapi informasi yang dikirimkan dengan address,
kode-kode koreksi dan lain-lain.
-
Connection
control
Fungsi dari connection
control adalah membangun hubungan (connection) komunikasi dari sisi
pengirim dan sisi penerima, dimana dalam membangun hubungan ini juga termasuk
dalam hal pengiriman data dan mengakhiri hubungan.
-
Flow control
Berfungsi
sebagai pengatur perjalanan datadari sisi pengirim ke sisi penerima.
-
Error control
Dalam pengiriman
data tak lepas dari kesalahan, baik itu dalam proses pengiriman maupun pada
waktu data itu diterima. Fungsi dari error control adalah mengontrol
terjadinya kesalahan yang terjadi pada waktu data dikirimkan.
-
Transmission
service
Fungsi dari
transmission service adalah memberi pelayanan komunikasi data khususnya yang
berkaitan dengan prioritas dan keamanan serta perlindungan data.
3.
Remote
Procedure Call (RPC)
Remote Procedure
Call (RPC)
adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur
yang berada di komputer lain.
Kelebihan
RPC
-
Relatif
mudah digunakan :
Pemanggilan remote procedure tidak jauh
berbeda dibandingkan pemanggilan local procedure. Sehingga pemrogram dapat
berkonsentrasi pada software logic, tidak perlu memikirkan low level
details seperti socket, marshalling & unmarshalling.
-
Robust
(Sempurna):
Sejak th 1980-an RPC telah banyak
digunakan dlm pengembangan mission-critical application yg memerlukan scalability,
fault tolerance, & reliability.
Kekurangan RPC
-
Tidak
fleksibel terhadap perubahan:
Static relationship between client &
server at run-time.
-
Berdasarkan
prosedural/structured programming yang sudah ketinggalan jaman dibandingkan
OOP.
4. Object Remote
Meskipun teknologi RPC ini relatif sudah memberikan kenyamanan bagi developer, tapi perkembangan yang terjadi di bidang pemrograman berorientasi objek akhirnya menuntut kehadiran teknologi baru.
Aplikasi objek terdistribusi
seringkali melakukan hal berikut:
-
Melokasikan
objek remote: Aplikasi dapat menggunakan satu dari dua mekanisme untuk mendapatkan
referensi ke objek remote. Aplikasi dapat mendaftarkan objek remote dengan
fasilitas penamaan RMI (naming facility) yaitu rmiregistry atau aplikasi
dapat mem-pass dan mengembalikan referensi objek remote sebagai bagian
dari operasi normal.
-
Berkomunikasi
dengan objek remote: Detail dari komunikasi antara objek remote ditangani oleh
RMI, bagi programmer komunikasi remote tampak seperti invokasi method Java
standar.
-
Memanggil
(load) bytecode untuk objek yang di-pass: Karena RMI mengizinkan
pemanggil (caller) untuk mem-pass objek ke objek remote, RMI
menyediakan mekanisme yang diperlukan objek me-load kode objek,
sebagaimana juga mentransmisikan datanya.
-
Bab 3
Secara
tidak langsung, proses merupakan program yang sedang dieksekusi. Silberschatz:
suatu proses adalah lebi hdari sebuah kode program, yang terkadang disebut text
section.
1. Thread
Thread
adalah
sebuah alur kontrol dari sebuah proses. Kontrol thread tunggal ini hanya
memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem
operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah
proses untuk memiliki eksekusi multi-threads, agar dapat secara terus
menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama,
maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari
satu tugas pada satu waktu. Suatu proses yang multithreaded mengandung
beberapa perbedaan alur kontrol dengan ruang alamat yang sama.
Thread
merupakan
unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter,
register set, dan stack. Sebuah thread berbagi code
section, data section, dan sumber daya sistem operasi dengan Thread
lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight
process. Sebuah proses tradisional atau heavyweight process mempunyai
thread tunggal yang berfungsi sebagai pengendali. Perbedaan antara
proses dengan thread tunggal dan proses dengan thread yang banyak
adalah proses dengan thread banyak dapat mengerjakan lebih dari satu
tugas pada satu satuan waktu.
Keuntungan Thread
Keuntungan dari program yang multithreading dapat
dipisah menjadi empat kategori:
1. Responsi: Membuat
aplikasi yang interaktif menjadi multithreading dapat membuat sebuah
program terus berjalan meski pun sebagian dari program tersebut diblok atau
melakukan operasi yang panjang, karena itu dapat meningkatkan respons kepada
pengguna. Sebagai contohnya dalam web browser yang multithreading,
sebuah thread dapat melayani permintaan pengguna sementara thread lain
berusaha menampilkan image.
2. Berbagi sumber daya:
thread berbagi memori dan sumber daya dengan thread lain yang
dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengizinkan
sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi
memori yang sama.
3. Ekonomi: dalam
pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya.
Alternatifnya adalah dengan penggunaan thread, karena thread berbagi
memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk
membuat dan context switch thread. Akan susah untuk mengukur perbedaan
waktu antara proses dan thread dalam hal pembuatan dan pengaturan,
tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan thread.
Pada Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread,
dan context switch proses 5 kali lebih lama dibandingkan context
switch thread.
Model-model Multithreading:
a.
Model Many-to-One. Model ini memetakan beberapa thread tingkatan
pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan
dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang
dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak
dapat berjalan secara paralel pada multiprosesor. Contoh: Solaris Green
Threads dan GNU Portable Threads.
b.
Model One-to-One. Model ini memetakan setiap thread tingkatan
pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan
model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel.
Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan
tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini
maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread
dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9.
c. Model Many-to-Many.
Model ini memultipleks banyak thread tingkatan pengguna ke thread
kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model
ini mengizinkan developer membuat thread sebanyak yang ia mau
tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang
dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini
ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada
multiprosessor.
Pembatalan
Thread (Thread Cancellation)
Thread Cancellation ialah pembatalan
thread sebelum tugasnya selesai. Umpamanya, jika dalam program Java
hendak mematikan Java Virtual Machine (JVM). Sebelum JVM dimatikan, maka
seluruh thread yang berjalan harus dibatalkan terlebih dahulu. Contoh
lain adalah di masalah search. Apabila sebuah thread mencari
sesuatu dalam database dan menemukan serta mengembalikan hasilnya, thread
sisanya akan dibatalkan. Thread yang akan diberhentikan biasa
disebut target thread.
Pemberhentian target
Thread dapat dilakukan dengan 2 cara:
a. Asynchronous
cancellation. Suatu thread seketika itu juga membatalkan target
thread.
b. Deferred
cancellation. Suatu thread secara periodik memeriksa apakah ia
harus batal, cara ini memperbolehkan target thread untuk membatalkan
dirinya secara terurut.
Penjadwalan Thread
Begitu dibuat, thread baru dapat dijalankan dengan
berbagai macam penjadwalan. Kebijakan penjadwalanlah yang menentukan setiap
proses, di mana proses tersebut akan ditaruh dalam daftar proses sesuai
proritasnya dan bagaimana ia bergerak dalam daftar proses tersebut.
Untuk menjadwalkan thread, sistem dengan
model mulithreading many to many atau many to one menggunakan:
a. Process Contention
Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk
berjalan pada LWP (lightweight process) yang tersedia.
b. System Contention Scope (SCS). SCS berfungsi
untuk memilih satu dari banyak thread , kemudian menjadwalkannya ke
satu thread tertentu(CPU / Kernel).
2. Client
– Server
Server adalah komputer yang dapat memberikan service ke
client, sedangkan client adalah komputer yang mengakses beberapa service
yang ada di server. Ketika client membutuhkan suatu service
yang ada di server, dia akan mengirim request kepada server
lewat jaringan. Jika request tersebut dapat dilaksanakan, maka server
akan mengirim balasan berupa service yang dibutuhkan untuk saling
berhubungan menggunakan Socket. Socket adalah sebuah endpoint untuk
komunikasi didalam jaringan.
Model
Client-Server
Ada
beberapa model client/server yang penting untuk diketahui. Dimulai dari
arsitektur mainframe hingga arsitektur client/server.
a.
Arsitektur Mainframe
Pada arsitektur ini,
terdapat sebuah komputer pusat (host) yang memiliki sumber daya yang sangat
besar, baik memori, processor maupun media penyimpanan. Melalui komputer
terminal, pengguna mengakses sumber daya tersebut. Komputer terminal hanya
memiliki monitor/keyboard dan tidak memiliki CPU. Semua sumber daya yang
diperlukan terminal dilayani oleh komputer host.
b.
Arsitektur File Sharing
Pada
arsitektur ini komputer server menyediakan file-file yang tersimpan di media
penyimpanan server yang dapat diakses oleh pengguna. Arsitektur file sharing
memiliki keterbatasan, terutama jika jumlah pengakses semakin banyak serta
ukuran file yang di shaing sangat besar. Hal ini dapat mengakibatkan transfer
data menjadi lambat. Model ini populer pada tahun 1990-an.
c.
Arsitektur Client/Server
Karena
keterbatasan sistem file sharing, dikembangkanlah arsitektur client/server. Salah
satu hasilnya yaitu berupa software database server yang menggantikan software
database berbasis file server. Dikenalkan pula RDBMS (Relational Database
Management System). Dengan arsitektur ini, query data ke server dapat terlayani
dengan lebih cepat karena yang ditransfer bukanlah file, tetapi hanyalah hasil
dari query tersebut. RPC (Remote Procedure Calls) memegang peranan penting pada
arsitektur client/server.
d.
Model Two-tier
Model Two-tier terdiri dari tiga
komponen yang disusun menjadi dua lapisan: client (yang meminta service)
dan server (yang menyediakan service). Tiga komponen tersebut
yaitu :
-
User
Interface, yaitu antar muka program aplikasi yang berhadapan dan digunakan
langsung oleh user.
-
Manajemen
proses
-
Database
Model ini memisahkan peranan user
interface dan database dengan jelas, sehingga terbentuk dua lapisan.
e.
Model Three-tier
Pada
model ini disisipkan satu layer tambahan diantara user interface tier dan
database tier. Tier tersebut dinamakan middle-tier. Middle-Tier terdiri dari
bussiness logic dan rules yang menjembatani query user dan database, sehingga
program aplikasi tidak bisa mengquery langsung ke database server, tetapi harus
memanggil prosedur-prosedur yang telah dibuat dan disimpan pada middle-tier.
3. Agent
Software Agent adalah entitas perangkat lunak yang didedikasikan
untuk tujuan tertentu yang memungkinkan user untuk mendelegasikan tugasnya
secara mandiri, selanjutnya software agent nantinya disebut agent saja. Agent
bisa memiliki ide sendiri mengenai bagaimana menyelesaikan suatu pekerjaan
tertentu atau agenda tersendiri.
Karakteristik
dari Agen:
1.
Autonomy
2.
Intelligence, Reasoning, dan
Learning
3.
Mobility dan Stationary.
4.
Delegation
5.
Reactivity
6.
Proactivity dan Goal-Oriented
7.
Communication and Coordination
Capability
Bahasa
Pemrograman yang digunakan
Bahasa pemrograman yang
dipakai untuk tahap implementasi dari software agent, sangat menentukan
keberhasilan dalam implementasi agent sesuai dengan yang diharapkan.
Diantaranya yaitu :
A. Object-Orientedness:
Karena agent adalah berhubungan dengan
obyek, bahkan beberapa peneliti menganggap agent adalah obyek yang aktif, maka
juga agent harus diimplementasikan kedalam pemrorgaman yang berorientasi obyek
(object-oriented programming language).
B.
Platform Independence:
Seperti sudah dibahas pada bagian sebelumnya, bahwa agent
hidup dan berjalan diberbagai lingkungan. Sehingga idealnya bahasa pemrograman
yang dipakai untuk implementasi adalah yang terlepas dari platform, atau dengan
kata lain program tersebut harus bisa dijalankan di platform apapun (platform
independence).
C. Communication
Capability:
Pada saat berinteraksi dengan agent lain
dalam suatu lingkungan jaringan (network environment), diperlukan kemampuan
untuk melakukan komunikasi secara fisik. Sehingga diperlukan bahasa pemrograman
yang dapat mensupport pemrograman yang berbasis network dan komunikasi.
D. Security:
Faktor keamanan (security)
adalah factor yang sangat penting dalam memilih bahasa pemrorgaman untuk
implementasi software agent. Terutama untuk mobil agent, diperlukan bahasa
pemrograman yang mensupport level-level keamanan yang bisa membuat agent
bergerak dengan aman.
E. Code
Manipulation:
Beberapa aplikasi software agent memerlukan
manipulasi kode program secara runtime, sehingga diperlikan bahasa pemrograman
untuk software agent yang dapat menangani masalah runtime tersebut.
Dari
karakteristik di atas dapat disimpulkan bahwa bahasa pemrograman yang layak
untuk mengimplementasikan software agent adalah sebagai berikut :
• Java
• Telescript
• Tcl/Tk, Safe-Tcl, Agent-Tcl
Bab 4
Sistem operasi (Operating System atau OS) adalah perangkat
lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat
keras serta operasi-operasi dasar sistem, termasuk menjalankan software
aplikasi seperti program-program pengolah kata dan browser
web.
Sistem Operasi secara umum terdiri dari beberapa bagian:
1.
Mekanisme Boot,
yaitu meletakkan kernel ke dalam memory
2.
Kernel,
yaitu inti dari sebuah Sistem Operasi
3.
Command
Interpreter atau shell, yang bertugas membaca input dari pengguna
4.
Pustaka-pustaka, yaitu yang
menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh
aplikasi lain
5.
Driver untuk berinteraksi
dengan hardware eksternal, sekaligus untuk mengontrol mereka.
Komponen Sistem Operasi
Komponen sistem operasi terdiri dari:
A. Manajemen Proses
B. Manajemen Memori Utama
C. Manajemen Berkas
D. Manajemen Sistem I/O
E. Manajemen Penyimpanan Sekunder
F. Sistem Proteksi
G. Command-Interpreter System
H. Jaringan
Sistem operasi terdistribusi adalah salah satu
implementasi dari sistem terdistribusi, di mana sekumpulan komputer dan
prosesor yang heterogen terhubung dalam satu jaringan. Tujuan utamanya adalah
untuk memberikan hasil secara lebih, terutama dalam:
–
file system
–
name space
–
Waktu pengolahan
–
Keamanan
– Akses
ke seluruh resources, seperti
prosesor, memori, penyimpanan sekunder, dan perangakat keras.
Manfaat Sistem Operasi Terdistribusi
Sistem operasi terdistribusi memiliki manfaat
dalam banyak sistem dan dunia komputasi yang luas. Manfaat-manfaat ini termasuk
dalam sharing resource, waktu
komputasi dan komunikasi.
1. Shared Resource
Walaupun perangkat sekarang sudah memiliki
kemampuan yang cepat dalam proses-proses komputasi, atau misal dalam mengakses
data, tetapi pengguna masih saja menginginkan sistem berjalan dengan lebih
cepat. Apabila hardware terbatas,
kecepatan yang diinginkan user dapat di atasi dengan menggabung perangkat yang
ada dengan sistem DOS.
2. Manfaat Komputasi
Salah satu keunggulan sistem operasi
terdistribusi ini adalah bahwa komputasi berjalan dalam keadaan paralel. Proses
komputasi ini dipecah dalam banyak titik, yang mungkin berupa komputer pribadi,
prosesor tersendiri, dan kemungkinan perangkat prosesor-prosesor yang lain.
Sistem operasi terdistribusi ini bekerja baik dalam memecah komputasi ini dan
baik pula dalam mengambil kembali hasil komputasi dari titik-titik cluster untuk ditampilkan hasilnya.
3. Reliabilitas
Fitur unik yang dimiliki oleh DOS ini adalah
reliabilitas. Berdasarkan design dan
implementasi dari design sistem ini,
maka hilangnya satu node tidak akan berdampak terhadap integritas sistem. Hal
ini berbeda dengan PC, apabila ada salah satu hardware yang mengalami kerusakan, maka sistem akan berjalan tidak
seimbang, bahkan sistem bisa tidak dapat berjalan atau mati.
4. Komunikasi
Sistem operasi terdistribusi biasanya berjalan
dalam jaringan dan biasanya melayani koneksi jaringan. Sistem ini biasanya
digunakan user untuk proses networking. Uses
dapat saling bertukar data, atau saling berkomunikasi antara titik baik secara
LAN maupun WAN.
Jenis Sistem Operasi
Terdistribusi
Beberapa contoh dari sistem operasi
terdistribusi ini diantaranya :
1.
Amoeba
(Vrije Universiteit). Amoeba adalah sistem berbasis mikro-kernel yang
tangguh yang menjadikan banyak workstation personal menjadi satu sistem
terdistribusi secara transparan. Sistem ini sudah banyak digunakan di kalangan
akademik, industri, dan pemerintah selama sekitar 5 tahun.
2.
Angel
(City University of London). Angel didesain sebagai
sistem operasi terdistribusi yang pararel, walaupun sekarang ditargetkan untuk
PC dengan jaringan berkecepatan tinggi. Model komputasi ini memiliki manfaal
ganda, yaitu memiliki biaya awal yang cukup murah dan juga biaya incremental
yang rendah.
3.
Chorus
(Sun Microsystems). CHORUS merupakan keluarga dari sistem operasi
berbasis mikro-kernel untuk mengatasi kebutuhan komputasi terdistribusi tingkat
tinggi di dalam bidang telekomunikasi, internetworking, sistem tambahan,
realtime, sistem UNIX, supercomputing, dan kegunaan yang tinggi.
4.
GLUnix
(University of California, Berkeley). Sampai saat ini,
workstation dengan modem tidak memberikan hasil yang baik untuk membuat
eksekusi suatu sistem operasi terdistribusi dalam lingkungan yang shared dengan
aplikasi yang berurutan.
Bab 5. File Service
File adalah kumpulan
informasi yang berhubungan dan tersimpan dalam secondary storage.
Operasi pada File
• Membuat ( Create )
– Menemukan free space
– Entry baru dibuat dalam tabel direktori yang
mencatat nama dan lokasi
– Ukuran yang diinisialisasi 0
• Menulis ( Write )
– OS melihat ke direktori untuk mencari
lokasinya dalam disk
– Melakukan transfer dari memori ke lokasi dalam
disk (suatu pointer digunakan sebagai penunjuk lokasi penulisan berikutnya)
– Entry dalam direktori di update
• Membaca ( Read )
– OS melakukan hal yang sama dengan penulisan
file kecuali operasinya membaca dari lokasi dalam disk ke dalam memori
• Menghapus
– OS melihat ke direktori mencari entry dengan
nama yang dimaksud
– Membebaskan space yang teralokasi
– Menghapus entry
• Reposition dalam file
– OS melihat ke direktori untuk mencari entry
yang dimaksud,
– Pointer di set dengan harga (lokasi) tertentu
yang diberikan
• Menghapus dengan menyisakan atribut ( Truncate
)
– sama dengan menghapus file kecuali entry tidak
dihapuskan tapi ukuran file diisi 0
File service adalah suatu perincian
atau pelayanan dari file sistem yang ditawarkan pada komputer client. File System merupakan struktur
logika yang digunakan untuk mengendalikan akses terhadap data yang ada pada
disk. File System terdiri dari dua bagian:
• Kumpulan file yang masing-masingnya menyimpan
data-data yang berhubungan
• Struktur direktori yang mengorganisasi dan
menyediakan informasi mengenai seluruh file dalam system
File System merupakan interface yang
menghubungkan sistem operasi dengan disk. Ketika program aplikasi yang sedang
dijalankan memerlukan pembacaan file dari hard disk, sistem operasi meminta
file system untuk membuka file yang diinginkan. File system harus mengetahui
lokasi penyimpanan file yang dibaca. Setelah menemukan lokasinya, file system
membaca data yang ada dan mengirimkan data tersebut pada sistem operasi.
Kebutuhan File System
Terdistribusi
1. Transparency
2. Concurrent File Updates
3. ile Replication
4. Hardware dan Operating Systems
5. Fault Tolerance
6. Consistency
7. Security
8. Efficiency
Contoh File System
NFS
(Network File System)
Tujuan dari NFS adalah untuk memungkinkan
terjadinya pertukaran sistem berkas secara transparan antara mesin-mesin bebas
tersebut. Hubungan yang terjadi di sini didasarkan pada hubungan client-server
yang menggunakan perangkat lunak NFS server dan
NFS client yang berjalan diatas workstation.
Jika misalnya terjadi sebuah pertukaran sistem
berkas antara server dan client ,
maka pertukaran sistem berkas yang terjadi disini harus dipastikan hanya
berpengaruh pada tingkat client dan tidak mempengaruhi
sisi server , karena server dan client adalah mesin yang
berbeda dan sama-sama bebas. Untuk itu, mesin client harus
melakukan operasi mount terlebih dahulu agar remote
directory dapat diakses secara transparan.
NFS umumnya menggunakan protokol Remote
Procedure Call (RPC) yang berjalan di atas UDP dan membuka port UDP
dengan port number 2049 untuk komunikasi
antara client dan server di
dalam jaringan. Client NFS selanjutnya akan
mengimpor sistem berkas remote dari server NFS,
sementara server NFS mengekspor sistem berkas lokal kepada client.
operasi-operasi
yang didukung oleh NFS adalah sebagai berikut:
a.
Mencari berkas di dalam direktori.
b.
Membaca kumpulan direktori.
c.
Memanipulasi link dan direktori.
d.
Mengakses atribut berkas.
e.
Membaca dan menulis berkas.
Beberapa
manfaat NFS diantaranya ialah
– Lokal workstations menggunakan
ruang disk lebih kecil
– Pemakai tidak harus membagi
direktori home pada setiap mesin di jaringan
– Direktori home dapat di set up
pada NFS server dan tersedia melalui jaringan
– Device penyimpanan seperti floppy
disk, CDROM drives, dll dapat digunakan oleh mesin lainnya
Kerugian /Kelemahan NFS
– Desain awal hanya untuk jaringan
yang lokal dan tertutup
– Security
– Congestion (Traffic yang tinggi
bisa menyebabkan akses lambat)
Bab
6 : Name Service
Name Service dalam Sistem Terdistribusi
merupakan layanan penamaan yang berfungsi untuk menyimpan naming context,
yakni kumpulan binding nama dengan objek, tugasnya untuk me-resolve nama.
Name Service memiliki konsentrasi pada aspek penamaan dan pemetaan
antara nama & alamat, bukan pada masalah rute, yang dibahas di Jaringan
Komputer. Resource yang dipakai dalam Name Service adalah:
komputer, layanan, remote object, berkas, pemakai.
Contoh penamaan pada aplikasi
sistem terdistribusi:
– URL untuk mengakses suatu halaman
web.
– Alamat e-mail utk komunikasi
antar pemakai.
Tujuan Penamaan
1. Identifikasi
Seorang pemakai menginginkan
obyek/layanan A, bukan obyek/layanan B.
2. Memungkinkan terjadinya sharing
Lebih dari satu pemakai dapat
mengindentifikasikan resource dengan nama yang sesuai (tidak
harus nama yang sama).
3. Memungkinkan location independence:
Perubahan lokasi tidak menuntut
perubahan nama, asalkan lokasi tidak menjadi bagian dari nama resource tsb.
4. Memberikan kemampuan keamanan (security)
Jika sebuah nama dipilih secara
acak dari himpunan besar interger, maka nama tsb hanya bisa diketahui
dari legitimate source, bukan dari menebak. Jadi jika seseorang
mengetahui nama obyek tsb, maka dia memang diberitahu, karena sulit sekali
menebak nama tsb.
Jenis Nama
1. User names:
– Dibuat oleh pemakai (user).
– Merujuk pada suatu obyek atau
layanan.
– Terdiri dari strings of
characters.
– Contoh: hp201 untuk pencetak,
~bettyp/tmp/test.c untuk berkas.
2. System names:
– Terdiri dari bit string.
– Internal untuk sistem, tidak
ditujukan untuk manusia.
– Lebih compact dari user
names, sehingga dapat dibandingkan dengan lebih efisien.
Struktur Nama
1. Primitive/flat names (Unique
Identifiers = UIDs)
– Tanpa struktur internal, hanya string
of bits.
– Digunakan utk perbandingan dengan
UID lain.
– Tidak membawa informasi lain
-> pure names.
– Sangat berguna & banyak
digunakan karena:
• Location & application
independent, sehingga tidak menjadi masalah bagi mobilitas obyek.
• Seragam, fixed size.
• Compact: mudah disimpan,
di-pass, & jika cukup besar menjadi sulit ditebak.
2. Partitioned Names (PN)
– Komposisi dari beberapa nama
primitif, biasanya disusun secara hirarkis.
– Contoh: telaga.cs.ui.ac.id,
/cs/docs/akademik/SisDis/naming.ppt.
– Membawa informasi -> impure
names.
– Biasanya tidak secara unik
mengidentifikasikan obyek, beberapa nama bisa dipetakan ke satu obyek (e.g.
UNIX file links).
3. Descriptive names (DN)
– Daftar atribut yang secara
bersama-sama mengidentifikasikan obyek secara unik.
– Membawa informasi -> inpure
names.
– DN adalah superset dari PN.
Contoh Name Service
1. DNS (Domain Name Service) - memetakan nama domain ke alamat
2. GNS (Global Name Service)
- memetakan global name ke
atribut-atribut
- skalabilitas, dapat menangani
perubahan
3. X500 directory service
- memetakan nama orang ke dalam alamat suatu e-mail dan nomor
telepon
4. Jini discovery service
- mencari objek sesuai dengan atribut yang ada
7.Time & Coordination
Time
Time
adalah pengembangan dari sistem multiprogram. Time juga disebut dengan sistem komputasi interaktif, dimanasistem
komputer menyediakan komunikasi on-line antara user dengan sistem.
Coordination
Sekumpulan
algoritma yang tujuannya bermacam-macam namun men-share tujuannya, sebagai
dasar dalam sistem terdistribusi : berupa sekumpulan proses untuk mengkoordinasikan
tindakan atau menyetujui satu atau beberapa nilai.
Logical Clock
Hampir
seluruh komputer memiliki sebuah circuit untuk menunjukan waktu. Pada
kenyataannya circuit tersebut bukanlah penunjuk waktu (jam) yang sebenarnya.
Kata yang tepat untuk mendeskripsikan circuit tersebut adalah timer.
Dapat membuat mekanisme pewaktuan sederhana yaitu
pengurutan kejadian-kejadian berdasarkan pada nilai-nilai clock yang mengikat
yang dijamin konsisten dengan keterdahuluan sebab.
Synchrounous distributed system
Dalam synchronous distributed system terdapat satu waktu
global.
Hanya synchronous distributed system dapat memprediksi
perilaku (waktu).
Dalam synchornous distributed system dimungkinkan dan
aman untuk menggunakan mekanisme timeout dalam mendekteksi error atau kegagalan
dalam proses atau komunikasi.
Contohnya
digunakan pada floopy, artinya ketika anda menyalin sebuah file ke floopy,
perubahan secara fisik langsung ditulis ke floppy saat anda memberikan perintah
copy
Asynchronous Distributed System
Tidak ada batasan dalam waktu pengkeksekusian.
Tidak ada batasan dalam delay transmission (penundaan
pengiriman)
Tidak ada batasan terhadap fuktuasi waktu local.
Perbandingan
asinkron dan sinkron
Untuk
blok-blok data yang cukup besar, transmisi sinkronisasi jauh lebih efisien
daripada asinkron. Transmisi asinkron memerlukan overhead 20 % atau lebih.
Bila
menggunakan transmisi sinkron biasanya lebih kecil dari 1000 bit, yang
mengandung 48 bit kontrol informasi (termasuk flag), maka untuk pesan 1000 bit,
overheadnya adalah 48 / 1048 X 100% = 4.6%
8.Shared
Data dan Transaction
Shared Data
Dalam sistem terdistribusi, shared
data dapat di artikan sebagai beberapa
komputer yang berbeda saling terhubung satu sama lain melalui jaringan sehingga
komputer yang satu dapat mengakses dan menggunakan sumber daya yang terdapat
dalam situs lain.
Pengaksesan resource pada
sistem terdistribusi yang memerlukan:
• Nama resource (untuk pemanggilan)
• Alamat (lokasi
resource tersebut)
• Rute
(bagaimana mencapai lokasi tersebut)
Keuntungan Shared Data :
1. Mengurangi biaya duplikasi usaha pengumpulan data
2. Aman-menjaga data
dalam lingkungan yang aman
3. Back-up data
Transaksi
(Transaction)
Merupakan
bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data
dan bahkan juga melakukan serangkaian perubahan data.
Jenis –Jenis Transaksi :
•
Flat Transaction.
•
Nasted Transaction.
Kesimpulan
• Share data
Merupakan pemakaian file data tunggal oleh ebih dari satu
orang atau komputer, atau suatu akses yang diberikan kepada orang lain untuk
mengkases data tersebut, mempunyai tujuan untuk berbagi akses kepada user lain pada suatu folder atau
drive yang diinginkan, dimana kita bisa memilih kepada user mana saja yang bisa
atau boleh mengakses folder kita dan juga bisa memberikan akses kepada semua
orang yang ada pada jaringan/network.
• Transaksi terdistribusi
merupakan bagian dari pengeksekusian sebuah program yang
melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian
perubahan data.
Bab 9
DATABASE
TERDISTRIBUSI
Sebuah sistem database terdistribusi berisikan
sekumpulan site, di mana tiap-tiap site dapat berpartisipasi dalam
pengeksekusian transaksi-transaksi yang mengakses data pada satu site atau
beberapa site. Tiap-tiap site dapat memproses transaksi lokal yaitu sebuah
transaksi yang mengakses data pada satu site di mana transaksi telah
ditentukan.
Ada 2 aspek penting dari DDB :
1. Distribusi : data tidak disimpan pada tempat
(prosesor) yang sama,
sehingga DDB dapat dibedakan dari database
tunggal, sentralisasi
2. Korelasi logika : data memiliki property
yang berhubungan sehingga DDB
dapat dibedakan dari sekumpulan database local
atau file yang disimpan
pada tempat yang
berbeda pada jaringan komputer.
Site-site dalam database terdistribusi
dihubungkan secara fisik dengan berbagai cara. Beberapa topologi digambarkan
sebagai sebuah graph yang simpulsimpulnya bersesuaian dengan site. Sebuah edge
dari simpul A ke simpul B bersesuaian dengan sebuah hubungan langsung antara
dua site. Beberapa konfigurasi (bentuk) digambarkan sebagai berikut:
Fully Connected network :
Keuntungan : kalau salah satu node rusak, yang
lainnya masih dapat berjalan (tetapi biaya mahal).
Kerugian : control management tidak terjamin
Partially connected network :
Keuntungan : reliability rendah, biaya dapat
ditekan
Kerugian : control management tidak terjamin
Tree structure network :
Keuntungan : bersifat sentral, control
management lebih terjamin
Kerugian : kalau node pusat (A) rusak, semua
akan rusak.
Cat : setiap proses dimulai dari bawah.
Ring Network (LAN)
:
Keuntungan : rusak satu, yang lain masih
berjalan
Kerugian : Control management kurang terjamin
karena bersifat desentralisasi
Star Network (LAN)
:
Keuntungan : - control management lebih
terjamin, karena bersifat sentral
- reliability rendah
Kerugian : kalau
pusat rusak, yang lainnya rusak
Bab
10
Pemrosesan paralel (parallel processing) adalah penggunakan
lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya,
parallel processing membuat program berjalan lebih cepat karena semakin banyak
CPU yang digunakan.
TUJUAN PARALLEL PROCESSING
Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
PARALLEL PROCESSING
Komputasi paralel
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak.
TUJUAN PARALLEL PROCESSING
Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
PARALLEL PROCESSING
Komputasi paralel
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak.
Yang perlu diingat adalah komputasi paralel berbeda dengan multitasking. Pengertian multitasking adalah komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan. Walaupun beberapa orang yang bergelut di bidang sistem operasi beranggapan bahwa komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus, melainkan proses penjadwalan yang berlakukan pada sistem operasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan beberapa processor atau komputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann.
Untuk lebih memperjelas lebih dalam mengenai perbedaan
komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel
(menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu
pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan,
yaitu:
·
SIMD
·
SIMD
·
MISD
·
MIMD
SISD
Yang merupakan singkatan dari Single Instruction, Single
Data adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini
dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu
model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan
ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa
processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1,
IBM 360, CDC 7600, Cray 1 dan PDP 1.
SIMD
Yang merupakan singkatan dari Single Instruction, Multiple
Data. SIMD menggunakan banyak processor dengan instruksi yang sama, namun
setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari
angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5
processor. Pada setiap processor kita menggunakan algoritma atau perintah yang
sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari
deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari
urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain.
Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar,
Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).
MISD
Yang merupakan singkatan dari Multiple Instruction, Single
Data. MISD menggunakan banyak processor dengan setiap processor menggunakan
instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan
dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada
contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada
komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data
dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya
berbeda di setiap processor. Sampai saat ini belum ada komputer yang
menggunakan model MISD.
MIMD
Yang merupakan singkatan dari Multiple Instruction, Multiple
Data. MIMD menggunakan banyak processor dengan setiap processor memiliki
instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer
yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa
komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer,
Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.
Singkatnya untuk perbedaan antara komputasi tunggal dengan
komputasi paralel, bisa digambarkan pada gambar di bawah ini:
Penyelesaian Sebuah Masalah pada Komputasi Tunggal
Penyelesaian Sebuah Masalah pada Komputasi Paralel
Dari perbedaan kedua gambar di atas, kita dapat menyimpulkan
bahwa kinerja komputasi paralel lebih efektif dan dapat menghemat waktu untuk
pemrosesan data yang banyak daripada komputasi tunggal. Dari
penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban mengapa dan kapan
kita perlu menggunakan komputasi paralel. Jawabannya adalah karena komputasi
paralel jauh lebih menghemat waktu dan sangat efektif ketika kita harus
mengolah data dalam jumlah yang besar. Namun keefektifan akan hilang ketika
kita hanya mengolah data dalam jumlah yang kecil, karena data dengan jumlah
kecil atau sedikit lebih efektif jika kita menggunakan komputasi tunggal.
Komputasi paralel membutuhkan :
· algoritma
· bahasa pemrograman
· compiler
Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU.
· algoritma
· bahasa pemrograman
· compiler
Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU.
Tujuan utama dari pemrograman paralel adalah untuk
meningkatkan performa komputasi.
* Message Passing Interface (MPI)
MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. Kegunaan MPI yang lain adalah
1. menulis kode paralel secara portable
2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3. menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak
begitu cocok dengan model data paralel.
* Message Passing Interface (MPI)
MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. Kegunaan MPI yang lain adalah
1. menulis kode paralel secara portable
2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3. menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak
begitu cocok dengan model data paralel.
* Message Passing Interface (MPI)
MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. Kegunaan MPI yang lain adalah
1. menulis kode paralel secara portable
2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3. menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak
begitu cocok dengan model data paralel.
* Message Passing Interface (MPI)
MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. Kegunaan MPI yang lain adalah
1. menulis kode paralel secara portable
2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3. menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak
begitu cocok dengan model data paralel.
Hubungan antara Komputasi Modern dengan Paralel Processing
Hubungan antara komputasi modern dan parallel processing
sangat berkaitan, karena penggunaan komputer saat ini atau komputasi dianggap
lebih cepat dibandingkan dengan penyelesaian masalah secara manual. Dengan
begitu peningkatan kinerja atau proses komputasi semakin diterapkan, dan salah
satu caranya adalah dengan meningkatkan kecepatan perangkat keras. Dimana
komponen utama dalam perangkat keras komputer adalah processor. Sedangkan
parallel processing adalah penggunaan beberapa processor (multiprocessor atau
arsitektur komputer dengan banyak processor) agar kinerja computer semakin
cepat.
Kinerja komputasi dengan menggunakan paralel processing itu
menggunakan dan memanfaatkan beberapa komputer atau CPU untuk menemukan suatu
pemecahan masalah dari masalah yang ada. Sehingga dapat diselesaikan dengan
cepat daripada menggunakan satu komputer saja. Komputasi dengan paralel
processing akan menggabungkan beberapa CPU, dan membagi-bagi tugas untuk
masing-masing CPU tersebut. Jadi, satu masalah terbagi-bagi penyelesaiannya.
Tetapi ini untuk masalah yang besar saja, komputasi yang masalah kecil, lebih
murah menggunakan satu CPU saja.
Bab 11
KEAMANAN PADA SISTEM
TERDISTRIBUSI
Keamanan sering dipandang hanyalah merupakan
masalah teknis yang melibatkan dapat atau tidaknya tertembusnya suatu sistem.
Keamanan ini sendiri memiliki suatu konsep yang lebih luas yang berkaitan
dengan ketergantungan suatu institusi terhadap institusi lainnya. Di dalam
aplikasi, suatu pembentukan sistem yang aman akan mencoba melndungi adanya
beberapa kemungkinan serangan yang dapat dilakukan pihak lain diantaranya
adalah :
1. Intrusion : penyerangan jenis
ini seseorang penyerang akan dapat menggunakan sistem komputer yang kita
miliki.
2. Denail of services :
penyerangan ini mengakibatkan pengguna yang sah tidak dapat mengakses sistem.
3. Joyrider : penyerangan
jenis ini disebabkan oleh orang yang merasa iseng dan ingin memperoleh
kesenangan dengan cara menyerang suatu sistem.
4. Vandal : jenis serangan
ini bertujuan untuk merusak sistem yang sering dituju untuk site-site besar.
5. Scorekeeper: jenis serangan ini
hanyalah bertujuan untuk mendapatkan reputasi dengan cara mengacak-acak system
sebanyak mungkin.
6. Mata-mata : jenis serangan
ini bertujuan untuk memperoleh data atau informsi rahasia dari pihak pesaing.
Tujuan utama adanya sistem keamanan adalah untuk membatasi akses informasi dan
resources hanya untuk pemakai yang memiliki hak.
Beberapa ancaman keamanan yang dapat mengancam
suatu sistem adalah :
1. Leakgace : pengambilan informasi oleh penerima
yang tidak berhak.
2. Tampering : pengubahan informasi yang tidak
legal.
3. Vandalism : gangguan operasi sistem tertentu,
dimana pelaku tidak mengharapkan kuntungan apapun.
Adapun bentuk perancangan sistem yang aman
adalah :
1. Rancangan harus mengikuti standard yang ada
2. Mendemokan validasi melawan ancaman yang
diketahui
3. Melakukan audit terhadap kegagalan yang
terdeteksi
4. Adanya keseimbangan antara biaya terhadap
serangan yang ada
Layanan Keamanan menurut definisi OSI yaitu :
1. Access control :
perlindungan terhadap pemakaian tak legal
2. Authentication :
menyediakan jaminan identitas seseorang
3. Confidentiality :
perlindungan terhadap pengungkapan identitas tak legal
4. Integrity : melindungi
dari pengubahan data yang tak legal
5. Non-repudiation :
melindungi terhadap penolakan komunikasi yang sudah pernah dilakukan.
Tiga dasar mekanisme keamanan yang dibangun :
1. Enkripsi : digunakan untuk
menyediakan kerahasiaan, dapat menyediakan authentication dan perlindungan
integritas
2. Digital signature :
digunakan untuk menyediakan authentication, perlindungan integritas
3. Algoritma checksum/hash :
digunakan untuk menyediakan perlindungan integritas dan dapat menyediakan
authentication.
Selain itu juga terdapat pula metode-metode
penyerangan terhadap suatu sistem. Klasifikasi metode penyerangan tersebut
adalah :
1. Eavesdropping : mendapatkan
duplikasi pesan tanpa ijin
2. Masquerading : mengirim
atau menerima pesan menggunakan identitas lain tanpa ijin mereka
3. Message tampering :
mencegat atau menangkap pesan dan mengubah isinya sebelum dilanjutkan ke
penerima sebenarnya.
4. Replaying : menyimpan
pesan yang ditangkap untuk pemakaian berikutnya dan mengubah isinya sebelum
dilanjutkan kepenerima sebenarnya
5. Denail of services :
membanjiri saluran atau resources dengan pesan yang bertujuan untuk
menggagalkan pengaksesan pemakaian lain