You are on page 1of 155

'LNWDW.

XOLDK


((
'LVWULEXWHG6\VWHPDQG,QWHU2SHUDELOLW\





2OHK

6RQ\6XPDU\R
1,3










6(.2/$+7,1**,7(.12/2*,7(/.20
%$1'81*
/HPEDU3HQJHVDKDQ

Diktat Kuliah
EE-5523
Distributed System and Inter-Operability

Oleh :
Sony Sumaryo
NIP.: 9367070
Bandung, Maret 2004
Disahkan Oleh :




Sekretaris Program S2 Kepala Unit Perpustakaan
Jurusan Teknik Elektro



Heroe Wijanto, Ir. MT. Yani Nuraeni, Dra.
NIP.: 9268054 NIP.: 9167035

.DWD3HQJDQWDU


Buku ini merupakan diktat untuk mata kuliah EE5523-Distributed System and Inter-
Operability. Diktat ini merupakan keluaran yang pertama kalinya sehingga masih banyak
memerlukan masukan untuk perbaikan diktat selanjutnya.

Saya juga mengucapkan banyak terimakasih kepada saudara/saudari: Gelar Budiman, Hasdi
Radiles, Indrarini Dyah Irawati, Ody Dasa F., Yusuf Yarif S., Irhandi dan Wimpi Gustina M.,
atas masukannya untuk bagian Studi Kasus.

Bandung, Maret 2004


Penulis,

Sony Sumaryo


'DIWDU,VL




.DWD3HQJDQWDU

&KDUDFWHUL]DWLRQRI'LVWULEXWHG6\VWHPV 

'HVLJQ*RDOV          

1HWZRUNLQJGDQ,QWHUQHWZRUNLQJ       

,QWHUSURFHVV&RPPXQLFDWLRQ        

5HPRWH3URFHGXUH&DOOLQJ 53&        

'LVWULEXWHG2SHUDWLQJ6\VWHPV       

'LVWULEXWHG)LOH6\VWHPV        

7LPHGDQ&RRUGLQDWLRQ        

1DPH6HUYLFHV          

5HSOLFDWLRQ          

7UDQVDFWLRQVGDQ'HDGORFN        

)DXOW7ROHUDQFH          

'LVWULEXWHG6KDUHG0HPRU\        

6HFXULW\           

6WXGL.DVXV          

5HIHUHQVL           









i
1
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%,

&KDUDFWHUL]DWLRQRI'LVWULEXWHG6\VWHPV





,QWURGXFWLRQ
A distributed system consists of a collection of autonomous computers linked by a computer
network and equipped with distribute software.

Distributed System software enables computers to coordinate their activities and to share the
resources of the system (hardware, software, data).

Users of a well-designed distributed system should perceive a single, integrated computing


facility even though it may be implemented by many different computers in different
locations.

Contoh : Distributed UNIX


WAN applications

7DEHO.HXQWXQJDQ'LVWULEXWHG6\VWHPV7HUKDGDS&HQWUDOL]HG6\VWHPV
,WHPV 'HVFULSWLRQ
Economics Microprocessors offer a better price/performance
Speed A distributed system may have more total computing power than
mainframe
Inherent Distribution Some applications involve spatially separated machines
Reliability If one machine crashes, the system as a whole can still survive
Incremental growth Computing power can be added in small increments

7DEHO.HXQWXQJDQ'LVWULEXWHG6\VWHPV7HUKDGDS,VRODWHG 3HUVRQDO &RPSXWHUV


,WHP 'HVFULSWLRQ
Data sharing Allow many users access to a common data base
Device sharing Allow many users to share expensive peripherals
like color printers
Communication Make human-to-human communication easier,
e.g. E-mail
Flexibility Spread the workload over the available machines
in the most cost effective way

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
2
Distributed System and Inter-Operability
__________________________________________________________________________________________

7DEHO.HUXJLDQ'LVWULEXWHG6\VWHPV
,WHP 'HVFULSWLRQ
Software Sedikit software untuk distributed system
Networking Jaringan dapat saturasi atau problem
Security Rentan


Interoperability: refers to the ability of two different networks to work together. For example,
interoperability describes how networks can communicate or share data with each other,
regardsless of whether these networks use the same network architecture.

Interoperability is taken for granted when the networks are homogeneous Æ when they use
same architecture. It also refers to the ability of different software products to work together
in the same environment.


*DPEDU&RQWRK'LVWULEXWHG6\VWHP6HGHUKDQD

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
3
Distributed System and Inter-Operability
__________________________________________________________________________________________



*DPEDU$&HQWUDOL]HG0XOWL8VHU6\VWHP



.H\&KDUDFWHULVWLFV

5HVRXUFHVKDULQJ
Hardware: disks, printers ; Software: files, database, windows

Resources dalam distributed system secara fisik berada di salah satu computer dan dapat
diakses oleh computer lain melalui komunikasi.

Agar supaya dapat sharing secara efektif, setiap resource harus diatur oleh sebuah program
yang mampu memberikan interface komunikasi sehingga resources dapat diakses,
dimanipulasi dan di update dengan reliable dan konsisten..

Resource Manager : merupakan sebuah software module yang mengatur sekelompok


resources dengan tipe tertentu

User dapat menggunakan shared resources dari system dengan berkomunikasi dengan
Resource Manager.

&OLHQWVHUYHUPRGHO
Terdapat sekumpulan server processes (masing-masing berfungsi sebagai Resource manager)
dan sekumpulan client processes. Beberapa processes secara bersamaan dapat sebagai client
maupun server processes. Semua shared resources diatur oleh server processes. Client
processes memohon ke server kapan saja bila perlu mengakses resource, dan bila permohonan
itu valid sever akan memberikan aksi yang diminta dan memberikan reply ke client processes.

2EMHFWEDVHGPRGHO
Setiap shared resource dipandang sebagai sebuah object. Object didentifikasi secara unik dan
bisa pindah kemana saja di dalam jaringan tanpa merubah identitasnya. Object dapat bersikap
sebagai pengguna resources dan resource managers.


2SHQQHVV

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
4
Distributed System and Inter-Operability
__________________________________________________________________________________________

Openness dari system distribusi ditentukan terutama melalui tingkat seberapajauh resource-
sharing services baru dapat ditambahkan tanpa mengganggu atau duplikasi terhadap service
yang ada. Openness dicapai melalui publishing dari spesifikasi dan interfacing software.


&RQFXUUHQF\
Istilah ini mengacu pada bahwa beberapa user dapat memohon atau mengakses resources
pada saat yang bersamaan. Idealnya processor mampu melayani beberapa permintaan user
secara simultan.


6FDODELOLW\
Mengacu kepada kemampuan system untuk tumbuh (sebagai contoh makin bertambahnya
jumlah komputer). Sistem dan software aplikasi tak perlu berubah ketika skala/ukuran dari
sistem bertambah.




)DXOW7ROHUDQFH
Mengacu kepada kemampuan system untuk terus berfungsi setelah adanya kegagalan
software atau hardware. Fault tolerance dapat dicapai melalui dua pendekatan: hardware
redundancy, software recovery.

7UDQVSDUHQF\
Mengacu bahwa user tak tahu bahwa beberapa resources yang berbeda yang sedang diakses
tersebar diberbagai tempat. Sistem dirasakan sebagai satu kesatuan daripada sekelompok
komponen yang independent.

Jenis transparency:
* Access transparency
* Location transparency
* Concurrency transparency
* Replication transparency
* Failure transparency
* Migration transparency
* Performance transparency
* Scaling transparency

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
5
Distributed System and Inter-Operability
__________________________________________________________________________________________


*DPEDU3HUNHPEDQJDQ3HQJHPEDQJDQ'LVWULEXWHG6\VWHP










___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
6
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%,,
'HVLJQ*RDOV







%DVLF'HVLJQ,VVXHV

1DPLQJ
* Global meaning
* Must be supported by a name interpretation system
* Name dikatakan resolved ketika nama diterjemahkan ke dalam bentuk yang bisa
digunakan untuk meminta sebuah aksi pada resource atau object yang dituju oleh
name tsb. Resolution dari name bias melibatkan beberapa tahapan translasi.
* Selalu dipecahkan/resolved relative terhadap beberapa context
* Naming Scheme dapat dirancang untuk melindungi resources terhadap para
pengakses yang tak berhak.
* Design issue: to design naming schemes that will scale to an appropriate degree and
in which names are translated efficiently to meet appropriate goals for performance.

&RPPXQLFDWLRQ
* Sangat mempengaruhi performansi distributed system
* Komunikasi antara sepasang proses melibatkan operasi di dalam pengirim dan
penerima processes yang secara bersama-sama menghasilkan : transfer of data dan
synchronization.
* Client-server communication
* Group multicast
* Design issue: to optimize the implementation of communication in distributed
systems while retaining a high level programming model for its use.

6RIWZDUH6WUXFWXUH
Software harus menyediakan : basic resource management (spt.: memory allocation
and protection, process creation and processor scheduling, interprocess
communication, peripheral device handling), user and application services serta
service lain untuk application program sehingga service-service baru dapat
ditambahkan dengan mudah.

Open systems: terintegrasinya computer dengan arsitektur dan operating system kernel
yang berbeda, dan penambahan aplikasi baru berdampingan dengan yang sudah ada.

Kategori software:
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
7
Distributed System and Inter-Operability
__________________________________________________________________________________________

2SHUDWLQJV\VWHPNHUQHOVHUYLFHV
  Harus berupa software kernel dalam setiap computer, bertanggung jawab
dalam penyediaan basic set of resources dan services serta perlindungan basic
hardware component dari akses yang tak diijinkan.
 2SHQVHUYLFHV
 Dengan kategori ini, service-service baru dapat dibangun dan dipasang
sebagaiman diperlukan serta dapat beradaptasi terhadap banyak aplikasi yang
berbeda.
 'LVWULEXWHGSURJUDPPLQJVXSSRUW
  Mendukung program-program distributed.
- $SSOLFDWLRQV


*DPEDU.DWHJRUL6RIWZDUHGL'DODP6XDWX'LVWULEXWHG6\VWHP

Design issue: to structure a system so that new services can be introduced that will
interwork fully with existing services without duplicating existing services without
duplicating existing service elements.


:RUNORDGDOORFDWLRQ
* Processor pool model
* Shared-memory multiprocessors
* Design issue: how to deploy the processing and communication and resources in a
network to optimum effect in the processing of a changing workload.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
8
Distributed System and Inter-Operability
__________________________________________________________________________________________


*DPEDU0RGHO3URFHVVRU3RRO


&RQVLVWHQF\PDLQWHQDQFH
Perlu karena adanya pemisahan proses resources dan concurrency

Macamnya:
* Update consistency
* Cache consistency
* Replication consistency
* Clock consistency
* User Interface consistency

8VHU5HTXLUHPHQWV
)XQFWLRQDOLW\
Fungsi yang disediakan system terdistribusi tidak kurang dari fungsi yang disediakan oleh
computer tunggal

5HFRQILJXUDELOLW\
Kemampuan untuk mengakomodasi perubahan dalam: short-term changes, medium-to-
long-term evolution.

4R6
Menyangkut: performance (seperti kecepatan akses), reliability dan availability, security.








___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
9
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%,,,

1HWZRUNLQJGDQ,QWHUQHWZRUNLQJ






3HQGDKXOXDQ
3HUIRUPDQFH3DUDPHWHUV:
- Latency : waktu yang dibutuhkan oleh sebuah pesan kosong (an empty
message) antara computer yang terkait. Ditentukan oleh software overhead,
routing delays dan banyaknya pengakses jaringan.
- Data transfer rate: kecepatan data yang dapat ditransfer antara dua computer
di dalam jaringan. Ditentukan oleh karakteristik fisik

0HVVDJH WUDQVIHU UDWH yang diperlukan jaringan untuk mentransfer sebuah pesan dengan
panjang dalam ukuran bits antara dua komputer = latency + (length in bits / data transfer rate).

7RWDOV\VWHPEDQGZLGWK: total volume trafik yang dapat ditransfer melintasi jaringan/network


selama waktu yang ditentukan.

3HUIRUPDQFH5HTXLUHPHQW:
Contoh: waktu transmit sebuah request message dan terima sebuah reply message tidak boleh
lebih lama dari waktu yang diperlukan untuk mengakses disk.

5HOLDELOLW\UHTXLUHPHQWV: diperlukan oleh hamper kebanyakan aplikasi distributed system.

Jenis network :
• LANs :
* jaringan dalam satu gedung atau campus, latency – rendah kecuali trafik
sangat tinggi.
* transfer rate ( saat ini) : 0.2 - 100 Mbit/s Æ cukup untuk aplikasi
distributed system
• WANs :
* computer yang berkomunikasi berada pada lokasi yang berbeda (kota,
negara, benua)
* transfer rate (saat ini) : 20 – 500 kbps Æ belum cukup untuk aplikasi
distribute system
* penerapan B-ISDN dengan teknologi ATM Æ cukup untuk aplikasi
distribute system

• MANs:
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
10
Distributed System and Inter-Operability
__________________________________________________________________________________________

* berdasarkan fibre optic dengan jangkauan lokasi kota sampai jarak transmisi 50 km,
* data transfer rate mirip B-ISDN dan bisa menggunakan teknologi ATM,
* persyaratan jaringan mirip LAN tetapi dengan jarak yang lebih jauh.

An internetwork is a communication subsystem in which several networks are linked together


to provide common data communication facilities that conceal the technologies and protocols
of the individual component networks and methods used for their interconnection.
Internetwork sangat dibutuhkan untuk implementasi distributed system.


3URWRFROV
Protocol: a well-known set of rules and formats to be used for communication between
process in order to perform a given task.

Protocol mengandung dua bagian:


• A specification of the sequence of messages that must be exchanged
• A specification of the format of the data in the messages.
Definisi protocol merupakan contoh bagus untuk open system

Protocol diimplementasikan oleh sepasang software module yang terletak di pengirim dan
penerima komputer.

Protocol layers :
• Network software disusun dalam hirarki layers
• Layer direpresentasikan oleh module di setiap computer yang terhubung ke jaringan
• Setiap layer menyediakan service pada layer di atasnya dan menggunakan service
yang disediakan oleh layer dibawahnya.
• A complete set of protocol layers disebut sebagai : protocol suite / protocol stack.
• OSI Reference Model di adop untuk pengembangan standard protocol Æ open system.

Paket yang dikirim biasanya terdiri dari field: header dan data. Field data yang dikirim
panjangnya variable dan memiliki panjang maksimum yang disebut Maximum Transfer Unit
(MTU).

Transport layer bertugas menyediakan QHWZRUNLQGHSHQGHQWPHVVDJHWUDQVSRUWVHUYLFHantara
sepasang network port.
Port: software-definable destination points for communication within a host computer.

Jenis data transport service: connection-oriented, connectionless.








___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
11
Distributed System and Inter-Operability
__________________________________________________________________________________________

7DEHO7DEHO3URWRNRO26,



*DPEDU&RQWRK-DULQJDQ.DPSXV

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
12
Distributed System and Inter-Operability
__________________________________________________________________________________________


*DPEDU:LGH$UHD1HWZRUN



___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
13
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%,9

,QWHUSURFHVV&RPPXQLFDWLRQ








%XLOGLQJ%ORFNVRI,QWHUSURFHVV&RPPXQLFDWLRQ
Process adalah program atau bagian program yang dieksekusi pada sebuah computer.

Struktur data di program aplikasi harus disesuiakan formatnya sebelum ditransmisikan,


dan kemudian dibangun kembal di penerima.

Agar supaya dua komputer dapat bertukar GDWDYDOXHV:


• 9DOXHV di konversikan ke bentuk data eksternal yang disetujui sebelum ditransmisikan
dan dikonversi kembali dalam bentuk lokal di penerima. Contoh Sun XDR.


*DPEDU;'50HVVDJH

• Konversi ke bentuk data eksternal dapat dihilangkan pada komunikasi antara dua
komputer yang sejenis. Ketika komunikasi FRQQHFWLRQRULHQWHG digunakan, sepasang
komputer yang berkomunikasi bernegoisasi untuk menyepakati bentuk data eksternal.
• Alternatif lain, mengirimkan GDWD YDOXHV dalam bentuk aslinya bersamaan dengan
identifikasi arsitektur, dan penerima mengkonversikan data tersebut bila perlu.
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
14
Distributed System and Inter-Operability
__________________________________________________________________________________________

Marshalling: process of taking a collection of data items and assembling them into a form
suitable for transmission in a message. Unmarshalling is the process of disassembling them on
arrival to produce an equivalent collection of data items at the destination. Marshalling
consists of both the flattening of structured data items into a sequence of basic data items into
a sequence of basic data items and translation of those data items into an external data
representation. Marshalling bisa dilakukan dengan “by hand”.

Single message passing dapat didukung oleh dua operasi komunikasi message: 6HQG and
5HFHLYH

Contoh operasi 6HQG and 5HFHLYH menggunakan port dan dalam bentuk modul interface
Modula-2:
'(),1,7,2102'8/(0HVVDJH
(;325748$/,),('0HVVDJH(UURU5HSRUW3RUW,G6HQG5HFHLYH
7<3(
 3RUW,G JOREDOSRUWLGHQWLILHUUHSUHVHQWHGIRUH[DPSOHE\ELWV 
 0HVVDJH 5(&25'
  GDWD,WHPV VHTXHQFHRIE\WHV 
 (1'
 (UURU7\SH 121(7,0(287 
9$5(UURU5HSRUW(UURU7\SH XVHGZKHQ5HFHLYHWLPHVRXW 
352&('85(6HQG S3RUW,GP0HVVDJH 
352&('85(5HFHLYH S3RUW,G9$5P0HVVDJH 
(1'0HVVDJH

 
Sending process menambahkan messages ke buffer/queues and receiving process
menghilangkan messages dari buffer/queues. Komunikasi antara sending dan receiving
process bisa bersifat synchronous dan asynchronous.

Dalam komunikasi bersifat synchronous, perlu sinkronisasi antara sending dan receiving
process pada setiap message. Kapan saja 6HQG dikeluarkan, sending process diblock sampai
FRUUHVSRQGLQJ 5HFHLYH. Kapan saja 5HFHLYH dikeluarkan, process terblock sampai message
datang.

Dalam bentuk asynchronous, 6HQG operation adalah non-blocking yaitu proses pengiriman
message parallel/bersamaan dengan sending process. Sedangkan 5HFHLYH GDSDW EHUVLIDW
EORFNLQJatauQRQEORFNLQJ

Dalan bentuk non-blocking, the receiving process proceeds with its program after issuing a
5HFHLYH operation which provides a buffer to be filled in the background, but it must
separately receive notification that its buffer has been filled.

Dalam Internet protocol alamat tujuan dari messages direpresentasikan dengan sebuah SRUW
QXPEHU yang digunakan oleh sebuah process dan ,QWHUQHW DGGUHVV dari computer di mana
process berjalan.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
15
Distributed System and Inter-Operability
__________________________________________________________________________________________

Dalam system terdistribusi berlaku location transparency, yaitu identifikasi tujuan message
tak tergantung lokasi (Contoh di FLIP protocol). Tetapi hal tersebut perlu proses mapping ke
lower-level address yang sedang berlaku.


7DEHO0HVVDJH'HVWLQDWLRQV
0HVVDJHGHVWLQDWLRQ 2SHUDWLQJ V\VWHP DQG /RFDWLRQLQGHSHQGHQW"
GLVWULEXWHG SURJUDPPLQJ
HQYLURQPHQWV
Process V Yes
Ports Mach, Chorus and Amoeba Yes
Sockets BSD 4.x UNIX No
Groups of processes V, Amoeba Yes
Groups of ports Chorus Yes
Objects Clouds, Emerald Yes

*DPEDU3RUW6HEDJDL7XMXDQ0HVVDJH

Unreliable message merujuk ke single message transmitted dari pengirim ke penerima tanpa
acknowledgement atau balasan. Pengiriman reliable message membutuhkan message
identifier yang terdiri dari UHTXHVW,Gdan identifier dari sender process.

&OLHQW6HUYHU&RPPXQLFDWLRQ


*DPEDU.RPXQLNDVL5HTXHVW5HSO\

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
16
Distributed System and Inter-Operability
__________________________________________________________________________________________

Protokol 5HTXHVWUHSO\terdiri dari 3 buah PHVVDJHFRPPXQLFDWLRQSULPLWLYHV: 'R2SHUDWLRQ


*HW5HTXHVWdan 6HQG5HSO\

'R2SHUDWLRQdigunakan oleh client untuk meminta remote operation.


_______________________________________________________________________
352&('85('R2SHUDWLRQ VHUYHU3RUW3RUW,GUHTXHVW0HVVDJH9$5UHSO\0HVVDJH 
// send request message (UHTXHVW)to server at port VHUYHU3RUW and receive reply UHSO\

'R2SHUDWLRQ dapat diimplementasikan dengan menggunakan 6HQG operation yang berisi


request message, dan kemudian diikuti 5HFHLYHoperation.
Ketika 'R2SHUDWLRQ digunakan oleh client, process di-blocked sampai server melakukan
operation yang diminta dan mengirim UHSO\PHVVDJH ke FOLHQWSURFHVV.

_________________________________________________________________________
352&('85(*HW5HTXHVW VHYHU3RUW3RUW,G9$5UHTXHVW0HVVDJH 
acquire a client request (UHTXHVW)via server port VHUYHU3RUW
352&('85(6HQG5HSO\ FOLHQW3RUW3RUW,GUHSO\0HVVDJH 
send reply message (UHSO\) to client at its port FOLHQW3RUW

*HW5HTXHVW digunakan oleh server process untuk mendapatkan permintaan service. Ketika
server telah mengeksekusi operasi yang diindikasikan di UHTXHVW PHVVDJH, server
menggunakan 6HQG5HSO\ untuk mengirim UHSO\ PHVVDJH ke client. Ketika UHSO\ PHVVDJH
diterima client, maka 'R2SHUDWLRQ di-unblocked dan eksekusi program berikutnya di client
berlanjut.

Struktur 5HTXHVWUHSO\PHVVDJH:
messageType
requestId
procedureId
arguments

'R2SHUDWLRQ di client membangkitkan UHTXHVW,G untuk setiap UHTXHVW PHVVDJH dan server
mengcopynya ke dalam UHSO\PHVVDJH yang terkait.

SURFHGXUH,G merujuk ke prosedur server yang mengimplementsikan operasi yang diminta


oleh client.

'R2SHUDWLRQsebaiknya menggunakan timeout ketika menunggu UHSO\PHVVDJH dari server.
Aksi yang diambil ketika timeout terjadi tergantung pada jenis protocol RPC yang digunakan.
• Request (R) protocol : Message sent by: client: 5HTXHVW
• Request-reply (RR) protocol: Message sent by: client: 5HTXHVW; server: 5HSO\
• Request-reply-acknowledge reply (RRA) protocol: Message sent by: client: 5HTXHVW;
server: 5HSO\client: $FNQRZOHGJHUHSO\


___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
17
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU0RGHO&OLHQW6HUYHU











*DPEDU)LOHKHDGHUK\DQJ'LJXQDNDQROHK&OLHQW'DQ6HUYHU

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
18
Distributed System and Inter-Operability
__________________________________________________________________________________________


*DPEDU D &RQWRK6HUYHU E &RQWRK3URVHGXU&OLHQW

*DPEDU%HEHUDSD&RQWRK3HUWXNDUDQ0HVVDJH8QWXN.RPXQLNDVL&OLHQW
6HUYHU

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
19
Distributed System and Inter-Operability
__________________________________________________________________________________________

*URXS&RPPXQLFDWLRQ

0XOWLFDVWPHVVDJH lebih sesuai untuk model komunikasi dari sebuah process ke sekelompok
process yang lain. Sebagai contoh dimana service diimplementasikan pada sejumlah process
yang berbeda di dalam beberapa komputer yang berbeda.
0XOWLFDVWPHVVDJHadalah message yang dikirim oleh sebuah process ke anggota dari sebuah
group process. 0XOWLFDVW PHVVDJH sangat berguna untuk membangun distributed system
dengan karakteristik:

)DXOWWROHUDQFHEDVHGRQUHSOLFDWHGVHUYLFHV 
Replicated services terdiri dari sekelompok server. Permintaan client di-multicast ke seluruh
anggota group yang setiap anggota group melakukan operasi identik. Jadi jika salah satu
server gagal, maka client masih tetap bisa dilayani.

Kasus ini membutuhkan setiap server menerima semua request, sehingga semua server
melakukan hal yang sama dan pada state yang sama pada suatu saat. Untuk mencapai ini
diperlukan DWRPLFPXOWLFDVW

Message yang ditransmisikan oleh atomic multicast diterima oleh seluruh process yang
menjadi anggota dari UHFHLYLQJ JURXS atau tidak diterima oleh salah satupun dari mereka.
Process yang gagal/failed tidak bisa lagi menjadi anggota group.

/RFDWLQJREMHFWVLQGLVWULEXWHGVHUYLFHV
0XOWLFDVWPHVVDJHdapat digunakan untuk melokalisasi object didalam distributed services.

%HWWHUSHUIRUPDQFHRIWKHVHUYLFHWKURXJKUHSOLFDWHGGDWD

0XOWLSOHXSGDWH
Multicast ke sebuah group dapat digunakan untuk memberitahu process ketika sesuatu terjadi.

5HOLDEOH PXOWLFDVW adalah metoda transmisi message dengan cara best effort ( mis. Can be
repeated) ke seluruh anggota group. 8QUHOLDEOH PXOWLFDVW hanya mentransmisikan multicast
message hanya sekali.

Atomic dan reliable multicast menyediakan FIFO ordering antara sepasang process. Ini bias
dicapai dengan pemberian sequence number pada message.

Ketika beberapa message ditransmisikan ke sebuah group oleh WRWDOO\RUGHUHG PXOWLFDVW


message akan mencapai ke seluruh anggota group dalam urutan yang sama.

Contoh implementasi:
352&('85(PXOWLFDVW GHVWLQDWLRQ$55$<2)3RUW,GP0HVVDJH 
9$5L&$5',1$/
%(*,1
 )25, 72+,*+ GHVWLQDWLRQV '26HQG GHVWLQDWLRQV L P (1' 
(1'


___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
20
Distributed System and Inter-Operability
__________________________________________________________________________________________


*DPEDU&ORVHG*URXS'DQ2SHQ*URXS


Process 0 mengirim message ke anggota Group yaitu process 1, 3 dan 4.


(a) Implementasi Multicast. (b) Implementasi Broadcast. (c) Implementasi Unicast


*DPEDU*URXS$GGUHVVLQJ














___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
21
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%9

5HPRWH3URFHGXUH&DOOLQJ 53& 






3HQGDKXOXDQ
Remote Procedure Call (RPC):
• Adalah mekanisme yang mengijinkan program memanggil procedure (FDOO
SURFHGXUH) yang berada pada komputer lainnya;
• Ketika process pada komputer (machine) A memanggil (call) sebuah prosedur pada
computer B, process pemanggil pada computer A ditunda/menunggu, dan eksekusi
dari procedure terpanggil di computer B dikerjakan. Informasi yang dapat dikirimkan
dari pemanggil ke terpanggil berupa parameter-parameter dan dapat datang kembali
dalam hasil procedure. Tak ada pengiriman message yang tampak oleh programmer.
• Enabling clients to communicate with servers by calling procedures in similar way to
the conventional use of procedure calls in high-level languages. The RPC is modelled
on the local procedure call, but the called procedure is executed in a different process
and usually a different computer from the caller.

2SHUDVL'DVDU
Tahapan RPC:
• The Client procedure calls the client stub.
• The client stub builds a message and traps to the kernel.
• The kernel sends the message to the remote kernel.
• The remote kernel gives the message to the server stub.
• The server stub unpacks the parameters and calls the server.
• The server does the work and returns the result to the stub.
• The server stub packs it ina message and traps to the kernel.
• The remote kernel sends the message to the client’s kernel.
• The client’s kernel gives the message to the client stub.
• The stub unpacks the result and returns to the client.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
22
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU&DOOVGDQ0HVVDJHVSDGD53&

(a) Kondisi Stack sebelum pemanggilan  (b) Kondisi Stack ketika procedure yang dipanggil aktif.
(c) Kondisi Stack setelah operasi pemanggilan.

*DPEDU.RQGLVL6WDFN3DGD3HPDQJJLODQ3URFHGXUH

Contoh sebuah Call :


FRXQW UHDG IGEXIQE\WHV 

UHDG misalkan adalah UHPRWH SURFHGXUH. Read rutin diekstrak dari Library. Kemudian
program mengikuti FDOOLQJVHTXHQFH seperti pada Gambar 5.2. Lalu FOLHQWVWXE membungkus
parameter-parameter ke dalam message dan kemudian meminta kernel mengirimkan message
tersebut ke server. Setelah memanggil VHQG , client stub memanggil UHFHLYH lalu blocking
sampai reply datang. Ketika message sampai di server, kernel melewatkannya ke VHUYHUVWXE
yang diikatkan pada DFWXDO VHUYHU. 6HUYHU VWXE memanggil UHFHLYH dan terblock menunggu

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
23
Distributed System and Inter-Operability
__________________________________________________________________________________________

kedatangan messages. 6HUYHU VWXE menguraikan parameter dari message dan kemudian
memanggil prosedur server.

Ketika VHUYHU VWXE mendapatkan kontrol kembali, ia kemudian mengepak/membungkus


hasilnya di message dan memanggil VHQG untuk mengirimkannya ke client. Ketika message
tiba di mesin client, kernel di mesin client lalu mengcopy message ke ZDLWLQJ EXIIHU dan
FOLHQWSURFHVV tidak terblock. &OLHQWVWXE memeriksa message, menguraikan hasilnya dan lalu
mengcopinya ke pemanggil/caller. Ketika caller mendapatkan kembali kontrolnya (setelah
memanggil UHDG , ia tahu bahwa data telah tersedia dan ia tak tahu bahwa data diperoleh dari
komputer lainnya.

*DPEDU&ULWLFDO3DWKGDUL&OLHQWNH6HUYHU

3DUDPHWHU3DVVLQJ

Parameter marshalling : packing parameter into a message.


*DPEDU&RQWRK3URFHGXUHGDQ&RUUHVSRQGLQJ0HVVDJH

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
24
Distributed System and Inter-Operability
__________________________________________________________________________________________

Contoh representasi :
• Character code: EBCDIC (digunakan IBM mainframe), ASCII (digunakan IBM PC)
• Integer: 1s complement, 2s complement
• Booleans: 0 (false), 1 (true)
• Floating –point numbers: IEEE format
• Representasi message: little endian (Intel format), big endian( SPARC format)

(a) Bentuk message asli pada 486 (b) Message setelah setelah diterima oleh SPARC (c) Message setelah diinversi.

*DPEDU&RQWRK5HSUHVHQWDVL0HVVDJH

How should information be representated in the messages ?
• Dengan menggunakan sebuah format VWDQGDUG QHWZRUN atau bentuk canonical untuk
character code, integer dan sebagainya
• Client menggunakan format aslinya dan diindikasikan pada byte pertama dari message

*DPEDU3HUKLWXQJDQVXP  6HFDUD5HPRWH




'\QDPLF%LQGLQJ
Bagaimana client mengetahui server ? Cara menggunakan network address tidak flexible.
Beberapa sistem terdistribusi menggunakan cara G\QDPLFELQGLQJ untuk pencocokkan client
dengan server yang sesuai.

Contoh formal specification dari server:


___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
25
Distributed System and Inter-Operability
__________________________________________________________________________________________

LQFOXGHKHDGHUK!

VSHFLILFDWLRQRIILOHBVHUYHUYHUVLRQ

 ORQJUHDG LQFKDUQDPH>0$;B3$7+@RXWFKDUEXI>%8)B6,=(@
   LQORQJE\WHVLQORQJSRVLWLRQ 
 ORQJZULWH LQFKDUQDPH>0$;B3$7+@RXWFKDUEXI>%8)B6,=(@
   LQORQJE\WHVLQORQJSRVLWLRQ 
 LQWFUHDWH LQFKDU>0$;B3$7+@LQLQWPRGH 
 LQWGHOHWH LQFKDU>0$;B3$7+@ 
HQG
ILOHBVHUYHU: name of the server
3.1 : version number
UHDG ZULWH FUHDWH GHOHWH procedure yang disediakan oleh server. Untuk setiap procedure,
tipe dari setiap parameter diberikan: LQRXWLQRXW Arahnya relatif ke server.
%XItempat dimana file server meletakkan data yang diminta oleh client.

The primary use of the formal specification is as input to the VWXEJHQHUDWRU, which produces
both the client stub and the server stub. Both are then put into appropriate libraries. When a
user (client) program calls any of the procedures defined by this specification, the
corresponding client stub procedure is linked into its binary.

Ketika server mulai dieksekusi, server mengirim message ke program yang disebut ELQGHU
untuk membuat eksistensi server diketahui (H[SRUW the server interface). Process itu disebut
sebagai UHJLVWHULQJserver. Untuk register, server memberikan ke binder yaitu: nama server,
version number, unique id dan sebuah KDQGOH yang digunakan untuk mengetahui lokasi (bias
berupa: Ethernet address, IP address, X.500 adress, ..

Ketika client memanggil salah satu remote procedure untuk pertama kali( katakanlah read),
the client stub melihat bahwaUHDG belum dikaitkan (di-bound) ke sebuah server, lalu client
stub mengirim message ke binder meminta LPSRUW version number dan nama. Binder akan
mengecek jika salah satu atau lebih server telah export sebuah interface dengan nama dan
version number tsb. Jika tak ada yang mendukung, pemanggilan UHDGakan gagal.

Jika server yang sesuai ada, binder memberikan handle-nya dan unique id ke client stub.
Client stub menggunakan handle sebagai alamat untuk message request.









___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
26
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%9,

'LVWULEXWHG2SHUDWLQJ6\VWHPV






3HQGDKXOXDQ
Operating System (OS) adalah software (yaitu system program) yang menjalankan computer.
Contoh OS: DOS, OS/2, UNIX, System 7.
Tugas operating system:
• berurusan dengan hardware komputer;
• menyediakan lingkungan/environment dan interface ke user;
• mengeksekusi user commands atau program instructions;
• mengontrol/mengatur input dan output, memory, file dan directory.

'LVWULEXWHG RSHUDWLQJ V\VWHP : kumpulan dari komponen software yang menyederhanakan


tugas/task pemrograman dan mendukung aplikasi yang sangat luas. Distributed operating
system bersifat modular dan extensible. Modularity didasarkan pada dukungan adanya
komunikasi antara modul.

Distributed operating system bertindak sebagai sebuah infrastruktur /rangka dasar untuk
QHWZRUNWUDQVSDUHQW UHVRXUFH PDQDJHPHQW Infrastruktur mengatur low-level resources
(seperti Processor, memory, network interface dan peripheral device yang lain) untuk
menyediakan sebuah platform untuk pembentukan/penyusunan higher-level resources (seperti
Spreadsheet, electronic mail messages, windows).

.HUQHO
Kernel adalah bagian utama dari operating system. Kernel menyediakan WKH PRVW HVVHQWLDO
dan EDVLFV\VWHPVHUYLFHV seperti process, memory management, set processor register. Kernel
dapat men-set up DGGUHVVVSDFHV untuk melindungi processes dari akses yang tak berhak. 

Ada dua pendekatan dalam perancangan kernel: pendekatan PRQROLWKLF dan pendekatan
PLFURNHUQHO. Kernel disebut PRQROLWKLF bila ia melakukan semua fungsi dasar operating
system, FRGH dan datanya berjumlah besar. Code-nya XQGLIIHUHQWLDWHG yaitu code-nya non-
modular. Monolithic kernel dapat berisi beberapa server process.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
27
Distributed System and Inter-Operability
__________________________________________________________________________________________

Mikrokernel hanya menyediakan WKH PRVW EDVLF DEVWUDFWLRQ antara lain:  SULQFLSDOO\
SURFHVVHV PHPRU\ GDQ LQWHUSURFHVV FRPPXQLFDWLRQ Mikrokernel tampak sebagai sebuah
layer antara hardware layer dan layer yang terdiri PDMRUV\VWHPFRPSRQHQW disebut VXEV\VWHP

Komponen utama mikrokernel:


* Process manager
* Thread manager
* Communication manager
* Memory manager
* Supervisor

.
*DPEDU$UVLWHNWXU0LFURNHUQHO

6.3 Processes dan Threads


Sebuah SURFHVV terdiri dari sebuah H[HFXWLRQ HQYLURQPHQW bersama-sama dengan satu atau
lebih WKUHDG. SebuahWKUHDG adalah RSHUDWLQJV\VWHPDEVWUDFWLRQ dari sebuah activity. Sebuah
H[HFXWLRQ HQYLURQPHQW adalah unit dari UHVRXUFH PDQDJHPHQW : D FROOHFWLRQ RI ORFDO NHUQHO
PDQDJHGUHVRXUFHVWRZKLFKLWVWKUHDGVKDYHDFFHVV

Execution environment terutama terdiri dari:


* sebuah address space
* thread synchronization and communication resources
Dalam arsitektur microkernel, KLJKHUOHYHO UHVRXUFHV seperti RSHQ ILOH dan ZLQGRZ tidak
tampak sebagai kumpulan resources dari H[HFXWLRQ HQYLURQPHQW. +LJKHUOHYHO UHVRXUFHV
diimplementasikan oleh server dan aksesnya melalui VHUYHUSRUW.

Thread dapat dibuat dan ditutup secara dinamik jika dibutuhkan. Di dalam distributed system,
adalah dimungkinkan memiliki banyak thread di dalam sebuah process.

Setiap process memiliki: SURJUDP FRXQWHU VWDFN UHJLVWHU VHW DGGUHVV VSDFH JOREDO
YDULDEOHV. Setiap process satu sama lain di dalam komputer bisa saling berinteraksi melalui
LQWHUSURFHVVFRPPXQLFDWLRQSULPLWLYH, seperti message.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
28
Distributed System and Inter-Operability
__________________________________________________________________________________________

Pembentukan SURFHVV pada distributed operating system harus mempertimbangkan dua hal:
XWLOL]DWLRQ RI PXOWLSOH FRPSXWHU dan pembagian infrastruktur pendukung process kedalam
system service yang terpisah.

Thread dalam banyak hal seperti OLWWOHPLQLSURFHVV atau disebut OLJKWZHLJKWSURFHVV. Setiap
thread bekerja/run berdasarkan urutan yang ketat. Setiap thread memiliki SURJUDP FRXQWHU
dan VWDFN untuk menandai posisi kondisi yang berlangsung. Thread dapat membentuk anak
thread dan dapat ter-blocked. Semua thread di dalam sebuah SURFHVV memiliki address space
yang sama, hal ini berarti tak ada perlindungan diantara thread.

Organisasi beberapa (misalkan tiga SURFHVV) SURFHVV dengan satu thread di dalam tiap
process-nya dalam sebuah komputer digunakan bila beberapa process tersebut tidak saling
tergantung/unrelated. Sedangkan organisasi (misalkan satu) process yang didalam process
memiliki beberapa thread, digunakan bila thread tersebut merupakan bagian job yang sama
dan secara aktif dan bekerjasama satu sama lain.

Thread bisa pada kondisi salah satu dari beberapa state:


• UXQQLQJ : thread dalam kondisi aktif
• EORFNHG: tak aktif dan menunggu thread lainnya untuk membukanya
• UHDG\ : di-schedule/di-rencanakan untuk aktif dan akan segera aktif bila
gilirannya (bekerja) dating
• WHUPLQDWHG : thread telah keluar/selesai dari job-nya.

3 macam organisasi thread dalam sebuah process:


• 'LVSDWFKHUZRUNHUPRGHO: dispatcher thread membaca permintaan yang dating.
Setelah mengujinya lalu memilih sebuah idle worker thread dan meminta
menangani permintaan tersebut.
• 7HDP PRGHO : semua thread sama levelnya dan masing-masing mengolah
permintaan yang dituju kepadanya. Tak ada dispatcher thread.
• 3LSHOLQH PRGHO : thread pertama membangkitkan beberapa data dan
meneruskan data tersebut ke thread selanjutnya untuk diolah.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
29
Distributed System and Inter-Operability
__________________________________________________________________________________________

Gambar atas : 3 process dengan setiap process terdiri dari sebuah thread. (b) Satu process dengan 3 threads.
Gambar bawah : (a) Model Dispatcher/Worker. (b) Model Team. (c) Model Pipeline.

*DPEDU2UJDQLVDVL7KUHDG'DODP6HEXDK3URFHVV

Thread programming merupakan FRQFXUUHQW SURJUDPPLQJ. Didalam implementasi thread,


FDOOdiperlukan untuk pembentukan thread, penghapusan dan sinkronisasi.

7KUHDGVFKHGXOLQJ : SUHHPSWLYHVFKHGXOLQJ dan QRQSUHHPSWLYHVFKHGXOLQJ

Set (sekelompok) primitives (misalkan OLEUDU\ FDOOV) yang tersedia untuk user berkaitan
dengan thread disebut WKUHDGV SDFNDJH Ada dua cara implementasi thread package: di user
space dan di kernel. Dalam implementasi di 8VHU 6SDFH, kernel hanya memandang sebagai
VLQJOHWKUHDGHGSURFHVV. Keuntungan implementasi ini adalah dapat diimplementasikan pada
operating system yang tak mendukung PXOWLWKUHDG. Pada implementasi ini, thread bekerja di
atas UXQWLPH V\VWHP yang berupa sekumpulan procedure yang mengatur thread-thread
tersebut. Dalam implementasi thread di Kernel, tidak dibutuhkan runtime system. Pembuatan
dan penghancuran thread dengan membuat NHUQHOFDOO


___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
30
Distributed System and Inter-Operability
__________________________________________________________________________________________


(a) A user-level threads package. (b) A threads packaged managed.

*DPEDU,PSOHPHQWDVL7KUHDGV3DFNDJH

Perbandingan process dan thread:


* pembentukan thread baru dalam eksisting process lebih “murah” daripada
pembuatan process;
* switching ke thread berbeda di dalam process yang sama adalah lebih murah
dibandingkan switching ke thread milik process yang berbeda;
* thread di dalam sebuah process bisa share data dan resources lainnya dengan efisien
dan mudah dibandingkan ke process terpisah;
* thread didalam sebuah process tidak dilindungi dari lainnya.

1DPLQJDQG3URWHFWLRQ
Misalkan WH[WXDO QDPH: “/project/status” digunakan oleh manusia/human untuk mengacu ke
sebuah file dan resource lainnya. Nama tersebut di-resolved ke ORZHUOHYHO LGHQWLILHU yang
dikenal oleh service yang mengatur resource.

Umumnya sebuah service mengatur beberapa resource, tiap resource tersebut dapat diakses
secara mandiri oleh client. Untuk mencapai hal tersebut, service menyediakan sebuah
identifier untuk setiap resource.

Permintaan client di arahkan ke FRPPXQLFDWLRQ VHUYLFH. Permintaan / request client berisi


VHUYLFHVSHFLILFLG yang kemudian request tersebut dikirim menggunakan FRPPXQLFDWLRQLG.
&RPPXQLFDWLRQ VHUYLFH diimplementasikan oleh kernel yang bertanggung jawab untuk
“looking up” FRUUHVSRQGLQJ SK\VLFDO VHUYHU DGGUHVV dan menentukan message route-nya.
Server yang menerima message “memandang” VHUYLFHVSHFLILFLGHQWLILHU.

Reconfigurability is the capacity of a distributed system to accommodate evolution and short-


term changes in run-time conditions such as computer or network load, or failure, without
disruption.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
31
Distributed System and Inter-Operability
__________________________________________________________________________________________

Tujuan utama skema proteksi adalah menjamin bahwa setiap process hanya dapat mengakses
resources yang process tersebut. telah mempunyai ijin aksesnya.

3URWHFWLRQ GRPDLQ adalah sebuah SURWHFWLRQ HQYLURQPHQW VKDUHG oleh sekelompok process:
yaitu sekelompok pasangan <resource, right>.

5HDO7LPH'LVWULEXWHG6\VWHPV
Real-time program (and system): interact with the external world in a way that involves time.
When a stimulus appears, the system must respond to it in a certain way and before a certain
deadline.

Jenis stimulus:
• Periodic :terjadi secara regular/teratur setiap T second misalnya;
• Aperiodic : berulang tetapi tak teratur/not regular
• Sporadic : tak diharapkan

Jenis real time system:


* Soft real-time system: kehilangan deadline kadang-kadang tetap tidak masalah;
* Hard real time system: tidak diperbolehkan kehilangan deadline satupun.

*DPEDU&RQWRK'LVWULEXWHG5HDO7LPH&RPSXWHU6\VWHP

Mitos realtime system:


a) Real-time systems are about writing device drivers in assembly code
Saat ini system real time terlalu kompleks jika diimplementasikan dengan assembly language.

b) Real-time computing is fast computing


Tidak harus. Tetapi kadang yang diperlukan adalah akurasi.

c) Fast computers will make real-time system obsolete ?


Tidak

Design Issues :
a. Clock Synchronization
b. Event-Triggered versus Time-Triggered Systems

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
32
Distributed System and Inter-Operability
__________________________________________________________________________________________

Even-Triggered system adalah interrupt driven. Problem utama system ini adalah system
dapat gagal pada kondisi beban yang berat/heavy load. Pada time-triggered real-time system,
clock interup terjadi setiap T ms misalnya. Time-triggered real-time system hanya sesuai
lingkungan yang relative static dan system behaviour diketahui sebelumnya.
c. Predictability
Salah satu sifat penting dari setiap real time system adalah behaviour-nya dapat diprediksi
sebelumnya
d. Fault Tolerance
e. Language support.



___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
33
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%9,,

'LVWULEXWHG)LOH6\VWHPV





3HQGDKXOXDQ
File: adalah sebuah abstraksi dari SHUPDQHQWVWRUDJH. Dalam kebanyakan sistem, sebuah file
didefinisikan sebagai sebuah deretan/sequence dari VLPLODUVL]HG GDWD LWHP Sistem File
bertanggung jawab untuk: RUJDQL]DWLRQ VWRUDJH UHWULHYDO QDPLQJ VKDULQJ dan SURWHFWLRQ
ILOH

'LUHFWRU\: untuk menjaga WUDFN RI ILOH. Directory umumnya berisi sejumlah entry yang tiap
entrynya berisi sebuah file.

)LOH 6HUYLFH: spesifikasi dari apa yang system file tawarkan kepada client. Spesifikasi
menguraikan primitive yang tersedia, parameter dan action yang dilakukan. Terhadap client,
file service mendifinisikan secara teliti service apa yang dapat ditawarkan, tetapi tak
mengatakan apapun bagaimana mengimplementasikannya. Hal ini berkaitan dengan ILOH
V\VWHPLQWHUIDFH

)LOH 6HUYHU: sebuah process yang berjalan/run pada beberapa mesin dan membantu
mengimplementasikan file service.

Persyaratan 'LVWULEXWHGILOHVHUYLFH
• Access transparency
• Location transparency
• Concurrency transparency
• Failure transparency
• Performance transparency
• Hardware and operating system heterogeneity
• Scalability
• Replication transparency
• Migration transparency
• Support for fine-grained distribution of data
• Tolerance to network partitioning and detached operation


)LOH6HUYLFH&RPSRQHQWV
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
34
Distributed System and Inter-Operability
__________________________________________________________________________________________

)LOHVHUYLFHFRPSRQHQW terdiri dari: IODWILOHVHUYLFHGLUHFWRU\VHUYLFHFOLHQWPRGXOH)ODWILOH


VHUYLFH dan GLUHFWRU\ VHUYLFH masing-masing meng-eksport interface untuk digunakan
program client. Interface RPC dari IODW ILOH VHUYLFH dan GLUHFWRU\ VHUYLFH bersama-sama
menyediakan FRPSUHKHQVLYH VHW RI RSHUDWLRQ untuk mengakses file. &OLHQW PRGXOH
mengintegrasikan IODWILOHVHUYLFHdan GLUHFWRU\VHUYLFH agar tersedia programming interface
tunggal untuk pengoperasian file.

)ODW ILOH VHUYLFH concern pada implementasi operasi pada isi file. UFIDs (Unique File
Identifiers) digunakan untuk mengidentifikasikan file dalam semua permintaan yang terkait
operasi flat file service. Ketika flat file service menerima request untuk membuat file, ia
membangkitkan UFID baru untuk file tersebut dan mengembalikan UFID ke peminta.

'LUHFWRU\6HUYLFH menyediakan pemetaan antara WH[WQDPHuntuk file dan UFIDs. Ketika file
dibuat, client module harus merekam UFID dari file dalam diretory bersama-sama dengan
text name. Directory service menyediakan fungsi yang dibutuhkan untuk membangkitkan dan
meng-update directory dan mendapatkan UFID dari directory.

&OLHQWPRGXOHrun di setiap client computer, mengintegrasikan dan perluasan dari operasi flat
file service dan directory service dibawah single application programming interface yang
tersedia untuk user-level program di dalam client computer. Client module menyembunyikan
low-level constructs (seperti UFID) dari XVHUOHYHOSURJUDP.

*DPEDU.RPSRQHQ)LOH6HUYLFH

,QWHUIDFH
Deskripsinya : :

3URFHGXUH1DPH DUJXPHQW DUJXPHQW «  Æ UHVXOW UHVXOW« 


5(32576 HUURUHUURU 
'HVFULSWLRQ


___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
35
Distributed System and Inter-Operability
__________________________________________________________________________________________

Flat File Service:


Contoh:
5HDG )LOHLQ Æ 'DWD ±5(32576 %DG3RVLWLRQ 
,I”L”/HQJWK )LOH 5HDGVDVHTXHQFHRIXSWRQLWHPVLQ)LOHVWDUWLQJDWLWHPLDQGUHWXUQV
LWLQ'DWD
,IL!/HQJWK )LOH 5HWXUQVWKHHPSW\VHTXHQFHUHSRUWDQHUURU

)LOH: adalah UFID dari file
'DWDsequence of data items.
i, n, l : integer

Contoh diatas adalah interface RPC yang digunakan oleh modul client.

Directory Service:
Contoh:
-------
/RRNXS 'LU1DPH$FFHVV0RGH8VHU,' ! )LOH 5(32576 1RW)RXQG1R$FFHVV 
/RFDWHVWKHWH[WQDPHLQWKHGLUHFWRU\DQGUHWXUQVWKHUHOHYDQW8),'UHSRUWVDQHUURULILW
FDQQRWEHIRXQGRULIWKHFOLHQWPDNLQJWKHUHTXHVWLVQRWDXWKRUL]HGWRDFFHVVWKHILOHLQWKH
PDQQHUVSHFLILHGE\$FFHVV0RGH
'LU: UFID dari directory
1DPHtext name
$FFHVV0RGHoperasi file service yang mana UFID di perlukan.
XVHU,'an identifier enabling the directory service to identify a client
1RW)RXQGHUURUQDPHDEVHQWIURPGLUHWRU\
1R$FFHVVHUURUFDOOHUGRHVQRWKDYHDFFHVVSHUPLVVLRQ

'LVWULEXWHG)LOH6\VWHP'HVLJQ
Distributed file system umumnya mempunyai dua komponen: WUXHILOHVHUYLFH dan GLUHFWRU\
VHUYLFH 7UXH ILOH VHUYLFH berkaitan dengan operasi pada individual file seperti: pembacaan,
penulisan, penambahan. 'LUHFWRU\ VHUYLFH berkaitan dengan: pembentukan dan pengaturan
directory seperti: penambahan dan penghapusan file dari directory.

)LOH6HUYLFH,QWHUIDFH
Struktur file dapat berupa: VHTXHQFH RI E\WHV VHTXHQFH RI UHFRUGV File memiliki DWWULEXWHV
yang merupakan sepotong informasi tentang file tetapi tak merupakan bagian file itu sendiri.
Attribute tersebut biasanya adalah: RZQHUVL]HFUHDWLRQGDWHDFFHVVSHUPLVVLRQ File service
biasanya menyediakan primitive untuk membaca dan menulis beberapa attributes.

Proteksi dalam distributed system biasanya menggunakan teknik: FDSDELOLWLHV dan DFFHVV
FRQWURO OLVW Dengan capabilities, setiap user mempunyai sebuah ticket “ capability” untuk
setiap object yang diakses. Capability menspesifikasikan bentuk ijin akses misalnya reading
diijinkan tetapi writing dilarang. Access control list berkaitan dengan daftar pemakai/user
yang akan mengakses file dan bagaimana caranya. 

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
36
Distributed System and Inter-Operability
__________________________________________________________________________________________

File service dapat diuraikan dalam dua jenis: XSORDGGRZQORDG PRGHO dan UHPRWH DFFHVV
PRGHO8SORDG'RZQORDGPRGHO :file service hanya menyediakan dua operasi utama: UHDGILOH
dan ZULWH ILOH. Di model ini file dipindahkan/moving secara keseluruhan pada satu arah
tertentu. Model ini, efisiensinya yangat tinggi, tapi perlu cukup storage di client untuk
menyimpan seluruh file yang diperlukan. File system bekerja/runs di client. 5HPRWH DFFHVV
PRGHO: file service menyediakan sejumlah besar operasi seperti: pembukaan dan penutupan
file, pembacaan dan penulisan file, pengujian file attribute, dan sebagainya.

(a) Upload/download model. (b) Remote access model.


*DPEDU-HQLV)LOH6HUYLFH

File dapat memiliki V\PEROLF QDPH (seperti SURJF) yang digunakan oleh orang, tetapi juga
memiliki internal name yaitu ELQDU\QDPH, yang digunakan oleh sistem itu sendiri.

'LUHFWRU\6HUYHU,QWHUIDFH
Directory service mendifinisikan beberapa DOSKDEHWdan V\QWD[untuk pembentukan file (dan
directory) name. Beberapa sistem membagi file name dalam dua bagian. Bagian kedua, file
extension, menyatakan jenis file. Semua distributed system memperbolehkan directory berisi
subdirectory, sehingga user dapat mengelompokkan bersama-sama file yang berkaitan.
Directory bisa berupa: tree atau graph.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
37
Distributed System and Inter-Operability
__________________________________________________________________________________________

(a) A directory tree contained on one machine. (b) A directory graph on two machines.

*DPEDU'LUHFWRU\
















___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
38
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%9,,,

7LPHGDQ&RRUGLQDWLRQ






3HQGDKXOXDQ
Sinkronisasi didalam distributed system lebih rumit daripada sistem terpusat. Sinkronisasi
didalam Distributed system menggunakan distributed algorithm. Pada umumnya distributed
algorithm memiliki sifat:
• Informasi yang relevan tersebar diantara beberapa mesin/computer yang autonom
• Process membuat keputusan berdasarkan hanya pada informasi local
• 6LQJOHSRLQWRIIDLOXUHdi dalam sistem sangat dihindari
• Tak ada clock bersama ( FRPPRQFORFN) atau sumber SUHFLVHJOREDOWLPH


6LQNURQLVDVL3K\VLFDO&ORFN
Physical clock sangat dibutuhkan untuk beberapa sistem misalkan real time system. Sumber
clock phisik mengalami apa yang disebut dengan FORFNGULIWyaitu perhitungan waktunya pada
laju yang berbeda. Clock drift disebabkan antara lain frekuensi clock yang berubah dengan
berubahnya temperature.

*DPEDU'ULIW$QWDUD&ORFN.RPSXWHU3DGD'LVWULEXWH6\VWHP

Dibutuhkan clock phisik yang sangat akurat yang digunakan sebagai referensi clock. Saat ini
yang banyak digunakan sebagai international standard clock adalah 8QLYHUVDO 7LPH
&RRUGLQDWHG 87& Clock tersebut berdasarkan waktu atomic.

6LQNURQLVDVLSDGD'LVWULEXWHG6\VWHP

0HWRGD&ULVWLDQ
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
39
Distributed System and Inter-Operability
__________________________________________________________________________________________

Metoda ini menggunakan sebuah time server. Time server process menyediakan waktu (time)
sesuai clock-nya berdasarkan permintaan. Time server disinkronisasikan dengan UTC.

Jika process P meminta “ waktu” dengan message mr dan menerima nilai “ waktu” t dari
message mt dari time server, kemudian process P mensetting clock-nya sesuai dengan waktu t
+ Ttrans dimana Ttrans adalah waktu pengiriman yang diperlukan oleh mt . Ttrans nilainya
sangat sulit diprediksi dengan tepat. Pada umumnya Ttrans = min + x; x •1LODLPLQLPXP
min diperoleh jika tak ada process lain yang dieksekusi dan tak ada trafik lain di jaringan.
Min dapat diukur atau diestimasikan. Nilai x tidak diketahui.

*DPEDU6LQNQURQLVDVL&ORFN'HQJDQ0HQJJXQDNDQ7LPH6HUYHU

0HWRGD%HUNHOH\
Didalam algoritma ini digunakan sebuah coordinator computer yang dipilih sebagai PDVWHU
Master secara periodic akan menanyakan (poll) computer lainnya (disebut slave) jam berapa
di mereka. Slave kemudian akan mengirim kembali nilai clock mereka ke master. Master
kemudian mengestimasi local clock slaves dengan mengobservasi URXQGWULS WLPHV dan
kemudian membuat rata-rata waktu (termasuk clock milik master) berdasarkan jawaban
slaves yang kemudian diberitahukan ke slave kembali untuk mempercepat atau
memperlambat clock mereka sampai waktu spesifik dicapai. Akurasi dari algoritma
tergantung pada QRPLQDOPD[LPXPURXQGWULSWLPH antara master dan slave.

*DPEDU&RQWRK0HWRGD%HUNHOH\

1HWZRUN7LPH3URWRFRO 173 

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
40
Distributed System and Inter-Operability
__________________________________________________________________________________________

NTP mendifinisikan sebuah arsitektur untuk layanan waktu dan protocol untuk
mendistribusikan informasi waktu ke jaringan yang luas yang saling berhubungan. NTP sudah
diadopsi sebagai standard untuk sinkronisasi clock di jaringan Internet.
Feature dari NTP:
• 7RSURYLGHDVHUYLFHHQDEOLQJFOLHQWVDFURVVWKH,QWHUQHWWREHV\QFKURQL]HGDFFXUDWHO\
WR87&
• 7RSURYLGHDUHOLDEOHVHUYLFHWKDWFDQVXUYLYHOHQJWK\ORVVHVRIFRQQHFWLYLW\
• 7RHQDEOHFOLHQWVWRUHV\QFKURQL]HVXIILFLHQWO\IUHTXHQWO\
• 7RSURYLGHSURWHFWLRQDJDLQVWLQWHUIHUHQFHZLWKWKHWLPHVHUYLFH

3ULPDU\ VHUYHU dihubungkan langsung ke sumber waktu yang terhubung dengan UTC.
6HFRQGDU\VHUYHU disinkronkan langsung ke SULPDU\VHUYHU.
Server yang dihubungkan logik hirarki disebut V\QFKURQL]DWLRQVXEQHW, yang levelnya disebut
: VWUDWD3ULPDU\VHUYHUmemiliki stratum 1 (lapisan 1), 6HFRQGDU\VHUYHUmemiliki stratum 2
dst. Clock milik server dengan stratum tinggi mempunyai akurasi yang lebih rendah dari
clock milik server dengan stratum yang lebih rendah.

*DPEDU&RQWRK6LQNURQLVDVL6XEQHW'L'DODP,PSOHPHQWDVL173

NTP server melakukan sinkronisai antara satu sama lainnya dengan salah satu dari 3 metoda:
multicast, procedure-call dan symmetric mode.
Multicast mode
Digunakan untuk high speed LAN.

Procedure-call mode
Prosedurnya mirip algoritma Cristian. Mode ini cocok dimana diperlukan akurasi yang lebih
tinggi.

Symmetric mode

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
41
Distributed System and Inter-Operability
__________________________________________________________________________________________

)RUXVHE\WKHPDVWHUVHUYHUVWKDWVXSSO\WLPHLQIRUPDWLRQLQ/$1VDQGE\WKHKLJKHUOHYHOV
VWUDWD OHELK UHQGDK  RI WKH V\QFKURQL]DWLRQ VXEQHW ZKHUH WKH KLJKHVW DFFXUDFLHV DUH WR EH
DFKLHYHG

/RJLFDO7LPHGDQ/RJLFDO&ORFNV
Logical clock adalah VRIWZDUH FRXQWHU yang secara monoton nilainya naik. Disini yang
dipentingkan adalah bukan semua process setuju pada waktu terjadinya event secara tepat
melainkan persetujuan pada urutan pada terjadinya event-event tersebut.

Untuk mensinkronisasi ORJLFDOFORFN, telah didefinisikan relasi KDSSHQVEHIRUH. Ungkapan aÆ


b dibaca “ a” terjadi sebelum b. Hal ini berarti semua process setuju dan event bahwa event
pertama a terjadi lebih dulu, dan kemudian event b terjadi.

Relasi KDSSHQVEHIRUHdapat diamati secara langsung dalam dua situasi:


• Jika a dan b event di dalam process yang sama, dan a terjadi sebelum b, kemudian a --
> b adalah benar.
• Jika a adalah event dari message yang dikirim oleh suatu process dan b adalah event
dari message yang diterima oleh process yang lain, kemudian a --> b adalah
benar.Message tak dapat diterima sebelum dikirim.
Jika a Æ b dan b Æ c maka a Æ c.

Jika dua event x dan y terjadi dalam process yang berbeda yang tidak mempertukarkan
message (juga tidak melalui pihak ketiga), maka baik x Æ y maupun y Æ x adalah tak benar.
Kedua event tersebut adalah FRQFXUUHQW

Untuk setiap event a kita dapat menandai nilai waktunya (time value) C(a) pada yang mana
semua process menyetujuinya. Jika a Æ b maka C(a) < C(b). Jadi jika a dan b dua event yang
terjadi dalam process yang sama dan a terjadi sebelum b , maka C(a) < C(b).Jika a dan b
menyatakan pengirim dan penerima dari sebuah message, maka C(a) < C(b). Untuk semua
event a dan b, C(a) & E 

Clock time C selalu bertambah tidak pernah berkurang. Koreksi waktu dapat dibuat dengan
penambahan nilai positif bukan pengurangan.

*DPEDU&RQWRK/RJLFDO&ORFN
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
42
Distributed System and Inter-Operability
__________________________________________________________________________________________

Asumsi yang digunakan pada Gambar 8.5 :


* masing-masing process bekerja pada mesin yang berbeda, masing-masing memiliki
clock-nya sendiri dan pada kecepatan konstan yang berbeda sama satu sama lainnya.
* Setiap message membawa VHQGLQJWLPHsesuai dengan clock pengirimnya.

0XWXDO([FOXVLRQ
Sistem yang melibatkan banyak process sering diprogram dengan mudah dengan
menggunakan “ critical region” . Ketika sebuah process harus membaca atau meng-update
shared data, ia pertama-tama memasuki sebuah “ critical region” untuk mencapai PXWXDO
H[FOXVLRQ dan menjamin tak ada process lain yang akan menggunakan shared data pada saat
yang bersama. Pada system processor tunggal, “ critical region” diproteksi menggunakan
semaphore, monitor.

Persyaratan dasar mutual exclusion:


ME1 (safety) : Hanya satu process yang dieksekusi di “ critical region” pada suatu saat.
ME2 (liveness): Permintaan dari process untuk memasuki “ critical region” pada akhirnya
akan dijamin.
ME3(ordering): urutan masuk ke critical region dijamin sesuai urutan KDSSHQHGEHIRUH
Spesifikasi ini menjamin bahwa permintaan process pertama akan dijamin dilayani sebelum
permintaan process yang kedua.

&HQWUDOL]HG$OJRULWKP

Sebagai contoh dapat dilihat pada Gambar 8.6. Dengan penjelasan sebagai berikut :
Gambar (a) : Process 1 meminta coordinator untuk minta ijin untuk memasuki daerah “ critical
region” . Ijin diberikan (granted).
Gambar (b) : Process 2 kemudian meminta untuk memasuki “ critical region” yang sama.
Koordinator tidak memberikan balasan/reply. Message permintaan process 2 lalu diantrikan
pada buffer.
Gambar (c) : Ketika process 1 keluar dari “ critical region” , ia lalu memberitahu koordiantor,
yang kemudia coordinator memberikan jawaban “ OK” pada process 2.

*DPEDU&RQWRK&HQWUDOL]HG$OJRULWKP

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
43
Distributed System and Inter-Operability
__________________________________________________________________________________________

Skema ini mudah diimplementasikan dan hanya memerlukan 3 message untuk setiap
penggunaan “ critical region” yaitu: request, grant/OK, release. Kelemahan skema ini adalah
dimana coordinator sebagai “ single point of failure” , sehingga jika coordinator terganggu
maka keseluruhan system juga terganggu.


'LVWULEXWHG0XWXDO([FOXVLRQ
Prosedur kerjanya sebagai berikut:
• Ketika sebuah process ingin memasuki sebuah critical region, process tersebut
membangun sebuah message yang berisi: nama critical region yang ingin dimasuki,
nomor process dan waktu saat itu.
• Process kemudian mengirim message ke semua process lainnya termasuk dirinya
sendiri.
• Ketika sebuah process menerima message permintaan dari process lain, aksi yang
diambil tergantung pada kondisi state-nya berkaitan dengan critical region yang
disebut dalam message.
• Terdapat 3 kasus:
* Jika receiver tidak dalam critical region dan tidak ingin memasukinya, ia akan
mengirim kembali message OK ke sender/pengirim.
* Jika receiver telah berada di critical region, ia tidak membalas message tersebut.
Sebagai gantinya ia akan mengantrikan permintaan ke buffer.
* Jika receiver ingin memasuki critical region tetapi belum melakukannya. Ia
membandingkan “ timestamp” pada message yang datang dibandingkan dengan
“ timestamp” nya di message yang telah ia kirim ke lain process. Rimestamp yang
terendah yang akan “ menang” . Jika message yang dating memiliki timestamp lebih
rendah dari miliknya maka ia akan mengirim balik message OK ke sender. Jika
message-nya memiliki timestamp lebih rendah, receiver akan mengantrikan
permintaaan pada buffer dan tak mengirimkan apa-apa.
• Setelah mengirim permintaan ijin masuk critical region, process menunggu sampai
setiap process lainnya memberikan ijin. Segera setelah semua ijin diperoleh, ia lalu
memasuki critical region.
• Ketika ia keluar dari critical region, ia mengirim message OK keseluruh process
lainnya.

*DPEDU&RQWRK'XD3URFHVV6HFDUD%HUVDPDDQ0HQFRED0HPDVXNL&ULWLFDO
5HJLRQ<DQJ6DPD

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
44
Distributed System and Inter-Operability
__________________________________________________________________________________________

Pada algoritma ini harus digunakan primitive sebuah group communication atau setiap
process harus mempertahankan keanggotaan group. Metoda ini bekerja dengan baik untuk
grup kecil dari process yang tidak pernah merubah keanggotaan grupnya.

7RNHQ5LQJ$OJRULWKP

Process p1 ….pn disusun membentuk logical ring. Exclusion diperoleh dengan mendapatkan
token dalam bentuk message yang dilewatkan dari process ke process dalam arah tunggal
(mis. searah jarum jam) mengelilingi ring. Topology ring tak berkaitan dengan bentuk
hubungan fisik yang ada.

Jika process tidak ingin memasuki critical region, jika ia menerima token maka ia segera
meneruskannya ke tetangganya. Process yang ingin masuk ke critical region harus menangkap
token dan mempertahankannya. Untuk keluar dari critical region, process mengirim token ke
tetangganya.

*DPEDU7RNHQ5LQJ

3HUEDQGLQJDQ
$OJULWKP 0HVVDJH SHU 'HOD\ EHIRUH HQWU\ 3UREOHPV
HQWU\H[LW LQPHVVDJHWLPHV 
Centralized 3 2 Coordinator crash
Distributed 2(n-1) 2 (n-1) Crash of any process
Token Ring 1 to ’ 0 to n-1 Lost token, process
crash

$OJRULWPD(OHFWLRQ
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
45
Distributed System and Inter-Operability
__________________________________________________________________________________________

Election adalah prosedur untuk memilih sebuah process dari group. Persyaratan utama
process yang terpilih adalah unik.

$OJRULWPD%XOO\
Contoh cara kerjanya:
• Sekelomppok process terdiri dari 8 process dengan nomor 0 sampai 7.
• Sebelumnya process 7 sebagai coordinator, tapi sekarang crashed.
• Process 4 adalah yang pertama yang mengetahui hal itu, lalu ia mengirim
message ELECTION ke semua process yang mempunyai nomor lebih tinggi
darinya (5, 6, 7).
• Process 5 dan 6 keduanya menjawab dengan OK.
• Dengan mendapat respon OK, maka tugas process 4 selesai dan ia kemudian
menunggu siapa yang akan jadi pemenang sebagai coordinator.
• Process 5 dan 6 keduanya mengirimkan ELECTION ke process dengan nomor
yang lebih tinggi. Pada kondisi ini process 6 tahu bahwa process 7 telah mati
dan process 6 sebagai pemenang.
• Maka setelah siap maka process 6 mengirimkan message COORDINATOR ke
semua process yang masih aktif.
• Setelah Process 4 menerima message COORDINATOR tersebut maka ia akan
meneruskan pekerjaannya semula.

*DPEDU&RQWRK$OJRULWPD%XOO\

$OJRULWPD5LQJ
• Diasumsikan process-process secara fisik atau logik terurut sehingga setiap
process tahu siapa successor-nya.
• Ketika sebuah process mengetahui coordinator tidak berfungsi, maka ia akan
membangun sebuah message ELECTION yang berisi nomor processnya
sendiri dan mengirimkan message tersebut ke succesornya.
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
46
Distributed System and Inter-Operability
__________________________________________________________________________________________

• Jika successornya failed maka message akan melewatinya ke successor


berikutnya sampai ditemukan process yang bekerja.
• Pada setiap langkah, pengirim akan menambahkan nomor processnya kedalam
message.
• Akhirnya message kembali ke pengirim semula. Kemudian message diubah
menjadi COORDINATOR message dan berkeliling kemabali dalam ring untuk
menginformasikan ke semua process siapa yang akan menjadi coordinator
(anggota process dengan nomor tertinggi) dan siapa anggota terbaru dari ring.









___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
47
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%,;

1DPH6HUYLFHV






3HQGDKXOXDQ
+XPDQUHDGDEOH WH[WXDO QDPH: digunakan untuk mengenal dan merekam nama (mudah
diingat) yang merujuk ke resources.
6\VWHP ,GHQWLILHU : dipilih untuk efisiensi yang dapat dipecahkan/diuraikan kembali dan
disimpan oleh software dan berupa IL[HGOHQJWKELWVWULQJ. 7H[WXDOQDPHdan 6\VWHP,GHQWLILHU
secara bersama-sama disebut sebagaiQDPH.

Beberapa tipe QDPH:


• Physical network address and logical internetwork address
• Port, process and group identifier
• Textual, human-readable service name
• Resource identifiers
• File

*DPEDU&RQWRK1DPH'LJXQDNDQ8QWXN0HQJDNVHV6HEXDK5HVRXUFH

Entitas dalam distributed system seperti user, computer dan service dikaitkan dengan
attribute-nya. Sebagai attribute biasanya adalah address. Jadi, misalkan:
user dengan name: proper name, login name, user identifier, electronic mail address.
Computer dengan name: host name

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
48
Distributed System and Inter-Operability
__________________________________________________________________________________________

Service dengan name: file service, printer service.


Contoh attributenya: untuk service dan computer mempunyai physical address, user
mempunyai electronic mail address dst.

Attribute mempunyai DWWULEXWHYDOXH yaitu SULPLWLYHYDOXH seperti integer atau name mereka
sendiri seperti Internet address 230.132.123.112.

3ULPLWLYH QDPH adalah name yang tak dapat diuraikan (ORRNHG XS) lebih jauh. Contohnya
Ethernet address.

1DPHVHUYLFH menyimpan data base dari ikatan (binding) antara sekelompok WH[WXDOQDPH dan
attribute untuk object seperti user dan computer. Operasi utama QDPH VHUYLFH mendukung
“ penguraian” (UHVROYH) name yaitu “ melihat” (look up) attribute dalam GDWDEDVH dari QDPH
yang diberikan. Operasi yang lain misalkan pembuatan ikatan baru dengan name baru,
penghapusan ikatan (binding).

Persyaratan umum QDPHVHUYLFH:


• 7RKDQGOHDQHVVHQWLDOO\DUELWUDU\QXPEHURIQDPHVDQGWRVHUYHDQDUELWUDU\QXPEHU
RIDGPLQLVWUDWLYHRUJDQL]DWLRQV
• $ORQJOLIHWLPH
• +LJKDYDLODELOLW\
• )DXOWLVRODWLRQ
• 7ROHUDQFHRIPLVWUXVW


6LPSOH1DPH6HUYLFH 616 
SNS diperuntukkan untuk sebuah organisasi tunggal.

616QDPHV
1DPHVSDFH adalah koleksi dari semua YDOLGQDPH yang dikenal oleh QDPHVHUYLFH
616 QDPH terdiri dari pembatas “ .” Diikuti sederetan satu atau lebih QDPH FRPSRQHQW
Contoh : JHQH, FVJHQH, FVGLVWULEJHQH Æ adalah valid name yang berbeda.

3UHIL[ dari QDPHadalah bagian awal dari name yang hanya terdiri dari zero atau lebih dari
keseluruhan component dan tidak diakhiri pembatas “ ” .
Contoh SNS name : FVGLVWULEJHQH Æ prefixnya adalah FV dan FVGLVWULE

SNS name merupakan SXUHQDPH yaitu name-nya tak tergantung konfigurasi fisik. Jadi user,
service, dan computer dapat berpindah lokasi tetapi dengan tetap mempertahankan name-nya.

SNS name space dibagi secara organisasi (RUJDQL]DWLRQDOO\ SDUWLWLRQHG), yaitu name dibagi
menurut KLJKOHYHO GLUHFWRULHV yang berkaitan dengan entitas administrasi yang berbeda
didalam suatu organisasi. Contoh FVJHQH berkaitan dengan departemen Computer Science
dan SK\VJHQH berkaitan dengan departemen fisika dalam suatu universitas.

1DPLQJGRPDLQ adalah QDPHVSDFH untuk mana terdapat sebuah otoritas administratif tunggal
untuk penetapan QDPH didalam domain tersebut.
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
49
Distributed System and Inter-Operability
__________________________________________________________________________________________

616GDWDDQGRSHUDWLRQ

Client dari SNS menyimpan atribut dari name dalam bentuk 7\SH 9DOXH! Dimana 7\SH
menyatakan tipe dari object seperti: user, Service, Computer.


7DEHO$WULEXW<DQJ'LVLPSDQ'DODP616
7\SH 9DOXH
User <login name, computer where mail is to be delivered, telephone
number, etc.>
Service <address, version of service>
Computer <architecture, operating system, network address, owner>
Group <name1, name2,…>
Alias <name>
Directory <nameComponent1, nameComponent2,…>

Operasi name service di SNS


=========
%LQG DFFHVVHG3HUPLVVLRQV QDPH7H[W DWWU$WWULEXWHV  Æ ^6XFFHVV 1RW$OORZHG
$OUHDG\%RXQG1R'LUHFWRU\`
Create a binding

/RRNXS QDPH7H[WW\SH,QWDWWU$WWULEXWHV Æ^6XFFHVV1RW)RXQG`


Looks up a name and returns attributes if name is bound.

8QELQG DFFHVVH,G 3HUPLVVLRQV QDPH7H[W  Æ ^6XFFHVV 1RW)RXQG 1RW$OORZHG


'LUHFWRU\1RW(PSW\`
Deletes a binding.
=============

* 1DPHUHVROXWLRQ : “ pencocokan” (ORRNLQJXS) name dengan atribut yang terkait.

1DPHVHUYHUVDQGQDYLJDWLRQ
SNS menyimpan bagian yang berbeda dari data base name-nya pada beberapa server.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
50
Distributed System and Inter-Operability
__________________________________________________________________________________________


*DPEDU&RQWRK3DUWLVL1DPH6SDFH'LDQWDUD1DPH6HUYHU3DGD616

Proses lokalisasi/penemuan lokasi name untuk penguraian name dari beberapa server disebut
QDYLJDWLRQUntuk kasus SNS , setiap komputer dalam sebuah organisasi menjalankan sebuah
process yang disebut XVHUDJHQW (UA) yang akan melakukan navigasi atas nama client pada
computer tersebut. UA akan menguji validitas name dan berkomunikasi dengan name server
bila perlu untuk penguraian name. Name server akan mengembalikan server name ke UA.

Contoh:
Sebuah UA memiliki DGGUHVV FDFKH untuk name FV dan diminta untuk “ memecahkan”
(resolve) name FVGLVWULEJHQH. UA tersebut pertama-tama akan meminta UHVROXWLRQ pada
QDPHVHUYHU FV6HUYHU yang kemudian akan mengembalikan ke UA tersebut nameGO6HUYHU
yang menyimpan item dibawah name FVGLVWULE. Setelah „looking up“ entry untuk server
tersebut untuk mendapatkan address (dari .cs.distrib.gene), kemudia UA akan mengirimkan
name FVGLVWULEJHQH ke GO6HUYHU dan operasi UHVROXWLRQ berakhir.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
51
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%;

5HSOLFDWLRQ






3HQGDKXOXDQ
Replication (replikasi) : pemeliharaan RQOLQHFRS\dari data dan sumber-sumber (resources)
lainnya.
Motivasi/tujuan replikasi :
• 3HUIRUPDQFHHQKDQFHPHQW
 Replication dapat diterapkan sama-sama pada tingkatan server untuk meningkatkan
layanan response time. Lebih disukai mendistribusikan data ke beberapa server, dan
mengaturnya sehingga masing-masing server mampu melayani data untuk komunitas
yang lebih kecil dan terdekat dengannya.
• (QKDQFHGDYDLOLELOLW\
• )DXOWWROHUDQFH

Persyaratan replikasi:
• 5HSOLFDWLRQWUDQVSDUHQF\: client tidak menyadari adanya banyak physical copy data.
Data diorganisasikan sebagai individual ORJLFDOGDWDLWHP dan name-nya hanya satu.
• &RQVLVWHQF\ : tidak diinginkan dimana client yang berbeda akan mendapatkan hasil
yang berbeda walaupun client-client tersebut melakukan permintaan yang sama pada
logical data item yang sama.


%DVLF$UFKLWHFWXUH0RGHO
Model Basic architecture ditunjukkan pada Gambar 10.1 dibawah ini.

*DPEDU0RGHO%DVLF$UFKLWHFWXUH8QWXN3HQJDWXUDQ'DWD\DQJ7HUUHSOLNDVL
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
52
Distributed System and Inter-Operability
__________________________________________________________________________________________

• Replica manager : process yang berisi replika (tiruan) data dan melakukan operasi
yang langsung dituju kepadanya. Client process dapat juga bertindak sebagai replica
manager. Umumnya setiap replica manager mempertahankan sebuah physical copy
dari setiap logical data item.
• Client membuat deretan permintaan (series of requests). Setiap permintaan melibatkan
kombinasi pembacaan (UHDG) dan updating logical data item. Permintaan yang tak
melibatkan updating disebut UHDGRQO\ UHTXHVW . Permintaan yang meng-update
sekurang-kurangnya sebuah data item disebut XSGDWHUHTXHVW
• Setiap permintaan dari client ditangani pertama kali oleh sebuah )URQW (QG )( 
Front end berkomunikasi dengan satu atau lebih replica manager dengan cara PHVVDJH
SDVVLQJ. Dengan adanya FE maka transparansi replikasi dapat dicapai. FE dapat
diimplementasikan pada setiap client atau pada process yang terpisah.

Gossip architecture
• Arsitektur ini digunakan untuk layanan yang sangat mensyaratkan ketersediaan data.
• Pada arsitektur ini, replica manager mempertukarkan message „gossip“ secara
periodik untuk proses updating berdasarkan informasi yang mereka terima.
• Normalnya Front End berkomunikasi dengan sebuah individual replica manager untuk
setiap operasi. Tetapi dapat juga FE langsung berkomunikasi dengan lebih dari satu
replica manager per operasi.

*DPEDU$UVLWHNWXU*RVVLS

Primary copy model


• Arsitektur ini untuk meningkatkan ketersediaan data.
• Semua FE berkomunikasi dengan SULPDU\ VHUYHU yang sama ketika updating data.
Primary server mengirimkan data terbaru ke server lain yang disebut slave server.
• FE bisa juga membaca data terbaru dari slave.
• Jika primary server gagal/ada masalah, maka salah satu slave dapat dipromosikan
sebagai primary.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
53
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU3ULPDU\&RS\0RGHO

5HSOLNDVL3DGD'LVWULEXWHG)LOH6\VWHPV
Ada 3 cara replikasi : ([SOLFLWILOHUHSOLFDWLRQ/D]\ILOHUHSOLFDWLRQ)LOHUHSOLFDWLRQXVLQJD
JURXS

([SOLFLWILOHUHSOLFDWLRQ
Ketika process membuat sebuah file, maka file tersebut dibuat pada sebuah server. Dan
kemudian dapat dibuat tambahan copy pada server lainnya bila diinginkan. Operasi tersebut
diketahui oleh programmer/user. Network address dari semua copy tersebut dapat
diasosiasikan dengan nama file, sehingga ketika nama file di-look up maka semua copy dapat
ditemukan.

/D]\ILOHUHSOLFDWLRQ
Pada pendekatan ini, hanya satu copy yang dibuat dari sebuah file. Kemudian server sendiri
akan membuat copynya / replikasinya pada server lainnya secara otomatis tanpa diketahui
oleh programmer/user.

)LOHUHSOLFDWLRQXVLQJDJURXS
Pada pendekatan ini semua copy /replikasi dibuat pada saat file aslinya dibuat. File replikasi
dibuat pada sekelompok server yang menjadi anggota group.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
54
Distributed System and Inter-Operability
__________________________________________________________________________________________

(a) Explicit file replication. (b) Lazy file replication. (c) File replication using Group

*DPEDU&RQWRK5HSOLNDVL
















___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
55
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%;,

7UDQVDFWLRQVGDQ'HDGORFN







$WRPLF7UDQVDFWLRQV
3HQGDKXOXDQ
Apa yang telah kita bahas pada bab Time Coordination sebelumnya pada dasarnya
sinkronisasi pada ORZ OHYHO seperti penggunaan semaphore. Pada bab ini kita akan bahas
sinkronisasi pada abstraksi KLJKHU OHYHO yang akan menyembunyikan isu-isu teknik dan
membuat programmer konsentrasi pada pembuatan algoritma dan bagaimana process bekerja
bersama-sama secara parallel. Abstraksi yang banyak digunakan adalah DWRPLF WUDQVDFWLRQ
atau WUDQVDFWLRQ atau DWRPLFDFWLRQ.

7UDQVDFWLRQ0RGHO
Diasumsikan:
• Sistem terdiri dari sejumlah process yang mandiri, yang dapat gagal secara acak.
• Komunikasi umumnya tak reliable yaitu message dapat hilang, tetapi ORZHUOHYHOOD\HU
dapat mengatasinya dengan menggunakan prosedur WLPHRXW dan protokol retransmisi.
Jadi dalam model ini error komunikasi diatasi secara transparan oleh ORZHU OHYHO
VRIWZDUH

Ada 3 kategori storage :
* Ordinary RAM memory : dimana isinya akan hilang jika tidak ada power atau crash
* Disk storage : isinya akan tetap ada meskipun CPU gagal, tetapi isi akan hilang bila
ada masalah di disk head.
* Stable storage : dirancang sedemikian rupa isi/data tetap ada untuk segala kondisi
kecuali kondisi seperti banjir atau gempa bumi. Storage ini sangat
cocok untuk aplikasi yang memerlukan KLJKGHJUHHRIIDXOW
   WROHUDQFH, seperti atomic transaction.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
56
Distributed System and Inter-Operability
__________________________________________________________________________________________

(a) Stable storage. (b) Crash after drive 1 is updated. (c) Bad spot

*DPEDU6WDEOH6WRUDJH

7UDQVDFWLRQ3ULPLWLYHV
Contoh:
• BEGIN_TRANSACTION : penandaan awal operasi transaction,
• END_TRANSACTION : terminasi transaction
• ABORT_TRANSACTION: penghentian transaction, dan mengembalikan nilai lama
• READ : membaca data dari sebuah file atau object lainnya
• WRITE: menulis data ke sebuah file atau object lainnya.

6LIDWGDUL7UDQVDFWLRQ
Sifat dasar transaction : atomic, consistent, isolated, durable.

$WRPLF
Sifat ini menjamin bahwa setiap transaction terjadi secara lengkap atau tidak sama sekali. Jika
terjadi secara lengkap, operasinya tidak dapat dibagi-bagi. Ketika transaction sedang
berlangsung, process lainnya tak dapat melihat satupun intermediate state dari operasi
transaction tersebut.

&RQVLVWHQW
Transaction tidak merubah V\VWHPLQYDULDQW

,VRODWHGDWDXVHULDOL]DEOH
Concurrent transaction tidak saling mengganggu satu sama lain.


___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
57
Distributed System and Inter-Operability
__________________________________________________________________________________________



*DPEDU&RQWRK6HULDOL]DEOH

'XUDEOH
Sekali transaction menyatakan FRPPLW (menjamin), tak perduli apapun yang terjadi,
WUDQVDFWLRQ bekerja terus dan hasil menjadi permanen.

1HVWHG7UDQVDFWLRQ
Transaction bisa saja berisi beberapa subtransaction. Top-level transaction bisa bercabang
membentuk “ anak” yang bekerja parallel satu sama lainnya, pada processor yang berbeda,
untuk meningkatkan peformansi atau penyederhanaan pemrograman.

,PSOHPHQWDVL

3ULYDWH:RUNVSDFH
Secara prinsip pada implementasi ini, ketika process mulai sebuah transaction, process
tersebut diberi sebuah SULYDWHZRUNVSDFH Hanya index file yang dicopy-kan ke dalam private
workspace. Index adalah blok dari data berkaitan dengan letak setiap file pada disk blocks.
Ketika file block dimodifikasi, copy dari block dibuat dan alamat dari copy dimasukkan ke
dalam index. Kemudian block dapat di-update tanpa mempengaruhi yang aslinya.

*DPEDU3ULYDWH:RUNVSDFH

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
58
Distributed System and Inter-Operability
__________________________________________________________________________________________

:ULWHDKHDG/RJ,QWHQWLRQ/LVW
Dengan metoda ini file dimodifikasi di tempat, tetapi sebelum block file diubah, sebuah
record ditulis lebih dahulu ke writeahead log pada stable storage. Record tersebut berisi
transaction yang membuat perubahan, file dan block yang diubah dan nilai lama dan baru.
Hanya setelah log ditulis dengan sukses, maka kemudian perubahan dibuat pada file. Log
record ditulis sebelum dieksekusinya statement yang berada di dalam transaction.


*DPEDU&RQWRK:ULWHDKHDG/RJ


7ZR3KDVH&RPPLW3URWRFRO
Dalam system terdistribusi, FRPPLW dari sebuah WUDQVDFWLRQ memerlukan kerjasama dari
banyak processor pada mesin yang berbeda. Pada protokol ini salah satu process sebagai
coordinator dan yang lain sebagai subordinate. Jika semua process yang dipersiapkan
(prepared) commit, maka transaction menjadi commit. Jika salah satu atau lebih process tidak
commit maka transaction di batalkan.



*DPEDU7ZRSKDVH&RPPLW3URWRFRO


&RQFXUUHQF\&RQWURO
Suatu mekanisme diperlukan untuk menjaga agar satu transaction dengan transaction lainnya
saling tidak mempengaruhi satu sama lainnya ketika beberapa transactions tertsebut
dieksekusi secara simultan pada process yang berbeda pada processor yang berbeda.

/RFNLQJ 3HQJXQFLDQ 
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
59
Distributed System and Inter-Operability
__________________________________________________________________________________________

Pertama-tama process harus mengunci file sebelum process membaca (read) atau menulis
(write) sebuah file sebagai bagian dari sebuah operasi transaction. Locking dapat dilakukan
dengan menggunakan sebuah VLQJOHFHQWUDOL]HGORFNPDQDJHU, atau dengan sebuah ORFDOORFN
PDQDJHU pada setiap mesin untuk pengaturan local file.,

Lock manager memelihara daftar file yang terkunci dan menolak semua usaha untuk
mengunci file yang sudah terkunci.
Kunci (lock) normalnya diperoleh dan dilepas oleh transaction system dan tidak memerlukan
aksi dari programmer. Jika read lock aktif pada sebuah file, maka read lock lainnya pada file
tersebut diijinkan. Read lock digunakan untuk menjaga agar file tidak berubah. Sedang jika
write lock aktif, maka write lock lainnya pada file tersebut tidak diijinkan.

2SWLPLVWLF&RQFXUUHQF\&RQWURO
Ide algoritma ini adalah “ terus maju dan kerjakan apa saja yang diinginkan tanpa
memperhatikan apa yang dikerjakan oleh operasi yang lain. Jika ada masalah, selesaikan nanti
saja” .

Yang dikerjakan algoritma ini adalah menjaga track dari file yang telah dibaca dan ditulis.
Pada titik FRPPLWWLQJ, algoritma menguji semua transaction yang lain untuk melihat jika ada
bagian file-nya berubah sejak transaction dimulai. Jika demikian, transaction aborted. Jika
tidak transaction menjadi committed.

7LPHVWDPSV
Pada metoda ini concurrency control dilakukan dengan menandai setiap transaction dengan
sebuah timestamp pada saat BEGIN_TRANSACTION. Timestamp harus dijamin unik untuk
setiap transaction. Ketika process mencoba mengakses sebuah file, maka timestamp operasi
read dan write dari file tersebut akan lebih rendah (lebih tua) daripada timestamp transaction
yang sedang berlangsung. Jadi transaction dikerjakan sesuai dengan urutannya. Transaction
dengan timestamp yang lebih rendah yang dikerjakan lebih dahulu.

'HDGORFNV
Kondisi deadlock terjadi ketika beberapa process berebut untuk mengakses resource yang
sama. Ada beberapa strategi untuk mengatasi deadlocks :
• Ostrich algorithm : abaikan masalah, anggap deadlock tidak ada.
• Detection : biarkan deadlock terjadi, deteksi dan kemudian mencoba mengatasinya
• Prevention : membuat secara structural deadlock tidak mungkin terjadi
• Avoidance : hindari deadlock dengan mengalokasikan resource secara hati-hati.

'HDGORFN'HWHFWLRQ
Ketika deadlock dideteksi pada konvensional operating system, cara mengatasinya adalah
dengan “ membunuh” satu atau lebih process. Ketika deadlock dideteksi pada system
berdasarkan atomic transaction, cara mengatasinya dengan membatalkan (aborting) satu atau
lebih transaction. Salah satu metoda deadlock detection adalah Centralized Deadlock
Detection.
&HQWUDOL]HG'HDGORFN'HWHFWLRQ

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
60
Distributed System and Inter-Operability
__________________________________________________________________________________________

Setiap mesin memiliki dan memelihara resource graph untuk process dan resource miliknya.
Koordinator memiliki dan memelihara resource graph keseluruhan system. Ketika coordinator
mendeteksi adanya siklus dalam resource graph berarti telah terjadi adanya deadlock, untuk
mengatasinya coordinator “ membunuh” salah satu process. Metoda ini dapat mengakibatkan
IDOVHGHDGORFN Contoh dapat dilihat gambar dibawah ini.

*DPEDU&HQWUDOL]HG'HDGORFN'HWHFWLRQ

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
61
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%;,,

)DXOW7ROHUDQFH






&RPSRQHQWV)DXOWV
Sistem dikatakan gagal (fail) apabila tidak mampu memenuhi spesifikasi tekniknya. Sistem
Komputer dapat gagal karena IDXOW beberapa komponen seperti: processor, memory, I/O
device, cable atau software.

Fault dapat diklasifikasikan sebagai: transient, intermittent, permanent. 7UDQVLHQWIDXOW terjadi


sekali dan kemudian menghilang. Jika operasi diulangi, fault tidak muncul. ,QWHUPLWWHQWIDXOW
terjadi kemudian menghilang, lalu muncul lagi, lalu menghilang lagi, dst. Contohnya seperti
hubungan konektor yang loggar. 3HUPDQHQW IDXOW terjadi seterusnya sampai komponen yang
fault diperbaiki. Contoh chips terbakar, software bugs, disk head crash.

Tujuan perancangan dan pembuatan system fault-tolerance adalah menjamin bahwa system
secara keseluruhan mampu terus berfungsi secara benar meskipun fault terjadi. Jadi disini
tidak mensyaratkan individual komponen yang sangat reliable.

Rumus PHDQWLPHWRIDLOXUH


6\VWHP)DLOXUHV
Keandalan sistem (system reliability) sangat penting di dalam sebuah sistem terdistribusi
karena di dalam system tersebut terkandung sejumlah besar komponen dan kemungkinan
terjadinya kegagalan sangat besar.

Fault atau kesalahan suatu sistem dapat dibedakan menjadi: )DLOVLOHQW IDXOWV dan %\]DQWLQH
IDXOWV )DLOVLOHQW IDXOWV DWDX IDLOVWRS IDXOWV: sistem berhenti dan tidak memberikan respon
terhadap masukan yang ada. %\]DQWLQH IDXOWV : sistem terus bekerja meskipun IDXOW dan
memberikan hasil yang salah.

Sistem yang mempunyai sifat dalam kondisi normal bekerja akan memberikan respon
terhadapat input dalam waktu terbatas yang telah diketahui disebut sistem synchronous.
Sistem yang tak punya sifat seperti itu disebut sistem asynchronous. Sistem asynchronous
sangat sulit dikelola dibandingkan dengan synchronous.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
62
Distributed System and Inter-Operability
__________________________________________________________________________________________

3HQJJXQDDQ5HGXQGDQF\
Pendekatan umum fault tolerance (toleransi terhadap kegagalan) adalah menggunakan
redundancy. 3 jenis redundancy: LQIRUPDWLRQ UHGXQGDQF\ WLPH UHGXQGDQF\ dan SK\VLFDO
UHGXQGDQF\

,QIRUPDWLRQUHGXQGDQF\
Metoda ini menambahkan extra bit untuk membuat sedemikian hingga dapat merecovery
informasi yang telah rusak. Contoh Hamming code ditambahkan pada transmitted data.

7LPHUHGXQGDQF\
Sebuah operasi dilakukan dan kemudian jika diperlukan diulangi lagi. Contoh, penggunaan
atomic transaction. Jika transaction dibatalkan, proses tersebut dapat diulangi lagi tanpa
menimbulkan masalah. Metoda ini sangat bermanfaat jika fault-nya adalah transient atau
intermittent.

3K\VLFDOUHGXQGDQF\
Pendekatan ini menggunakan penambahan perangkat ekstra. Sebagai contoh ekstra processor
dapat ditambahkan ke system sehingga jika beberapa processor rusak maka system secara
keseluruhan masih dapat berfungsi dengan benar. Ada dua cara untuk mengelola ekstra
processor tersebut: DFWLYHUHSOLFDWLRQdan SULPDU\EDFNXS

)DXOW7ROHUDQFH'HQJDQ0HQJJXQDNDQ$FWLYH5HSOLFDWLRQ
Pada teknik ini semua processor/device digunakan sepanjang waktu dan setiap device
memiliki replikasinya masing-masing sehingga dapat menyembunyikan fault dengan penuh.

*DPEDU&RQWRK$FWLYH5HSOLFDWLRQ

Gambar 12.1 menunjukkan sinyal melalui device A,B,C secara berurutan. Setiap device
memiliki 3 replikasi. Dan setiap replikasi diikuti sebuah voter. Setiap voter memiliki 3 input
dan satu output. Jika dua atau tiga input sama, maka output sama dengan input. Jika 3 input
berbeda hasil output tak terdefinisi.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
63
Distributed System and Inter-Operability
__________________________________________________________________________________________

Misalkan element A2 gagal. Setiap voter V1, V2 dan V3 mendapatkan 2 masukan identik
yang benar dan sebauh salah, tetapi Voter tetap menghasilkan output yang benar untuk
masukan tahap berikutnya. Sehingga pada dasarnya efek A2 tidak berpengaruh secara
keseluruhan system.

)DXOW7ROHUDQFH'HQJDQ0HQJJXQDNDQ3ULPDU\%DFNXS
Pada metoda ini setiap saat hanya ada satu server sebagai primary yang bekerja. Jika primary
server gagal maka backup server akan mengambil alih.


*DPEDU&RQWRK3ULPDU\%DFNXS3DGD2SHUDVL:ULWH

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
64
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%;,,,

'LVWULEXWHG6KDUHG0HPRU\






&RQVLVWHQF\0RGHO
Di dalam sistem Distributed Shared Memory terdapat banyak copy dari suatu file pada
berbagai mesin / computer yang berbeda yang hanya dapat berkomunikasi dengan
mengirimkan message melalui jaringan yang lambat (dibandingkan dengan kecepatan
memori). Timbul masalah bagaimana meng-update copy dengan tetap menjaga semua copy
dalam computer yang berbeda tetap konsisten. Sehingga diperlukan Consistency Model.

Consistency Model pada dasarnya adalah : kontrak antara software dan memory. Jika
software setuju mematuhi aturan-aturan tertentu, maka memori berjanji untuk bekerja dengan
benar. Jika software melanggar aturan-aturan tersebut maka kebenaran operasi memori tidak
lagi dapat dijamin.

6WULFW&RQVLVWHQF\
Kondisi : “ setiap pembacaan lokasi memory x akan mengembalikan (menghasilkan bacaan)
nilai yang disimpan oleh operasi penulisan yang paling akhir pada lokasi memory x” . Definisi
tersebut mensiratkan perlunya suatu DEVROXWHJOREDOWLPH

Contoh:
W(x)a dan R(y)b, berarti tulis ke x dengan nilai a dan baca y dengan mengembalikan nilai b.

(a) Strictly consistent memory

P1: W(x)1
P2: R(x)1

(b) Not strictly consistent memory

P1: W(x)1
P2: R(x)0 R(x)1

Pada contoh (b) P2 membaca memori hanya beberapa saat (mungkin 1 nanosecond) setelah
penulisan dan mendapatkan nilai 0, pembacaan berikutnya menghasilkan 1.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
65
Distributed System and Inter-Operability
__________________________________________________________________________________________

Jika memory memenuhi strictly consistent, semua penulisan segera tampak oleh semua
process dan sebuah absolute global time dipertahankan. Model consistency ini merupakan
model pemrogramman yang ideal.


6HTXHQWLDO&RQVLVWHQF\
Kondisi : “ The result of any (sembarang) execution is the same as if the operations of all
processors were executed in some sequential order, and the operations of each individual
processor appear in this sequence in the order specified by its program” .

Ketika beberapa process running secara parallel pada mesin-mesin yang berbeda, setiap valid
interleaving dapat diterima, tetapi semua process harus melihat urutan yang sama dari
PHPRU\ UHIHUHQFHV. Valid interleaving dapat berupa urutan interleaving apa saja asalkan
semua process setuju terhadap urutan semua operasi pada shared memory.

Kondisi yang tidak mengikuti sequentially consistent memory sbb.: sebuah memory dimana
sebuah process melihat sebuah interleaving dan process yang lain melihat interleaving yang
berbeda.

Contoh dua hasil yang mungkin dari running program yang sama :

(a) P1 : W(x)1 (b) P1: W(x)1


P2 : R(x)0 R(x)1 P2: R(x)1 R(x)1

Sequentially consistent memory tidak menjamin bahwa hasil pembacaan merupakan nilai
yang ditulis oleh process lain dalam waktu satu ns lebih awal, satu us lebih awal atau satu
menit lebih awal.

&DXVDO&RQVLVWHQF\
Memory harus mematuhi kondisi: “ Writes that are potentially causally related must be seen
by all process in the same order. Concurrent writes may be seen in a different order on
different machines” .

Jika event B disebabkan atau dipengaruhi oleh event A yang lebih awal, maka causality
mensyaratkan bahwa setiap mesin lainnya pertama-tama melihat A lalu kemudian melihat B
dan juga semua mesin lainnya melihat sequence event yang memenuhi causality pada urutan
yang sama..

Jika dua process secara spontan dan simultan menulis dua variable, kedua process tersebut
tidak berhubungan secara causal. Jika terdapat event pembacaan yang kemudian diikuti
penulisan, kedua event tersebut potensial berhubungan secara causal. Operasi yang tidak
berhubungan secara causal disebut FRQFXUUHQW

Contoh berikut sequence diperbolehkan oleh causally consistent memory, tetapi tak
diperbolehkan oleh sequentially consistent memory atau strictly consistent memory. Disini
penulisan W(x)2 dan W(x)3 adalah concurrent sehingga tidak diperlukan bahwa semua
process melihat mereka pada urutan yang sama.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
66
Distributed System and Inter-Operability
__________________________________________________________________________________________

P1 : W(x)1 W(x)3
P2 : R(x)1 W(x)2
P3 : R(x)1 5 [ 5 [ 
P4 : R(x)1 5 [ 5 [ 

Contoh berikut menunjukkan suatu sequence yang melanggar causal memory:


P1 : W(x)1
P2 : R(x)1 W(x)2
P3 : 5 [ 5 [ 
P4 : 5 [ 5 [ 

W(x)2 secara potensial tergantung dengan W(x)1

Contoh berikut menunjukkan sequence yang benar menurut causal memory :

P1 : W(x)1
P2 : W(x)2
P3 : 5 [ 5 [ 
P4 : 5 [ 5 [ 

W(x)1 dan W(x)2 merupakan event penulisan yang concurrent.

35$0&RQVLVWHQF\
Kondisinya: “ Writes done by a single process are received by all other processes in the order
in which they were issued, but writes from different processes may be seen in a different
order by different processes “ .

Pada model ini, semua penulisan (write) yang dibangkitkan oleh process yang berbeda
merupakan operasi yang concurrent.

Contoh valid sequence menurut PRAM consistency tetapi bukan menurut causal consistency :

P1 : W(x)1
P2 : R(x)1 W(x)2
P3 : 5 [ 5 [ 
P4 : 5 [ 5 [ 

Meskipun W(x)2 secara potensial tergantung dengan W(x)1.


:HDN&RQVLVWHQF\

Sifatnya:
1. Accesses to synchronization variables are sequentially consistent.
2. No access to synchronization variables is allowed to be performed until all previous writes
have completed everywhere.
3. No data access (read or write) is allowed to be performed until all previous access to
synchronization variables have been perforemed.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
67
Distributed System and Inter-Operability
__________________________________________________________________________________________

Sinkronisasi sebelum pembacaan shared data dapat menjamin process mendapatkan nilai yang
paling akhir. Sinkronisasi dikatakan telah dilakukan bila semua shared variable telah di-
update.

Contoh valid sequence menurut weak consistency. Pada contoh ini process P1 melakukan dua
event write dan kemudian disinkronisasikan (ditandai huruf S). Jika P2 dan P3 belum
disinkronisasikan , maka tak ada jaminan urutan event penulisan tersebut akan dilihat sama.

P1 : W(x)1 W(x)2 S
P2 : 5 [ 5 [ 6
P3 : 5 [ 5 [ 6

Contoh sequence yang tak valid menurut weak consistency :

P1 : W(x)1 W(x)2 S
P2 : S R(x)1

Disini P2 telah disinkronisasi, berarti memorynya telah di-up-date, sehingga ketika membaca x ia
harus mendapatkan nilai 2.

5HOHDVH&RQVLVWHQF\
Model ini memiliki dua jenis variabel sinkronisasi yaitu DFTXLUH dan UHOHDVH. Acquire
digunakan untuk mengatakan pada system memori bahwa sebuah critical region akan
dimasuki. Release variable mengatakan bahwa critical region baru saja dilepaskan. Variabel
sinkronisasi tersebut dapat diimplementasikan pada opearsi-operasi tertentu.

Aturannya:
1. Before an ordinary access to a shared variable is performed, all previous acquires done ba
the process must have completed successfully.
2. Before a realease is allowed to be performed, all previous reads and writes done by the
process must have completed.
3. The acquire and release access must be processor consistent.

Contoh valid sequence menurut release consistency .

P1 : Acq(L) W(x)1 W(x)2 Rel(L)


P2 : Acq(L) R(x)2 Rel(L)
P3 : R(x)1

5LQJNDVDQ
&RQVLVWHQF\ 'HVFULSWLRQ
Strict Absolute time ordering of all shared access matters.
Sequential All processes see all shared access in the same order
Causal All processes see all causally related shared accesses in the same order
Processor PRAM consistency + memory coherence
PRTAM All processes see writes from each processor in the order they were
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
68
Distributed System and Inter-Operability
__________________________________________________________________________________________

issued. Writes from different processors may not always be seen in the
same order.
Weak Shared data can only be counted on to be consistent after a
synchronization is done.
Release Shared data are made consistent when a critical region is exited.
Entry Shared data are made consistent when a critical regeion is entered.

3DJH%DVHG'LVWULEXWHG6KDUHG0HPRU\
Dasar perancangan :
* address space dibagi ke dalam potongan-potongan, dimana potongan tersebut disebar ke
seluruh processor di dalam system.
* performansi dapat ditingkatkan dengan membuat replikasi potongan yang hanya bersifat
read.

*DPEDU&RQWRK3DJH%DVHG'LVWULEXWHG6KDUHG0HPRU\
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
69
Distributed System and Inter-Operability
__________________________________________________________________________________________

Ketika sebuah nonlocal memory word ditunjuk, potongan memory yang berisi word tersebut
diambil dari lokasinya saat ini dan diletakkan pada mesin yang membuat penunjukkan
tersebut. Jika memory word yang ditunjuk tak ada, akan menyebabkan SDJHIDXOW

Dengan kata lain SDJH berpindah tempat secara dinamik melalui jaringan berdasarkan
permintaan. Process dapat mengakses semua memory dengan menggunakan normal instruksi
read dan write, dan tidak sadar ketika page fault dan network transfer terjadi.

Akses remote data dideteksi dan dilindungi oleh Memory Management Unit (MMU).

Pencapaian Consistency
Ada dua pendekatan : update atau invalidation.

Pada pendekatan update, penulisan (write) diperbolehkan dikerjakan secara local, tetapi
alamat / address dari word yang telah termodifikasi dan nilai barunya di-broadcast secara
simultan ke semua cache lainnya. Setiap cache yang memegang word yang sedang di-update
melihat bahwa alamat nilainya telah dimodifikasi, sehingga ia meng-copy nilai baru dari bus
ke cache-nya.

Pada pendekatan invalidation, alamat dari word yang di-update di broadcast pada bus, tetapi
nilai barunya tidak. Ketika sebuah cache melihat salah satu word-nya diupdate, maka ia
menginvalid cache blok yang berisi word.

Hasil akhir dengan metoda ini adalah hanya satu cache memegang word yang sudah
termodifikasi. Metoda Page umumnya menggunakan pendekatan invalidation untuk mencapai
Sequential Consistency.

6KDUHG9DULDEOH'LVWULEXWHG6KDUHG0HPRU\
Metoda ini menggunakan share hanya variable dan data structure tertentu yang diperlukan
oleh lebih dari satu process. Memungkinkan untuk meng-update suatu variabel tanpa
mempengaruhi variable lainnya, dan bentuk fisik variabel pada page adalah kurang penting.

0XQLQ
Model ini didasarkan pada VRIWZDUHREMHFWsetiap object dapat ditempatkan pada page yang
terpisah dan MMU dapat digunakan untuk mendeteksi akses ke shared object.

Munin didasarkan pada implementasi software release consistency. Penulisan (write) ke


shared variable harus terjadi didalam critical region, pembacaan (read) dapat terjadi di dalam
atau di luar critical region. Ketika process keluar dari critical region, shared variable
dimodifikasi dan dijamin konsistensinya dan kemudian di-update ke semua mesin.

Munin membedakan tiga kelas variable: RUGLQDU\ YDULDEOHV VKDUHG GDWD YDULDEOHV
V\QFKURQL]DWLRQ YDULDEOHV Ordinary variable tidak dapat di-shared dan dapat dibaca dan
ditulis hanya oleh process yang membuatnya.Shared data variable tampak oleh process yang
lain dan tampak menurut sequentially consistent dan hanya dapat digunakan didalam critical

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
70
Distributed System and Inter-Operability
__________________________________________________________________________________________

region. Synchronization variable (seperti lock) hanya dapat diakses melalui suatu V\VWHP
VXSSOLHGDFFHVVSURFHGXUHV


*DPEDU&RQWRK2SHUDVL'DVDU0XQLQ

Disamping menggunakan release consistency, Munin juga menggunakan teknik yang lain
untuk meningkatkan performansinya. Misalkan mengklasifikasikan shared variable di dalam
salah satu dari empat kategori : UHDGRQO\PLJUDWRU\ZULWHVKDUHGGDQFRQYHQWLRQDO


0LGZD\

Konsistensi dipertahankan oleh semua process yang membutuhkan akses shared variable dan
data structure yang dikerjakan di dalam critical region/section. Setiap critical section dijaga
oleh variabel sinkronisasi khusus, umumnya ORFN Setiap shared variable yang diakses di
dalam critical section harus secara eksplisit dihubungkan dengan lock dari critical section
tersebut. Dengan cara ini, ketika sebuah critical section dimasuki atau keluar, Midway tahu
secara persis shared variable yang mana yang akan diakses atau telah diakses.

Midway mendukung tiga buah consistency protocol : entry, release dan processor. Baik pada
Munin maupun Midway, programmer harus menyediakan informasi variabel yang mana yang
akan dishared dan yang tidak.


2EMHFW%DVHG'LVWULEXWHG6KDUHG0HPRU\
Sebuah REMHFWadalah sebuah SURJUDPPHUGHILQHGHQFDSVXODWHGGDWDVWUXFWXUH
Object terdiri dari : internal data/state, object state dan procedure yang disebut dengan
PHWKRGVatau RSHUDWLRQ.

Untuk mengakses internal state, program harus meminta salah satu method. Method dapat
mengubah internal state serta mengembalikan state. Sifat tersebut disebut dengan LQIRUPDWLRQ
KLGLQJ

Process pada berbagai mesin VKDUHsebuah abstract space yang berisi dengan VKDUHGREMHFWV.
Lokasi dan manajemen object ditangani secara otomatis oleh UXQWLPHV\VWHP Setiap process
dapat meminta sembarang object tanpa memperhatikan dimana process dan object berada.
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
71
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU2EMHFW%DVHG'LVWULEXWHG6KDUHG0HPRU\

Keuntungan metoda ini dibandingkan metoda sebelumnya :


1. Lebih modular
2. Implementasi lebih fleksibel.
3. Sinkronisasi dan akses dapat diintegrasikan bersama-sama secara baik.

















___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
72
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%;,9

6HFXULW\







Seperti yang telah diketahui pada umumnya bahwa protocol TCP/IP secara GH IDFWR
merupakan standar untuk RSHQ V\VWHP GDWD FRPPXQLFDWLRQ dan LQWHURSHUDELOLW\ Karena itu
disini akan diuraikan VHFXULW\di dalam lingkungan TCP/IP.


3HUOLQGXQJDQ7HUKDGDS,QIUDVWUXNWXU
6HFXULW\XQWXN+RVWGDQ$SOLNDVLQ\D
Perlindungan terhadap semua ancaman dengan hanya berdasarkan Host sangat sulit
diterapkan. Untuk melindungi infrastruktur kita harus menerapkan perlindungan/security
berdasarkan OD\HU. Kita seharusnya membangun pertahanan yang sesuai yang berada di dalam
sistem sehingga penyusup yang mungkin bisa mengakses salah satu bagian dari sistem tidak
akan secara otomatis dapat mengakses bagian lain dari sistem tersebut.

Akses terhadap host yang berisi informasi rahasia membutuhkan pengontrolan yang hati-hati.
Host di dalam sistem jaringan kita sebaiknya diinventarisir dan dilakukan klasifikasi jenis
perlindungan atau security yang sesuai.

1HWZRUN6HFXULW\
Tujuan dari network security adalah penyediaan availability, integrity dan confidentiality.
Atau dengan kata lain network security mempunyai tiga karakteristik yaitu availability,
integrity dan confidentiality. Sistem dan lingkungan yang berbeda akan berbeda pula dalam
penekanan pada setiap dari ketiga karakteristik tersebut.

Sebagai contoh Internet Service Provider (ISP) lebih menaruh perhatian pada confidentiality
dan integrity. Untuk lembaga keuangan seperti perbankan menekankan pada semua ketiga
karakteristik tersebut, tetapi dengan tekanan khusus pada aspek integrity dari data yang
dipertukarkan.

Availability
Availability menjamin bahwa informasi dan layanan dapat diakses dan berfungsi dengan
benar (DFFHVVLEOHDQGIXQFWLRQDO) pada saat dibutuhkan.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
73
Distributed System and Inter-Operability
__________________________________________________________________________________________

Untuk menyediakan jaringan dengan availability yang tinggi, maka harus dijamin bahwa
security proses adalah handal (UHOLDEOH) dan responsif. Sistem dan software termasuk sistem
security yang modular perlu saling LQWHURSHUDEOH.

Sistem yang mempunyai availability yang tinggi mempunyai karakteristik antara lain
mempunyai MTBF (0HDQ7LPH%HWZHHQ)DLOXUH) yang panjang dengan dukungan UHGXQGDQW
SRZHUVXSSO\ dan KRWVZDSSDEOHPRGXOH.

Integrity
Integrity (keutuhan) menjamin bahwa informasi atau software adalah lengkap, akurat dan
otentik. Dengan integrity orang atau proses yang tak berhak tak bisa membuat perubahan pada
sistem. Untuk QHWZRUN LQWHJULW\ kita perlu menjamin bahwa PHVVDJH yang diterima adalah
sama denganPHVVDJHyang dikirim. Isi dari PHVVDJH harus lengkap dan tak dimodifikasi, dan
link antara sumber dan tujuan node valid. &RQQHFWLRQ LQWHJULW\ dapat disediakan oleh
FU\SWRJUDSK\ dan URXWLQJFRQWURO.

Confidentiality
Confidentiality (kerahasiaan) melindungi informasi sensitif dari penyingkapan/pengaksesan
yang tak berhak. Cryptography dan access control digunakan untuk melindungi kerahasiaan.
Usaha penerapan perlindungan kerahasiaan tergantung pada sensitivitas dari informasi dan
kemungkinan sifat pengamat atau penyusup.

$FFHVV&RQWURO
Access Control adalah proses pembatasan hak untuk penggunaan sumber-sumber sistem. Ada
tiga jenis control untuk pembatasan akses:
$GPLQLVWUDWLYHFRQWUROberdasarkan kebijakan organisasi.
3K\VLFDO FRQWURO  misalkan pembatasan akses ke node jaringan, perlindungan pengkabelan
jaringan, dan sebagainya.
/RJLFDOFRQWUROberdasarkan DFFHVVFRQWUROOLVWFRPPXQLFDWLRQSURWRFROGDQFU\SWRJUDSK\

$FFHVV FRQWURO berdasarkan pengujian identitas (DXWKHQWLFDWLRQ) dan kemudian penjaminan


hak akses berdasarkan identitas (DXWKRUL]DWLRQ). Akses dapat dijaminkan kepada orang, mesin,
layanan atau program.

Authentication
Authentication adalah pengujian identitas yang diklaim oleh pemakai, proses atau device.
Authentication menjamin hak akses berdasarkan identitas. Confidentiality dan integrity tak
akan berlangsung bila identitas pemakai data tersebut tidak lolos uji.

Tingkatan Authentication yang diperlukan untuk sebuah system ditentukan oleh kebutuhan
keamanan (security) yang diperlukan oleh organisasi. Sebagai contoh transaksi keuangan
sangat membutuhkan Authentication. Contoh lemah bentuk Authentication adalah
penggunaan IP address untuk menentukan identitas.

Faktor Authentication adalah sebagai berikut:


:KDW D 3HUVRQ .QRZV . Contohnya adalah passwords dan Personal Identification Numbers
(PIN).

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
74
Distributed System and Inter-Operability
__________________________________________________________________________________________

:KDW D 3HUVRQ +DV Contohnya adalah hardware atau software token seperti smart card,
SecureID.
:KDWD3HUVRQ,VSebagai contoh misalnya biometric Authentication.
Sistem yang sangat membutuhkan Authentication membutuhkan minimal dua factor tersebut
di atas.

Saat ini sudah tersedia beberapa protocol untuk keperluan jaringan (network) Authentication
seperti : TACACS+ ( Terminal Access Controller Access System), Kerberos dan RADIUS
(Remote Access Dial In User Service). TACACS+ mendukung banyak protocol seperti IP,
AppleTalk, X.25 PAD, NetBIOS. RADIUS adalah standard terbuka yang didukung banyak
vendor. RADIUS adalah pilihan terbaik untuk linkungan jaringan beraneka ragam. RADIUS
menggunakan UDP dan hanya bekerja pada jaringan IP. Sedangkan Kerberos dapat
digunakan untuk QHWZRUNDXWKHQWLFDWLRQ dan KRVWDXWKHQWLFDWLRQ.

Kekuatan dari teknik yang digunakan untuk pengujian sebuah identitas tergantung pada
sensitivitas dari informasi yang diakses dan kebijakan organisasi penyedia akses tersebut.

Sebuah router dapat dibuat sedemikian rupa sehingga satu sama lain bisa dapat saling
melakukan Authentication. Authentication sebuah router menjamin bahwa updating routing
berasal dari sumber yang diketahui dan tidak dimodifikasi atau rusak.

$XWKRUL]DWLRQ
$XWKRUL]DWLRQ adalah hak yang dijamin oleh suatu utilitas agar mampu mengakses layanan
atau informasi untuk identitas khusus atau sekelompok identitas. Untuk system yang sangat
tinggi tingkat keamanannya, default otorisasinya adalah tidak dapat akses. Sedangkan untuk
system publik, otorisasinya adalah sebagai tamu (guest) atau pemakai anonym. Authentication
adalah kunci untuk menjamin bahwa hanya pemakai yang telah mempunyai hak (authorized
user) yang dapat mengakses informasi.

$FFRXQWLQJ
$FFRXQWLQJ adalah rekaman dari aktivitas jaringan dan akses sumber informasi. Dari
perspektif keamanan, accounting dapat digunakan untuk pendeteksian dan analisa kejadian
yang terkait dengan keamanan jaringan.


.HDPDQDQSDGD-DULQJDQ7&3,3
Jaringan Internet tidak menjamin adanya privasi atau integritas data. Sehingga data perlu
dienkripsi sebelum ditransmisikan dan di-dekripsi saat diterima di penerima.

&U\SWRJUDSK\
&U\SWRJUDSK\ adalah teknik penulisan dan pembacaan kode atau sandi rahasia (FLSKHU).
Cryptography digunakan untuk pengamanan informasi agar informasi tetap privasi dan untuk
meng-authenticate identitas pengirim atau penerima informasi. &U\SWRJUDSK\ dapat juga
menyediakan keutuhan (LQWHJULW\) informasi, sebab ia hanya mengijinkan orang atau proses
yang berhak yang bisa mengakses informasi, dan dapat mendeteksi kerusakan atau perubahan
informasi asli.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
75
Distributed System and Inter-Operability
__________________________________________________________________________________________

Ada tiga kategori fungsi FU\SWRJUDSK\ yaitu: V\PPHWULF NH\ DV\PPHWULF NH\ dan KDVK
IXQFWLRQ. Hampir kebanyakan dari algoritma fungsi tersebut merupakan pengetahuan umum
dan telah teruji oleh banyak ahli. Kekuatan keamanan dari kategori tersebut tergantung pada
kekuatan algoritma dan kekuatan NH\ (kunci)..H\ adalah sebuah deretan yang digunakan oleh
proses matematik dari penulisan kode (HQFKLSHULQJ) dan penguraian kode (GHFLSKHULQJ)
informasi. +DVKIXQFWLRQ tidak menggunakan NH\.

Enkripsi (HQFU\SWLRQ) adalah sebuah proses pengubahan bentuk informasi asli dalam bentuk
text atau numerik (disebut SODLQWH[W) ke dalam bentuk yang tak dimengerti (disebut FLSKHUWH[W)
menggunakan algoritma konversi yang terdefinisi baik (dan reversible) dan menggunakan
sebuah SUHGHILQHG ELW YDOXH (yang disebut NH\). .H\ menyediakan sebuah nilai awal untuk
algoritma enkripsi. Proses kebalikan enkripsi disebut dengan dekripsi.

Untuk mempertukarkan pesan yang terenkripsi, pihak yang terlibat harus setuju pada
algoritma yang akan digunakan dan kunci untuk algoritma tersebut.

6\PPHWULF&U\SWRJUDSK\
Symmetric Cryptography menggunakan kunci yang sama untuk proses enkripsi dan dekripsi
informasi. Setiap pasang pemakai menggunakan bersama-sama sebuahNH\untuk pertukaran
pesan/message. Dan mereka harus tetap menjaga kerahasiaan key yang digunakan.

Contoh Symmetric Cryptography:


• Data Encryption Standard (DES)
• Triple DES (3DES)
• International Data Encryption Algorithm (IDEA)
• Rivest Cipher 4 (RC4)
Karakteristik algoritma symmetric Cryptography adalah cepat dan dapat mengenkripsi
banyak informasi dalam waktu yang singkat.

$V\PPHWULF&U\SWRJUDSK\
$V\PPHWULF NH\ FU\SWRJUDSK\ dikenal juga sebagai SXEOLF NH\ FU\SWRJUDSK\. Algoritma ini
menggunakan sepasang NH\ yang secara matematik saling terkait, tetapi diberikan hanya satu
NH\. Satu NH\ digunakan untuk enkripsi dan NH\ yang lain untuk dekripsi. Salah satu kunci
tetap dijaga rahasia danNH\ yang lain di distribusikan secara umum.

Pengirim message/pesan dapat menggunakan SXEOLFNH\ milik penerima untuk mengenkripsi


message dan penerima menggunakan SULYDWHNH\ untuk mendekripsi message.

Beberapa contoh algoritma asymmetric key :


• Diffie –Hellman
• Digital Signature Algorithm (DSA)
• Elliptic Curve Cryptosystem (ECC)

Algoritma asymmetric key sangat membutuhkan perhitungan yang sangat intesif, juga tidak
praktis untuk digunakan mengenkripsi dan mengdekripsi data/informasi dalam jumlah besar.

+DVK)XQFWLRQ

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
76
Distributed System and Inter-Operability
__________________________________________________________________________________________

+DVKIXQFWLRQdigunakan untuk memadatkan message yang mempunyai panjang variable ke


dalam sebuah kode yang panjangnya tetap (disebut sebagai KDVK atau PHVVDJH GLJHVW).
Algoritma yang berbeda akan menghasilkan panjang KDVK yang berbeda pula. Contoh KDVK
IXQFWLRQ:
• Message Digest 5 (MD5)
• Secure Hash Algorithm (SHA)
• Haval

+DVK adalah merupakan sebuah FU\SWRJUDSKLF FKHFNVXP yang digunakan untuk penyediaan
sebuah LQWHJULW\ FKHFN pada message. Pengirim menghitung KDVK message aslinya dan
mengirimkannya dengan message yang telah terenkripsi. Penerima mendekripsi message dan
juga menghitung KDVKnya. Jika KDVK dari pengirim sama dengan KDVK di penerima, maka
penerima akan yakin bahwa message yang diterima adalah lengkap dan tak berubah.

Penghitungan KDVK dari message dan enkripsi KDVK dengan SULYDWH NH\ pengirim dapat
membentuk sebuah tanda tangan digital (GLJLWDO VLJQDWXUH). Pengirim menempelkan tanda
tangan digital ke message. Penerima memisahkan tanda tangan digital dan
mendekripsikannya dengan SXEOLF NH\ pengirim. +DVK message yang diterima kemudian
dihitung, dan jika sama dengan hash yang dikirim berarti message yang diterima adalah
otentik dari pengirim.


$SSOLFDWLRQ/D\HU6HFXULW\
$SSOLFDWLRQOD\HUVHFXULW\menyediakan keamanan HQGWRHQG dari aplikasi pada satu host ke
aplikasi pada host lainnya. Skema ini tidak memperhitungkan mekanisme transport
dibawahnya. Layer ini menyediakan secara lengkap persyaratan keamanan, kelengkapan,
kerahasiaan. Beberapa contoh DSSOLFDWLRQOD\HUVHFXULW\ seperti : 3UHWW\*RRG3ULYDF\ (PGP)
dan 6HFXUH+\SHU7H[W7UDQVSRUW3URWRFRO(S-HTTP).

3UHWW\*RRG3ULYDF\ (PGP)
Digunakan untuk privasi dan tanda tangan digital dari message email. PGP menyediakan end-
to-end security dari pengirim ke penerima.

6HFXUH+\SHU7H[W7UDQVSRUW3URWRFRO 6+773 
S-HTTP dirancang untuk menyediakan keamanan aplikasi Web. S-HTTP merupakan protocol
keamanan berdasarkan message artinya message dapat diamankan secara individual. S-HTTP
menggunakan V\PPHWULFNH\ dan menggunakan RXWRIEDQGFRPPXQLFDWLRQ.


7UDQVSRUW/D\HU6HFXULW\
Skema ini menyediakan keamanan SURFHVVWRSURFHVVantara host. Hampir kebanyakan skema
ini dirancang untuk TCP.

6HFXUH6RFNHWV/D\HU(SSL) dan 7UDQVSRUW/D\HU6HFXULW\ (TLS)


SSL sangat luas dipakai di Internet untuk transaksi berdasarkan Web seperti pengiriman data
FUHGLW FDUG SSL dapat juga digunakan untuk protocol lainnya seperti Telnet, FTP, LDAP,
IMAP dan SMTP tetapi ini tak umum dipakai. TLS adalah terbuka baerdasarkan standard
IETF pada SSL 3.0. TLS didefinisikan di RFC 2246, RFC 2712, RFC 2817, RFC 2818.
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
77
Distributed System and Inter-Operability
__________________________________________________________________________________________

SSL dan TLS tidak saling LQWHURSHUDEOH. SSL dan TLS menyediakan keamanan untuk TCP
session tunggal. Server dan browser harus mampu mendukung salah satu SSL atau TLS untuk
membuat komunikasi Web yang aman.

6HFXUH6KHOO (SSH)
SSH menyediakan UHPRWH ORJLQ yang aman yaitu untuk keamanan Telnet session dan file
transfer. Protokol SSH menyediakan channel yang aman untuk VKHOO VHVVLRQ interaktif dan
WXQQHOOLQJ pada aplikasi TCP yang lain.

)LOWHULQJ
Packet filter dapat diimplementasikan pada router dan device layer 3 untuk mengontrol paket
apakah akan diblok atau diteruskan pada setiap interface-nya.

1HWZRUN/D\HU6HFXULW\
Skema ini dapat diterapkan untuk keamanan trafik untuk semua aplikasi atau SURWRFRO
WUDQVSRUWpada layer di atasnya.

,36HFXULW\3URWRFROV(IPSec)
Protokol ini dapat menyediakan DFFHVV FRQWURO DXWKHQWLFDWLRQ GDWD LQWHJULW\ dan
FRQILGHQWLDOLW\ untuk setiap paket IP antara dua network node yang saling berkomunikasi.
IPSec dapat digunakan antara dua host, antara sebuah gateway dan sebuah host atau antara
dua gateway.

Untuk implementasi IPSec tidak diperlukan modifikasi baik aplikasi dan protocol diatas
network layer dapat digunakan tanpa modifikasi. Hanya infrastruktur network layer yang
berubah seperti router, firewall dan di beberapa kasus diperlukan VRIWZDUHFOLHQW. IPSec secara
lengkap transparan dari sudut pandang HQGXVHU. Implementasi secara lengkap IPSec terdapat
pada RFC 2401. Protokol IPSec telah banyak didukung sangat luas oleh banyak vendor.

,36HF$UFKLWHFWXUH
IPSec menyediakan tiga fungsi utama:
• $XWKHQWLFDWLRQ, disediakan melalui protokol $XWKHQWLFDWLRQ +HDGHU (AH). AH
didefinisikan di RFC 2402
• $XWKHQWLFDWLRQ dan FRQILGHQWLDOLW\ (enkripsi), disediakan melalui protokol
(QFDSVXODWLQJ6HFXULW\3D\ORDG (ESP). ESP didefinisikan di RFC 2406.
• Pertukaran Key, disediakan secara otomatius melalui protokol ,QWHUQHW.H\([FKDQJH
(IKE) atau manual. IKE didefinisikan di RFC 2409.

IPSec menyediakan komunikasi yang aman antara dua HQGSRLQW yang disebut ,36HF SHHU.
Komunikasi dengan multiple IPSec dapat ada diantara dua peer, dengan setiap komunikasinya
mempunyai 6HFXULW\ $VVRFLDWLRQ (SA) yang terpisah. Apabila ada HQG KRVW pada SULYDWH
QHWZRUN yang terpisah ingin saling berkomunikasi, maka hanya router yang menghubungkan
SULYDWHQHWZRUN dengan SXEOLFQHWZRUN yang perlu mendukung IPSec.

IKE adalah protokol manajemen NH\ yang digunakan dalam IPSec untuk membuat channel
komunikasi yang aman dan otentik antara dua entitas dan untuk negosiasi SA dari IPSec.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
78
Distributed System and Inter-Operability
__________________________________________________________________________________________

Security Association (SA)


SA mendefinisikan bagaimana dua atau lebih pengguna IPSec akan menggunakan layanan
keamanan dari protocol keamanan (AH atau ESP) untuk berkomunikasi yang
direpresentasikan pada aliran data tertentu (SDUWLFXODU IORZ). SA berisi key rahasia yang
digunakan untuk melindungi data dalam sebuah aliran dan waktu hidupnya (OLIH WLPH). SA
bersifat uni-directional (satu arah) dan unik per VHFXULW\ SURWRFRO (AH atau ESP). SA
diidentifikasi oleh tiga parameter: VHFXULW\SDUDPHWHULQGH[(SPI), ,3GHVWLQDWLRQDGGUHVV dan
VHFXULW\SURWRFROLGHQWLILHU

IPSec mempunyai dua mode :


• transport mode : keamanan yang disediakan IPSec adalah end-to-end. Pada mode ini
hanya payload paket yang dienkripsi.
• tunnel mode: digunakan jika IPSec peer adalah bukan tujuan akhir IP traffic. Jadi
mode ini digunakan antara dua gateway atau antara sebuah gateway dengan sebuah
host. Pada mode ini keseluruhan paket IP dienkripsi.

)LOWHULQJ $FFHVV&RQWURO/LVWV 
Paket filter dapat diimplementasikan pada router dan device layer 3 untuk mengontrol sumber
dan tujuan IP address yang diperbolehkan untuk melewati gateway. 6WDQGDUGDFFHVVOLVW dapat
mem-filter pada VRXUFH DGGUHVV. Sedangkan H[WHQGHG DFFHVV OLVW dapat mem-filter protocol
ICMP, IGMP atau IP pada network layer.
'DWD/LQN/D\HU6HFXULW\
Skema ini bekerja berdasarkan SRLQWWRSRLQW seperti melalui sebuah OHDVHG OLQH atau IUDPH
UHOD\ SHUPDQHQW YLUWXDO FLUFXLW Perangkat hardware khusus ditambahkan pada setiap ujung
link untuk melakukan enkripsi dan dekripsi. Kalangan militer, pemerintah dan perbankan
sangat umum menggunakan pendekatan ini. Skema ini tidak sesuai untuk jaringan yang besar.
Keuntungan metoda ini yaitu penyusup tidak bisa menentukan alamat pengirim atau
penerima.

)LUHZDOO
)LUHZDOO umumnya ditempatkan pada batas network untuk membangun batas pinggir
keamanan (VHFXULW\). )LUHZDOO digunakan untuk melindungi LQWHUQDO QHWZRUN dari akses
eksternal yang tak diinginkan. )LUHZDOO juga dapat digunakan secara internal untuk
mengontrol akses jaringan pada spesifik bagian atau resources.

Ada tiga jenis ILUHZDOO yang tersedia saat ini, yaitu :


3DFNHW)LOWHU. Jenis ini melihat protokol, alamat atau informasi port dalam setiap paket dan
membuat keputusan apakah paket diteruskan atau tidak berdasarkan aturan tertentu. Contoh
jenis ini adalah $FFHVV&RQWURO/LVW (ACL) pada router.
3UR[\ 6HUYHUV. Jenis ini menggunakan aplikasi khusus untuk setiap layanan yang akan
diteruskan melalui firewall. Proxy menawarkan keamanan yang terbaik, tetapi pemakai harus
mempunyai sebuah aplikasi untuk setiap layanan/service yang akan diproses oleh firewall.
Jenis ini memiliki performansi terlambat dibandingkan jenis lainnya.
6WDWHIXO,QVSHFWLRQ Jenis ini menganalisa semua layer komunikasi, meng-ekstrak komunikasi
yang relevan dan informasi DSSOLFDWLRQVWDWHdan secara dinamik mempertahankan VWDWHdari
komunikasi dalam sebuah table.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
79
Distributed System and Inter-Operability
__________________________________________________________________________________________

Berikutnya akan kita bahas lebih detail tentang $FFHVV&RQWURO/LVW.

$FFHVV&RQWURO/LVW
Fungsi sebuah access control list akan tergantung pada konteks dimana ia digunakan. Sebagai
contoh, access list dapat :
• Mengontrol akses jaringan yang dihubungkan ke sebuah router atau mendifinisikan
jenis trafik tertentu yang diijinkan melewati ked dan dari jaringan.
• Membatasi isi updating routing yang di” iklankan” oleh berbagai macam protokol
routing.
• Melindungi router itu sendiri dengan pembatasan akses ke layanan/service seperti
SNMP dan Telnet.
• Mendifinisikan trafik yang menarik untuk routing 'LDORQ'HPDQG.
• Mendifinisikan fitur buffer dengan menentukan tingkat prioritas paket yang satu
terhadap yang lain.

Kriteria untuk penetuan aksi access list terhadap paket yang lewat dapat berdasarkan hanya
pada source address atau source dan destination address, tipe protocol, spesifikasi port atau
jenis layanan, atau jenis informasi lainnya yang umumnya berisi di dalam header layer 3 dan
layer 4.

Access list harus diterapkan pada interface pada router. Access list dapat diterapkan pada
salah satu trafik datang (LQERXQG) atau trafik keluar (RXWERQG) pada sebuah spesifik interface.
Kita dapat mempunyai sebuah access list per protocol, per interface, per direction/arah. Jadi
sebagai contoh, kita dapat memilikisebuah access list untuk trafik IP keluar dan satu buah lagi
access list untuk trafik IP masuk yang diterapkan pada interface yang sama.

Ada beberapa jenis access list untuk protokol IP , yaitu:


• 6WDQGDUG,3$FFHVV/LVW. Jenis ini dapat digunakan untuk mem-filter paket berdasarkan
VRXUFH,3DGGUHVV yang ada pada paket.
• ([WHQGHG,3$FHVV/LVW. Jenis ini dapat digunakan untuk mem-filter paket berdasarkan
VRXUFH (sumber) dan GHVWLQDWLRQ (tujuan) ,3 DGGUHVV yang ada pada paket bersama
dengan specific protocol, source dan destination port..
• /RFNDQG.H\ $FHVV /LVWDisebut juga dengan G\QDPLFDFFHVV OLVW dengan membuat
G\QDPLFHQWU\. Access list ini dapat membuat entry sementara pada access list setelah
user (pemakai) di otentifikasi.
• 5HIOH[LYH$FFHVV/LVWAccess list ini secara otomatis membuat dan menghapus entry
DFFHVV OLVW yang membolehkan trafik lewat berdasarkan IP session. 5HIOH[LYH DFFHVV
OLVW hanya mampu menangani aplikasi VLQJOHFKDQQHO
• &RQWH[WEDVHG $FHVV &RQWURO &%$&  Jenis ini dapat digunakan bersama dengan
berbagai macam aplikasi dan menyediakan tingkat keamanan yang lebih tinggi.
Keterbatasan CBAC hanya mampu menangani layanan yang aktif pada standard port.
Sebagai contoh trafik yang menuju Web server yang aktif pada port selain standard
http port (80) tak dapat dilindungi oleh CBAC.

1HWZRUN$GGUHVV7UDQVODWLRQ 1$7 
NAT adalah mekanisme yang dapat digunakan untuk mentranslasikan / merubah IP address di
dalam paket IP. Mekanisme tersebut dapat membuat suatu tempat (VLWH ) yang menggunakan

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
80
Distributed System and Inter-Operability
__________________________________________________________________________________________

IP address khusus (privat) dapat berkomunikasi dengan jaringan global Internet. Jaringan
yang menggunakan ,3 DGGUHVV khusus/privat tidak akan bisa berhubungan dengan jaringan
global Internet bila tanpa menggunakan translasi ,3DGGUHVV.

NAT beroperasi pada sebuah devais yang menghubungkan dua jaringan bersama-sama.
Umumnya satu network menggunakan ,3 DGGUHVV berdasarkan RFC 1918 (SULYDWH DGGUHVV)
sedangkan lainnya menggunakan ,3 DGGUHVV yang berlaku global. Mekanisme NAT
sebenarnya dirancang bukan untuk maksud VHFXULW\, tetapi dengan NAT akan membuat lebih
sulit para KDFNHU atau penyusup untuk mendapatkan sumber paket atau mendapatkanVRXUFH
atau GHVWLQDWLRQDGGUHVV aslinya. NAT diuraikan secera lengkap pada dokumen RFC 2663.













___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
81
Distributed System and Inter-Operability
__________________________________________________________________________________________

%$%;9

6WXGL.DVXV




$02(%$
3HQGDKXOXDQ

6HMDUDK

Amoeba berasal dari universitas Vrije, Amsterdam di Belanda tahun 1981, sebagai proyek
riset tentang komputasi terdistribusi dan paralel oleh Andrew S. Tanenbaum dan tiga orang
mahasiswa PhD, Frans kaashoek, Sape J. Mullender dan Robbert van Renesse. Protipe dari
riset ini dioperasikan pertama kalinya pada tahun 1983 dengan amoeba versi 1.0. Setelah
sukses dengan versi 3.0 yang didasarkan pada RPC, dengan Amoeba memungkinkan untuk
client di Tromso mengakses server di Amsterdam secara transparan dan begitu juga
sebaliknya.

Tujuan dari riset tersebut adalah untuk membangun sebuah sistem operasi terdistribusi yang
bersifat transparan. Perbedaan utama antara amoeba dengan sistem terdistribusi lainnya
adalah amoeba tidak memiliki konsep “ Home machine” ; Yaitu ketika user melakukanORJLQ,
maka dia langsung terhubung ke seluruh sistem. Dengan kata lain seluruh resource yang ada
dimiliki dan dimanejemen oleh sistem. Tujuan kedua dari Amoeba adalah untuk memberikan
sebuah sarana untuk melakukan pemprograman terdistribusi dan paralel.

$UVLWHNWXUVLVWHP

Amoeba didisain dengan dua asumsi :
a. Sistem terdiri dari CPU dalam jumlah besar
b. Setiap CPU memiliki memori sebesar 10 Mbit

*DPEDU$UVLWHNWXU6LVWHP$PRHED

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
82
Distributed System and Inter-Operability
__________________________________________________________________________________________

Pada gambar diatas, seluruh kemampuan komputasi dialokasikan pada satu atau lebih
SURFHVVRU SRRO yang terdiri dari beberapa CPU penting, masing-masing memiliki memori
lokal dan koneksi jaringan tersendiri. Pembagian memori kadang tidak diperlukan atau
kadang diharapkan untuk digunakan mengoptimalkan aliran message dengan melakukan
pengkopian memori ke memori demi kelancaran pengiriman message dalam jaringan.

Pool processor bukanlah milik user manapun. Ketika seorang user menuliskan command,
sistem operasi secara dinamis akan memilih satu atau lebih processor di mana dia akan
menjalankan command tersebut. Ketika command selesai dieksekusi, proses tersebut akan
dihentikan dan seluruh resource yang ada akan dikembalikan lagi ke pool, menunggu
command selanjutnya dari user yang berbeda. Jika terjadi kekurangan pool processor,
processor-processor individu akan dibagi berdasarkan waktu (WLPHVKDUH), dengan proses baru
diberikan pada processor pada beban kerja terendah.

Komponen kedua dari arsitektur Amoeba adalah terminal, yang merupakan gerbang user
untuk mengakses sistem. Tipe terminalnya merupakan sebuah X-terminal, yang terdiri dari
sebuah layar yang akan memetakan sejumlah besar bit dan sebuah mouse. Alternatifnya
adalah sebuah PC atau workstation yang menjalankan X windows dapat juga digunakan
sebagai terminal.

Sebuah pool processor terdiri dari sebuah board tunggal dengan sebuah koneksi jaringan
tanpa adanya keyboard, monitor, mouse dan power supply dapat berbagi dengan banyak
board lainnya.

Komponen lainnya dari arsitektur amoeba adalah server khusus seperti file server di mana
hardware dan softwarenya perlu dijalankan pada prosesor yang terpisah. Pada beberapa kasus,
server dapat saja diproses pada pool processor pada saat start up jika diperlukan.

Service adalah definisi abstrak dari apa yang dipersiapkan oleh server untuk para clientnya.
Definisi ini menjelaskan apa yang dapat diminta oleh seorang client dan apa hasilnya, tetapi
tidak menerangkan berapa banyak server yang akan bekerja sama untuk memberikan service
tersebut. Dengan cara ini, sistem memiliki mekanisme untuk memberikan pelayanan IDXOW
WROHUDQFH, karena adanya sejumlah server yang melakukan perkerjaan tersebut.

0LFURNHUQHO
Amoeba terdiri dari dua buah bagian dasar yaitu: sebuah microkernel yang dijalankan pada
setiap prosesor dan sekumpulan server yang memberikan fungsi sistem operasi yang paling
dasar.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
83
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU6WUXNWXU6RIWZDUH$PRHED

Microkernel bekerja pada seluruh mesin dalam sistem. Kernel yang sama dapat digunakan
pada pool processor, terminal-terminal (jika mereka adalah komputer, lebih dari X-terminal),
dan server-server khusus. Micro kernel memiliki 4 fungsi dasar yaitu:
1. memanejemen processes dan threads
2. memberikan dukungan manejemen memori level rendah
3. mendukung komunikasi
4. mengatasi I/O level rendah.
Meskipun sebuah process dengan sejumlah thread masih memiliki ruang address tunggal yang
berbagi dengan seluruh thread tersebut, secara logika setiap thread masih memiliki
registernya, counter programnya dan stacknya masing-masing. Penggunaan sejumlah thread
mungkin terjadi dalam sebuah file server di mana datangnya request diberikan kepada sebuah
thread terpisah untuk dijalankan. Thread tersebut bisa memulai pemprosesan request,
memblok antrian pada disk, kemudian melanjutkan pekerjaan. Dengan membagi server
menjadi sejumlah thread, setiap thread dapat menjadi sekuensial murni, terlebih jika dia
memblok antrian I/O.

Tugas kedua dari kernel adalah memberikan manajemen memori level rendah. Thread dapat
mengalokasikan dan memindahkan blok-blok memori (VHJPHQWV). Segment ini dapat dibaca
dan ditulis, dan dapat juga tempatkan atau dibuang dari ruang address dari process yang
dimiliki oleh thread tersebut.

Tugas yang ketiga adalah menangani LQWHUSURFHVV FRPPXQLFDWLRQ. Terdapat dua bentuk
komunikasi yang diberikan yaitu: komunikasi SRLQWWRSRLQW dan komunikasi grup.
Komunikasi point-to-point didasarkan pada pengiriman message oleh client ke pada server,
kemudian memblok diri sampai server mengirim balasan balik. Sedangkan pada komunikasi
grup, message dikirim dari sebuah sumber ke sejumlah tujuan. Kedua bentuk komunikasi
tersebut memberdayakan sebuah protokol khusus yang disebut FLIP, yaitu sebuah protokol
layer jaringan.

Tugas ke empat adalah memanejemen I/O level rendah di mana setiap perangkat I/O
terhubung dengan sebuah perangkat mesin. Jadi diperlukan sebuah driver didalam kernel yang
memanejemen seluruh I/O untuk perangkat tersebut.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
84
Distributed System and Inter-Operability
__________________________________________________________________________________________

$PRHED6HUYHU
Semua hal yang tidak dilakukan oleh kernel, akan dilakukan oleh Process server. Tujuannya
adalah untuk meminimalkan ukuran kernel dan meningkatkan fleksibilitas, sehingga kernel
dapat diubah dengan mudah dan sejumlah versi dapat dijalankan secara simultan untuk
populasi user yang berbeda-beda.

Amoeba didasarkan pada FOLHQW VHUYHU PRGHO. Client dituliskan oleh user sedangkan server
dituliskan oleh programer sistem. Sentral sampai ke disain seluruh software merupakan
konsep dari sebuah object, seperti sebuah tipe data abstrak. Setiap object terdiri dari beberapa
data yang terkelempok dengan operasi khusus yang terdefinisi. Object dimanejemen oleh
server. Ketika sebuah process membuat sebuah object, server yang mengatur object tersebut
mengembalikan kepada client sebuah FULSWRJUDSKLFDOO\ SURWHFWHG FDSDELOLW\ untuk object
tersebut. Semua object dalam sistem baik hardware maupun software, diberi nama, diproteksi
dan dimanejemen oleh capability. Contohnya adalah file, direktori, segment memori, tampilan
windows, processor, disk dan tape drive.



2EMHFW'DQ&DSDELOLW\3DGD$PRHED
Object diberi nama dan diproteksi dengan cara yang sama oleh ticket khusus yang disebut
dengan FDSDELOLW\. Untuk membuat sebuah object, sebuah client melakukan RPC dengan
server yang dikenalinya untuk menspesifikasikan keinginannya. Server tersebut kemudian
membuat object dan mengembalikan sebuah capability kepada client tersebut. Berikut format
capability dalam amoeba versi 5.2:


*DPEDU&DSDELOLW\3DGD$PRHED

Ketika client ingin melakukan operasi pada sebuah object, dia akan memanggil prosedur stub
yang akan membangun message berisikan cabability dari object dan kemudian memasukan ke
dalam kernel. Kernel mengekstrak ruang server port dari capability dan mencari dalam FDFKH-
nya untuk menentukan mesin yang akan ditempati oleh server. Jika port tidak ada dalam
cache, maka akan dicari dengan broadcasting. Port merupakan alamat logikal di mana server
dapat dihubungi. Server port diasosiasikan dengan sebuah server khusus atau kumpulan dari
server dan bukan sebuah mesin yang spesifik. Ruang object pada capability digunakan untuk
mengidentifikasi spesifik object dalam pertanyaan. Ruang ULJKW adalah bit yang memetakan
operasi apa saja yang dibolehkan oleh capability tersebut untuk dilakukan. Ruang FKHFN
digunakan untuk men-validasi capability. Capability dimanipulasi langsung oleh processes
user.

3URWHNVL2EMHFW
Ketika sebuah object dibuat, server akan mengambil sebuah ruang FKHFN random dan
menyimpannya pada capability baru dan di dalam tabelnya sendiri. Seluruh bit ULJKW dalam

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
85
Distributed System and Inter-Operability
__________________________________________________________________________________________

capability baru dikenali, dan merupakan merupakan owner capability yang dikembalikan lagi
kepada client.

*DPEDU*HQHUDVL6HEXDK5HVWULFWHG&DSDELOLW\'DUL2ZQHU&DSDELOLW\

Untuk membuat UHVWULFWHG FDSDELOLW\, client dapat memberikan kembali sebuah ke server,
dengan sebuah bit mask untuk right yang baru. Server mengambil ruang check original dari
tabelnya, meng-EXCLUSIVE OR-kannya dengan right baru, dan kemudian menjalankan
hasilnya menggunakan sebuah fungsi satu arah. Server kemudian membuat capability baru
dengan ruang object yang sama tetapi bit right yang baru dan hasil fungsi satu arah dalam
ruang check. Capability baru ini kemudian dikembalikan ke pemanggil. Client bisa
mengirimkan capability ini ke process lainnya, jika diinginkan, sebagaimana capability yang
diatur secara keseluruhan didalam ruang user. Pengertian ruang right berbeda untuk setiap
tipe object di mana operasi legal mereka sendiri juga bervariasi dari tipe object ke tipe object.

Ketika restricted capability sampai ke server, server melihat dari ruang right dan ternyat
bukan sebuah owner capability karena setidaknya satu bit harus dimatikan. Server kemudian
mengambil angka random original dari tabelnya, meng-EXCLUSIVE OR-kannya dengan
ruang right dari capability tersebut, dan menjalankan hasilnya menggunakan fungsi satu arah.
Jika hasilnya sama dengan ruang check, capability tersebut diterima secara valid.

Dari algoritma ini jelas bahwa seorang user yang mencoba menambahkan right yang tidak
dimilikinya akan mudah menolak kevalidan capability tersebut. Sebaliknya ruang check
dalam sebuah restricted capability akan lebih mungkin untuk mendapatkan argumen (C
XOAR 0000001 dalam gambar 4), karena fungsi I merupakan fungsi satu arah (tidak ada
algoritma untuk kebalikannya). Dengan menggunakan teknik kriptografi maka capability
dapat diproteksi dari gangguan.

Meskipun banyak oaperasi pada object tergantung pada tipe object tersebut, ada beberapa
operasi yang valid untuk sebagian besar object.

&DOO 'HVNULSVL
Age Melakukan gerbage collection cycle

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
86
Distributed System and Inter-Operability
__________________________________________________________________________________________

Copy Duplikasi object dan mengembalikan sebuah capability sebagai salinan


Destroy Menghancurkan object dan mengklaim kembali penyimpanannya.
Getparams Mengambil parameter untuk digabungkan dengan server
Info Mengambil string ASCI yang mendeskripsikan object lebih jelas
Restrict Menghasilkan sebuah restricted capability baru untuk object
Setparams Menset parameter yang digabungkan dengan server
Status Mengambil status informasi terbaru dari server
Touch Menganggap object baru saja digunakan

*DPEDU2SHUDVL6WDQGDU<DQJ9DOLG+DPSLU3DGD6HPXD2EMHFW


0DQDMHPHQ3URFHVV'DODP$PRHED

3URFHVVHV
Process merupakan sebuah object di dalam Amoeba. Ketika seubah process dibuat, process
induk diberikan sebuah capability untuk process anak, sebagaimana halnya dengan
pembuatan process baru lainnya. Dengan menggunakan capability ini process anak dapat di
ambangkan, restart, ditandai atau dihancurkan.

Manajemen process ditangani pada tiga level yang berbeda dalam amoeba. Level yang
terendah merupakan SURFHVV VHUYHU, yaitu kernel thread yang dijalankan pada setiap mesin.
Level di atasnya adalah kumpulan dari rekaman prosedur yang memberikan kecocokan
interface bagi program-program user. Mereka melakukan pekerjaannya dengan memanggil
prosedur interface tingkat rendah. Level selanjutnya adalah dengan menggunakan UXQVHUYHU,
yang melakukan sebagian besar pekerjaan pencarian di mana untuk menjalankan process
baru.

Beberapa pemanggilan manajemen process menggunakan sebuah struktur data yang disebut
dengan SURFHVVGHVFULSWRU, untuk memberikan informasi mengenai process yang dijalankan.
Ruang pertama dalam process descriptor menunjukkan arsitektur CPU mana process dapat
dijalankan. Ruang berikutnya berisikan capability dari owner. Ketika process dihentikan, RPC
akan dilakukan menggunakan capability ini untuk melaporkan kejadian tersebut. Process
descriptor juga berisikan sebuah descriptor bagi setiap thread dalam process tersebut. Dia
berisi program counter dari thread dan stack pointer.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
87
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU3URFHVV'HVFULSWRU

7KUHDG
Tiga metoda yang diberikan kepada thread untuk sinkronisasi adalah: VLJQDO, PXWH[, dan
VHPDSKRUH. Signal adalah interupsi asinkronus yang dikirimkan dari satu thread ke thread
lainnya dalam process yang sama. Cara kedua dari komunikasi antar thread adalah Mutex
yaitu seperti semaphore biner. Dia bisa dalam satu dari dua state, terkunci atau terbuka. Cara
yang ketiga adalah menghitung semaphore. Dia lebih lambat dari mutex, tapi ada waktu
kapan mereka dibutuhkan.

Seluruh thread dimanajemen oleh kernel. Keuntungan disain ini adalah bahwa ketika sebuah
thread melakukan RPC, kernel dapat memblok thread tersebut dan menjadwalkan yang
lainnya dalam process yang sama jika thread lain tersebut telah siap. Penjadwalan thread
dilakukan dengan menggunakan prioritas, di mana thread-thread kernel mendapatkan prioritas
lebih tinggi dibandingkan thread dari user.

0DQDMHPHQ0HPRUL'DODP$PRHED

6HJPHQWV
Process memiliki beberapa call yang tersedia untuk memanejemen segment. Call yang
terpenting diantaranya adalah kemampuan untuk membuat, menghancurkan, membaca dan
menuliskan segment. Ketika segment dibuat, si pemanggil mendapatkan kembali sebuah
capability untuk itu. Capability ini digunakan untuk pembacaan dan penulisan segment dan
untuk semua call yang melibatkan segment ini. Karena segment dapat dibaca dan ditulis,
memungkinkan menggunakan mereka untuk membangun sebuah memori utama dari file
server.
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
88
Distributed System and Inter-Operability
__________________________________________________________________________________________

3HPHWDDQVHJPHQWV
Ruang address virtual dalam amoeba dibangun dari segment. Ketika sebuah process dimulai,
dia harus memiliki setidaknya satu segment. Saat ini terjadi process dapat membuat segment-
segment tambahan dan memetakan mereka ke dalam ruang alamat virtualnya yang belum
digunakan.

*DPEDU6HEXDK3URFHVV'HQJDQ7LJD6HJPHQW<DQJ
'LSHWDNDQ.HGDODP5XDQJ$GGUHVV9LUWXDO

Sebuah process dapat juga tidak memetakan segment. Process dapat menspesifikasikan jarak
dari virtual address dan request yang jaraknya belum dipetakan, setelah address itu semua
tidak lagi bersifat legal. Ketika segment atau jarak dari address tidak dipetakan, capability
dikembalikan sehingga segment masih dapat diakses, atau bahkan dipetakan lagi kemudian,
mungkin dalam virtual address yang berbeda.

Sebuah segment bisa dipetakan ke dalam ruang address dari dua atau lebih process pada saat
yang sama. Hal ini membolehkan process untuk bekerja dengan berbagi memori dengan yang
lain. Tetapi biasanya lebih baik untuk membuat sebuah process tunggal dengan sejumlah
thread ketika pembagian memori diperlukan. Alasan utama untuk memiliki process yang
berbeda adalah untuk proteksi yang lebih baik, tetapi jika dua process berbagi memori,
proteksi secara umum tidak lagi diharapkan.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
89
Distributed System and Inter-Operability
__________________________________________________________________________________________

.RPXQLNDVL'DODP$PRHED

5HPRWH3URFHGXUH&DOO 53& 
Komunikasi point-to-point yang normal dalam Amoeba terdiri dari sebuah client
mengirimkan message ke server dilanjutkan dengan balasan balik dari server ke client
tersebut. Tidak mungkin bagi client hanya mengirimkan sebuah message dan kemudian
melakukan hal yang lain tanpa melewati RPC interface, di mana hanya dilakukan di bawah
kondisi yang sangat khusus. RPC primitive yang mengirimkan request secara otomatis akan
memblok sipemanggil sampai balasannya datang, sehingga memaksa sejumlah struktur
tertentu pada program. Pemisahan pengiriman dan penerimaan primitif dapat dibayangkan
sebagai jawaban sistem terdistribusi untuk JRWR VWDWHPHQWSDUDOOHOVSDJKHWWLSURJUDPPLQJ

Supaya thread dari client dapat melakukan RPC dengan thread server, client tersebut harus
mengetahui alamat server tersebut. Pengalamatan dilakukan dengan membolehkan thread
manapun untuk memilikh sebuah bilangan random 48 bit, disebut port, untuk digunakan
sebagai alamat bagi message untuk dikirimkan. Sebuah port tidak lebih dari sekedah jenis
logika dari alamat thread. Tidak ada struktur data dan ruang penyimpanan yang digabungkan
dengan sebuah port. Hal ini sama dengan alamat IP atau alamat Ehernet, kecuali tidak ada
lokasi fisik khusus yang mengikat.

Mekanisme RPC menggunakan tiga primitif kernel:


• get_request : mengindikasikan keinginan server untuk memantau port.
• put_reply : dilakukan oleh server ketika dia memiliki balasan untuk dikirim.
• trans : mengirim sebuah message dari client ke server dan menunggu balasannya.


*DPEDU+HDGHU<DQJ'LJXQDNDQ3DGD6HOXUXK5HTXHVW'DQ5HSO\0HVVDJH

Ketika server ingin diam menanti kedatangan request, dia memanggil JHWBUHTXHVW. Ketika
sebuah message ditransmisikan melewati jaringan, dia akan berisikan sebuah header dan data
buffer (opsional), dengan panjang struktur header adalah tetap 32 byte. Sebelum membuat

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
90
Distributed System and Inter-Operability
__________________________________________________________________________________________

panggilan JHWBUHTXHVW, server tersebut harus menginisialisasi ruang port header untuk
menetapkan port mana yang akan dipantau. Kedatangan header akan menghapus header yang
diinisialisasi oleh server tersebut. Ruang VLJQDWXUH digunakan untuk tujuan autentifikasi,
tetapi tidak selalu digunakan. Ruang FRPPDQG secara konvensional digunakan pada request
untujk mengindikasikan operasi mana yang diperlukan.

*DPEDU+XEXQJDQ$QWDUDJHWSRUW'DQSXWSRUW

Ketika server melakukan JHWBUHTXHVW, put-port yang berkaitan dihitung oleh kernel dan
disimpan didalam tabel port yang telah dipantau. Seluruh request WUDQV menggunakan put-
port, sehingga ketika paket datang pada mesin, kernel akan membandingkan put-port dalam
header dengan put-port dalam tabelnya untuk melihat kesamaan.

.RPXQLNDVL*UXSGDODP$PRHED
Grup dalam amoeba terdiri dari satu atau lebih process yang saling bekerja sama untuk
melaksanakan tugas atau memberikan beberapa service. Process dapat menjadi anggota dari
beberapa grup pada saat yang sama. Grup ditutup artinya, hanya anggota yang dapat broadcast
ke grup. Anggota kemudian menggunakan komunikasi grup bersama-sama, jika diperlukan
untuk menentukan siapa yang akan melakukan sesuatu.

Disain ini dipilih untuk memberikan derajat transparansi yang lebih bagus dibandingkan
dengan struktur grup terbuka. Secara normal dalam struktur grup terbuka, client
menggunakan RPC untuk berbicara dengan server secara individu, dan juga menggunakan
RPC untuk berbicara kepada grup. Sedangkan dalam amoeba, RPC digunakan untuk
berbicara ke server tunggal dan menggunakan komunikasi grup untuk berbicara kepada server
grup.

Berikut ini primitif komunikasi grup:

&DOO 'HVNULSVL
CreateGroup Membuat grup baru dan menyetel parameternya
JontGroup Membuat si pemanggil menjadi anggota dari sebuah grup
LeaveGroup Membuang si pemanggil dari keanggotaan grup

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
91
Distributed System and Inter-Operability
__________________________________________________________________________________________

SendToGroup Mengirim message dengan handal ke seluruh anggota grup


ReceiveFrom Group Memblok diri sampai sebuah message datang dari sebuah grup
ResetGroup Memulai recovery setelah sebuah process gagal/hancur

*DPEDU3ULPLWLI.RPXQLNDVL*UXS'DODP$PRHED

Amoeba bekerja prima pada LAN di mana mendukung baik multicasting maupun
broadcasting. Ide dasar dari pembentukan basis implementasi komunikasi grup adalah
broadcasting yang handal. Konfigurasi hardware dan software yang diperlukan untuk
broadcating ini ditunjukkan pada gambar 15.11.

*DPEDU6WUXNWXU6LVWHP8QWXN.RPXQLNDVL*UXS'DODP$PRHED

Urutan kejadian untuk mencapai broadcasting yang handal adalah :


(1) Process user memasuki kernel, untuk melewatkan message
(2) Kernel menerima message dan memblok process user
(3) Kernel mengirim message point-to-point ke sequencer
(4) Ketika sequencer menerima message, dia mengalokasikannya ke nomor sequence
yang tersedia, menempatkan nomor sequence di dalam ruang header yang disediakan
untuk itu, dan broadcast message tersebut.
(5) Ketika pengiriman terjadi kernel melihat message broadcast, dia akan membuka blokir
process pemanggilan untuk membiarkannya melanjutkan eksekusi.

Ketika process dari applikasi mengeksekusi sebuah primitif broadcasting, misalnya


VHQG7R*URXS, sebuah penangkapan ke kernel terjadi. Kernel tersebut kemudian memblokir si
pemanggil dan membangung sebuah message yang berisikan sebuah header pensuplai kernel
dan data pensuplai applikasi. Header tersebut terdiri dari tipe message, sebuah identifikasi
message yang bersifak unik, nomor broadcast terakhir yang diterima oleh kernel, dan beb
erapa informasi lainnya.

Kernel mengirimkan message ke sequencer menggunakan point-to-point normal message, dan


secara simultan akan mengaktifkan timer. Jika broadcast datang kembali sebelum waktu timer
habis, kernel yang mengirim akan menghentikan timer dan mengembalikan kontrol kepada si
pemanggil.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
92
Distributed System and Inter-Operability
__________________________________________________________________________________________

Jika boradcast tidak datang lagi setelah timer berakhir, kernel akan mengasumsikan bahwa
message atau broadcast telah hilang, sehingga memerlukan transmisi ulang.

Kemungkinan lainnya adalah, sebuah broadcast datang sebelum timer berakhir, tetapi ternyata
broadcast yang lain. Situasi ini akan sering terjadi ketika dua process melakukan broadcast
secara simultan.

Ketika kernel menerima broadcast, nomor urutannya akan dicocokan dengan normor urut
yang ingin diterimanya. Jika nomor tersebut cocok, maka message tersebut akan diberikan ke
program aplikasi, dengan asumsi dia akan menunggu atau dimasukan dalam antrian buffer,
sampai program memanggil 5HFHLYH)URP*URXS.

Tetapi jika nomor urut tersebut lebih tinggi dari yang diharapkan, kernel akan segera
diberitahu bahwa nomor sebelumnya telah hilang, seingga dia akan mengirim message point-
to-point kepada sequencer untuk meminta retransmisi khusus terhadap message yang hilang
tersebut. Sequencer akan mencari message yang hilang tersebut dalam buffer KLVWRU\-nya dan
mengirimkannya ke kernel. Ketika message yang diharapkan sampai, maka kernel kemudian
memproses message tersebut bersama-sama dengan message sebelumnya dengan
memberikannya ke pada program aplikasi dalam urutan numerik.

Pada gambar 15.12, applikasi dari mesin A mengirim sebuah message ke sequencer, yang
kemudian menambahkan nomor sekuensial (25) dan mem-broadcast-kannya. Pada B message
diterima tetapi pada C, message dimasukkan ke dalam buffer sampai nomor sekuensial 24
diterima dimana terjadi kegagalan



 
  

"# &

 !

"#

 "#

 !  ! $   %
"#
)+*,-*  * +.  *
"#

/ *,- *  0  (


!
 ' "#


*DPEDU3URWRNRO%URDGFDVW

Ada dua metoda cara untuk melakukan broadcast, yaitu :

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
93
Distributed System and Inter-Operability
__________________________________________________________________________________________

• User mengirimkan message point-to-point kepada sequencer dan kemudian sequencer


membroadcast message tersebut. Jadi message berada dalam keseluruhan jaringan dua
kali, sehingga bisa menghabiskan bandwidth jaringan yang lebih besar.
• User broadcast message bersama-sama dengan identifier yang bersifat unik. Ketika
sequencer melihatnya, dia akan membroadcast message DFFHSW khusus yang berisikan
identifier unik dan menandakan urutan nomor yang baru diterimanya. Message berada
dalam jaringan hanya sekali saja, ditambah dengan message DFFHSW yang sangat
pendek.

)DVW/RFDO,QWHUQHW3URWRFRO )/,3 
Amoeba menggunakan protokol khusus yang disebut dengan FLIP untuk transmisi message
yang aktual. Protokol ini menangani baik RPC maupun komunikasi grup dan protokol ini
berada dibawah keduanya dalam hirarki protokol. Dalam OSI FLIP merupakan potokol layer
jaringan sedangkan RPC lebih dari FRQQHFWLRQOHVV WUDQVSRUW atau protokol VHVVLRQ. Secara
konsep FLIP dapat diganti dengan protokol jaringan lainnya seperti IP meskipun akan
berakibat berkurangnya transparansi dari amoeba.

,WHP 'HVNULSVL
RPC Protokol harus mendukung RPC
Komunikasi Grup Protokol harus mendukung komunikasi grup
Perpindahan process Process harus dapat membawa alamatnya sekaligus
Sekuritas Process tidak boleh dapat menyerupai process lainnya.
Manajemen jaringan Dukungan diperlukan untuk rekonfigurasi secara otomatis
Wide Area network Protokol harus dapat bekerja pada jaringan yang lebih luas seperti WAN

*DPEDU.DUDNWHULVWLN3DGD3URWRNRO6LVWHP7HUGLVWULEXVL

Kernel terdiri dari dua layer. Layer atas menangani panggiran dari process user untuk layanan
RPC atau komunikasi grup, sedangkan layer bawah menangani protokol FLIP.

*DPEDU6LVWHP)/,3'HQJDQ/LPD%XDK0HVLQ'DQ'XD-DULQJDQ

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
94
Distributed System and Inter-Operability
__________________________________________________________________________________________

Seluruh komunikasi level rendah memiliki satu alamat FLIP: sebuah bilangan random yang
dipilih oleh sistem ketika process dibuat. Jika process migrasi, dia akan membawa alamat
FLIP bersamanya. Jika jaringan dikonfigurasi ulang, sehingga semua mesin menunjukkan
nomor jaringan (hardware) yang baru, alamat-alamat FLIP tetap tidak berubah. Jadi alamat
FLIP mengindikasikan sebuah process secara unik, sehingga membuat komunikasi dalam
amoeba tidak sensitif terhadap perubahan dalam topologi jaringan dan pengalamatan jaringan.

Alamat FLIP merupakan kesatuan dari dua alamat, public address dan private address:
3XEOLFDGGUHVV '(6 3ULYDWHDGGUHVV , di mana DES adalah singkatan dari 'DWD(QFU\SWLRQ
6WDQGDUG.

7,3(3$1**,/$1 '(6.5,36, $5$+

Init Mealokasikan sebuah slot tabel ↓


End Kembali ke slot tabel ↓
Register Mengawasi/melihat alamat FLIP ↓
Unregister Selesai mengawasi ↓
Unicast Mengirim message point to point ↓
Multicost Mengirim message secara multicost ↓
Broadcast Mengirim message secara broadcast ↓
Receive Paket diterima ↑
Notdeliver Paket yang akan diterima tidak sampai ↑

*DPEDU3DQJJLODQ<DQJ'LVHGLDNDQ2OHK/D\HU)/,3

Paket-paket yang dilewatkan oleh layer RPC atau layer komunikasi grup kepada layer FLIP
dialamatkan oleh alamat-alamat FLIP, sehingga layer FLIP harus dapat mengkonversi alamat-
alamat ini ke dalam alamat jaringan untuk transmisi yang aktual. Untuk melakukan fungsi ini,
FLIP layer akan menjaga sebuah tabel routing yang dapat dioperasikan melalui software
maupun hardware (disain masa depan).

Ketika terjadi kedatangan sebuah paket pada mesin manapun, pertama kali ditangani oleh
layer FLIP, yang kemudian mengekstrak alamat FLIP-nya dan alamat jaringan pengirim.
Jumlah hop paket tersebut juga direkam. Jika hitungan hop bertambah hanya ketika paket
dikeluarkan oleh sebuah gateway, jumlah hop akan menandakan berapa banyak gateway yang
telah dilalui oleh paket. Jika alamat FLIP belum tercantum di dalam tabel routing, maka
alamat tersebut akan dimasukan ke dalam tabel agar dapat digunakan kemudian untuk
mengirimkan paket ke alamat FLIP tersebut, apabila nomor jaringan dan alamatnya tidak
dikenal. Pengalokasian put-port membutuhkan dua tingkatan pemetaan, yaitu:

(1). Dari put-port tersebut ke alamat FLIP (dilakukan oleh layer RPC)
(2). Dari alamat FLIP ke alamat jaringannya (dilakukan oleh layer FLIP)

Alasan dibutuhkan dua pemetaan tersebut adalah; Pertama, FLIP dirancang sebagai protokol
untuk tujuan umum untuk digunakan dalam sistem terdistribusi. Alasan kedua adalah seubah

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
95
Distributed System and Inter-Operability
__________________________________________________________________________________________

put-port lebih cenderung dikenal sebagai sebuah VHUYLFH dibandingkan dengan sebuah server.
Service bisa diberikan oleh banyak server untuk meningkatkan performansi dan reliabilias.

*DPEDU/$1'LKXEXQJNDQ'HQJDQ:$1

FLIP juga bekerja secara transparan dalam ZLGHDUHDQHWZRUN :$1 . Komunikasi selama di
dalam WAN dimasukan dalam protokol apapun yang diperlukan WAN. Meskipun metoda ini
tidak diperuntukan bagi ribuan LAN, untuk jumlah tertentu dia bekerja dengan sangat baik.
Komunikasi grup juga menggunakan FLIP, di mana ketika sebuah message dikirimkan ke
berbagai tujuan, FLIP menggunakan hardware multicast atau broadcast pada jaringan tersebut
jika tersedia. Jika dalam jaringan tidak tersedia, maka broadcast disimulasikan dengan
mengirim message satu persatu. Pemilihan mekanisme dilakukan oleh layer FLIP, dengan
menggunakan semantik user yang sama dalam semua kasus.

6HUYHU$PRHED

%XOOHW6HUYHU
Di dalam amoeba, pemilihan sistem file tidak diatur oleh sistem operasi. Sistem file bekerja
sebagai kumpulan dari process server. Kernel tidak mengetahui, atau tidak peduli, mana yang
sistem file sebenarnya. Standar sistem file terdiri dari tiga server, bullet server yang
menangani penyimpanan file, directory server yang menangani penamaan file dan manajemen
direktori, dan replication server yang menangani replikasi file.

Bullet server dirancang untuk bekerja sangat cepat dan juga untuk dapat bekerja pada mesin
yang memiliki memori dan disk yang sangat besar. Organisasinya pun sangat berbeda dengan
file server konvensional, khususnya filenya bersifat LPPXWDEOH. File-file yang telah dibuat
tidak bisa dimodifikasi di mana ukuran dari sebuah file diketahui ketika pembuatan file
tersebut. Sifat ini memudahkan file untuk disimpan pada disk secara singkat dan juga dalam
cache memori utama. Sehingga file tersebut dapat dibaca pada memori dalam operasi disk
tunggal dan dapat dikirim dalam sebuah balasan message RPC tunggal.

&DOO 'HVNULSVL
Create Membuat file baru; opsinya adalah memberi sifat commit dengan baik.
Read Membaca semuanya aau sebagaian dari file yang dispesifikasikan
Size Mengembalikan ukuran dari file yang dispesifikasikan

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
96
Distributed System and Inter-Operability
__________________________________________________________________________________________

Modify Mengganti n byte dari sebuah file uncommitted


Insert Memasukan n byte ke dalam sebuah uncommitted file
Delet Menghapus n byte dari sebuah uncommitted file

*DPEDU3DQJJLODQ'DODP%XOOHW6HUYHU

Model konsep di balik sistem file tersebut adalah bagaimana sebuah client dapat membuat
seluruh file-nya di dalam memorinya sendiri, dan mentransmisikannya dalam sebuah RPC
tunggal ke bullet server, yang menyimpannnya dan mengembalikan sebuah capability untuk
pengaksessan file tersebut di kemudian waktu. Untuk memodifikasi file tersebut, client
mengirim kembali capability dan meminta file tersebut, yang kemudian dikirim di dalam satu
RPC ke memori client. Client tersebut dapat memodifikasi apapun dari file tersebut secara
lokal. Setelah selesai dimodifikasi, client mengirim file ke server (idealnya) dalam satu RPC,
sehingga menyebabkan terjadinya file baru dengan capability yang baru juga. Sehingga client
dapat meminta server untuk menghancurkan file asli (sebelum dimodifikasi), atau
menyimpannya sebagai file backup.

Dalam bullet server terdapat dua jenis file, XQFRPPLWWHG ILOH yaitu yang dibuat di dalam
process di mana file tersebut dapat diubah-ubah, dan FRPPLWWHGILOH yaitu file yang bersifat
permanen. RPC yang melakukan FUHDWH harus segera menspesifikasikan mana file yang
committed dan mana yang tidak. Berikut ini bagaimana bullet server menjaga sebuah tabel
file dengan satu masukan tiap filenya, dapat dianalogikan dengan i-node table dalam unix.
?A@ B 2
IGJAB B 2 5
C:D:EAB 2
H+2:K L:2:K M
NO2+PRQK S
1+2+3+4+5 6
;
7 6+28:9

1+2+3+4+5 6
<
7 6+28:9
?A@ B 2
;
1+2+3+4+5 6 ?A@ B 2
=
7 6+28:9 <
?A@ B 2 7 Q35 @ 4J+QJH
FG@ H:9 =
1+2+3+4+5 6 T @B2
>
7 6+28:9

7 D8:62

*DPEDU,PSOHPHQWDVL6HUYHU%XOOHW

Ketika sebuah process client ingin memaca sebuah file, dia mengirimkan capability untuk file
tersebut ke bullet server. Server kemudian mengekstrak nomor object dari capability dan
menggunakannya sebagai indeks ke dalam tabel file untuk melokasikan masukan untuk file
tersebut. Masukan terdiri dari angka random dalam ruang check capability, yang kemudian
digunakan untuk memverifikasikan apakah capability tersebut valid. Jika capability tidak
valid, maka operasi tersebut dihentikan dengan sebuah kode error. Dan jika valid, seluruh file
dipindahkan ke cache memori, kecuali telah ada sebelumnya. Ruang cache dimanajemen

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
97
Distributed System and Inter-Operability
__________________________________________________________________________________________

menggunakan LRU, tetapi asumsi implisitnya adalah cache biasanya cukup besar untuk
menampung kumpulan file yang sedang digunakan.

Jika file dibuat tetapi capabilitynya hilang/rusak, file tersebut tidak akan pernah dapat diakses
dan akan tinggal selamanya di dalam disk. Untuk menghindari situasi ini, digunakan sebuah
skema WLPHRXW. Sebuah file uncommitted yang tidak diakses selama 10 menit akan dihapus
dan tabel masukannya dibersihkan. Jika sebuah masukan digunakan kembali sebagian oleh
file yang lain dan capabilitynya telah lebih dari 15 menit, ruang check-nya akan mendekteksi
bahwa file telah berubah dan operasi pada file lama akan ditolak. Pendekatan ini dpat diterima
karena file secara normal ada dalam status uncommitted hanya untuk beberapa detik saja.
Sedangkan untuk commited file, digunakan metoda penurunan jumlah akses dalam sebuah
counter. Secara periodik seubah daemon melakukan RPC dengan bullet server meminta untuk
melakukan operasi standar umur counter dan menyebabkan bullet server mengurangi setiap
counter dengan 1. File mana pun yang memiliki counter dengan jumlah 0 akan dihancurkan
dan disk, tabel dan cachenya akan di bebaskan dari file tersebut. Untuk menjaga mekanisme
tersebut menghapus file yang sedang digunakan, maka digunakan operasi lainnya yang
disebut dengan touch. Berbeda dengan operasi umur yang diberlakukan pada semua file,
operasi touch hanya dilakukan pada file yang spesifik. Fungsi dari operasi ini adalah mereset
counter ke jumlah maksimum (0$;B/,)(7,0(). Touch dipanggil secara periodik untuk
seluruh file yang tercantum dalam daftar direktori manapun, untuk menjaga mereka dari time
out.



'LUHFWRU\6HUYHU
Fungsi utama dari directory server adalah untuk memberikan sebuah pemetaan dari nama
yang bisa dibaca manusia (ASCII) ke capability. Process dapat membuat satu atau lebih
direkrori yang masing-masing terdiri dari beberapa lajur. Setiap lajur mendeskripsikan satu
object dan diisi dengan nama object beserta capability-nya. Operasi disediakan untuk
membuat dan menghapus direktori, menambah dan menghapus lajur, dan pencarian nama
dalam direktori. Berbeda dengan file bullet, direktori tidak bersifat LPPXWDEOH. Masukan dapat
ditambahkan dan dihapus dari direktori yang ada.

6WULQJ$6&, &DSDELOLW\6HW 2ZQHU *UXS /DLQQ\D

Mail 1111 0000 0000


Games 1111 1110 1110
Exams 1111 0000 0000
Papers 1111 1100 1000
Commitees 1111 1010 0010

*DPEDU7LSLNDO'LUHNWRUL<DQJ'LDWXU2OHK'LUHFWRU\6HUYHU

Direktori sendiri merupakan object dan diproteksi oleh capability sebagaimana object lainnya.
Operasi pada sebuah direktori, misalnya pencarian nama dan penambahan masukan,
diproteksi oleh bit-bit dalam ruang ULJKW. Capability dari direktori bisa disimpan dalam
direktori lainnya, mengikuti GLUHFWRU\WUHHVsecara hirarki dan struktur yang lebih umum.
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
98
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU+LUDUNL'LUHNWRUL$PRHED

Sebuah masukan direktori dapat menamakan segala jenis object yang dideskripsikan oleh
sebuah capability. Server direktori tidak mengetahui dan memperdulikan apapun jenis kontrol
capability object tersebut. Object dalam sebuah direktori tidak harus merupakan jenis yang
sama atau seluruhnya tidak harus dimanajemen oleh server yang sama. Ketika sebuah
capability ditempatkan, servernya dicari melalui broadcasting.

Sebuah lajur bisa terdiri tidak hanya dari satu capability, tetapi seluruh kumpulan dari
capability. Umumnya capability ini sebagai salinan yang identik dari suatu object dan di
manajemen oleh server yang berbeda. Sebuah lajur bisa terdiri dari beberapa kolom, masing-
masing membentuk domain proteksi yang berbeda dan memiliki hak yang berbeda juga.

Dalam sistem terdistribusi mana pun jua, terutama yang dipakai dalam WAN, sulit untuk
mendapatkan konsep tunggal, JOREDOURRWGLUHFWRU\. Dalam amoeba, setiap user memiliki root
directory-nya masing-masing (lihat gambar 15.20), yang terdiri dari capability tidak hanya
bagi direktori pribadi user, tetapi juga bagi segala macam direktori publik yang berisikan
program-program sistem dan file-file yang disharing lainnya.

Directory server merupakan komponen yang paling kritis dalam sistem amoeba, sehingga
membutuhkan sebuah IDXOWWROHUDQW pada cara pengimplementasiannya. Struktur data dasarnya
merupakan array dari pasangan capability yang tersimpan pada sebuah UDZGLVNSDUWLWLRQ.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
99
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU3DVDQJDQ'LUHFWRU\6HUYHU

Ketika sebuah direktori dibuat, nomor object yang dimasukan ke dalam capabilitynya
merupakan indeks masuk ke dalam array. Ketika direktori disajikan, server menginspeksi
nomor object tersebut dan menggunakannya untuk mendapatkan hubungan dengan pasangan
capability dalam array. Capability tersebut adalah untuk file-file yang identik, disimpan pada
beberapa bullet server yang berbeda, yang masing-masing berisikan direktori dan ruang check
yang digunakan untuk menverifikasikan otentikasi dari capability direktori tersebut.

Jika sebuah direktori berubah, file bullet yang baru akan dibuat untuk itu, dan array pada raw
disk partition akan ditulis ulang. Salinannya akan dibuat kemudian oleh sebuah EDFNJURXQG
WKUHDG. Kemudian direktori yang lama akan dihancurkan sehingga dapat memberikan derajat
reabilitas yang lebih tinggi sistem file tradisional.

Metoda ini mengeliminasi kebutuhan menyimpan capability dalam jumlah yang besar.
Bagaimanapun cache directory server masih sangat diperlukan capability untuk menghindari
penggunaan yang tidak perlu dari fungsi satu arah.

5HSOLFDWLRQ6HUYHU

Object yang dimanejemen oleh directory server dapat di replikasi otomatis dengan
menggunakan replication server melalui metoda OD]\ UHSOLFDWLRQ. Artinya ketika sebuah file
atau object lainnya dibuat, awalnya hyanya satu salinan yang dibuat. Kemudian server
replication dapat diperintahkan untuk membuat replikans yang identik ketika dia memiliki
waktu luang. Meskipun kerjanya membutuhkan pemanggilan langsung, replication server
masih tetap bekerja dalam background sepanjang waktu, scanning bagian spesifik dari sistem
direktori secara periodik. Jika dia menemukan sebuah masukan direktori yang lebih sedikit
dari yang seharusnya terdiri dari Q capability, maka dia akan menghubungi server yang
relevan dan mengatur bagi salinan tambahan yang dibuat.

5XQ6HUYHU
Ketika user mengetikan sebuah command pada terminal, dua keputusan yang harus dibuat
adalah:
(1) pada tipe arsitektur apa process harus dijalankan.
(2) Processor mana yang dipilih untuk menjalankannya.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
100
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU D 3URFHVVRU3RRO E +XEXQJDQSRROGLU

setiap run server memanejemen satu atau lebih processor pool. Sebuah processor pool
dipresentasikan oleh sebuah direktori yang disebut pooldir, yang berisikan subdirektori untuk
setiap arsitektur CPU yang disediakan. Subdirektori berisikan capability untuk mengakses
process server pada setiap mesin di dalam pool, sebagaimana diperlihatkan oleh gambar 22.

Run server akan melihat ke dalam pooldir untuk melihat apa saja yang dimilikinya.
Pemilihannya akan dibuat berdasarkan tiga kriteria berikut:

(1) Interseksi dari process descriptor dan pool processor dihitung.


(2) Run server akan mencek untuk melihat kandidat mana yang memiliki memori yang
cukup untuk menjalankan program tersebut.
(3) Estimasi kemampuan komputasi yang dapat digunakan untuk mendapatkan program
baru.

.HVLPSXODQ
Amoeba adalah suatu sistem operasi yang dirancang untuk sebuah lingkungan yang terdiri
atas banyak komputer. Hal-hal yang dapat disimpulkan dari sistem operasi Amoeba, antara
lain :
)LWXU$UVLWHNWXU$PRHED
• Perhitungan terdistribusi yang transparan menggunakan jumlah yang besar dari
prosesor
• Perhitungan paralel didukung sebaik perhitungan terdistribusi
• Arsitektur Mikrokernel dan server
• Performansi RPC yang tinggi menggunakan protocol FLIP
• Komunikasi grup yang dapat dipercaya
• Mendukung sistem heterogen
• Konfigurasi jaringan transparan dan otomatis

3HUDQJNDW/XQDN/HYHO3HQJJXQD
• Berbasiskan obyek
• Multi thread pada setiap ruang alamat

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
101
Distributed System and Inter-Operability
__________________________________________________________________________________________

• File dan direktori server telah dilengkapi


• Mendukung X Windows release 5
• Mendukung TCP/IP
• Dilengkapi dengan ANSI C, Pascal, FORTRAN 77 dan Modula 2 Compilers serta
referensinya 
• Bahasa untuk pemrograman paralel tersedia

81,;
• Integrasi yang baik dengan sistem UNIX yang ada
• Amoeba dapat berbicara dengan UNIX via TCP/IP
• Driver tersedia untuk UNIX Sun sehingga UNIX dapat secepat protokol RPC Amoeba
• Terminal X dapat memiliki kedua UNIX dan windows Amoeba secara bersamaan
• Emulasi UNIX parsial tersedia
• Lebih dari 100 perangkat seperti UNIX tersedia
• Source code yang penuh tersedia dalam semua distribusinya
• Lisensi AT&T tidak dibutuhkan
• Komersial terbatas tersedia
• Amoeba telah memperoleh lisensi oleh organisasi Amerika, Eropa dan Jepang

.HOHPDKDQ$PRHED
• Dalam hal sistem biner tidak kompatibel dengan UNIX
• Tidak ada virtual memori
• Bekerja sangat buruk saat memori overload
• Tidak mendukung NFS
• Baik untuk eksperimen namun tidak direkomendasikan untuk aplikasi sistem produksi
secara total

'DIWDU3XVWDND
1. Tanenbaum, A.S., "Distributed Operating System", IEEE, Chapter 7, 1986.
2. Tanenbaum, A.S., "The Amoeba Distributed Operating System", Journal,
Amsterdam, 1990.

0$&+

6HMDUDK0DFK
Perkembangan Mach dimulai dari proyek Mach di Universitas Carnegie-Mellon yang
merupakan proyek setelah RIG dan Accent. RIG sendiri dikembangkan Universitas Rochester
tahun 1970 dan Accent pada tahun 1980-an di universitas Carnegie-Mellon. Berbeda dengan
RIG, Accent maupun Amoeba, maka proyek Mach ni tidak di set secara total untuk suatu
system operasi terdistribusi yang lengkap.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
102
Distributed System and Inter-Operability
__________________________________________________________________________________________

Mach versi 2.5 yang pertam kali dikeluarkan dapat berjalan pada SUN-3, IBM RT PC,
multiprocessor dan uniprocessor system VAX dan Encore Multimax dan juga Sequent
multiprocessor.. Sejak tahun 1989 Mach versi 2.5 ini dapat berjalan pada teknologi yang
berbasis pada OSF/1.

Sedangkan Kernel Mach versi 3 dapat berjalan pada Intel 386 dan 486, DECStation 3100 dan
5000, Motorola 88000 yang berbasis komputer serta SUN SPARCStation. Versi 3 ini dibuat
dengan mempertimbangkan persaingan user-level dalam suatu system operasi, system
database serta parameter lainnya.

7XMXDQ'DQ)HDWXUH0DFK

7XMXDQGDUL0DFK
- Dibuat sebagai pelengkap bagi suatu system operasi yang lain.
- Untuk mendukung ODUJHVSDUVH dan DGGUHVVSDFH
- Bersifat transparan dalam hal akses resource dalam suatu jaringan.
- Adanya pemakaian system yang bersifat paralel baik dalam system maupun dalam
aplikasi
- Menjadikan Mach sebagai system yang SRUWDEOH dengan mengandung banyak
mesin.

)HDWXUH0DFK
• Adanya operasi multiprocessor
Bahwa Mach didesain untuk dapat melakukan VKDUHG PHPRU\ PXOWLSURFHVVRU
sehingga baik kernel threads dan user-mode threads dapat dijalankan oleh beberapa
processor. Mach juga memelihara model PXOWLWKUHDGV atau adanya pemrosesan user
yang dilakukan oleh suatu lingkungan yang kemudian disebut dengan call.
• Sifat transparan dalam jaringan
Mach menggunakan ORFDWLRQLQGHSHQGHQW dalam model komunikasinya dengan cara
menjadikan port sebagai suatu tujuan. Sehingga akan dapat memfasilitasi suatu
distributed
programs yang bersifat tranparan antara uniprocessor-uniprocessor dan
multiprocessor-multiprocessor dalam suatu jaringan.









*DPEDU.RPXQLNDVL7DVN'DQ7KUHDGV3DGD0DFK
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
103
Distributed System and Inter-Operability
__________________________________________________________________________________________

• Server yang bersifat XVHUOHYHO


Mach mengimplementasikan model yang bersifat REMHFWRULHQWHG yang mana suatu
resource akan diatur baik oleh kernel ataupun G\QDPLFDOO\ORDGHGVHUYHUV
• Persaingan Sistem operasi
Untuk mendukung persaingan binary-level antara Unix dan sistem operasi yang lain,
maka Mach menggunakan transparent redirection dari calls suatu system operasi.
• Implementasi virtual memory
Mach menggunakan virtual memori yang di UHPDSSLQJ untuk mentransfer isi dari
suatu PHVVDJH dengan menggunakan virtual copy, copy-on-writer yang digunakan
untuk menghindari atau men-delay pengkopian data yang terbaru. Keuntungan yang
diperoleh dari cara ini adalah dapat meningkatkan flexibilitas dalam managemen
memori untuk suatu user program serta untuk memperbaiki performansi pengiriman
PHVVDJH melalui Unix. Dan keuntungan yang terakhir tersebut adalah akan lebih
mudah dalam migrasi suatu task.
• Bersifat SRUWDEOH
Bahwa Mach didesain untuk dapat SRUWDEOH (praktis) sehingga dapat diletakan pada
berbagai hardware platform. Juga adanya pembagian kode virtual memori ke dalam
machine-independent dan bagian suatu machine-dependent.

,VWLODK'DODP0DFK
• 7DVN : eksekusi dari suatu lingkungan. Terdiri dari ruang alamat yang terlindungi dan
sekumpulan kemampuan NHUQHOPDQDJHG yang digunakan untuk mengakses port.
• 7KUHDG : Task dapat berisi banyak thread. Thread termasuk dalam single task yang
dapat dieksekusi dengan cara parallel di processor yang berbeda dalam
multiprocessor shared memory .
• 3RUW : Port dalam Mach bersifat unicast, merupakan channel komunikasi yang
unidirectional (tidak langsung) dengan menggunakan antrian PHVVDJH. Port tidak
diakses secara langsung oleh programmer Mach dan juga bukan bagian dri task.
• 3RUW VHW : Kumpulan dari port UHFHLYH ULJKWV local untuk task yang digunakan untuk
menerima PHVVDJH dari suatu kumpulan port. Port set berbeda dengan port group.
• 0HVVDJH : merupakan kumpulan object data yang digunakan untuk komunikasi antar
thread (yang dapat berisi SRUWULJKWV untuk suatu data).
• 2EMHFWPHPRUL : Setiap UHJLRQ dalam ruang virtual addres dalam Mach berhubungan
dengan object memori. Object memori merupakan instant dari tipe abstract data yang
mengandung operasi fetch dan di dalamnya ada data yang tersimpan.
• 0HPRU\ FDFKH REMHFW : Setiap pemetaan object memori, ada object kernel-managed
yang berisi FDFKH RI SDJH yang berhubungan dengan UHJLRQ yang berada di memori
utama. Hal ini yang disebut sebagai memory cache object.

3RUW3HQDPDDQ'DQ3URWHNVL
Dalam Mach suatu resource dapat diidentifikasikan dengan suatu port. Untuk mengakses
resource, maka PHVVDJH dikirimkan ke port yang bersangkutan. Maka Mach akan
mengasumsikan bahwa server secara umum akan mengatur beberapa port, hal ini berlaku
untuk setiap port. Sebuah single server Unix memiliki sekitar 2000 port. Port dapat dibuat
dan diatur dengan mudah. Adapun masalah dalam hal resource adalah usaha untuk
melindungi resource dari operasi yang bersifat illegal.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
104
Distributed System and Inter-Operability
__________________________________________________________________________________________

Ada tiga tipe port : Send rights, send-once rights dan receive rights.
- 6HQG ULJKWV memberi ijin threads yang ada dalam task yang dimilikinya untuk
mengirimkan PHVVDJH ke port yang bersesuaian
- 6HQGRQFHULJKWV membolehkan lebih dari satu PHVVDJH untuk dikirimkan setelah
penerimaan yang benar (tidak error) dihapus (secara otomatis) oleh kernel
- 5HFHLYHULJKWV membolehkan thread dari suatu task untuk menerima PHVVDJH dari
antrian PHVVDJH suatu port.
Mach hanya mendukung untuk N-to-one komunikasi, sedang untuk multicast tidak didukung
secara langsung oleh kernel.

Pada pembentukan port, task diberi ERRWVWUDS SRUW ULJKW, berupa send right yang digunakan
untuk mendapatkan service dari task lain. Setelah itu thread dalam task akan
mendapatkan/memiliki port right melalui pembentukan port atau dengan menerima port right
yang dikirimkan kepadanya oleh suatu PHVVDJH.

Port-port right pada Mach disimpan berdekatan dengan kernel dan dilindungi (di protect).
Seperti terlihat pada gambar di bawah ini :






*DPEDU5XDQJ1DPD3RUW'DUL6XDWX7DVN

Task akan mengacu pada SRUW ULJKW yang diidentifikasikan secara local yang hanya akan
sesuai (valid) untuk SRUW QDPH VSDFH pada task local. Hal ini memberikan pilihan kepada
pengimplementasi kernel untuk memilih efisiensi untuk kapasitasnya dan memilih nama local
(yang bersifat integer)

Penamaan dan skema proteksi yang dibuat pada Mach memberikan akses secara cepat ke
antrian PHVVDJH local dari identitas user-level yang diberikan . Namun kita harus men-set
“ biaya” pada process di kernel jika suatu “ rights” ditransmisikan dalam PHVVDJH antar task.
Pada akhirnya bahwa pengiriman yang benar harus dialokasikan sebagai local name pada
ruang suatu WDVN¶VQDPHdan ruang pada tabel kernel.

7DVN'DQ7KUHDGV
Task adalah eksekusi dari lingkungan. Task itu sendiri tidak dapat melakukan suatu aksi, haya
threads yang ada di dalamnya yang dapat melakukannya. Namun untuk memudahkannya

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
105
Distributed System and Inter-Operability
__________________________________________________________________________________________

seringkali disebut bahwa ketika task melakukan aksi maka arti sebenarnya adalah bahwa yang
sebenarnya melakukan aksi tersebut adalah threads yang ada di dalam task.

• 3HPEHQWXNDQ7DVNEDUX
Task dibentuk dengan mengacu pada apa yang disebut dengan EOXHSULQWWDVN. Task-
task yang baru berada dalam komputer yang sama sebagai EOXHSULQWWDVN Ketika Mach
tidak memberikan fasilitas migrasi task, maka cara dalam membangun task pada
komputer adalah melalui task yang berada di sana. Bootstrap port yang baru dari suatu
task diturunkan dari bluprint-nya dan dengan ruang alamat yang masih kosong. Task
yang baru dibentuk belum memiliki thread.
Adapun cara pembentukan task dan thread adalah sebagai berikut :
WDVNBFUHDWH SDUHQWBWDVNLQKHULWBPHPRU\FKLOGBWDVN 
SDUHQWBWDVN is the task used as a blueprint in the creation of the new task, LQKHULWBPHPRU\ specifies
whether the child should inherit the address space of its parent or be assigned an empty address space,
FKLOGBWDVN is the identifier of the new task.
WKUHDGBFUHDWH SDUHQWBWDVNFKLOGBWKUHDG 
SDUHQWBWDVN is the task in which the new thread is to be created, FKLOGBWKUHDG is the identifier of the new
thread. The new thread has no execution state and is suspended.
WKUHDGBVHWBVWDWH WKUHDGIODYRXUQHZBVWDWHFRXQW 
thread is the thread to be supplied with execution state, IODYRXU specifies the machine architecture,
QHZBVWDWH specifies the state (such as the program counter and stack pointer), FRXQW is the size of the
state.
WKUHDGBUHVXPH WKUHDG 
This is used to resume the suspended thread identified by WKUHDG.

• 3HPDQJJLODQRSHUDVLNHUQHO
Pada Mach, ketika task atau thread telah terbentuk, hal ini akan ditandai dengan apa
yang disebut sebagai kernel port. Sistem call pada Mach dibedakan dalam hal
bagaimana impelmentasinya secara langsung (kernel trap) dan implementasi yang
melalui pengiriman PHVVDJH ke port. Implementasi dengan cara pengiriman PHVVDJH
ke port ini memiliki keuntungan bahwa operasi pada remote task bersifat QHWZRUN
WUDQVSDUDQ. Cara service dari kernel mengatur resource dari kernel sama halnya
dengan server user-level mengatur suatu resource. Setiap task akan dikirim ke kernel
port . dan setiap service kernel diakses melalui PHVVDJH. Task akan mengakses service
melalui procedure stub dengan bantuan Mach Interface Generator.

• ([FHSWLRQKDQGOLQJ
Task dan thread memiliki H[FHSWLRQ SRUW. Jika exception terjadi, maka kernel akan
merespon dengan cara mencoba untuk mengirimkan PHVVDJH (terjadi exception) ke
port exception yang bersangkutan. Seandainya tidak ada port exception untuk thread
maka kernel akan melihat task-nya. Thread yang menerima PHVVDJH ini akan
memastikan mencari masalah apa yang terjadi dan mengembalikan nilai status dalam
bentuk PHVVDJH replay. Jika kernel menemukan exception port dan menerima balasan
yang menyatakan sukses, maka kernel akan me-restart thread yang mengalami
exception.

• 0DQDJHPHQWDVNGDQWKUHDG
Sekitar 40 procedure dalam kernel interace berkaitan dengan pembentukan dan
managemen task serta thread. Mula-mula argumen dari procedure dikirimkan ke
kernel port yang bersesuaian dan dengan mengirimkan PHVVDJH system call untuk
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
106
Distributed System and Inter-Operability
__________________________________________________________________________________________

meminta operasi dari kernel target. Prioritas penjadwalan thread dapat di-set secara
individu, thread dan task dapat ditunda, dimatikan dan eksekusi state suatu thread
dapat di-set (secara external), dibaca dan dimodifikasi.

0RGHO.RPXQLNDVL
Pengertian PHVVDJH, port dan port set pada Mach.
• 0HVVDJH : PHVVDJH terdiri atas sejumlah tetap header dengan diikuti nilai-nilai suatu
data seperti terlihat di bawah ini :



*DPEDU0HVVDJH3DGD0DFK

Komposisi header terdiri dari :


- GHVWLQDWLRQSRUW : berisi identitas lokasi dari port tujuan
- UHSO\SRUW : jika suatu replai diperlukan, maka akan dilakukan pengiriman ke local
port yang dimasukan dalam PHVVDJH.
- $QRSHUDWLRQLGHQWLILHU : merupakan identitas operasi pada service interface yang
mengacu pada suatu aplikasi tertentu.
- Extra data size : berada setelah header, menyatakan nilai dari tipe list data.

Mach memelihara satu system call untuk melewatkan PHVVDJH yaitu berupa: PDFKBPVJ
Setiap item dalam list setelah PHVVDJH diikuti oleh salah satu berikut ini :
- 7\SHGPHVVDJHGDWD : bersifat individu, in-line type-tagged data items
- 3RUWULJKWV : identitas penunjuk lokasi
- 3RLQWHU WR RXWRIOLQH GDWD : data berada pada blok yang tidak saling berdekatan
dalam memori
0HVVDJH pada Mach berisi header yang berukuran tetap dan banyak blok dengan ukuran yang
bervariasi, RXWRIOLQH. Ketika RXWRIOLQH dari PHVVDJH data dikirimkan , maka kernel akan
memilih di ruang alamt suatu task sebagai tempat diterimanya data. Hal ini merupakan efek
dari teknik FRS\RQZULWH yang digunakan dalam mentransferkan data.

Keuntungan dari adanya beberapa data tambahan pada PHVVDJH adalah bahwa pemrogram
dapat mengalokasikan memori untuk suatu data atau metadata. Tipe untuk setiap data item
pada PHVVDJH di Mach dispesifikasikan oleh pengirim (missal dengan ASN.1).

• 3RUW
Port pada Mach memiliki antrian PHVVDJH yang ukurannya dapat di-set secara dinamis oleh
task. Fasilitas ini memungkinkan penerima untuk mengimplementasikan IORZ FRQWURO.
Normalnya , suatu thread akan dikirimkan ke port dalam bentuk PHVVDJH dan jika antrian
telah penuh maka akan di blok sampai ada buffer/ ruangan yang kosong. Jika menggunakan
VHQGRQFH ULJKW, maka penerima akansenantiasa mengantrikan PHVVDJH walaupun antrian
telah penuh.
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
107
Distributed System and Inter-Operability
__________________________________________________________________________________________

• 6HQGLQJSRUWULJKW
6HQGLQJSRUWULJKWV : ketika port mengirimkan VHQGULJKW yang dipaket dalam suatu PHVVDJH,
maka penerima juga akan menerima VHQGULJKW pada port yang sama. Ketika UHFHLYHULJKWdi
transmisikan, maka secara otomatis akan terjadi pen-dealokasian pada task pengirim. Hal ini
terjadi karena UHFHLYHULJKW tidak memiliki lebih dari satu task pada saat yang sama.

• 0RQLWRULQJFRQQHFWLYLW\
0RQLWRULQJFRQQHFWLYLW\ : Kernel di desain untuk dapat memberi tahu pengirim dan penerima
jika timbul keadaan yang akan mengakibatkan pengiriman dan penerimaan hanya akan sia-
sia saja. Untuk itu maka system menjaga informasi nomor dari VHQGULJKW dan UHFHLYHULJKW
yang diberikan ke port. Jika tidak ada task yang memegang UHFHLYH ULJKWV pada port, maka
semua VHQGULJKWV pada tempat nama port di task local akan berubah menjadi GHDGQDPHV

• 3RUWVHW
Port sets merupakan kumpulan dari ORFDOO\PDQDJHG pada port yang dibentuk dalam VLQJOH
WDVN Ketika thread mengeluarkan receive dari port set, maka kernel akan mengembalikan
PHVVDJH yang telah diterima ke anggota dari set. Port set sangat besar manfaatnya sebab
sebuah server khusus diperlukan untuk melayani PHVVDJH client pada semua port pada setiap
saat. Dengan pengelompokan port pada port set, maka satu thread dapat digunakan untuk
menerima PHVVDJH tanpa ada kekhawatiran akan hilangnya PHVVDJH. Dengan demikian thread
akan di blok jika tidak ada PHVVDJH yang akan di process pada port set. Hal ini bertujuan
untuk menghindari terjadinya EXV\ZDLWLQJ

• 0DFKBPVJ
Sistem call 0DFKBPVJ bisa digunakan untuk melewatkan PHVVDJH secara asinkronus dan
interaksi5HTXHVWUHSO\VW\OH, yang mana hal ini sangat komplek untuk dilakukan.0DFKBPVJ
dapat digunakan untuk kirim PHVVDJH, terima PHVVDJH ataupun kedua-duanya. Ini merupakan
system call yang digunakan client untuk mengirimkan PHVVDJH permintaan dan menerima
berupa reply dan pada server berguna untuk mereply kepada client paling akhir dan untuk
selanjutnya menerima PHVVDJH permintaan selanjutnya. Keuntungan yang diperoleh dari
penggabungan send/receive call adalah ketika server dan client melakukan eksekusi pada
komputer yang sama maka hasil yang diperoleh dapat optimal. Kondisi ini disebut dengan
KDQGRIIVFKHGXOLQJ

,PSOHPHQWDVL.RPXQLNDVL
Salah satu bagian yang menarik untuk dipelajari pada implementasi komunikasi Mach adalah
penggunaan server jaringan untuk user-level. Server jaringan (disebut QHWPVJVHUYHUV)
bertanggungjawab untuk terhadap penggunaan semantic yang akan digunakan dalam jaringan
sehingga akan memberi jaminan akan terjadinya komunikasi jaringan yang transparan. Server
jaringan juga bertanggungjawab untuk melindungi port dari pengaksesan yang illegal.

• 3HQJLULPDQPHVVDJHVHFDUDWUDQVSDUDQ
Port jaringan adalah sesuatu yang bersifat global tetapi unik yang mencirikan kanal tertentu.
Port jaringan ini di atur oleh server jaringan dan untuk berkomunikasi dengannya dapat
dilakukan dengan VLQJOH0DFKSRUW. Server jaringan dapat melakukan VHQGULJKWdan UHFHLYH
ULJKW ke port jaringan. Penggambaran pentransmisian PHVVDJH antara task yang berada pada
komputer yang berbeda dapat dilihat seperti gambar di bawah ini :

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
108
Distributed System and Inter-Operability
__________________________________________________________________________________________






*DPEDU.RPXQLNDVL-DULQJDQ3DGD0DFK

Dalam gambar di atas server jaringan local mendeteksi bahwa dia akan menerima UHFLYH
ULJKW yaitu 8. Kemudian server jaringan pada komputer pengirim melihat ULJKW LGHQWLILHU di
table port jaringan yang telah dikirimkan. Hasilnya berupa port jaringan dan alamat jaringan.
Selanjutnya pengiriman PHVVDJH dilakukan (dengan telah adanya tambahan port jaringan) ke
server jaringan ke alamat yang sesuai pada table. Selanjutnya server pada jaringan local akan
meng-ekstrak port jaringan dan mencocokannya dengan table port jaringan yang dimilikinya.
Jika telah sesuai maka masukan yang berisi identitas VHQG ULJKW akan diteruskan ke ORFDO
0DFKSRUW

Respon port yang mungkin terjadi ketika server jaringan mem-forward PHVVDJH ke server
jaringan yang lain dalah :
- SRUWKHUH : menunjukan sesuai tujuan yang dituju
- SRUWGHDG : port tidak ada
- SRUWQRKHUHWUDQVIHUUHGUHFHLYHULJKW perlu ditransmisikan lagi ke tempat yang
ssesuai dengan tujuannya
- SRUWQRKHUHXQNQRZQ : tidak ada record yang menunjukan port jaringan port
- QRUHVSRQVH: komputer tujuan down

• 7UDQVSRUWSURWRFRO
Trasnport protocol yang digunakan pada jaringan Mach adalah TCP/IP.
• 8VHUOHYHOQHWZRUNGULYHUV
Pada beberapa server jaringan dapat “ memilihara” dirinya dengan menggunakan driver user-
level jaringan . Hal ini bertujuan untuk meningkatkan kecepatan akses dalam jaringan.

0DQDMHPHQ0HPRUL
Mach tidak hanya mendukung untuk ODUJH VSDUVH ataupun DGGUHV VSDFH tetapi juga
mendukung teknik YLUWXDO PHPRU\ sehingga bisa untuk VKDULQJ memori antar task. Tidak
hanya membagi (sharing) memori secara fisik untuk melakukan eksekusi pada kernel yang
yang sama, tetapi juga mendukung untuk H[WHUQDO SDJHUV yang mengijinkan virtual memori
untuk dibagi antar task walaupun berada pada komputer yang berbeda.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
109
Distributed System and Inter-Operability
__________________________________________________________________________________________

• 6WUXNWXUDGGUHVVSDFH
Model umum dari addres space dikenal dengan UHJLRQ Setiap UHJLRQ merupakan ORJLFDO
DGGUHVyang memiliki atribut/property. Misalnya (read/write/ execute). Pada Mach, pengertian
DGGUHV VSDFH adalah kelompok/kumpulan JURXS RI SDJHV yang dinamai sesuai alamatnya.
Pada Mach, proteksi lebih ditekankan kepada SDJH dibanding UHJLRQnya. Dan untuk system
call akan mengacu pada alamat di banding dengan identitas UHJLRQ. Dan untuk selanjutnya
pendefinisian UHJLRQ (pada Mach) adalah kumpulan dari SDJHs yang memiliki suatu property.
Mach mendukung banyak UHJLRQ yang dapat digunakan untuk berbagai tujuan dalam PHVVDJH
data dan pemetaan file.

5HJLRQ dapat dibentuk dengan 4 cara :
- dapat dibentuk dengan memanggil YPBDOORFDWH
- dapat dibentuk melalui memory-object dengan menggunakan YPBPDS
- mendeklarasikan saat membuat task menggunakan YPBLQKHULW
- dapat dibentuk secara otomatis di ruang alamat task (saat melewatkan PHVVDJH)
5HJLRQ dapat melindungi dari operasi read/write/execute dengan menggunakan vm_protect.
5HJLRQ dapat meng-kopi dalam task dengn YPBFRS\ dan isinya dapat dibaca atau ditulis oleh
task lain dengan menggunakan YPBUHG dan YPBZULWH. Untuk pen-dealokasian UHJLRQ dengan
YPBGHDOORFDWH

• 0HPRU\VKDULQJLQKHULWDQFHDQGPHVVDJHSDVVLQJ
Di dalam Mach dapat dilakukan UNIX IRUN semantics yang dapat digunakan untuk
mekanisme PHPRU\LQKHULWDQFH. Diketahui bahwa task dapat dibentuk dari task lain sebagai
EOXHSULQW Sebuah UHJLRQ diturunkan dari EOXHSULQWWDVNyang berisi rentang alamat yang sama
dengan sifat memori yang VKDUHGdan FRSLHG(pengkopian memori bluprint saat child UHJLRQ
dibentuk).

2XWRIOLQH data PHVVDJH di transfer antar task sebagaimana FRS\LQKHULWDQFH. 5HJLRQ
dibentuk di ruang alamat penerima dan inisial dari isi merupakan salinan dari GDWDRXWRIOLQH
yang dikirimkan oleh pengirim. Berbeda halnya pada LQKHULWDQFH, maka UHJLRQ penerima
secara umum tidak menempati rentang alamat yang sama seperti pada UHJLRQ pengirim.
Rentang alamat pada UHJLRQ pengirim telah digunakan oleh UHJLRQ (yang sudah exist) di
penerima.

Pada Mach menggunakan FRS\RQZULWH untuk melakukan FRS\LQKHULWDQFH dan dalam


mengirimkan PHVVDJH. Sistem pada Mach akan mengasumsikan bahwa beberapa atau semua
memori (copy-inherited) atau dalam pengirman RXWRIOLQH tidak akan ditulisi (written by)
oleh task yang lain walaupun ijin untuk menulis (write permission)-nya dipakai.

• (YDOXDVLXQWXNFRS\RQZULWH
Walaupun FRS\RQZULWH sangat membantu dalam pengiriman PHVVDJH data antara task dan
server jaringan, namun FRS\RQZULWH tidak bisa digunakan untuk fasilitas pentransmisian
antar jaringan. &RS\RQZULWH akan efisien jika datanya cukup untuk dibentuk ke dalam suatu
paket. Keuntungan untuk tidak menggunakan pengkopian secara fisik adalah untuk menekan
biaya dalam manipulasi table SDJH. Table di bawah ini menunjukan perbandingan yang
ditimbulkan oleh adanya RYHUKHDGdari adanya FRS\RQZULWH

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
110
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU%HVDUQ\D2YHUKHDG3DGD7HNQLN&RS\RQZULWH

([WHUQDO3DJHUV
Untuk tetap menjaga arti/definisi dari microkernel, maka kernel Mach tidak dibangun untuk
dapat mendukung files atau hal-hal lain yang berhubungan dengan storage secara langsung.
Sehingga hal lain yang belum ditangani oleh kernel Mach tersebut akan diimplementasikan
oleh H[WHUQDOSDJHUVFungsi H[WHUQDOSDJHU adalah :
- menyimpan data yang telah dihapus oleh kernel dari cache suatu SDJH
- memberi data ke SDJH seperti yang diminta oleh kernel
- menjaga agar batasan dalam abstraksi memori resource tetap terpelihara
Pada Mach, untuk memori resource-nya digunakan model pemetaan akse (PDSSHG DFFHV
PRGHO). Dan untuk pengaksesan di penyimpannya secara explicit menggunakan operasi UHDG
dan ZULWH 5HJLRQ pada Mach dapat berhubungan dengan lokasi tertentu di memori object
dengan menggunakan YPBPDS Arti hubungan ini adalah pembacaan alamat di UHJLRQ
ditandai dengan pengembalian data oleh memori object dan pemodifikasian data di UHJLRQ
dilakukan dengan write yang dikirimkan balik juga oleh memory object. Dalam artian
umumnya bahwa memory object diatur oleh H[WHUQDO SDJHU Kernel yang menjaga local
resource disebut dengan PHPRU\FDFKHREMHFW



*DPEDU([WHUQDO3DJHU

Adapun komponen dari PHVVDJH tanda yang digunakan dalam protocol antara kernel dan
H[WHUQDOSDJHUadalah sebagai berikut :

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
111
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU0HVVDJH3DGD([WHUQDO3DJHU

• 6XSSRUWQJQRQVKDUHGDFFHVWRDPHPRU\REMHFW
0HPRU\REMHFWdapat dipandang sebagi suatu file. Dengan mengasumsikan bahwa tidak ada
pengambilan data dari H[WHUQDO SDJHUV, maka semua SDJH yang terpetakan dalam UHJLRQ
bersesuaian dengan file dilindungi dari semua akses yang tidak berkepentingan . Ketika
sebuah thread berusaha untuk mengakses satu dari SDJH yang berada di UHJLRQ, maka akan
terjadi kesalahan pada SDJH. Dan kernel akan melihat port memory object mengirm VHQGULJKW
yang bersesuaian ke UHJLRQ dan mengirim sebuah memory_object_data_request ke external
SDJHr. Jika semua telah berjalan baik, maka H[WHUQDO SDJHU akan merespon dengan SDJH data
di dalam PHPRU\BREMHFWBGDWDBSURYLGHG. Jika file data dimodifikaasi oleh komputer yang
telah terpetakan tadi, adakalanya kernel memerlukan untuk menulis (ZULWH) di SDJH dari
PHPRU\FDFKHREMHFW. Untuk melakukan ini maka akan dikirmkan PHPRU\BREMHFWBGDWDBZULWH
ke H[WHUQDOSDJHU

• 6XSSRUWLQJVKDUHGDFFHVWRPHPRU\REMHFW
Diketahui bahwa task yang berada pada komputer yang berbeda-beda dapat dipakai sebagai
file bersama. Jika suatu file hanya bisa UHDGRQO\ di setiap UHJLRQ, hal ini tidak menimbulkan
masalah dan permintaasn akan file akan segera dapat dilayani dengan segera. Tetapi jika suatu
task ada hak untuk ditulisi (ZULWLQJ E\), maka H[WHUQDO SDJHUV harus menggunakan suatu
protocol yang menjamin agar tidak terjadi ketidakkonsistenan pada SDJH yang sama.

.HVLPSXODQ
• Mach didesain untuk dapat berjalan pada multiprocessor dan uniprocessor
• Port merupakan identitas untuk suatu resource.
• Mach merupakan system operasi yang berbasis microkernel
• Pada Mach menggunakan konsep SURFHVVWKUHDGVSRUWdanPHVVDJH
• Model komunikasi pada Mach adalah dengan sebuah system call dengan
menggunakan PHVVDJH
• Implementasi dalam komunikasi pada Mach bersifat transparan, dengan menggunakan
TCP/IP dan dengan driver jaringan user-level
• Teknik manajemen memori yang digunakan adalah shared memory dan virtual
memori

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
112
Distributed System and Inter-Operability
__________________________________________________________________________________________

• Dalam menjaga arti suatu microkernel, maka Mach menggunakan H[WHUQDO SDJHU
untuk menangani hal-hal tertentu.




&+2586
6HMDUDKGDQ$UVLWHNWXU
&KRUXV mulai digunakan pada tahun 1979 sebagai proyek penelitian pada sistem distribusi di
INRIA (Perancis). Tujuan dari proyek ini adalah mengembangkan sebuah model perhitungan
berbasis-pesan untuk membangun sebuah sistem operasi modular terdistribusi. &KRUXV
melewati 3 tahap perancangan di INRIA dan 3 versi penyesuaian dari sistem operasi
terdistribusi yang ada.

Dalam versi-0 sebuah model process komunikasi yang disebut actor dikembangkan dan
sebuah prototip implementasi dibuat dengan menggunakan sebuah kernel kecil. Pada versi-1,
rancangan sebelumnya di-SRUW-kan dari sebuah system berbasis LAN ke memori terdistribusi
prosesor gabungan. Pada versi-2 sebuah tim yang telah bekerja untuk implementasi UNIX,
bergabung dengan proyek ini dan sebuah percobaan dimulai untuk mengemulasi UNIX
dengan menggunakan kernel &KRUXV dan memakai ulang beberapa kode yang ditulis oleh tim
UNIX. Ketika proyek di INRIA berakhir, sebuah perusahaan, &KRUXV Systemes, dibuat untuk
melanjutkan pengembangan &KRUXV baik pada LAN maupun prosesor gabungan. Kernel
&KRUXV versi-3 (disebut QXFOHXV) dan emulasi UNIX dibangun di atasnya. &KRUXV/Mix, saat
ini diproduksi dan dikembangkan oleh &KRUXV Systemes. Kita akan membahas &KRUXV versi-
3.3 pada bagian ini.

Sebuah sistem FKRUXV terdiri dari prosesor tunggal atau prosesor gabungan dari computer
yang dihubungkan oleh suatu jaringan. Arsitekturnya sama dengan Mach dalam banyak hal.
Kernel &KRUXV adalah sebuah kernel mikro yang mendukung subsistem. Subsistem dari
&KRUXV adalah kumpulan dari server yang menyedikan emulasi biner dari sistem operasi atau
yang menyediakan beberapa layanan yang lebih besar lainnya untuk beberapa aplikasi.
&KRUXV telah diimplementasikan sebagai sebuah basis untuk sistem process kontrol UHDOWLPH
yang dijalankan pada memori terdistribusi prosesor gabungan, seperti pada: 68020, 80386 dan
Transputer prosesor mikro.

7XMXDQ3HUDQFDQJDQ
&KRUXVPHPLOLNLEHEHUDSDWXMXDQSHUDQFDQJDQ\DQJVDPDGHQJDQ0DFK
• Mikrokernel menunjang pelayanan sistem terbuka.
• Menunjang emulasi sistem operasi level biner dan subsistem yang lainnya.
• Tranparan yang dapat diperluas dari fasilitas kernel ke operasi jaringan.
• Implementasi virtual memori yang fleksibel.
• Portabilitas (Sistem kernel dibuat dengan C++ dan dirancang agar dan dibagi dalam
bagian mesin yang bebas dan mesin yang tergantung).
• Eksploitasi dari memori bersama prosesor gabungan.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
113
Distributed System and Inter-Operability
__________________________________________________________________________________________


&KRUXVMXJDPHPLOLNLWXMXDQODLQGDQILWXU IDVLOLWDV 
• 6HUYHU GHQJDQ NHPDPSXDQ PHPXDW VHFDUD GLQDPLN: &KRUXV bertujuan untuk
mencapai tingkatan yang sama dengan Mach dalam modularitas dan keterbukaan.
Bagaimanapun, &KRUXV tidak menyamakan tujuan-tujuan ini dengan penggunaan dari
server pada level pengguna. &KRUXV mendukung server dengan kemampuan memuat
secara dinamik yang bisa mengeksekusi pada level pengguna atau dengan ruang
alamat kernel.
• 3HQDPEDKDQ GDUL 81,;: Perencanaan &KRUXV mengantisipasi pengguna emulasi
UNIX yang mungkin ingin menggunakan penambahan fasilitas yang digunakan yang
disediakan oleh kernel utama dari process-process UNIX, seperti WKUHDG jamak dan
kemampuan untuk membuat sebuah process baru di komputer remote (jauh).
• 0HQGXNXQJ JURXS VHUYHU GDQ NRQILJXUDVL XODQJ VHUYHU: &KRUXV menyediakan
pendukung untuk group server dalam bentuk mode pengalamatan group untuk
mengirim pesan, termasuk multicast. Pemindahan SRUW dapat digunakan untuk
pengaturan transfer dari suatu resource atau kumpulan resource secara dinamik antar
server.
• 0HPRUL WHUGLVWULEXVL RSHUDVL SURVHVRU JDEXQJDQ: &KRUXV telah diimplementasikan
pada Memori terdistribusi prosesor gabungan.
• 2SHUDVLUHDOWLPH: Perancangan &KRUXV bertujuan untuk mendukung subsistem UHDO
WLPH pada kernel. Untuk tujuan ini, &KRUXV menyediakan alokasi yang fleksibel
dari prioritas WKUHDG dan memperbolehkan untuk jaminan penjadwalan WKUHDG.

5LQJNDVDQ$EVWUDNVL8WDPD'DUL&KRUXV

i VWjkV+[d:a+V+^ l+V:^
bmcd ZY^

eYZY^ d UVWYX Z[


\]:^ V_`+a i  V WjnV:[d
eYZY^ dYfO^ ZYgAh o jkV+jkZY^ p
ZYqr Vcd s
bGcd ZY^
bG`:`Y^ V aana:h+_cV

*DPEDU$EVWUDNVL8WDPD&KRUXV

Abstraksi utama yang disediakan oleh kernel &KRUXV adalah:


• $NWRU: Sebuah aktor dari &KRUXV adalah sebuah eksekusi yang sebanding dengan
sebuah perintah Mach. Sebuah aktor dapat terdiri dari satu WKUHDG atau lebih.
• 3RUW: Sebuah SRUW merupakan sebuah komunikasi kanal unidireksional. 3RUW dapat
berpindah antara aktor.
• *URXS 3RUW: 3RUW dapat dibuat menjadi suatu group SRUW. Sebuah group SRUW
merupakan tujuan dari pesan-pesan, dan ada beberapa mode pengalamatan untuk
mengirim pesan ke group SRUW.
• 3HVDQ: Pesan pada &KRUXV terdiri dari sebuah variabel panjang isi (64 kByte) dan
header yang berukuran tetap (64 Byte) yang bersifat opsional.
• 5HJLRQ6HJPHQGDQ/RNDO&DFKH: Ruang alamat dari aktor dibagi menjadi beberapa
region. Sebuah region dapat dipetakan pada sebuah bagian dari segmen, yang

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
114
Distributed System and Inter-Operability
__________________________________________________________________________________________

sebanding dengan objek memori dari Mach. Untuk setiap segmen pemetaan, kernel
tetap menjaga lokal FDFKH, sama dengan objek FDFKH pada Mach

3URFHVV0DQDJHPHQW0RGHO
Process dasar pembangunan blok dalam &KRUXV adalah aktor dan WKUHDG.
w"x+yAz"{:y |:y:} t yAz |+yAz

tu t yAz |:y:z t"~R€Y yk‚Aƒ „ ‚ … ‚

t"v
t"v

† Y z yx+xkxY‡:‚  yˆ‡Yz € … y  … ‰ € ƒ„Š €‹ ƒ  ‚Az Œ

myAz ƒ:yA} +€Y yR‚:ƒ Ž ‚… ‚ t t" t"‘

t A y z:| y:z x  ŒAƒ:‚+’“‰  A ‚ } } ŒŽ} € ‚  y 


‰ ƒ… “€ ” yAz ƒ:y:}‚ A z yx xRxY‡+‚  y


*DPEDU6HUYHU&KRUXV
&DWDWDQ Gambar di atas memperlihatkan kode dan data untuk server yang dimuat secara dinamik
ke dalam ruang alamat kernel, dimana ia akan dieksekusi. Ditunjukkan juga beberapa server level
pengguna, yang akan dieksekusi dengan ruang alamat pribadi.

Server-server dimuat secara dinamik di komputer-komputer tersebut dimana mereka


dibutuhkan dan diakses oleh komunikasi berbasis pesan. Server secara umum bekerja sebagai
process level pengguna untuk menjamin proteksi bersama-sama antara kernel dan server.

7DEHO7LSH$NWRU
Tipe Aktor Ruang Alamat Pribadi 7KUHDG Pengguna 7KUHDG Pengawas
Aktor Pengguna Ya Ya Ya (Dibuat eksternal)
Aktor Sistem Ya Ya (Sistem 3ULYLOHJH) Ya
Aktor Pengawas Tidak: Kernel Bersama Tidak Ya

&KRUXV mendukung tiga level SULYLOHJH untuk pengaksesan WKUHDG resource lokal. 3ULYLOHJH
kadang kala secara nominal dianggap disebabkan oleh aktor, tetapi karena hanya WKUHDG yang
dapat mengambil tindakan dengan memperhatikan resource, SULYLOHJH benar-benar bersama
dengan WKUHDG. Tiga (3) level dari SULYLOHJH adalah:
• 3ULYLOHJH pengguna: Tidak ada akses langsung ke mesin resource, tidak dapat
memanggil sistem pemanggilan yang pasti.
• 3ULYLOHJH sistem: Tidak ada akses langsung ke mesin resource , tidak dapat memanggil
semua sistem pemanggilan. Sama dengan level SULYLOHJH dari sebuah process UNIX.
• 3ULYLOHJH pengawas: Memiliki akses yang lengkap ke mesin resource.


3HQDPDDQ'DQ3URWHNVL
Chorus menggunakan NHPDPSXDQ LGHQWLWDV XQLN dan LGHQWLWDV ORNDO sebagai unsur utama
penamaan pada resource.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
115
Distributed System and Inter-Operability
__________________________________________________________________________________________

8, ELWV  .H\ ELWV 



*DPEDU.HPDPSXDQ&KRUXV

• .HPDPSXDQ, ini merupakan tipe yang paling umum digunakan untuk
mengidentifikasi resource dalam Chorus. .HPDPSXDQ digunakan untuk
mengidentifikasi dan membatasi akses ke resource sebagai bagian yang diatur oleh
server dan beberapa resource diatur sendiri oleh kernel, baik sebagai aktor maupun
group. .HPDPSXDQ terdiri dari identitas unik (UI), yang secara normal berfungsi
untuk mengidentifikasi SRUW dan penambahan NH\ sebanyak 64-bit (gambar 3). .H\
dapat digunakan untuk mengidentifikasi resource dari beberapa resource yang diakses
melalui port yang sama. Server memilih NH\ yang menyediakan tingkat proteksi
sehingga dapat mencegah akses bagi yang tidak berhak ke resource.
• ,GHQWLWDV 8QLN SRUW dan resource yang lain diatur oleh kernel yang ditunjukkan
dalam 64-bit identitas unik. UI dijamin unik dalam jaringan berbasis Chorus sepanjang
umur komputer. UI dibuat sebagai bit string dengan 3 komponen: tipe dari kernel
resource, identitas dari komputer yang membuatnya, dan timestamp lokal dijamin unik
sepanjang umur komputer.
• ,GHQWLWDV ORNDO identitas lokal digunakan untuk menamai thread dan SRUW sebagai
aktor. Terdapat 32-bit integer yang valid hanya dalam aktor yang memakainya.
Penggunaan identitas lokal paling efisien, meskipun identitas lokal tersebut dihasilkan
oleh kernel untuk akses cepat ke penamaan resource.

,GHQWLILNDVL5HVRXUFH'LDWXU2OHK*URXS
Servis dapat disediakan oleh server yang berbeda pada waktu yang berbeda atau servis dapat
diimplementasikan dalam satu waktu oleh beberapa server, SRUW yang melakukan process
dapat dikumpulkan dalam suatu group. Pesan dapat dialamatkan ke SRUW group dalam
beberapa mode pengalamatan.

Sistem pemanggilan untuk menghasilkan dan memanipulasi port group ditunjukkan sebagai
berikut:

JUS$OORFDWH
Mengalokasikan NHPDPSXDQ pada suatu SRUW group
JUS3RUW,QVHUW
MenyisipkanSRUW dalam SRUW group
JUS3RUW5HPRYH
Memindahkan SRUW dari SRUW group

Aktor harus memiliki NHPDPSXDQ untuk dapat memanipulasi anggota dari SRUW group.
.HPDPSXDQ dialokasikan secara dinamis pada SRUW group melalui sistem call JUS$OORFDWH
Aktor yang mengetahui NHPDPSXDQ group dapat menggabungkan port ke dalam group
menggunakan JUS3RUW,QVHUWdan memindahkan port menggunakan JUS3RUW5HPRYH

Dalam tujuan pengiriman, hanya UI port group yang diminta, dan bukan NHPDPSXDQ.
Identitas group menyediakan level tidak terarah, sehingga aktor yang menggunakan identitas
group tidak ingin tahu SRUWSRUW yang termasuk anggota group-nya. Ketika pesan dikirim
menggunakan identitas group, pengirim memilih satu dari mode pengalamatan berikut:
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
116
Distributed System and Inter-Operability
__________________________________________________________________________________________

0RGH0XOWLFDVWDWDX0RGH%URDGFDVW
Mode yang digunakan untuk mengirimkan pesan unrealible ke semua anggota group.
Permasalahan permintaan operasi terjadi karena resource diatur oleh beberapa anggota group
server, yang tidak diketahui. Permintaan dapat di-multicast dalam pesan berisi identitas
spesifikasi service dari resource. Penerima pesan hanyalah server yang mengatur resource
yang akan membuat operasi, server yang lain dapat mengabaikan permintaan.

Kelemahan mode ini terjadi bila semua process dalam group harus menerima pesan,
meskipun tidak sesuai dengannya. Susunan ini tidak praktis untuk memproses semua operasi
pada resource yang diatur oleh group. Tetapi mode lebih disukai FOLHQW untuk meminta
NHPDPSXDQ mengenali resource, menggunakan multicast. Server yang mengatur resource
mengembalikan NHPDPSXDQ yang berisi identitas SRUW sehingga semua permintaan client
dapat dikirim secara langsung ke server melalui SRUW tersebut. Chorus multicast tidak reliable
dan tidak menjamin pesan. Mode ini sesuai untuk mikrokernel. Gambar 4 menunjukkan pesan
yang dikirim secara multicast ke suatu group.

•G–G— ˜G™„— –Gš"›

œO ž ¥A ¡¢¦GšY¢A§Y˜

Ÿ ¡¢"›"£ ¤


*DPEDU6HEXDK3HVDQ0XOWLFDVW.H6HEXDK*URXS

0RGH)XQFWLRQDO
Mode functional diilustrasikan dengan mengganti sebuah server yang menyediakan service.
Caranya adalah service harus disediakan oleh suatu group SRUW server, sehingga semua
permintaan dikirim ke group server menggunakan mode functional pengalamatan. Mode ini
mengirim pesan permintaan ke satu anggota group (hanya ada satu anggota group).
Penempatan server pada group dengan menyisipkan SRUW-nya menggunakan JUS3RUW,QVHUW,
server akan dipindahkan dengan JUS3RUW5HPRY (gambar 5.). Pesan dapat dikirim ke SRUW
sampai SRUW tersebut meninggalkan group. Bila SRUW sudah keluar dari group tetapi ada
computer yang mengirim pesan ke SRUW tersebut maka computer akan menerima negatif
acknowledgment, sehingga computer bisa mencari SRUW lain dalam group.

0RGH6HOHFWLYH)XQFWLRQDO
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
117
Distributed System and Inter-Operability
__________________________________________________________________________________________

Mode ini digunakan untuk mengidentifikasi server tertentu dari group server. Pengirim
melibatkan UI sebagai NHPDPSXDQ group. Tiap komputer dilengkapi dengan database UI.
Chorus termasuk dalam database UI dari komputer, baik untuk semua aktor lokal dan semua
SRUW lokal. Aktor dapat membuat UI ke lokal database dengan XL'HFODUH dan dapat
menghapus UI dengan XL)RUJHW

¯ ª®"¨m©ª «µ´¶·©Y¸´

¯ ª®"¨G©Gª «±° ²A³´"ª «

¨G©Gª «G¬„ª ©G­"®


*DPEDU)XQFWLRQDO0RGH3HQJDODPDWDQ

3HQJLULPDQ5HVRXUFH$QWDU6HUYHU
Pengiriman resource antar server menggunakan mekanisme migrasi SRUW, di mana SRUW dapat
dipindahkan dari satu aktor chorus ke aktor chorus lain. Dengan mekanisme ini, tiap resource
atau resource group dapat dikirim dari satu server ke yang lainnya.

3URWHNVL
.HPDPSXDQ dan identitas SRUW Chorus ditawarkan secara bebas dalam pesan antar process,
tanpa melibatkan kernel. Identitas SRUW terdiri dari 64-bit UI dan NHPDPSXDQ menggunakan
key, sehingga proteksi resource dapat dilakukan untuk mencegah aktor yang tidak berhak
mengakses. Tetapi NHPDPSXDQ tidak dapat digunakan sebagai skema utama untuk
menghasilkan proteksi semantik UNIX XVHUJURXSRWKHU. Dalam hal ini, chorus berusaha
membuat autentikasi pada setengah dari implementasi service. Chorus mampu
mengidentifikasi source dari pesan yang dikirim ke server.

Autentikasi dihasilkan dengan penambahan identitas proteksi (PI) pada tiap aktor. PI
dihasilkan oleh aktor, tetapi dapat diubah oleh supervisor thread atau sistem thread aktor.
Ketika aktor menerima pesan, ia akan meminta kernel untuk mengidentifikasi PI dari aktor
pengirim. Servis akan menggunakan mekanisme ini untuk implementasi kontrol akses.

0RGHOGDQ,PSOHPHQWDVL.RPXQLNDVL
♦ 6LVWHP3HPDQJJLODQ.RPXQLNDVL
Chorus menyediakan sistem pemanggilan untuk komunikasi sebagai berikut:

LSF&DOO
Mengirim permintaan dan menerima balasan

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
118
Distributed System and Inter-Operability
__________________________________________________________________________________________

LSF6HQG
Mengirim pesan secara bergantian
LSF5HFHLYH
Menerima pesan
LSF5HSOD\
Membalas pesan
LSF6DYH
Menyimpan pesan tertentu
LSF*HW'DWD
Menerima bentuk pesan
LSF6\V,QIR
Mengembalikan informasi mengenai pesan tertentu
SRUW&UHDWHSRUW'HOHWH
Menghasilkan/menghapus SRUW
SRUW(QDEOHSRUW'LVDEOH
Kemampuan/ketidakmampuan SRUW
SRUW/LSRUW8L
Menterjemahkan UI SRUW ke/dari identitas lokal

Chorus menyediakan pesan asynchronous untuk interaksi request-reply. ,SF6HQG digunakan


untuk mengirim pesan secara asynchronous dengan memberikan UI SRUW tujuan atau identitas
group dengan mode pengalamatan tertentu. ,SF&DOO mengirim pesan permintaan dan
menunggu balasan. ,SF&DOO tidak mendukung process untuk beberapa permintaan atau
membalas beberapa pesan.

Thread menerima permintaan menggunakan LSF5HFHLYH, yang dapat diberikan sebagai


identitas SRUW lokal sebagai interface penerima, atau tanda khusus yang mengijinkan pesan
hanya diterima dari anggota SRUW lokal. Setelah pesan diterima, thread menggunakan
LSF6\V,QIR untuk mencari informasi tentang pesan, sebelum memutuskan untuk melakukan
process dan membalasnya.
Ketika SRUW dihasilkan dengan SRUW&UHDWH, kernel menempatkan dan mengembalikan UI ke
SRUW. 3RUW/L digunakan untuk mengubah UI SRUW menjadi identitas lokal yang dapat digunakan
dengan LSF5HFHLYH. Identitas lokal digunakan untuk meningkatkan kecepatan akses ke struktur
data SRUW internal. Chorus tidak konsisten karena tidak mengijinkan SRUW UI aktor lain berubah
menjadi LI, mungkin dilakukan untuk tujuan efisiensi pengiriman pesan. Tetapi identitas SRUW
ini mungkin dikirim dalam pesan dan hanya UI yang melakukannya, dan LI hanya valid
dalam aktor tunggal.

Thread dapat menerima pesan dari kumpulan SRUW dalam HQDEOHGVWDWHTetapi hanya terdapat
satu ‘port set’ tiap aktor untuk semua thread dalam aktor. Untuk menjadi anggota dari ‘set’ ,
SRUW harus didaftarkan. Aktor dapat mengubah setiap SRUW (enable atau disable) menggunakan
SRUW(QDEOHdanSRUW'LVDEOH.

Thread membalas permintaan menggunakan LSF5HSO\. Balasan umumnya diberikan setelah


menerima pesan terakhir. Tetapi, bila thread mampu meminta I/O tanpa bloking maka thread
dapat membalas pesan sampai I/O terbentuk. Hal ini berguna bila permintaan data harus
diambilkan dari disk. Tetapi bila permintaan itu datang dari client yang berbeda, dapat
dilayani tanpa akses disk. Membalas permintaan itu menggunakan konsep FXUUHQW PHVVDJH.
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
119
Distributed System and Inter-Operability
__________________________________________________________________________________________

Tiap aktor memiliki satu FXUUHQWPHVVDJH pada satu waktu. Thread dapat menyimpan FXUUHQW
PHVVDJH menggunakan LSF6DYH, dan memperbaharui current message dengan LSF5HVWRUH. ,SF
5HSO\ digunakan untuk membalas pesan.

♦ 3HVDQ
Chorus menggunakan pesan sederhana yang terdiri dari fix-header dan variable-body. Thread
menggunakan LSF*HW'DWD untuk menghasilkan bentuk pesan setelah menerima header dan
menerangkan dari data dalam buffer penerima. Chorus menggunakan copy-on-write untuk
mengirim pesan panjang secara efisien ketika LSF6HQG digunakan, bila MMU mendukung.
Chorus tidak menghasilkan tempat pengalamatan baru di receiver, tetapi selalu menggunakan
range pengalamatan khusus di receiver. ,SF6HQG menyebabkan halaman digunakan untuk
implementasi bentuk pesan yang dikirim ke ruang pengalamatan penerima (asumsi berada
dalam komputer yang sama) dan memindahkan dari ruang pengalamatan pengirim. Pesan
dikirim menggunakan manipulasi tabel halaman.

♦ 1HWZRUN0DQDJHU
Network Manager adalah aktor yang menyediakan fasilitas komunikasi dari kernel melalui
jaringan secara transparan. Network Manager bertanggung jawab terhadap pengiriman pesan
dan penempatan SRUW. Ketika SRUW menghasilkan SRUW UI ke kernel untuk mengirim pesan, UI
dicari dalam daftar lokal SRUW. Bila tidak ditemukan, SRUW UI secara otomatis dikirim kernel ke
Network Manager, yang akan menempatkan SRUW melalui komunikasi dengan jaringan lain.
Ketika SRUW sudah ditempatkan, pesan dikirim secara langsung ke SRUW dalam network
manager. Network Manager juga bertanggung jawab untuk menempatkan anggota SRUW group
dalam komputer melalui jaringan dari komputer pengirim.

.HVLPSXODQ
♦ Chorus mikrokernel mendukung open servis, emulasi sistem operasi, dalam sistem
distribusi dan distribusi memory multiprosesor, dan bersifat real-time, seperti V UNIX.
♦ Chorus kernel menyediakan process multi-thread yang disebut aktor, komunikasi
menggunakan SRUW dan group SRUW sebagai tujuan, dan menggunakan virtual memory.
♦ Server group menyediakan fasilitas migrasi SRUW dan group SRUW. Layanan group terbatas
karena resource terbagi antar server. Multicast diminta ketika resource digandakan antar
server untuk memperoleh kemampuan lebih.
♦ Resource atau resource group dapat dipindahkan secara dinamis dari satu server ke yang
lain menggunakan migrasi SRUW atau menipulasi group SRUW. Migrasi resource
membutuhkan kerja keras dan sinkronisasi dalam mengirimkan resource antar dua server
yang terlibat.
♦ Fasilitas chorus mengijinkan server bekerja pada ruang pengalamatan kernel untuk
meningkatkan performansi dan mencegah kehilangan hardware antara server dan kernel.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
120
Distributed System and Inter-Operability
__________________________________________________________________________________________

',675,%87('&20387,1*(19,5210(17

3HQGDKXOXDQ
Secara harfiah, GLVWULEXWHG FRPSXWLQJ HQYLURQPHQW (DCE) memiliki arti “ lingkungan
perhitungan terdistribusi” , yaitu suatu lingkungan yang mendukung perhitungan (computing)
terdistribusi. Aplikasi sistem terdistribusi agar bisa djalankan memerlukan adanya lingkungan
terdistribusi. Banyak produsen/ YHQGRU yang memecahan masalah yang dihadapi seputar
sistem terdistribus ini, tetapi masih untuk lingkungan dengan karakteristik masing-masing
YHQGRU.

DCE, Distributed Computing Environment, lahir dari Open Group (sebelumnya bernama
Open Software Foundaton/ OSF1). OSF mengedarkan proposal untuk mendapatkan standar-
standar sehubunan dengan DCE ini, menerima respon dan komentar atas proposal tersebut,
memilh standar yang bisa diterima, dan kemudian menyebarluaskannya.

DCE dari OSF ini merupakan salah satu dari sedikit GLVWULEXWHGFRPSXWLQJHQYLURQPHQW dan
secara GHIDFWR telah menjadi standar dalam industri. Hal ini karena OSF didukung oleh grup
vendor/ produsen utama komputer dan telekomunikasi, yaitu IBM, DEC, HP, AT&T, Sun
Microsystem, Siemens, dan lain-lain. Grup ini mengunakan DCE pada produk yang dibuat,
ataupun menjadikannya satu bundel pada sistem operasi yang diproduksinya. Dukungan DCE
sebagai WKLUG SDUW\ untuk san dan berbagai sistem di luar OSF, mulai dari PC hingga
superkomputer, tersedia.

Dalam DCE, semua layanan terintegrasikan untuk mendukung pengembangan, penggunaan,


dan pengelolaan aplikasi terdistribusi, sehingga menjadi teknologi kunci yang memungkinkan
perhitungan terdistribusi (distributed computing).

3URVHV3HQJHPEDQJDQ'&(
DCE dibangun oleh Open System Foundation (OSF) pada awal 1990’ s (OSF sekarang
bernama Open Group). OSF merupakan grup yang terdiri dari IBM, DEC, HP, AT&T, Sun
Microsystem, Siemens, dan lain-lain hingga lebih dari 300 anggota yang terdr dari YHQGRU,
independent software vendors (ISV’ s), dan users.

Tujuan awal DCE adalah untuk mengembangkan dan memasarkan Unix versi baru, yaitu
OSF/1, sistem operasi yang bersifat terbuka (RSHQ) pertama kali yang ada untuk industri.
Projek OSF/1 merupakan respon atas kerjasama antara ST&T dan Sun Microsystem untuk
mengembangkan dan memasarkan sistem operasi Unix mereka. Projek OSF/1 ini
diidentifikasikan sebagai kebutuhan solusi untuk pembangunan aplikasi-aplikasi terdistribusi
di atas OSF/1 dan sistem Unix yang lain. Hasil dari pengembangan DCE ini adalah, integrasi
paket alat bantu (WRRO) dan VRIWZDUH yang lain diperlukan untuk membangun dan mengelola
sistem terdistribusi.

1
ht t p: / / www.osf .org/

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
121
Distributed System and Inter-Operability
__________________________________________________________________________________________

Proposal Request For Technology (RFT) diedarkan oleh OSF pada bulan Juni 1989, dan
direspon oleh 32 organisasi dengan mengirimkan teknologinya. Teknologi yang dipilih
diumumkan Mei 1990. Teknologi yang dipilih berasal dari 5 organisasi. DCE ini dibangun
dengan pendekatan evolusioner , yaitu non-microkernel, tidak seperti Amoeba, Mach, &
Chorus. DCE dibangun di atas sistem operasi yang populer, Unix dan non-Unix. DCE mampu
dijaankan di atas berbagai jenis komputer, sistem operasi, dan jaringan. Oleh karena itu, DCE
memiliki kemampuan untuk menyembunyikan perbedaan sistem dan konversi data otomatis

Dalam distribusi DCE, OSF menyediakan kode, YHQGRU mengkompilasi dalam kernel ataupun
dalam aplikasi. Lisensi kode dapat dimiliki oleh siapa saja dan diperbolehkan untuk
menggunakannya dalam produk yang dibuat. DCE versi 1.0 memiliki VRXUFH FRGH yang
ditulis dalam bahasa C. Mesin/ platform referensi versi 1.0 ini adalah OSF/1 dan AIX dari
IBM. Kemudian, referensi SRUW untuk SVR4 juga disedakan.

*DPEDU'&(GDQ(YROXVL1HWZRUN2SHUDWLQJ6\VWHP

3HQGHILQLVLDQ'&(
Berikut ini tabel dukungan yang dituntut harus ada pada DCE.


7DEHO7XQWXWDQ'XNXQJDQ3DGD'&(
¹Rºm»¼º¼½»·¾¿º"Àº"»mÁY½» ¹RºA ºm½»
Lingkungan
ÈÉYÉ
yang ÃÄÅYÆ¿Ç Ä ÃÃ dan koheren Untuk menjalankan aplikas terdistribusi, menggunakan model client-server
Ç dan layanan yang terintegrasi Untuk membantu pengengembangan aplikasi terdistribusi
Dapat dijalankan di berbagai lingkungan Agar bisa digunakan di berbagai jenis komputer, sistem operasi, dan jaringan
Kemudahan
É ÊYË Ì
untuk menghaslkan aplikasi Dapat dipindah ke UNIX, VMS, Windows, maupun OS/2
à ÅYÍ Ä portabel
Transparan bagi user dan pengembang Tidak perlu mengetahui lokasi fisik data. Tidak perlu mengetahui lokasi eksekusi

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
122
Distributed System and Inter-Operability
__________________________________________________________________________________________
ɱÐ
(ÎÄÏÄ:Ç ÄÍ ) program. ÉÒ
Bekerja dengan standar yang ada saat ini Komunikasi dengan TCP/IP ataupun protokol OSI. ÑkÄÃ ÍÓ+Ä diketahui lokasinya
dengan DNS ataupun dengan sistem Ê
penamaan X.500.
Mendukung sistem sederhanan Mendukung PC (tidak perlu ƎÅmÔ Õ Í ÅYÆ„Ä ), bahkan dengan sstem ÎmÔ Ã Ö:Ç Ä Ãà .

Secara arsitektur, pendekatan dalam DCE berdasar pada karakteristik yang membedakan
lingkungkungan terdstribus dengan lingkungan VWDQGDORQH, dan kemudian dirancang solusi
atas karakteristiknya.

.DUDNWHULVWLN
Berikut ini beberapa karakteristik yang membedakan DCE dengan sistem VWDQGDORQH:
Fisik terpisah
Dengan memanfaatkan kapabilitas KDUGZDUH pada LAN (ORFDO DUHD QHWZRUN) dan
WAN (ZLGH DUHD QHWZRUN), DCE dapat secara fisik tersebar dan berpotensi untuk
dikembangkan pada area geografi yang luas.
Skalabilitas
Jumlah komponen VRIWZDUH (misalkan ILOH VHUYHU, QDPH VHUYHU, atau WLPH VHUYHU) dan
jumlah KDUGZDUH untuk proses (misalkan PXOWLXVHU WLPH VKDULQJV\VWHP, SULQWHU, atau
GLVN VHUYHU) dapat memiliki jarak yang kecil atau sangat luas. Kenyataannya, DCE
yang luas berpotensi memiliki puluhan hingga ratusan entiti komponen dan proses.
Dengan karakteristik ini, DCE mampu menangani:
Projek-projek riset dengan jumlah komputer dan user yang terbatas
Aplikasi sebenarnya memerlukan pengguna/ user sebanyak 100 hingga 1000 (dari
perbankan, bidang keuangan, mesin-mesin ATM, hingga WHOHPHGLFLQH)
Otonomi Administrasi
DCE, seperti dijelaskan sebelumnya, ada perkembangan pemisahan fisik dan
perkembangan skala, memiliki kebutuhan untuk berkembang untuk mendukung
berbagai kebijakan (SROLF\) adminstrasi yang independen terhadap domain yang lain.
Otonomi administras ini biasanya berupa sesuatu yang bersifat lokal, misalkan
bahasa, kebutuhan organisasi, dan hambatan geografi.
Heterogenitas dan Interoperabilitas
Perkembangan juga ada pada kapabiltas KDUGZDUH dan VRIWZDUH. Perubahan dapat
ditangani dengan pencadangan tempat instalasi, atau solusi antisipatif yangdiberikan
oleh organsisasi lain. Kebutuhan dukungan tidak hanya berdasar kondisi yang ada
(misalkan KDUGZDUH atau sistem operasi), melainkan juga berdasar teknologi-
teknologi baru yang nantinya juga harus dintegrasikan. Sebagai tambahan, sangat
dimungkinkan munculnya lebih dari satu penyedia, baik KDUGZDUH maupun VRIWZDUH,
untuk berbagai layanan. Detail karakteristik untuk mendukung heterogenitas dan
interoperabilitas pada DCE adalah sebagai berkut:
Mendukung jaringan komputer dan protokol yang berbeda
Mendukung perangkat dari produsen/ vendor yang berbeda, misalkan perangkat
keras dan sistem operasi
Mendukung aplikasi-aplikasi yang berbeda
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
123
Distributed System and Inter-Operability
__________________________________________________________________________________________

Memerlukan penggabungan dan penyetaraan (matching)


Mendukung tipe-tipe media transmisi yang berbeda
Mendukung protokol jaringan yang unik dari berbagai produsen/ vendor
Mendukung protokol-protokol yang standar
Mendukung skematik pengalamatan yang berbeda
Mendukung aplikasi-aplikasi yang melibatkan bermacam-macam pengguna/ XVHU.
Mendukung keamanan jaringan

7DQWDQJDQ
Berikut ini adalah tantangan yang harus dihadap oleh DCE:
Penamaan/ 1DPLQJ
Seperti pada sistem VWDQG-DORQH, kemampuan menerima informasi sehubungan
dengan nama (objek) merupakan fungsi utama pada sstem terdistribusi. Nama dapat
dihubungkan dengan, misalkan, ILOH, perangkat, atau aplikasi. Pada DCE, informasi
ini harus dapat diperoleh di mana saja di jaringan. Penamaan ini hendaknya juga
mengacu pada objek yang dinamai.
Keamanan
Mirip juga dengan lingkungan VWDQG-DORQH, kebutuhan akses kontrol pada UHVRXUFH
merupakan fungsi utama pada sistem. DCE sebagai sistem yang menggunakan
jaringan komunikasi, sangat rentan dalam pengaturan akses terhadap UHVRXUFH.
Sebagai contoh, informasi yang melalui media fisik (seperti Ethernet) tidak dapat
diasumsikan aman, dapat saja dilakukan tapping untuk dibaca dan dimanipulasi.
Kemampuan Manajemen
Sehubungan dengan karakteristik administrasi yang otonom, masing-masing jaringan
dapat dikelola dengan cara yang berbeda. Arsitektur DCE harus dapat mendukung
implementasi berbagai kebijakan manajemen. Agar bisa efektif, fungsi manajemen
ini harus djalankan oleh mesin/ sistem memiliki kemampuan sebagaimana
disyaratkan pada teknologi sistem terdstribusi, misalkan harus dapat berjalan pada
lngkungan yang heterogen dan jarngan berskala besar.
Ketidakpastian/ ,QGHWHUPLQDF\
Walaupun kemampuan sifat paralel (WUXH SDUDOOHOLVP) merupakan ciri DCE yang
efektif, tantangan utama yang paling signifikan adalah suatu ketidakpastian
(LQGHWHUPLQDF\). Ketidakpastian ni dimanifestasikan dengan tidak konsistennya data
yang digunakan bersama-sama, yang disebabkan oleh ketidaksinkronan (misalkan
suatu fungsi dijalankan paralel pada sistem yang terpisah), karena latensi (kegagalan
yang temporer, kadang berhasil, kadang gagal, dan tidak bisa diperkirakan), dan
karena urutan proses (penentuan urutan proses secara akurat harus bisa dilakukan
pada proses yang dijalankan pada sistem yang terpisah)

.HXQWXQJDQ'&(
Mengintegrasikan layanan-layanan yang ada di lingkungan perhitungan/ computing
yang berbeda, dari berbagai gabungan arsitektur, protokol, dan sistem operasi.
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
124
Distributed System and Inter-Operability
__________________________________________________________________________________________

Mudah digunakan
Lebih bernilai jika digunakan secara bersama, dibandingkan dengan secara
sendiri-sendiri.
Menyediakan kapabilitas-kapabilitas/ kemampuan-kemampuan baru
Layanan sekuriti/ keamanan
Threads
Mendukung portabilitas dan interoperability
Beroperasi sebagai midleware, yang terletak di antara sistem operasi yang
bervarasi, dengan aplikasi dan data.
Komponen DCE dapat digunakan pada berbagai sistem operasi (elemen DCE ada
pada hampir semua Unix, NT 5.0 dibangun dengan berdasar modifikasi RPC dan
keamanan pada DCE, sedangkan IBM menggunakan DCE sebagai dasar layanan
direktori dan keamanan)
0RGHO'&(

$UVLWHNWXU'&(
Arsitektur DCE memiliki kompleksitas fisik karena menyediakan lapisan/ OD\HU yang
logikanya disederhanakan, terdiri dari kumpulan layanan/ VHUYLFH yang dapat digunakan untuk
membentuk lingkungan pada DCE yang terintegrasi. DCE menyediakan lingkungan
komunikasi yang memungkinkan informasi berpndah dari tempat asalnya (misalkan) ke
tempat lain yang membutuhkan (misalkan ZRUNVWDWLRQ di laboratorium atau kantor).
Lingkungan ini didesain dapat bekerja tanpa perlu mengekspos kompleksitas jaringan kepada
HQG-XVHU, administrator sistem, atau pengembang aplikasi.

$33/,&$7,216
Distributed
Û File Service
Û Û
× æ æ Û ë × Ù Úé"éYê
äOå æmçAè Ø A Ý ì Ý í Û ë Ø Ù äOå æ Ý å î Ú Ý Û Øï ß
ØÙ × Ø å Ø × Ø å Ø æ·ð ñ Ú Ý Ú Y Ø ò àá
Û Ûë Ù
ÚÛ äOå æ Ý å î Ú Ý Øï ñ"å è Ø × Ø å Ø à
â
Ü Û Ù Û Û á á Ø
Ý óGå Û ã·
ë ØÙ änå Ø Û ë Ý ê Ù Þ ì ±Ý í Ø Û ë Ù ñ Ú ïàã·Ø Û Ý à è
ã
× Ø å Ø × Ø å Ø × Ø å Ø ·
æ ð ñ Ú Ý Ú ØYò
Þ Øá
Û Ù Û
ô 
Ø ã ê Ý Øöõ ê ØYï Ú Ø“÷Oà è è æ
Ý
Û
ó í ØAàï æ

23(5$7,1*6<67(0$1'75$163257

*DPEDU$UVLWHNWXU'&(

Gambar di atas menunjukkan arsitektur DCE. Model berlapis (OD\HUHG PRGHO) ini
mengintegrasikan kumpulan teknologi yangfundamental. Arsitektur ini memiliki OD\HU dari
bawah ke atas, dari layanan yang paling dasar, yaitu sistem operasi, hingga ke OD\HU teratas
dari lingkungan yang disediakan. Layanan keamanan dan manajemen memiliki esensi bagi
semua OD\HU. Pada aplikasi, DCE nampak sebagai sebuah sistem logis tunggal yang dapat
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
125
Distributed System and Inter-Operability
__________________________________________________________________________________________

dikelola menjadi dua kategori layanan utama, yaitu inti keamanan DCE (DCE Secure Core)
dan layanan bersama data DCE (DCE Data Sharing Services).

$UVLWHNWXU3DGD0LFURVRIW:LQGRZV

økù„ú  
û¿üýü þ ÿ

        ù  !


ÿ  þ ÿ

   - /
 .     0 ü 
þ ÿ þ #

   û 

"  %$
  # &(' 

û·üü)      
*,+  ÿ ÿ
  

*DPEDU$UVLWHNWXU'&(SDGD0LFURVRIW:LQGRZV

&OLHQW6HUYHU
Model DCE mengandalkan model client-server, dengan mekanisme client sebagai pihak yang
meminta layanan (VHUYLFH UHTXHVW) dan server sebagai penyedia layanan (VHUYLFH SURYLGHU).
Model client-server ini dimiliki oleh semua mesin yang ada di dalam DCE, dan setiap mesin
dapat memiliki dukungan untuk menjadi keduanya, baik sebagai FOLHQW maupun sebagai
VHUYHU. Setiap proses pun dapat bertindak sebagai FOLHQW maupun sebagai VHUYHU.

6HO &HOO 
Hampir semua FOLHQW melakukan hampir semua komunikasinya hanya dengan sedikit VHUYHU.
Pada DCE, FOLHQW dan VHUYHU yang saling berkomunikasi hampir semuanya dikelompokkan
jadi satu kelompok yang disebut sel (FHOO). Sel ini bertindak sebagai unit administratif. Setiap
mesin hanya memiliki satu sel, dan setiap sel dapat terdiri dari dua hingga ratusan sistem.
DCE mengoptimalkan komunikasi intrasel.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
126
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU&RQWRK6LVWHP'DODP6HO'&(

*DPEDU6LVWHP0XOWLVHO

Sel ini merupakan kelompok pembagian bersama (sharing) XVHU, sistem, dan UHVRXUFH pada
layanan umum DCE, termasuk keamanan dan penamaan. Sel ini biasanya dikelompokkan
dalam masing-masing kelompok geografi.

Pembagian sel ini berhubungan dengan:


Tujuan
Komponen sel (mesin & XVHU) harus bisa digunakan untuk tujuan DCE dalam waktu
yang cukup lama (misalkan tahunan). Dapat berhubungan dengan layanan lain,

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
127
Distributed System and Inter-Operability
__________________________________________________________________________________________

misalkan sebagai online banking harus dapat berhubungan dengan ATM dan
komputer sentral.
Biaya
Dalam hal ini aspek geografi berpengaruh, selain karena komunikasi jaringan jarak
jauh yang kurang handal dan lambat. Pembangunan sel dengan jarak geografi yang
relatif sempit secara logis akan menurunkan biaya implementasi.
Keamanan
DCE dapat bekerja jika antar-XVHU dalam satu sel saling percaya, lebih dari yang di
luar sel. Konsep firewall digunakan agar akses sumber daya internal dapat secara
langsung, sedangkan akses eksternal perlu persetujuan.
Administrasi
Setiap sel memerlukan administrator, yang bertugas mengatur manajemen internal
sel dan antarsel, dan termasuk meminimalikan operasi lintas sel. Setiap sel memiliki
standar keamanan yang otonom. Hal ini memberikan keuntungan, bahwa akses tanpa
autorisasi harus menembus keamanan keseluruhan sel sebelum dapat melakukan
aktivitas KDFNLQJ/ FUDFNLQJ.

)DVLOLWDV'&(
DCE memberikan fasilitas WKUHDG untuk pengaturan dan RPC (UHPRWHSURFHGXUHFDOO) untuk
komunikasi.

7KUHDGV
Hampir semua sistem operasi modern (misalkan Windows 2003 Server dan Solaris) dan
generasi terbaru bahasa pemprograman (misalkan Java) mengintegrasikan konsep WKUHDG.
DCE memperbolehkan WKUHDG ganda pada pengaturan kontrol dimunculkan pada proses yang
sama pada waktu bersamaan. Paket WKUHDG DCE dibangun berdasarkan Concert Multithread
Architecture (CMA) yang dikembangkan DEC. 7KUHDG DCE dijalankan pada XVHU VSDFH, dan
menyediakan prosedur pustaka (OLEUDU\ SURFHGXUH) berlevel XVHU yang memperbolehkan
proses melakukan FUHDWH, GHOHWH, ataupun manipulasi pada WKUHDG, termasuk menyediakan
rutin (URXWLQH) VPDOO ZUDSSHU untuk mentranslasi FDOO menjadi paket WKUHDG yang berbasis
kernel. 7KUHDG DCE digunakan oleh komponen DCE yang lain

Dukungan yang diberikan WKUHDG ini adalah lingkungan multiprosesor dengan menggunakan
VKDUHG PHPRU\. Layanan semaphore disediakan untuk sinkronisasi akses terhadap VKDUHG
PHPRU\ ini. Algoritma penjadwalan untuk proses antrian WKUHDG memiliki tiga pilihan, yaitu
FIFO, Round Robin, dan Time-sliced Round Robin.

.HXQWXQJDQ
7KUHDG pada DCE ini memberikan keuntungan
Mudah digunakan
Dukungan multi-language

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
128
Distributed System and Inter-Operability
__________________________________________________________________________________________

Dukungan multi-processing yang transparan

6WDWXV7KUHDG
Running
Ready
Waiting
Terminated

3HUPDVDODKDQ
Permasalahan yang muncul adalah ketika mesin dengan kemampuan VLQJOH-WKUHDG harus
menangani PXOWL-WKUHDG, maka perlu proses konversi dari VLQJOH-WKUHDG menjadi multi-WKUHDG.
Sedangkan konsekuensi dari konversi ini adalah:
Pensinyalan, bagaimana mengatur antara pensinyala sinkron dan asinkron
Standar pustaka (OLEUDU\), dilakukan dengan penjaketan prosedur menjadi suatu
library yang standar, misalkan UHDG dan IRUN
Variabel Global Status Error (ERRNO), semua WKUHDG menggunakan variabel yang
sama, sehingga pada proses yang paralel akan tumpang tindih. Untuk itu dibuat
antarmuka penanganan HUURU.

5HPRWH3URFHGXUH&DOO 53& 
5HPRWH3URFHGXUH&DOO(RPC) merupakan dasar bagi FOLHQW-VHUYHU untuk berkomunikasi pada
DCE. RPC ini menangani penentuan lokasi VHUYHU, ELQGLQJ, dan melakukan FDOO.

*DPEDU0HNDQLVPH53&3DGD'&(

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
129
Distributed System and Inter-Operability
__________________________________________________________________________________________

7XMXDQ
Untuk mencapai transparansi akses, yang memungkinkan FOLHQW melakukan akses pada UHPRWH
VHUYLFH semudah melakukan FDOO pada prosedur lokal, dengan demikian akan memudahkan
pemprograman aplikasi FOLHQW-VHUYHU.

.HXQJJXODQ
5XQWLPHOLEUDU\ pada RPC bertanggung jawab untuk
Locating a server in the distributed system and binding to it
Performing message exchanges
Packing and unpacking message parameters
Handling data type conversions between different clients and servers
Processing errors
Mekanisme RPC menyediakan independensi pada protokol dan jaringan
DCE menyediakan Interface Definition Language (IDL) dan kompilernya untuk
memfasilitasi pembuatan kode untuk FOLHQW dan server dengan menggunakan RPC.
and compiler that facilitate creation of client and server code using RPC

*DPEDU3URVHV3HQJNRGHDQ53&8QWXN&OLHQW6HUYHU

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
130
Distributed System and Inter-Operability
__________________________________________________________________________________________

%LQGLQJGDUL&OLHQWNH6HUYHU
Server
Tiap mesin VHUYHU menjalankan proses GDHPRQ (VRIWZDUH aplikasi VHUYHU) RPC yang
mengelola tabel register setiap HQGSRLQW VHUYHU. 6HUYHU melakukan registrasi HQGSRLQW
pada GDHPRQ RPC dan melakukan registrasi layanan serta KRVW pada VHUYHU direktori
yang terpisah.
Client
&OLHQW menghubungi VHUYHU direktori untuk mencari KRVW dari VHUYHU yang diinginkan,
kemudian menghubungi GDHPRQ RPC pada VHUYHU KRVW yang dituju untuk
menentukan HQGSRLQW. Setelah itu FOLHQW melakukan operasi RPC, ELQGLQJ Performs
RPC, binding to correct end point on server KRVW

*DPEDU%LQGLQJ'DUL&OLHQW.H6HUYHU


/D\DQDQOD\DQDQ 6HUYLFHV '&(

'LVWULEXWHG7LPH6HUYLFH '76 
Layanan DTS ini disediakan agar secara transparan dapat dilakukan pengelolaan pewaktuan
(FORFN) yang konsisten pada sitem terdistribusi. Sinkronisasi FORFN semua komputer dengan
standar pewaktuan yang secara luas dapat dikenali (widely-recognized time standard).
Tujuannya adalah FORFN yang sama pada suatu waktu dan terus sama pada waktu lain

.HXQWXQJDQ
Fault tolerance
Manajemen yang sederhana
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
131
Distributed System and Inter-Operability
__________________________________________________________________________________________

0RGHOSHZDNWXDQ
Manajemen perbedaan waktu
Grup call pada DTS: Retreiving times, converting times, manipulating times,
comparating times, calculating times, using time zones

.RPSRQHQ'76
Global Time Server
Sistem terdistribusi memiliki Global Time Server yang lebih dari satu yang akan
menjadi penjaga agar Local Time Servers dalam sel yang berbeda dapat sinkron.
Local Time Server
Setiap sel memiliki Local Time Server yang akan menjaga sinkronisasi FORFN pada
semua anggota sel agar sinkron, sekaligus meminta Global Time Servers untuk
melakukan sinkronisasi

%HEHUDSD,VWLODK
Clock drift rate, pengukuran laju penambahan ketidakakuratan pada FORFN lokal.
Universal Coordinated Time (UCT), format FORFN yang secara umum diterima di
seluruh dunia, mengekspresikan waktu sejak 15 Oktober 1852 sebagai permulaan
kalenda gregorian. UTC VHUYHU menyediakan layanan FORFN UTC melalui koneksi
satelit, radio, atau telepon.

0HNDQLVPH'76
Local Time 6HUYHU (LTS) meminta sinkronisasi pada Global Time Servers (GTS) dan
direspon oleh semua GTS termasuk memberikan data ketidakakuratannya. Informasi FORFN
yang diberikan GTS berupa interval waktu dengan data 64-bit. Interval waktu ini dihitung
LTS untuk mendapatkan FORFN yang tepat berdasar multirespon yang diterima. LTS
menyesuaikan FORFN dengan cara langsung maupun gradual. Perhitungan FORFN ini dilakukan
berdasar nilai interval maksimum atas semua respon yang diterima. Respon data di luar
interval maksimum ini tidak digunakan. Titik tengah interval maksismum ini digunakan
sebagai FORFN yang akurat.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
132
Distributed System and Inter-Operability
__________________________________________________________________________________________

*DPEDU0HNDQLVPH'76

/LEUDU\3URFHGXUHV &DOOV SDGD'76


Terdapat 33 FDOO yang digunakan oleh DTS dan dikelompokkan menjadi 6 grup, yaitu:
Retrieving times, untuk mendapatkan waktu saat ini
Converting times, konversi biner-ASCII
Manipulating times, aperhitungan interval
Comparing times, komparasi dua FORFN
Calculating times, perhitungan aritmatika pada FORFN
Using time zones, manajemen zona waktu

,PSOHPHQWDVL'76
'DHPRQ DTS (hampir semua menggunakan Time Clerk) pada client dijalankan untuk
sinkronisasi. Time Clerk menghubungi time server di LAN, meminta sinkronisasi FORFN,
kemudian dilakukan koreksi pada FORFN.

'LUHFWRU\6HYLFH
Cell Directory Service, (CDS) and Global Directory Service, (GDS)

*RDOV
Make all resources accessible to any process in the system without regard for
location users, machines, cells, servers, services, files, security data
Location transparency - hide resource locations

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
133
Distributed System and Inter-Operability
__________________________________________________________________________________________

&RPSRQHQWV
Cell Directory Service (CDS)
CDS server maintains names for one cell
CDS clerk (daemon process) does client caching
Global Directory Service (GDS)
Service for locating cells
X.500 naming standard, provides unique name to each resource
/C=US/O-CNU/TITLE=PROF/TELE=7563/OFFICE=217/NAME=ZHANG/
Global Directory Agent (GDA)
Local agent (daemon process) contacts external GDS and DNS servers

)HDWXUHV
Hides actual paths/machine names
Provides proxies on local machines to intercept calls for devices/resources and
redirect them to correct servers
Client cashing increases availability and performance
Supports DNS naming
X.500 standard naming uses object-oriented information model

*DPEDU5HODWLRQVKLSEHWZHHQGLUHFWRU\VHUYLFHFRPSRQHQWV

'LVWULEXWHG)LOH6HUYLFH ')6 
Distributed file system, X.500 standard, works with local files systems. Menggabungkan file
system yang individu. Keuntungannnya adalah performansi tinggi, skalabilitas, dan
keamanan.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
134
Distributed System and Inter-Operability
__________________________________________________________________________________________

*RDOV
Provide a seamless wide-area (potentially worldwide) file system spanning the
heterogeneous distributed network of computers
Provide namespace transparency so users only

&RPSRQHQWV
File units: Files and directories
Files sets: File sets are groups of directories
Base file: units that are manipulated, replicated and backed up
Disk partitio
Client side – cache manager
Server side –
Episode - ACL protection, replication, fast recovery
Token manager – handles consistency, involved in caching

)HDWXUHV
DSF is a DCE application that has access to (is integrated with) all other DCE
facilities
Threads – to server multiple simultaneous file access request
RPC – for communicating the file service to clients
Time service – to synchronize file server clocks
Directory service - to allow file servers to be located
Security service – for authentication and privilege access to files
DFS has two main parts – a local part and a wide-area part
Local part – “ Episode” – analogous to a stand-alone UNIX file system
Provides seamless integration over existing file many systems
4.3 BSD, System V, NFS, Episode, & other file systems
File name – each file name in the system (potentially worldwide)
has unique path extending from the global root ” /” directory
Includes local cell name concatenated with its name within the cell

)LOH1DPHV
There are four ways to refer to the same Global file name
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
135
Distributed System and Inter-Operability
__________________________________________________________________________________________

File system relative - /:/usr/tjones/report


Cell relative - /.:/fs/usr/tjones/report
Internet format - /… /cs.vt.edu/fs/usr/tjones/report
X.500 format - /… /C=US/O=VT/OU=CS/fs/usr/tjones/report
“ /fs/” is the junction where the local file system is mounted in the global DFS tree

)LOHDFFHVVZLWK$FFHVV&RQWURO/LVWV
DFS uses ACLs instead of UNIX RWX file permissions
An ACL for a file or directory consists of a list of entries describing owners, users,
groups, local/foreign and corresponding allowed operations
read, write, execute, insert, delete, control

.HDPDQDQ

*RDOV
Menyediakan jaringan dengan layanan umum:
Autentikasi validitas principal
Autorisasi hak-hak principal
Manajemen account pengguna: Menggunakan RPC pada DCE untuk memberikan
jaminan integritas komunikasi
Principal (pelaku): User atau proses yang hendak berkomunikasi secara aman

&KDOOHQJHV
Need method for communicating parties to prove who they are
Clear-text passwords (time-shared system model) will not suffice

'HILQLWLRQRINH\WHUPV
Non-Repudiation
A means of providing irrefutable evidence that two parties were involved in a
client/server interaction. Successful non-repudiation prevents attacks via message
corruption or message replay.
Privilege Access Certificates (PAC’ s)
Encrypted messages that contain the client’ s identity, group and organization
membership such that servers can be instantly convinced of the client’ s identity.
Contains the user’ s identity and the list of groups to which he belongs.
Access Control List (ACL)
List of users and groups that are allowed to access a UHVRXUFH. Maintained for every
distributed resource

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
136
Distributed System and Inter-Operability
__________________________________________________________________________________________

'&(¶V'LVWULEXWHG6HFXULW\6HUYLFH
Called Kerberos (Mythology: 3-headed dog that guarded gates of Hades)
Exceeds C2 level certification
Key Features of Kerberos security
Digital certificates
Access control lists
Encryption
Cryptographic checksums
Message time stamps
Works with Enterprise-wide distributed systems
Not good for use with world-wide distributed systems, Internet

.HUEHURV
Developed at MIT (Athena Project). Versions of Kerberos can be purchased
commercially, or downloaded from MIT. Provides a trusted third party that allows two
processes to prove that they are who they say they are. Uses encrypted “ tickets” for user
authentication, session access and subsequent communication with a server
Weaknesses of Kerberos:
Does not scale well in unmanaged Internet environment. Popular Internet solution
uses digital certificates with a public & private key infrastructure.
Encryption introduces significant performance overhead, some configurations can be
overkill in certain applications

0DMRU&RPSRQHQWVRI.HUEHURV
Registry Server - Manages the security database, the “ registry”
Account information - names of users, groups, resources, and organizations
Policy information – length, format, lifetime of passwords, etc.
Authentication Server
Verifies identity of client
Ticket Granting Server
Issue “ ticket” to allow subsequent authorization without need for sending
password across the network (actually same process as Auth. Server)
Privilege Server
Issues Privilege Access Certificates (PAC’ s) to authenticated users for access to
distributed services
Login Facility

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
137
Distributed System and Inter-Operability
__________________________________________________________________________________________

Provides login sequence to get user logged in and collect necessary tickets and
PAC’ s for them

*DPEDU.RPSRQHQ.HUEHURV

3HPDNDLDQ'&(

0HVLQ3HQGXNXQJ

6\DUDWNHPDPSXDQ
Multi-programming
IPC
Manajemen memori
Timer
Keamanan

3HQJDWXUDQ
Administrator sistem mengatur layanan apa yang dijalankan di mesin yang mana
Umumnya layanan hanya di mesin “ system server”

9HQGRU
%HUEDVLV 8QL[ DEC OSF/1, Ultrix, HP-UX, AIX, SunOS, Solaris, Cray Unicos,
OS/2, IBM AS/400, MVS, Cray Unicos, Siemens Sinix, Tandem Guardian, Integrity
%HUEDVLV 1RQ8QL[ OpenVMS, MS Windows (Windows 3.1, Window 9x,
Windows NT/ 2k, Windows XP, Windows 2003 6HUYHU)

3URJUDPPHUV
DCE implements the client/server model. access services and applications via RPC calls to
remote servers make use of standard programming interface with RPC calls don’ t have to
worry about where the programs actually run or where the data is actually located

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
138
Distributed System and Inter-Operability
__________________________________________________________________________________________


8VHUV
Single system login
Transparent access to distributed resources and services

,QIRUPDVL7DPEDKDQ

'&(¶V$QVZHUV
How do we locate a service? Directory Service
How do we talk to the service? RPC
How do we provide security? Security Service
How do we support autonomy? Cells
How do we make it scalable? Service Distribution
How do we handle heterogeneity? RPC and DFS

&25%$YV'&(

&25%$
focused on interoperability
object-oriented
scalable?
performance?
http://www.omg.org

'&(
focused on performance, scalability
lower-level
interoperability?
http://www.xopen.org

5LQJNDVDQ
DCE is a network-programming environment that attempts to hide the underlying complexity
of distributed systems. It is a procedural programming environment that converts the function
calls from a client to a server into RPCs. DCE takes care of all the underlying differences
between the hardware (such as big endian/little endian) and the operating system (such as
parameter order) through marshalling.
DCE introduces many standards into the chaotic world of distributed computing. Platform-
independent implementations for threads, RPC, directory services, time services, security, and
data sharing are all detailed in DCE.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
139
Distributed System and Inter-Operability
__________________________________________________________________________________________



5HIHUHQVL
Open System Foundation
www.osf.org/dce/index.html
Project Pilgrim, U of Massachusetts
info.pilgrim.umass.edu/pub/osf_dce
Center for Info Tech Integration (CITI)
www.citi.umich.edu/techreports
Transarc Corporation
www.transarc.com/pub/ps/dce
Digital Equipment Corporation, October 1994. “ Digital Distributed Computing Environment
(DCE) for Windows NT“ . http://www.digital.com/info/dce/ntinfo.htm
“ OSF Standards for RPC” . Microsoft Corporation. MSDN Library January 1997.

Coulouris, George, Distributed Systems, Addison-Wesley, New York, NY, 2001


Galli, Doreen L., Distributed Operating Systems Concepts & Practice, Prentice Hall, Upper
Saddle River, NJ, 2000
Gray, John Shapley, Interprocess Communications in UNIX, Prentice Hall, Upper Saddle
River, NJ
Hansen, Brad, The Dictionary of Computing and Digital Media, ABF Content, Wilsonville,
Oregon 1999
Orfali, Robert, Client/Server Survival Guide, John Wiley & Sons Inc., New York, 3rd edition,
NY, 1998
Tanenbaum, Andrew S., Distributed Operating Systems, Prentice Hall, Upper Saddle River,
NJ, 1995

/DPSLUDQ

'&(*ORVVDU\RI7HFKQLFDO7HUPV
$FFHVV&RQWURO/LVW $&/ 
Data that controls access to a protected object. An access control list specifies the privilege
attribute(s) needed to access the object and the permissions that can be granted, with
respect to the protected object, to principals that possess such privilege attribute(s).
$SSOLFDWLRQ3URJUDPPLQJ,QWHUIDFH $3, 
A set of callable routines that a programmer uses to interact with an application.
$V\QFKURQRXVRSHUDWLRQ
An operation that does not itself cause the process or thread) requesting the operation to be
blocked from further use of the CPU. This implies that the process and the operation are
running concurrently.
$XWKHQWLFDWLRQ
The verification of a principal'
s network identity.
$XWKHQWLFDWLRQSURWRFRO

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
140
Distributed System and Inter-Operability
__________________________________________________________________________________________

A formal procedure for verifying a principal’s network identity; Kerberos is an instance of


a shared-secret authentication protocol.
%LQGLQJ
A relationship between a client and a server involved in a remote procedure call.
%ORFNLQJFDOO
A call in which a caller is suspended until a called procedure completes.
&DFKLQJ
The technique of copying data from a server machine (its central storage place) to a client
machine’s local disk or memory; users then access the copy locally. Caching reduces
network load because the data does not have to be fetched across the network more than
once (unless the central copy changes).
&HOO
The basic unit of operation in the DCE. A cell is a group of users, systems and resources
that are typically centered around a common purpose and that share common DCE
services.
&HOO'LUHFWRU\6HUYLFH &'6 
A distributed, replicated naming service
&OLHQW
The party that initiates a remote procedure call. Some applications act as both an RPC
client and an RPC server. See also server.
&RQGLWLRQYDULDEOH
A synchronization object used in conjunction with a mutex. A condition variable allows a
thread to block until some event happens.
&UHGHQWLDOV
A general term for privilege attribute data that has been certified by a trusted privilege
certification authority. In DCE credentials are implemented as Privilege Attribute
Certificates (PACs). See also Privilege Attribute Certificate.
'LVWULEXWHG)LOH6HUYLFH ')6 
A file service that joins the local file systems of several File Server machines, making the
file systems equally available to all DFS client machines.
'LVWULEXWHG7LPH6HUYLFH '76 
The Distributed Time Service synchronizes the clocks in networked systems and is
responsible for propagating a consistent notion of time throughout a cell.
'RPDLQ1DPLQJ6HUYLFH '16 
A distributed directory service used on the Internet. Along with GDS, it provides a global
namespace that connects local DCE cells into one worldwide hierarchy.
*OREDO'LUHFWRU\6HUYLFH *'6 

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
141
Distributed System and Inter-Operability
__________________________________________________________________________________________

A distributed, replicated directory service based on the CCITT X.500/ISO 9594


international standard. Along with DNS, it provides a global namespace that connects local
DCE cells into one worldwide hierarchy.
*OREDOQDPH
A name that is universally meaningful and usable from anywhere in the DCE naming
environment. The prefix /... indicates that a name is global.
,QWHUIDFH
See RPC Interface.
,QWHUIDFH'HILQLWLRQ/DQJXDJH ,'/ 
A high-level declarative language that provides the syntax for interface definitions.
,3
Internet Protocol. A family of network protocols defined by the U.S. Department of
Defense.
.HUEHURV
The authentication protocol implemented in DCE. Kerberos was developed at the
Massachusetts Institute of Technology. In classical mythology, Kerberos was the three-
headed dog that guarded the gates of the underworld.
.H\
A value used to encrypt and decrpyt data.
/RDGEDODQFLQJ
Distributing system load evenly across server machines by placing identical copies of
frequently accessed information among available server machines.
/RFDO$UHD1HWZRUN /$1 
A set of computers sharing a network that does not include bridges or Wide Area Network
links.
/RFDOQDPH
A name that is meaningful and usable only from within the cell where the entry exists. The
local name is a shortened form of the global name. Local names begin with the prefix /.:
and do not contain a cell name.
0XWH[
A synchronization object that provides mutual exclusion among threads. A mutex is often
used to ensure that shared variables are always seen by other threads in a consistent state.
1HWZRUN&RPSXWLQJ$UFKLWHFWXUH 1&$ 
An architecture for distributing software applications across heterogeneous collections of
networks, computers and programming environments. NCA specifies the DCE Remote
Procedure Call architecture.
1HWZRUN'DWD5HSUHVHQWDWLRQ 1'5 

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
142
Distributed System and Inter-Operability
__________________________________________________________________________________________

The transfer syntax defined by the Network Computing Architecture.


1HWZRUN)LOH6\VWHP 1)6 
A protocol for remote file access developed by Sun Microsystems, Inc.
1HWZRUN,QIRUPDWLRQ6\VWHP 1,6 
A protocol for remote distribution of common configuration files developed by Sun
Microsystems, Inc.
1HWZRUNSURWRFRO
A communications protocol from the Network Layer of the OSI network architecture, such
as the Internet Protocol.
2EMHFW
A data structure that implements some feature and has an associated set of operations. For
RPC applications, an object can be anything that an RPC server defines and identifies to its
clients (using an object UUID). Often an RPC object is a physical computing resource such
as a database, directory, device or processor. Alternatively, an RPC object can be an
abstraction that is meaningful to an application, such as a service or the location of a
server. See also object UUID.
2EMHFW88,'
The universal unique identifier that identifies a particular RPC object. A server specifies a
distinct object UUID for each of its RPC objects; to access a particular object RPC object,
a client uses the object UUID to find the server that offers the object. See also object,
Universal Unique Identifier.
2SHQ&RQQHFWLYLW\$UFKLWHFWXUH
A standard way of connecting applications to enterprise services.
3DVVZRUG
A string presented by a principal to prove its identity. The login facility transforms this
string to generate an encryption key that is used by the Authentication Service to
authenticate the principal.
326,;
A set of standards intended to provide portable interfaces to operating systems services.
3ULQFLSDO
An entity that is capable of believing that it can communicate securely with another entity.
In DCE, principals are represented as entries in the security database and include users,
servers, computers and cells.
3ULYLOHJH$WWULEXWH&HUWLILFDWH 3$& 
Data, describing a principal’s privilege attributes, that has been certified by an authority. In
DCE, the Privilege Service is the certifying authority. The Privilege Service, along with
Kerberos, is part of the DCE Security Service.
5HPRWH3URFHGXUH&DOO 53& 

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
143
Distributed System and Inter-Operability
__________________________________________________________________________________________

A call to a procedure in a different address space. In a traditional procedure call, the calling
procedure and the called procedure are in the same address space on one machine. In a
remote procedure call, the calling procedure invokes a procedure in a different address
space and usually on a different machine.
5HSOLFDWLRQ
The process of creating read-only copies of information. Replication is supported by the
Security, Directory and File services in DCE. Replication can improve availability and
load balancing. See also load balancing.
53&,QWHUIDFH
A logical grouping of operation, data type, and constant declarations that serves as a
network contract for calling a set of remote procedures. See also interface definition
language.
6HUYHU
The party that receives remote procedure calls. A given application can act as both an RPC
server and an RPC client. See also client.
7KUHDG
A single sequential flow of control within a process.
7UDQVDFWLRQ
A related set or unit of changes to metadata. The events in a transaction are atomic. No
change takes effect unless all the changes that make up that transaction are performed.
7UDQVSRUWLQGHSHQGHQFH
The capability, without changing application code, to use any transport protocol that both
the client and server systems support, while guaranteeing the same call semantics. See also
transport layer, transport protocol.
7UDQVSRUWOD\HU
A network service that provides end-to-end communications between two parties, while
hiding the details of the communications network. The TCP and ISO TP4 transport
protocols provide full-duplex virtual circuits on which delivery is reliable, error free,
sequenced, and duplicate free. UDP provides no guarantees.
7UDQVSRUWSURWRFRO
A communications protocol from the transport layer of the OSI network architecture, such
as the Transmission Control Protocol (TCP) or the User Datagram Protocol (UDP).
8QLYHUVDO8QLTXH,GHQWLILHU 88,' 
An identifier that is immutable and unique across time and space. See also object UUID.
:LGH$UHD1HWZRUN :$1 
A network that includes computers spread across a large geographical distance, usually
involving several cities, states or countries. Communications connections in a WAN are
typically done over modems, T1 lines, or satellite hookups.
;2SHQ)HGHUDWHG1DPLQJ ;)1 
___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
144
Distributed System and Inter-Operability
__________________________________________________________________________________________

XFN provides a federated naming service interface comprising a set of common naming
operations and infrastructure policies for constructing composite names. A federated
naming service maps composite names to their references.

2SHQ*URXS5)&V
Last update: 18-May-1999
The following list details the status of the RFC’s and their applicability to the current and
planned DCE offerings.
When reading this list, please note that those items designated as ‘‘provided’’ or ‘‘met’’ in a
particular DCE release do not necessarily provide or meet everything that is specified in
the associated RFC. It is likely that there are variations between what is documented in the
RFC and what was actually implemented. For full details, please refer to official DCE
release documentation.

;(13<25= 4+» 687:9Yº 2


 ?> ¼A@ 4CB:¾D4:EGFH7:> 2¼I> 9Y»5B:¾¿½A¼A4 
¹

100.0 DCE AND FORTEZZA


January 1997
99.0 MESSAGE QUEUING FOR DCE
March 1997
98.0 CHALLENGES CONCERNING PUBLIC-KEY IN DCE
December 1996
96.0 DFA: DISTRIBUTED FILE ACCESS MANAGER -- FUNCTIONAL SPECIFICATION
Planned for DCE 1.2.
April 1996
95.0 DCE/NEXT: REQUIREMENTS SUMMARY
August 1996
94.1 A PRIVATE KEY STORAGE SERVER FOR DCE -- FUNCTIONAL SPECIFICATION
November 1996
93.0 DCE 1.2 SECURITY SCALABILITY AND PERFORMANCE -- FUNCTIONAL
SPECIFICATION
Planned for DCE 1.2.
February 1996
92.0 DCE INTEROPERABILITY WITH KERBEROS
Planned for DCE 1.2.
January 1996
91.0 USER-TO-USER AUTHENTICATION -- FUNCTIONAL SPECIFICATION
Planned for DCE 1.2.
January 1996
90.0 PROPOSED SECURITY ENHANCEMENTS FOR DCE DFS
Planned for DCE 1.2.
February 1996
89.0 A BULK STATUS RPC FOR DFS
Planned for DCE 1.2.
89.0 December 1995
88.0 A JUKEBOX BACKUP SUBSYSTEM FOR DFS
Planned for DCE 1.2.
December 1995
87.0 DCE 1.2 GLOBAL GROUPS FUNCTIONAL SPECIFICATION
Planned for DCE 1.2.
December 1995
86.0 UNIFIED LOGIN WITH PLUGGABLE AUTHENTICATION MODULES (PAM)

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
145
Distributed System and Inter-Operability
__________________________________________________________________________________________

Planned for CDE/Next.


October 1995
85.0 IMPROVED PUBLIC KEY LOGIN PROTOCOLS FOR DCE
The DCE authentication protocol (see also RFC 68.2) is planned for 1.2.
October 1995
84.0 DFS GATEWAY SUPPORT OF @SYS AND @HOST PER NFS CLIENT MAPPINGS
Planned for DCE 1.2.
July 1995
83.0 DCE 1.2 REGISTRY SYNCHRONIZATION -- FUNCTIONAL SPECIFICATION
No current OSF plans.
May 1995
82.0 Not yet published.
81.3
DCE ASSIGNED VALUES
Registry for DCE protocols, etc., maintained by OSF.
81.3 December 1998
81.2 DCE ASSIGNED VALUES
Registry for DCE protocols, etc., maintained by OSF.
81.2 July 1996
80.1 DCE 1.2 CERTIFICATION API -- FUNCTIONAL SPECIFICATION
Planned for DCE 1.2.
80.1 December 1996
80.0 DCE 1.2 CERTIFICATION API -- FUNCTIONAL SPECIFICATION
Planned for DCE 1.2.
80.0 January 1995
79.0 PST ACCEPTANCE CRITERIA
Informational document about OSF.
February 1995
78.0 EPISODE VNODE SYNCHRONIZATION
Planned for DCE 1.2.
January 1996
77.0 SUPPORTING MULTI-HOMED DFS SERVERS
Planned for DCE 1.2
January 1996
76.0 MULTI-THREADING THE DFS REPLICATION SERVER
Planned for DCE 1.2.
May 1995
75.0 EPISODE VM INTEGRATION
Planned for DCE 1.2.
October 1995
74.0 SERVER PREFERENCES IN DFS
Planned for DCE 1.2.
May 1995
73.0 DFS TOKEN MANAGER REDESIGN
Planned for DCE 1.2.
October 1995
72.0 Not yet published.
71.0 IMPROVED SECURITY FOR SMART CARD USE IN DCE
No current OSF plans.
February 1995
70.0 Not yet published.
69.0 DCE 1.2 CDS FUNCTIONAL SPECIFICATION
Planned for DCE 1.2.
November 1994
68.4 DCE PUBLIC-KEY CERTIFICATE LOGIN -- FUNCTIONAL SPECIFICATION
DRAFT 0.8

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
146
Distributed System and Inter-Operability
__________________________________________________________________________________________

August 1998
68.3 DCE 1.3 PUBLIC-KEY LOGIN -- FUNCTIONAL SPECIFICATION
Planned for DCE 1.2.2.
January 1997
68.2 DCE 1.2 PUBLIC-KEY LOGIN -- FUNCTIONAL SPECIFICATION
Planned for DCE 1.2.2.
February 1996
68.1 DCE 1.2 PUBLIC-KEY LOGIN -- FUNCTIONAL SPECIFICATION
Planned for DCE 1.2.2.
February 1995
68.0 DCE 1.2 PUBLIC-KEY LOGIN -- FUNCTIONAL SPECIFICATION
Planned for DCE 1.2.2.
November 1994
67.0 DCE EVENT MANAGEMENT SERVICE
Being considered for future DCE PST work.
January 1996
66.0 DCE SNMP SUPPORT
Being considered for future DCE PST work.
January 1996
65.0 Not yet published.
64.0 SECURITY SIG STRATEGY DOCUMENT
Informational document.
October 1994
63.3 DCE 1.2 CONTENTS OVERVIEW
Informational document about DCE 1.2 structure and contents.
October 1996
62.0 Not yet published.
61.0 Not yet published.
60.0 DCE IDL EXCEPTION ENHANCEMENTS -- A COMPARISON OF TWO MODELS
Informational.
April 1994
59.0 KERBEROS AND TWO-FACTOR AUTHENTICATION
No current OSF plans.
March 1994
58.0 EXTENSIONS TO DCE IDL FOR SUPPORT OF OBJECT-ORIENTATION
No current OSF plans.
February 1994
57.1 DCE SMART CARD INTEGRATION
No current OSF plans.
March 1994
57.0 SMART CARD INTRODUCTION
Informational.
March 1994
56.0 INTEROPERABILITY PARTNERS PROGRAM -- OVERVIEW
Obsolete informational document.
January 1994
55.0 ADDING GROUP OVERRIDE SUPPORT TO DCE SECURITY
Provided in DCE 1.1.
February 1994
54.0 Not yet published.
53.0 REQUIREMENTS FOR TRANSACTION PROCESSING WITH DCE
No current OSF plans.
January 1994
52.0 Not yet published.
51.3 DFS CHANGES TO SUPPORT A SCALAR 64-BIT TYPE

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
147
Distributed System and Inter-Operability
__________________________________________________________________________________________

Planned for DCE 1.2.


August 1996
51.2 DFS SOURCE CODE CLEANUP TO SUPPORT BOTH 32-BIT AND 64-BIT
ARCHITECTURES
Partially planned for DCE 1.2.
June 1995
51.1 DFS SOURCE CODE CLEANUP TO SUPPORT BOTH 32-BIT AND 64-BIT
ARCHITECTURES
Partially planned for DCE 1.2.
February 1994
51.0 DFS INTEROPERABILITY ISSUES FOR 32-BIT AND 64-BIT ARCHITECTURES
Might be addressed (RFC 51.1) in DCE 1.2.
November 1993
50.0 Not yet published.
49.0 OBJECT-ORIENTED DISTRIBUTED COMPUTING WITH C++ AND OSF DCE
No current OSF plans.
October 1993
48.3 DCE IDL WITH C++ SUPPORT -- FUNCTIONAL SPECIFICATION
Planned for DCE 1.2.
April 1996
47.3 DCED: THE DCE HOST DAEMON -- FUNCTIONAL SPECIFICATION
Provided in DCE 1.1.
April 1994
46.0 DCE ACL LIBRARY -- FUNCTIONAL SPECIFICATION
Provided in DCE 1.1.
October 1993
45.0 DCE BACKING STORE LIBRARY -- FUNCTIONAL SPECIFICATION
Provided in DCE 1.1.
July 1993
44.0 DCE CELL DIRECTORY SERVICE USAGE GUIDELINES
Informational; no current OSF plans.
July 1993
43.0 MAPPING DCE RPC TO MINIMAL OSI (mOSI)
Informational; no current OSF plans.
July 1993
42.3 DCECP FUNCTIONAL SPECIFICATION
Provided in DCE 1.1.
October 1994
41.2 RPC RUNTIME SUPPORT FOR I18N CHARACTERS -- FUNCTIONAL SPECIFICATION
Provided in DCE 1.1.
November 1994
40.2 OSF CHARACTER AND CODE SET REGISTRY
Registry maintained by Chris French.
June 1999
39.0 AN INTERNATIONALIZED DCE CHARACTER HANDLING PROPOSAL --
INTERCHANGE OF CODED CHARACTERS CONVENTIONS AND MECHANISMS
An alternate technology (RFC 41) is provided in DCE 1.1.
March 1993
38.0 Not yet published.
37.1 DCE PROGRAM STATUS UPDATE
Obsolete informational document.
October 1993
36.0 MIGRATING DCE 1.1 SERVICEABILITY TO EVS
No current OSF plans.
January 1993
35.0 LOCATION OF INSTALLED DCE FILES
Informational and believed still valid.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
148
Distributed System and Inter-Operability
__________________________________________________________________________________________

January 1993
34.2 DCE 1.1 CODING STYLE GUIDE
Used by DCE 1.1 developers.
August 1993
33.0 STANDARDIZED PERFORMANCE INSTRUMENTATION AND INTERFACE
SPECIFICATION FOR MONITORING DCE-BASED APPLICATIONS
No current OSF plans.
July 1995
32.0 REQUIREMENTS FOR PERFORMANCE INSTRUMENTATION OF DCE RPC AND CDS
SERVICES
No current OSF plans.
June 1993
31.0 SUPPORTING THREADLESS DCE CLIENTS
Planned for DCE 1.2.
December 1992
30.0 DCE 1.1 ADMINISTRATIVE IMPROVEMENTS: REQUIREMENTS FOR DCE SHELL
Met in DCE 1.0.
January 1993
29.2 DESIGN OF AN AUDIT SUBSYSTEM FOR DCE -- IMPLEMENTATION
SPECIFICATION
Provided in DCE 1.1.
October 1994
28.1 DCE SERVER AUDITABLE-EVENT IDENTIFICATION AND A PROPOSED AUDIT
LOGGING API
Provided in DCE 1.1.
November 1993
27.0 CODED CHARACTER SET CONVERSIONS AND DATA LOSS: PROVIDING
INTEROPERABILITY WHILE PREVENTING LOSS
Informational; not DCE-specific.
December 1992
26.0 USING PRE-AUTHENTICATION TO AVOID PASSWORD GUESSING ATTACKS
Provided in DCE 1.1.
June 1993
25.0 DCE 1.1 AUDITING STRATEGY AND DESIGN PROPOSAL
An alternate technology (RFC 28 and RFC 29) is provided in DCE 1.1.
December 1992
24.2 MAKING THE DCE 1.1 SERVICEABILITY AND MESSAGE API’S PUBLIC
Provided in DCE 1.1.
April 1993
24.1 DCE 1.1 SERVICEABILITY PROPOSAL
Provided in DCE 1.1.
April 1993
23.0 DCE 1.1 INTERNATIONALIZATION GUIDE
Informational; used by DCE 1.1 developers.
January 1993
22.0 ADAPTING DME TO MANAGE DCE-BASED SERVICES
No current OSF plans.
January 1993
21.0 DCE RPC API EXTENSIONS FOR MODULAR SERVERS
No current OSF plans.
November 1992
20.0 DCE RPC/DG PROTOCOL ENHANCEMENTS
Provided in DCE 1.1.
October 1992
19.0 SECURITY ENHANCEMENTS FOR DCE 1.1
No current OSF plans.
December 1992

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
149
Distributed System and Inter-Operability
__________________________________________________________________________________________

18.0 THE REMOTE NETWORK DIRECTORY (RND) NAMING MODEL


No current OSF plans; perhaps superceded by XFN.
September 1992
17.0 DCE 1.1 CODE CLEAN-UP REQUIREMENTS
Met in DCE 1.0.
December 1992
16.0 DISTRIBUTED RESOURCE SELECTION
No current OSF plans.
September 1992
14.0 DCE SIG REQUIREMENTS SURVEY
Obsolete informational document.
September 1992
13.0 DCE 1.1 INTERNATIONALIZATION REQUIREMENTS
Met in DCE 1.0.
August 1992
12.0 DCE SERVICEABILITY STRATEGY/DESIGN DISCUSSION PAPER
Met in DCE 1.0.
August 1992
11.0 DCE SIG SERVICEABILITY REQUIREMENTS
Met in DCE 1.0.
August 1992
10.0 DCE SIG INFO SHEET
Obsolete informational document.
July 1992
9.0 EMBEDDED DCE SECURITY BRIDGE (EDB) APPLICATION PROGRAMMING
INTERFACE
No current OSF plans.
July 1992
8.2 SECURITY REQUIREMENTS FOR DCE
Many of the top 10 original requirements were met by DCE 1.0. This document continues to
drive the security plans for future DCE releases.
August 1996 - DRAFT
8.1 SECURITY REQUIREMENTS FOR DCE
Many of the top 10 requirements were met by DCE 1.0. This document continues to drive the
security plans for future DCE releases.
October 1995
7.0 HIERARCHICAL TRUST RELATIONSHIPS FOR INTER-CELL AUTHENTICATION
Provided in DCE 1.1.
July 1992
6.0 A GENERIC INTERFACE FOR EXTENDED REGISTRY ATTRIBUTES
Provided in DCE 1.1.
June 1992
5.2 GSS-API EXTENSIONS FOR DCE
Provided in DCE 1.1.
March 1994
4.0 DCE SIG NAMING REQUIREMENTS
Partially met by current DCE. The XFN PST is believed to meet additional/remaining
requirements.
June 1992
3.0 EXTENDING THE DCE AUTHORIZATION MODEL TO SUPPORT PRACTICAL
DELEGATION
Provided in DCE 1.1.
June 1992
2.1 PROPOSED ENHANCEMENTS FOR DCE 1.1 IDL
Provided in DCE 1.1.
July 1992
2.0 PROPOSED ENHANCEMENTS FOR DCE 1.0 IDL

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
150
Distributed System and Inter-Operability
__________________________________________________________________________________________

Provided in DCE 1.1.


June 1992
1.0 POSIX/C2 AUDITING OF DCE API’S
An alternate technology (see RFC 28 and RFC 29) is provided in DCE 1.1. June 1992


































___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom
151
Distributed System and Inter-Operability
__________________________________________________________________________________________

5HIHUHQVL





1. Andrew S. Tanenbaum, “ Distributed Operating System” , Prentice Hall International
Editions, 1995.
2. George Coulouris, Jean Dollimore, Tim Kindberg,” Distributed Systems : Concepts
and Design” , Second Edition, Addison-Wesley Publishing Company,1994.

___________________________________________________________________________________________
Sony Sumaryo
Sekolah Tinggi Teknologi Telkom

You might also like