Anda di halaman 1dari 66

CatatanKuliahSistemTerdistribusi

Ruddy J . Suhatril, SKom


27 Maret 2004
Daftar I si
1 Pendahuluan 6
1.1 Apakah yangdimaksud dengan SistemTerdistribusi ? . . . . . 6
1.2 Contoh SistemTerdistribusi . . . . . . . . . . . . . . . . . . . 6
1.3 Keuntungan dan Permasalahan SistemTerditribusi . . . . . . 8
1.3.1 Keuntungan SistemTerdistribusi . . . . . . . . . . . . 8
1.3.2 PermasalahandalamSistemTerdistribusi . . . . . . . . 8
1.4 Karakteristik SistemTerdistribusi . . . . . . . . . . . . . . . . 9
1.4.1 Transparency . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 Communication . . . . . . . . . . . . . . . . . . . . . . 10
1.4.3 Performanceand Scalability . . . . . . . . . . . . . . . 11
1.4.4 Heterogeneity . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.5 Opennes . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.6 Reliability dan Fault Tolerance . . . . . . . . . . . . . 13
1.4.7 Security . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 Model dalamSistemTerdistribusi . . . . . . . . . . . . . . . . 14
1.5.1 Architectural Models . . . . . . . . . . . . . . . . . . . 15
1.5.2 Interaction Models . . . . . . . . . . . . . . . . . . . . 17
1.5.3 FailureModels . . . . . . . . . . . . . . . . . . . . . . 18
2 K omunikasi 20
2.1 SistemKomunikasi . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Network Protocol . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.1 TCP dan UDP . . . . . . . . . . . . . . . . . . . . . . 21
2.2.2 Komunikasi Request - Reply . . . . . . . . . . . . . . . 22
2.3 RPC dan RMI . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.1 RMI (RemoteMethod Invocation) . . . . . . . . . . . 23
2.3.2 RPC (RemoteProcedureCall) . . . . . . . . . . . . . . 29
2
DAFTAR ISI 3
3 Proses 30
3.1 Konsep Proses . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.1 Denisi Proses . . . . . . . . . . . . . . . . . . . . . . 31
3.1.2 Status Proses . . . . . . . . . . . . . . . . . . . . . . . 32
3.1.3 Proses Control Block . . . . . . . . . . . . . . . . . . . 33
3.2 Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1 Apa itu thread ? . . . . . . . . . . . . . . . . . . . . . 35
3.2.2 Keuntungan Thread . . . . . . . . . . . . . . . . . . . 38
3.2.3 User danKernel Thread . . . . . . . . . . . . . . . . . 39
3.2.4 MultithreadingModel . . . . . . . . . . . . . . . . . . 40
3.2.5 Fork dan Exec SystemCall . . . . . . . . . . . . . . . 42
3.2.6 Cancellation . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2.7 Penanganan Sinyal . . . . . . . . . . . . . . . . . . . . 44
3.2.8 Thread Pools . . . . . . . . . . . . . . . . . . . . . . . 45
4 Sistem Operasi Terdistribusi 47
4.1 Apakah sistemoperasi terdistribusi ? . . . . . . . . . . . . . . 47
4.1.1 SistemOperasi terdistribusi vs SistemOperasi J aringan 47
4.2 Fungsi SistemOperasi Terdistribusi . . . . . . . . . . . . . . . 49
4.2.1 Shared Resource . . . . . . . . . . . . . . . . . . . . . 49
4.2.2 Manfaat Komputasi . . . . . . . . . . . . . . . . . . . 49
4.2.3 Reliabilitas . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.4 Komunikasi . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3 KomponenSistemOperasi . . . . . . . . . . . . . . . . . . . . 50
4.3.1 Arsitektur Software . . . . . . . . . . . . . . . . . . . . 51
4.3.2 Manajemen Berkas . . . . . . . . . . . . . . . . . . . . 52
4.4 Proses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5 File Service 55
5.1 Pengenalan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.1.1 Konsep SistemFiles terdistribusi . . . . . . . . . . . . 56
5.1.2 J enis FileService . . . . . . . . . . . . . . . . . . . . . 57
5.2 KomponenFileService . . . . . . . . . . . . . . . . . . . . . . 58
5.2.1 Naming . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.2.2 FileSharingSemantik . . . . . . . . . . . . . . . . . . 60
5.2.3 Chaching . . . . . . . . . . . . . . . . . . . . . . . . . 61
DAFTAR ISI 4
6 Name Service 62
6.1 Pengenalan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.1.1 Tujuan Penamaan . . . . . . . . . . . . . . . . . . . . 63
6.1.2 Contoh Penamaanyangmemberikankemampuankea-
manan . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1.3 J enis Nama . . . . . . . . . . . . . . . . . . . . . . . . 64
6.1.4 Struktur Nama . . . . . . . . . . . . . . . . . . . . . . 65
6.1.5 Tujuan Fasilitas Penamaan. . . . . . . . . . . . . . . . 66
Daftar Gambar
1.1 Contoh sistem terdistribusi, Automatic Banking (teller ma-
chine) System . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Arsitektur sofwarepada sistemterdistribusi . . . . . . . . . . 12
1.3 SistemTerdistribusi pada dua titik . . . . . . . . . . . . . . . 13
1.4 Model arsitektur client - server . . . . . . . . . . . . . . . . . 16
1.5 Model Proxy Server . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1 Model komunikasi dan implementasi layer pada sistemterdis-
tribusi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Ilustrasi implementasi RMI . . . . . . . . . . . . . . . . . . . 24
2.3 Ilustrasi implementasi RPC . . . . . . . . . . . . . . . . . . . 29
3.1 Status proses . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Proses Control Block . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 Status proses . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4 Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5 Many to one . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.6 Oneto one. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.7 Many to many . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1 Skema SistemOperasi J aringan . . . . . . . . . . . . . . . . . 48
5
Bab 1
Pendahuluan
1.1 Apakah yangdimaksud dengan SistemTer-
distribusi ?
SistemTerdistribusi adalah Sekumpulan komputer otonomyangterhubung
kesuatu jaringan, dimana bagi pengguna sistemterlihat sebagai satu kom-
puter.Maksudkomputer otonomi adalahwalaupunkomputer tidakterhubung
kejaringan, komputer tersebut tetap data berjalan.
Dengan menjalankan sistemterdistribusi, komputer dapat melakukan :
Koordinasi Aktitas
Berbagi sumber daya : hardware, softwaredan data
Dengandenisi tersebut diatasmakainternet sesungguhnyabukanlahsu-
atusistemterdistribusi, melainkaninfrastruktur dimana sistemterdistribusi
dapat di aplikasikan pada jaringan tersebut.
1.2 Contoh Sistem Terdistribusi
SistemTelepon
- ISDN, PSTN
Manajemen J aringan
- Adminstrasi sesumber jaringan
6
BAB 1. PENDAHULUAN 7
Gambar~1.1: Contoh sistem terdistribusi, Automatic Banking (teller ma-
chine) System
Network FileSystem(NFS)
- Arsitektur untuk mengakses sistemlemelalui jaringan
WWW
- Arsitektur client/ server yangditerapkandi atasinfrastruktur internet
- Shared Resource(melalui URL)
dll...
BAB 1. PENDAHULUAN 8
1.3 K euntungan dan Permasalahan SistemTer-
ditribusi
1.3.1 Keuntungan Sistem Terdistribusi
Keuntunganyangdidapatkandalammenerapkansistemterdistribusi, antara
lain :
Performance
Kumpulandari beberapa prosesor akanmemberikankinerjayanglebih
baik dari pada komputer yangterpusat. Begitu juga kalau dilihat dari
sisi biaya.
Distribution
Reliability (Fault tolerance)
apabila salah satu komponen terjadi kerusakan, system tetap dapat
berjalan
Incremental Growth
Mudah dalammelakukan penambahan komputer/ komponen
SharingData/Resources
Berbagi data adalah salah satu hal yang pokok pada kebanyakan ap-
likasi.
1.3.2 Permasalahan dalam Sistem Terdistribusi
Kelemahan pada sistemterdistribusi adalah :
Kesulitan dalammembangun perangkat lunak .
Kesulitanyangakandihadapi antaralain: bahasapemrogrammanyang
harus dipakai, sistemoperasi dll.
Masalah J aringan
Karena sistemterdistribusi di implementasikan dalam jaringan kom-
puter, makaisu2yangberkaitandengan jaringan komputer akan men-
jadi pertimbanganutamadalammerancangdanmengimplementasikan
sistem.
BAB 1. PENDAHULUAN 9
Masalah Keamanan
Karenapadasistemterdistribusi berbagi data/ sumber dayamerupakan
hal yang mutlak maka muncul masalah2 yang berkaitan dengan kea-
manan data dll.
1.4 K arakteristik Sistem Terdistribusi
Ada beberapahal yangharusdiperhatikandalammembangunsistemterdis-
tribusi, yaitu :
Transparency (Kejelasan)
Communication (Komunikasi)
Performance& Scalability (Kinerja dan RuangLingkup)
Heterogeneity (Keanekaragaman)
Opennes (Keterbukaan)
Reliability & Fault Tolerancy (Kehandalandan Toleransi Kegagalan)
Security (Kemanan)
1.4.1 Transparency
Access transparency
Sumber daya lokal dan remote di akses dengan menggunakan operasi yang
sama.
Location transparency
Pengguna sistemtidak tahu mengetahui keberadaan hardwaredan software
(CPU,ledan data).
Migration (Mobility) transparency
Sumber daya(baikberupaHardwaredan/ atausoftware) dapat bebasberpin-
dah tanpa mengubah sistempenamaan.
BAB 1. PENDAHULUAN 10
Replication transparency
Sistembebas untuk menambah le atau sumber daya tanpa diketahui oleh
user (dalamrangkan meningkatkan kinerja)
Concurency transparency
User tidak akan mengetahui keberadaan user lain dalam sistem, walaupun
user tersebut menggunakan sumber daya yangsama.
Failure transparency
Aplikasi harus dapat menyelesaikanproses nyawalaupunterdapat kegagalan
pada beberapa pada komponen sistem.
Performance transparency
Beban kerja yangbervariasi tidak akan menyebabkan turunnya kinerja sis-
tem, hal ini dapat di capai dengan melakukan automatisasi kongurasi ter-
hadap perubahan beban.
1.4.2 Communication
Komponen2 pada sistem terdistribusi harus melakukan komunikasi dalam
suatuurutan. Sebagai berikut :
Infrastruktur jaringan (interkoneksi dan softwarejaringan)
Metodedan Model komunikasi yangcocok
Metodekomunikasi :
- Send
- Receive
- RemoteProcedureCall
Model Komunikasi
- client - server communication : pertukaranpesan antara dua proses
: dimana satu proses (client) menggunakan / meminta layanan
pada server dan server menyediakan hasil dari proses tersebut.
BAB 1. PENDAHULUAN 11
- groupmulitcast : target dari pesanyangdikirimkanadalahgabungan
dari proses, yangberasal dari suatu grup.
1.4.3 Performance and Scalability
Ada beberapa faktor yang mempengaruhi kinerja (performance) dari pada
sistemterdistribusi :
Kinerja dari pada personal workstations
Kecepatan infrastruktur komunikasi
Fleksibilitas dalam membagi beban kerja : contoh, apabila terdapat
prosesor (workstation) yangidlemakadapat di alokasikansecaraotoma-
tis untuk mengerjakan tugas2user.
Scalability
Sistemtetapharusmemperhatikanefesiensi walaupunterdapat penambahan
secara signikan user atau sumber daya yangterhubung:
Cost (biaya) penambahan sumber daya (resources) harus reasonable.
Penurunan kinerja (performance) diakibatkan oleh penambahan user
atau sumber daya harus terkontrol.
1.4.4 Heterogeneity
Aplikasi yangterdistribusi biasa berjalan dalamkeberagaman :
Hardware: mainframes, workstations, PCs, server dll.
Software : UNIX, MS Windows, IMB OS/ 2, LINUX dll.
Devices : teller machine, robot, sistemmanufacturingdll.
Network dan Protocol : Ethernet, FDDI, ATM, TCP/ IP dll
Melihat keaneka ragaman di atas maka salah satu solusi yang bisa di
terapkanadalah Middleware: berfungsi sebagai jembatan untuk komunikasi
dan proses.
BAB 1. PENDAHULUAN 12
Gambar~1.2: Arsitektur sofwarepada sistemterdistribusi
1.4.5 Opennes
Salahsatuhal terpentingyangharusdimiliki olehsistemterdistribusi adalah
opennes (keterbukaan) dan exibility (eksibilitas) :
Setiap layanan (services) harus dapat di akses oleh semua user.
Mudah dalamimplementasi, install dan debugservices;
User dapat membuat dan menginstall serviceyangtelah dibuat olehsi
user tersebut.
Aspek kunci pada opennes :
Interface dan Protocol yangstandard (seperti protokol komunikasi di
internet)
Support terhadapkeanekaragaman. ( denganmembuat midlewareseperti
CORBA)
BAB 1. PENDAHULUAN 13
Gambar~1.3: SistemTerdistribusi pada dua titik
1.4.6 Reliability dan Fault Tolerance
Salahsatutujuandalammembangunsistemterdistribusi adalahmemunkinkan
untuk melakukan improvisasi terhadapkehandalan sistem.
Availability : kalau mesin mati (down), sistem tetap harus berjalan
dengan jumlah layananan yangtersisa.
Dalam sistem terdistribusi componen yang sangat vital (critical re-
sources) berjumlah seminimal mungkin. Yangdimaksud dengan crit-
ical resources adalah komponen yang harus ada untuk menjalankan
sistemterdistribusi.
Masing- masingSoftwaredan Hardwareharus di replikasi : kalau ter-
jadi kegagalan / error maka yanglainakan menangani.
Data dalamsistemtidak boleh hilang, copy dari le tersebut disimpan
pada secara redundan pada server lain, tapi tetap harus dijaga konsistensi
datanya.
Fault Tolerance: Sistemharusbisamendeteksi kegagalandanmelakukan
tindakandengan dasar sebagai berikut :
Mask thefault (menutupi kegagalan) : tugas harus dapat dilanjutkan
dengan menurunkan kinerja tapi tanpa terjadi kehilangan data atau
informasi.
BAB 1. PENDAHULUAN 14
Fail Gracefully : membuat suatu antisipasi terhadap suatu kegagalan
kesuatu prosedur yangtelah di rencanakandanmemungkinkan untuk
menghentikan proses dalamwaktu yangsingkat tanpa menghilangkan
informasi atau data.
1.4.7 Security
Condentiality :
keamanan terhadap data yang di akses oleh user yang tidak di per-
bolehkan (unauthorizes user)
Integrty:
keamanan terhadapkelengkapandan autentikasi data.
Availability
Menjaga agar resource dapat selalu di akses.
Sistemterdistribusi harusmemperbolehkankomunikasi antaraprogram/ user/ resources
pada computer yang berbeda, maka resiko keamanan akan muncul apabila
memberlakukanfreeaccess. Danadahal lainjugayangharusdijamindalam
sistemterdistribusi, yaitu : penggunaan rerources yangtepat olehuser yang
berlainan.
1.5 Model dalam Sistem Terdistribusi
Model dalamsistemterdistribusi :
Model Arsitektur (Architectural Models)
Model Interaksi (Interaction Models)
Model Kegagalan (FailureModels)
Resources dalamsistemterdistribusi dipakai secarabersamaoleh users.
Biasa nya di bungkus (encapsulated) dalam suatu komputer dan dapat di
akses oleh komputer lain dengan komunikasi.
BAB 1. PENDAHULUAN 15
Setiap resourcedi atur olehprogramyangdisebut dengan resourceman-
ager. Resourcemanager memberikan kemungkinan komunikasi interfacean-
tar resource.
Resource Managers dapat digeneralisasi sebagai proses, kalau sistem di
designdengan sudut pandangobject (Object Oriented), resourcedibungkus
dalamsuatu objek.
1.5.1 Architectural Models
Bagaimana cara kerja sistemterdisribusi antara komponen - komponen sis-
temdan bagaimana komponen tersebu berada pada sistemterdistribusi :
Client - Server Model
Proxy Server
Peer processes ( peer to peer )
Client - Server Model
Sistemyangterdiri dari kumpulan2proses disebut dengan server, dan mem-
berikan layanan kepada user yangdisebut dengan client.
Model client-server biasanyaberbasiskan protokol request/ reply. Contoh
implementasi nya, atara lain: RPC (Remote Procedure Calling) dan RMI
(RemoteMethodInvocation) :
client mengirimkan request berupa pesan ke server untuk mengakses
suatuservice.
server menerima pesan tersebut dan mengeksekusi request client dan
mereply hasil keclient
BAB 1. PENDAHULUAN 16

Gambar~1.4: Model arsitektur client - server


Gambar~1.5: Model Proxy Server
BAB 1. PENDAHULUAN 17
Proxy Server
Proxy server menyediakan hasil copy (replikasi) dari resource yang di atur
oleh server lain
Biasa nya proxy server di pakai untuk menyimpan hasil copy web re-
sources. Ketika client melakukan request ke server, hal yang pertama di-
lakukan adalah memeriksa proxy server apakah yangdimita oleh client ter-
dapat pada proxy server.
Proxy server dapat diletakkan pada setiap client atau dapat di pakai
bersama oleh beberapa client.
Tujuannyaadalahmeningkatkanperformancedanavailibitydenganmence-
gah frekwensi akses keserver.
Peer Process
Semua proses (object) mempunyai peranyangsama.
Proses berinteraksi tanpa ada nya perbedaan antara client dan server.
Pola komunikasi yangdigunakan berdasarkan aplikasi yangdigunakan.
Merupakan model yangpalinggeneral dan eksible.
1.5.2 I nteraction Models
Untuk interaksi nya sistemterdistribusi dibagi menjadi dua bagian :
Synchrounous distributedsystem
Asynchronous distributed system
Synchronous Distributed System
Batas atas dan batas bawah waktu pengeksekusian dapat di set.
Pesan yangdikirimdi terima dalamwaktuyangsudah di tentukan
Fluktuasi ukuran antara waktu local berada dalamsuatubatasan.
Beberapa hal yangpentinguntuk di perhatikan :
BAB 1. PENDAHULUAN 18
Dalamsynchronous distributed systemterdapat satu waktu global.
Hanya synchronous distributed system dapat memprediksi perilaku
(waktu).
Dalam synchornous distributed system dimungkinkan dan aman un-
tuk menggunakan mekanisme timeout dalam mendekteksi error atau
kegagalan dalamproses atau komunikasi.
Asynchronous Distributed System
Banyak sistemterdistribusi yangmenggunakanmodel interaksi ini (termasuk
Internet)
Tidak ada batasan dalamwaktu pengkeksekusian.
Tidak ada batasan dalamdelay transmission(penundaan pengiriman)
Tidak ada batasan terhadap uktuasi waktulocal.
Asynchronous systemsecara parktek lebih banyak digunakan.
1.5.3 Failure Models
Kegagalanapasajayangdapat terjadi danbagaimanaefekyangditimbulkan
?
Omission Faluires
Arbitary Failures
TimingFailures
Kegagalandapat terjadi pada proses atau kanal komunikasi. Dan penye-
babnya bisa berasal dari hardwareataupun software.
Model Kegagalan(FailureModels) dibutuhkandalammembangunsuatu
sistemdenganprediksi terhadap kagagalan2yangmungkin terjadi.
BAB 1. PENDAHULUAN 19
Ommision Failures
Yangdimaksud denganOmmision Failures adalah ketika prosesor dan kanal
komunikasi mengalami kegagalan untuk melakukan hal yangseharusnya di-
lakukan. Dikatakan tidak mempunyai ommision failures apabila :
Terjadi keterlambatan (delayed) tetapi akhirnya tetap tereksekusi.
Sebuahaksi di eksekusi walaupun terdapat kesalahan pada hasil.
Dengan synchronous system, ommision failures dapat dideteksi dengan
timeouts. Kalau kita yakin bahwa pesan yangdikirimsampai, timeout akan
mengindikasikan bahwa proses pengiriman rusak, seperti fail-stop behavior
pada sistem.
Arbitary Failures
Ini adalah kegagalan yangpalingburuk dalamsistem. Tahapan proses atau
komunikasi diabaikan atau yang tidak diharapkan terjadi dieksekusi. Se-
hinggahasil yangdiharapkantidakterjadi ataumegeluarkanhasil yangsalah.
Timing Failures
TimingFailuresdapat terjadi padasynchronoussystem, dimanabataswaktu
di atur untuk eksekusi proses, komunikasi danuktuasi waktu. TimingFail-
ures terjadi apabila waktu yangtelahditentukanterlampaui.
Bab 2
K omunikasi
2.1 Sistem K omunikasi
Pada bab ini akan dibahas bagaimana komunikasi antara object2dalamsis-
tem terdistribusi, khusus nya dengan menggunakan RMI (Remod Method
Invokation) dan RPC (RemoteProcedureCall). RMI danRPC berbasiskan
metoderequest danreply.
Gambar~2.1: Model komunikasi dan implementasi layer pada sistemterdis-
tribusi
Request dan repy diimplementasikan pada protokol jaringan.
20
BAB 2. KOMUNIKASI 21
2.2 Network Protocol
Middlewaredanaplikasi terdistribusi di implementasikandiatasprotokol net-
work.Protocol diimplementasikan dalambeberapa lapisan(layer).
Layer protocol pada Internet
2.2.1 TCP dan UDP
TCP
TCP ( Transport Control Protocol) dan UDP (User Datagram Protocol)
adalahprotokol transport yangberadadi ataslapisanInternet Protocol (IP).
TCP adalah protocol yang handal, TCP dapat memastikan data yang
dikirimkan sampai ketujuan begitu juga sebaliknya.
TCP menambahkan beberapa prosedur diatas layer internet protocol un-
tuk memastikan reliabilitas transport data :
Sequencing
Pada setiap transmisi data (paket) diberi nomor urut. Sehingga pada
titik tujuan tidak ada segmen yang diterima sampai semua segmen
pada urutan bawah belumdi terima.
FlowControl
Pengirimtidakakanmembanjiri penerima.Karenapengirimandidasarkan
pada periode acknowledgment yang di terima oleh pengirimyang be-
rasal dari penerima.
Retrasnmission dan duplicate handling
BAB 2. KOMUNIKASI 22
Apabilasegmentidak mendapatkanacknowledgedari penerimasampai
waktu timeout yangditentukan terlampaui maka pengirimakan men-
girimulang. Berdasarkannomor urut penerimadatadapat mendeteksi
dan menolak kalau terjadi duplikasi.
Buering
Bueringdigunakanuntukmenyeimbangkanantarapengirimdanpener-
ima. Kalau buer pada penerima penuh, maka segmen yang datang
akanputus, sehingga menyebabkantidak adaacknowledgekepengirim
dan pengirimakanmelakukantransmot ulang.
Checksum
Setiap segment membawa checksum. Apabila checksumsegmen yang
di terima tidak sesuai maka paket data tersebut akan di drop (dan
kemudianakan di transmit ulang)
UDP
UDP tidak memberikan garansi seperti halnya yangdi berikan oleh TCP.
UDP tidak memberikan garansi terhadap pengiriman data
Pada Internet Protocol paket data dapat drop karena suatu hal con-
tohnya jaringan yangrusak, UDP tidak mempunyai mekanismeuntuk
menanggulangi hal tersebut.
KalauinginmenggunakanUDP sebagai protocol pengirimanyanghan-
dal, makamekanismekehandalanyangdiinginkandi lakukanpadalayer
aplikasi.
2.2.2 Komunikasi Request - Reply
Komunikasi antara proses dan objek pada sistem terdistribusi dilakukan
melalui messagepassing.
BAB 2. KOMUNIKASI 23
Client melakukan :
1. Mengirim(request) pesan keserver
2. Menerima hasil (reply dari server)
Server melakukan :
1. Penerimaan pesan (request) dari client
2. Mengeksekusi permintaan dari client
3. Mengirimhasil (reply) keclient.
2.3 RPC dan RMI
Tujuan dari RPC dan RMI dibuat bagi programmer, agar computer yang
terdistribusi terlihat seperti computer yang terpusat. Dan berguna untuk
melihat sistemterdistribusi dari sisi pemrogramman.
RPC dan RMI berada pada Middleware
2.3.1 RMI (Remote Method I nvocation)
Berikut ilustrasi yangterjadi pada metodeRMI :
Programmer pada client menulis :
-
BAB 2. KOMUNIKASI 24
server_ id.service(values_ to_ server,result_ arguments);
-
Pada sisi server mempunyai fungsi sebagai berikut :
public service(in type1argfromclient; out type2argto_ client)
{};
Programmer pada client tidak mengetahui bahwa reply message yang
didapatkan berasal dari server yangdikirimmelalui jaringan.
Gambar~2.2: Ilustrasi implementasi RMI
Komponen2dalamRMI (gambar 2.2):
Object A (client) : meminta layanan
Object B (server) : menghantarkan layanan
Proxy for B
- Ketikaobject A mempunyai remotereferencekeobject B, makaakan
timbul objek Proxy B pada host object A. Proxy terbuat ketika
remoteobject referencedigunakan pertama kali
BAB 2. KOMUNIKASI 25
- Proxy adalah perwakilan objek yang berada pada remote, dengan
kata lain ketika terjadi invokasi dari A ke B ditangani seolah -
olah hanya mengakses Proxy B.
- Ketika invokasi terjadi proxy menggunakan metode marshals un-
tuk membungkus pesan yangakan dikirimkeserver. Dan setelah
menerimahasil dari server proxymenggunakanmetodeunmarshal
(membuka bungkus) untukkemudianditeruskankeclient (Object
A)
Skeleton for object B
- Padasisi server, terdapat object kerangka(skeleton) yangberhubun-
gan ke class, kalau object pada class tersebut dapat diakses oleh
RMI.
- Skeletonmenerimapesankemudianmelakukanunmarshal danmeneruskan
kemethodobject yangdituju. Dankemudianmenungguhasil dari
object B dan kemudian membungkus hasil (unmarshal) dan ke-
mudian dikirimkan keclient (Objec A).
- Ada bagian dari skeleton B yang disebut dengan dispatcher. dis-
patcher menerima request dari communication module, dan ke-
mudian mengidentikasi invokasi dan mengarahkan permintaan
kecorrespondingmethod ( method pada skeleton yangberfungsi
untuk berkomunikasi dengan object).
Communication Modul (Modul Komunikasi)
-Communication modul pada client atau server bertanggung jawab
dalampertukaran pesan yang dilakukan melalui metode request
dan reply.
RemoteReferenceModule
- Bagian ini bertugas untuk menterjemahkan antara referensi objek
lokal dan remote. Proses berkomunikasi antara mereka disimpan
dalamremoteobject table.
Yangmengenerateclass untuk proxy dan skeleton adalah middleware.
contoh : CORBA, J ava RMI
BAB 2. KOMUNIKASI 26
Object A dan object B dipunyai oleh aplikasi (berada pada Ap-
plication Layer)
Remote Reference Modul dan Communication modul dimiliki
oleh middleware.
Proxy B danSekeletonB berada antaramiddlewaredan aplikasi
yangdi generateoleh middleware.
Langkah2proses dengan RMI :
Urutan pemanggilan pada object client mengaktifkan method pada
proxy yang akan berhubungan dengan invoked method (method yang
ter-invokasi) pada object B.
Kemudianmethodyangada padaproxy melakukanpembungkusanar-
gumen menjadi suatu pesan (marshalling) dan meneruskan ke modul
komunikasi.
Berdasarkanpadaremotereferenceyangdidapat dari remotereference
modul,modul komunikasi memulai request dan reply protocol melalui
network.
Modul komunikasi padaserver menerimarequest dari client. Kemudian
berdasarkan referensi lokal yangditerima dari remotereferencemodul
maka akan mengaktifkan method untuk berkomunikasi dengan object
pada skeleton B (correspondingmethod).
Methodpadaskeletonmeng-ekstrak(unmarshalling) argumenpadape-
san yangdi terima dan mengaktifkan corresponding method (method
yangberfungsi untuk melakukan komunikasi) pada object B (server).
Setelahmenerimahasil dari object B, methoddari skeletonakanmem-
bungkushasil tersebut dalamsebuahpesan(marshalling) danmeneruskan
pesan yangsudah dibungkus kemodul komunikasi.
Modul komunikasi mengrimkanpesantersebut keclient melalui jaringan.
Modul komunikasi pada client menerima hasil (reply) dari server dan
meneruskan kecorrespondingmethod pada proxy.
BAB 2. KOMUNIKASI 27
Kemudian proxy meng-ektrak hasil (unmarshalling) dan meneruskan
keobject A (client).
Contoh RMI dengan menggunakan J ava RMI :
Server object akan mencetak Hello Ruddy ke layar & mengembalikan
pesan ke klien
Pada sisi server :
Server Method
i mport j ava. rmi . *;
publ i c i nterf ace Si mpl eI nterf ace extends Remote {
Str i ng pri ntMessage(Str i ng name) throws RemoteExcepti on;
}
Server Object
i mport j ava. rmi . *;
i mport j ava. rmi . ser ver. *;
publ i c cl ass Si mpl eServer ext ends Uni castRemoteObj ect i mpl ements Si mpl eI nt erf ac
publ i c Si mpl eServer() t hrows RemoteExcepti on { super( ); }
publ i c Stri ng pri ntMessage(Stri ng name) thr ows RemoteExcepti on {
System. out. pr i ntl n(name);
ret urn(Hel l o +name);
}
publ i c st ati c voi d mai n( Stri ng args[]) {
System. setSecuri tyManager(newRMI Secur i tyManager ());
try {
Si mpl eServer newServer =newSi mpl eSer ver() ;
System. out. pr i ntl n(Si mpl eSer ver attempti ng to
bi nd to the r egi st ry);
Nami ng. r ebi nd(/ / ruddy. i nf o: 30010/ Si mpl eServer,
newServer);
System. out. pr i ntl n(Si mpl eSer ver bound i n the regi stry);
} catch( Excepti on e) {
BAB 2. KOMUNIKASI 28
System. out. pr i ntl n(Si mpl eSer ver error: +e. getMessage());
e. pri ntStackTrace( );
}
}
}
Pada sisi client :
i mport j ava. rmi . *;
publ i c cl ass Si mpl eCl i ent {
pri vate stati c SI mpl eI nterf ace server =nul l ;
publ i c stati c voi d mai n(Stri ng ar gs[]) {
try {
ser ver =(Si mpl eI nterf ace)
Nami ng. l ookup(/ / ruddy. i nf o: 30010/ Si mpl eServer);
System. out. pr i ntl n(server. pr i ntMessage(Ruddy));
} catch( Excepti on e) {
System. out. pr i ntl n(Si mpl eCl i ent error: +e. getMessage());
e. pri ntStackTrace( );
}
}
}
BAB 2. KOMUNIKASI 29
2.3.2 RPC (Remote P rocedure Call)
Proses nyakuranglebihsamadenganRMI. KalauRMI kitamengenal Proxy
danSkeleton, padaRPC dikenal denganStub(Client StubdanServer Stub).
Gambar~2.3: Ilustrasi implementasi RPC
RemoteReferenceModul danCommunicationModul beradapadatatanan
sistemoperasi.
Bab 3
Proses
3.1 K onsep Proses
J ika kita berdiskusi mengenai sistem operasi, maka akan timbul sebuah
pertanyaan yaitu mengenai istilah apa yang tepat untuk menyebut semua
kegiatan yang dilakukan oleh CPU. Sistem batch mengeksekusi jobs seba-
gaimanasuatusistemtime-sharemenggunakanprogrampengguna(user pro-
grams) atau tasks. Bahkan pada sistem dengan pengguna tunggal pun,
seperti padaMicrosoft WindowsdanMacintoshOS, seorangpenggunamampu
menjalankanbeberapaprogrampadasaat yangsama, contohnyaWordProces-
sor, Web Browser, dan paket e-mail. Bahkan jika pengguna hanya dapat
menjalankansatuprogrampadasatuwaktu, sistemoperasi perluuntukmen-
dukung aktivitas programinternalnya sendiri, seperti managemen memori.
Dalambanyak hal, seluruhaktivitas ini adalah serupa, maka kita menyebut
seluruh programitu proses-proses.
Istilahjobdanprosesdigunakanhampir dapat dipertukarkanpadatulisan
ini. Walau kami sendiri lebih menyukai istilah proses, banyak teori dan ter-
minologi sistemoperasi dikembangkan selama suatu waktu ketika aktivitas
utama sistemoperasi adalah job processing. Akanmembingungkanjikakita
menghindari penggunaan istilah yang telah diterima oleh masyarakat yang
memasukkankatajobhanyakarenaprosesmemiliki istilahjobsebagai peng-
ganti atau pendahulunya.
30
BAB 3. PROSES 31
3.1.1 Denisi P roses
Secara tidak langsung, proses merupakan programyang sedang dieksekusi.
Menurut Silberschatz, suatu proses adalah lebih dari sebuah kodeprogram,
yangterkadangdisebut text section. Prosesjugamencakupprogramcounter,
yaitu sebuah stack untuk menyimpan alamat dari instruksi yangakan diek-
sekusi selanjutnya dan register. Sebuah proses pada umumnya juga memi-
liki sebuah stack yang berisikan data-data yang dibutuhkan selama proses
dieksekusi seperti parameter metoda, alamat return dan variabel lokal, dan
sebuah data section yangmenyimpan variabel global.
Sama halnya dengan Silberschatz, Tanenbaumjuga berpendapat bahwa
prosesadalahsebuahprogramyangdieksekusi yangmencakupprogramcounter,
register, dan variabel di dalamnya.
Kami tekankanbahwa programitusendiri bukanlahsebuahproses; suatu
programadalah satu entitas pasif; seperti isi dari sebuah berkas yang dis-
impan didalamdisket. Sedangkan sebuah proses dalamsuatu entitas aktif,
dengan sebuah programcounter yangmenyimpan alamat instruksi selanjut
yang akan dieksekusi dan seperangkat sumber daya (resource) yang dibu-
tuhkan agar sebuah proses dapat dieksekusi.
Untuk mempermudah kita membedakan program dengan proses, kita
akan menggunakan analogi yang diberikan oleh Tanenbaum. Misalnya ada
seorang tukang kue yang ingin membuat kue ulang tahun untuk anaknya.
Tukangkuetersebut memiliki resepkueulangtahundanbahan-bahan yang
dibutuhkan untuk membuat kue ulang tahun di dapurnya seperti: tepung
terigu, telur, gula, bubuk vanila dan bahan-bahan lainnya. Dalamanalogi
ini, resep kue ulang tahun adalah sebuah program, si tukang kue tersebut
adalaprosesor (CPU), danbahan-bahanuntukmembuat kuetersebut adalah
data input. Sedangkan proses-nya adalah kegiatan sang tukang kue untuk
membaca resep, mengolah bahan, dan memanggangkuetersebut.
Walau dua proses dapat dihubungkan dengan programyang sama, pro-
gramtersebut dianggap dua urutan eksekusi yangberbeda. Sebagai contoh,
beberapa pengguna dapat menjalankan salinanyangberbeda padamail pro-
gram, ataupenggunayangsamadapat memintabanyaksalinandari program
editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian
text-section adalah sama, data section-nya bervariasi. Adalah umumuntuk
memiliki proses yangmenghasilkan banyak proses begituia bekerja.
BAB 3. PROSES 32
3.1.2 Status P roses
Bila sebuah proses dieksekusi, maka statusnya akan berubah-ubah. Sta-
tus dari sebuah proses mencerminkan aktivitas ataukeadaan dari proses itu
sendiri. Berikut ini adalahstatus-statusyangmungkindimiliki sebuahproses
menurut Tanenbaum:
Running: pada saat menggunakan CPU pada suatuwaktu.
Ready: proses diberhentikan sementara karena menunggu proses lain
untuk dieksekusi.
Blocked: tidak dijalankan sampai event dari luar, yang berhubungan
dengan proses tersebut terjadi.
Sedangkanmenurut Silberschatz, terdapat lima macamjenis status yang
mungkin dimiliki oleh suatu proses:
New: status yangdimiliki pada saat proses baru saja dibuat.
Running: statusyangdimiliki padasaat instruksi-instruksi dari sebuah
proses dieksekusi.
Waiting: status yangdimiliki pada saat proses menunggu suatu event
(contohnya: proses I/ O).
Ready: statusyangdimiliki padasaat prosessiapuntuk dieksekusi oleh
prosesor.
Terminated: status yang dimiliki pada saat proses telah selesai diek-
sekusi.
Nama-nama tersebut adalahberdasar opini, istilah tersebut bervariasi di
sepanjangsistemoperasi. Keadaanyangmereka gambarkanditemukanpada
seluruh sistem. Namun, pada sistemoperasi tertentu lebih baik menggam-
barkan keadaan/ status proses. Penting untuk diketahui bahwa hanya satu
proses yangdapat berjalan pada prosesor mana pun pada satu waktu. Na-
mun, banyak proses yang dapat berstatus ready atau waiting. Keadaan
diagram yang berkaitan dengan keadaan tersebut dijelaskan pada gambar
3.1
Ada tiga kemungkinan bila sebuah proses memiliki status running:
BAB 3. PROSES 33
Gambar~3.1: Status proses
J ika programtelah selesai dieksekusi maka status dari proses tersebut
akan berubah menjadi Terminated.
J ikawaktuyangdisediakanolehOSuntuk proses tersebut sudahhabis
maka akan terjadi interrupt dan proses tersebut kini berstatus Ready.
J ikasuatuevent terjadi padasaat prosesdieksekusi (seperti adarequest
I/ O) maka proses tersebut akan menunggu event tersebut selesai dan
proses berstatus Waiting.
3.1.3 Proses Control Block
Tiap proses digambarkan dalam sistem operasi oleh sebuah process con-
trol block (PCB) - juga disebut sebuah control block. Sebuah PCB ditun-
jukkandalamGambar 3.2. PCB berisikanbanyakbagiandari informasi yang
berhubungandengansebuahproses yangspesik, termasuk hal-hal di bawah
ini:
Status proses: status mungkin, new, ready, running, waiting, halted,
dan juga banyak lagi.
Programcounter: suatu stack yangberisi alamat dari instruksi selan-
jutnya untuk dieksekusi untuk proses ini.
BAB 3. PROSES 34
CPU register: Register bervariasi dalamjumlah dan jenis, tergantung
pada rancangan komputer. Register tersebut termasuk accumulator,
register indeks, stackpointer, general-purposesregister, ditambahcode
information pada kondisi apa pun. Beserta dengan programcounter,
keadaan/ status informasi harus disimpan ketika gangguan terjadi, un-
tukmemungkinkanprosestersebut berjalan/bekerjadenganbenar sete-
lahnya(lihat Gambar 3.3Tiapprosesdigambarkandalamsistemoperasi
olehsebuahprocess control block (PCB) - jugadisebut sebuah control
block. Sebuah PCB ditunjukkan dalam Gambar 3-2. PCB berisikan
banyak bagian dari informasi yangberhubungandengan sebuahproses
yangspesik, termasuk hal-hal di bawah ini:
Status proses: status mungkin, new, ready, running, waiting, halted,
dan juga banyak lagi.
Programcounter: suatu stack yangberisi alamat dari instruksi selan-
jutnya untuk dieksekusi untuk proses ini.
CPU register: Register bervariasi dalamjumlah dan jenis, tergantung
pada rancangan komputer. Register tersebut termasuk accumulator,
register indeks, stackpointer, general-purposesregister, ditambahcode
information pada kondisi apa pun. Beserta dengan programcounter,
keadaan/ status informasi harus disimpan ketika gangguan terjadi, un-
tukmemungkinkanprosestersebut berjalan/bekerjadenganbenar sete-
lahnya (lihat Gambar 3.3).
Informasi managemenmemori: Informasi ini dapat termasuk suatu in-
formasi sebagai nilai dari dasar danbatasregister, tabel page/halaman,
atautabel segmentergantungpadasistemmemori yangdigunakanoleh
sistemoperasi (lihat Bab 5).
Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan
wakturiil yangdigunakan, batas waktu, jumlah akun jumlahjob atau
proses, danbanyak lagi.
Informasi status I/ O: Informasi termasuk daftar dari perangkat I/ O
yangdi gunakanpadaprosesini, suatudaftar berkas-berkasyangsedang
diakses dan banyak lagi.
PCB hanyaberfungsi sebagai tempat penyimpananinformasi yangda-
pat bervariasi dari proses yangsatu dengan yanglain.
BAB 3. PROSES 35
Gambar~3.2: Proses Control Block
3.2 Thread
3.2.1 Apa itu thread ?
Threadmerupakanunit dasar dari penggunaanCPU, yangterdiri dari Thread_ ID,
programcounter, register set, danstack. Sebuahthreadberbagi codesection,
data section, dansumber daya sistemoperasi dengan Thread lain yangdim-
iliki oleh proses yangsama. Thread juga sering disebut lightweight process.
Sebuahprosestradisional atauheavyweight process mempunyai threadtung-
gal yang berfungsi sebagai pengendali. Perbedaan antara proses dengan
threadtunggal denganproses denganthreadyangbanyak adalahprosesden-
gan thread yangbanyak dapat mengerjakan lebih dari satu tugas pada satu
satuan waktu.
Banyakperangkat lunakyangberjalanpadaPC moderndirancangsecara
multi-threading. Sebuah aplikasi biasanya diimplementasi sebagai proses
yang terpisah dengan beberapa thread yang berfungsi sebagai pengendali.
Contohnyasebuahwebbrowser mempunyai threaduntuk menampilkangam-
BAB 3. PROSES 36
Gambar~3.3: Status proses
BAB 3. PROSES 37
Gambar~3.4: Thread
bar atautulisansedangkanthreadyanglainberfungsi sebagai penerima data
dari network.
Kadang kala ada situasi dimana sebuah aplikasi diperlukan untuk men-
jalankan beberapatugas yangserupa. Sebagai contohnya sebuahweb server
dapat mempunyai ratusanklienyangmengaksesnyasecaraconcurrent. Kalau
web server berjalan sebagai proses yang hanya mempunyai thread tunggal
makaiahanya dapat melayani satuklienpadapadasatusatuanwaktu. Bila
ada klien lain yang ingin mengajukan permintaan maka ia harus menunggu
sampai kliensebelumnyaselesai dilayani. Solusinyaadalahdenganmembuat
web server menjadi multi-threading. Dengan ini maka sebuah web server
akan membuat thread yang akan mendengar permintaan klien, ketika per-
mintaan lain diajukan maka web server akan menciptakan thread lain yang
akan melayani permintaan tersebut.
J ava mempunyai pengunaan lain dari thread. Perlu diketahui bahwa
J ava tidak mempunyai konsep asynchronous. Sebagai contohnya kalau pro-
gramjavamencoba untuk melakukankoneksi keserver makaia akanberada
dalamkeadaan block statesampai koneksinya jadi (dapat dibayangkan apa
yang terjadi apabila servernya mati). Karena J ava tidak memiliki konsep
asynchronous makasolusinyaadalahdenganmembuat threadyangmencoba
BAB 3. PROSES 38
untuk melakukan koneksi ke server dan thread lain yangpertamanya tidur
selamabeberap waktu (misalnya 60 detik) kemudian bangun. Ketika waktu
tidurnya habis maka ia akan bangun dan memeriksa apakah thread yang
melakukan koneksi ke server masih mencoba untuk melakukan koneksi ke
server, kalauthreadtersebut masihdalamkeadaanmencobauntukmelakukan
koneksi ke server maka ia akan melakukan interrupt dan mencegah thread
tersebut untuk mencoba melakukan koneksi keserver.
3.2.2 Keuntungan Thread
Keuntungandari programyangmultithreadingdapat dipisahmenjadi empat
kategori:
1. Responsi: Membuat aplikasi yanginteraktif menjadi multithreadingda-
pat membuat sebuah programterus berjalan meskipun sebagian dari
programtersebut diblok atau melakukanoperasi yangpanjang, karena
itu dapat meningkatkanrespons kepada pengguna. Sebagai contohnya
dalamwebbrowser yangmultithreading, sebuahthreaddapat melayani
permintaan pengguna sementara thread lain berusaha menampilkan
image.
2. Berbagi sumber daya: thread berbagi memori dan sumber daya dengan
thread lain yang dimiliki oleh proses yang sama. Keuntungan dari
berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai
beberapa thread yangberbeda dalamlokasi memori yangsama.
3. Ekonomi: dalam pembuatan sebuah proses banyak dibutuhkan pen-
galokasian memori dan sumber daya. Alternatifnya adalah dengan
penggunaan thread, karena thread berbagi memori dan sumber daya
proses yang memilikinya maka akan lebih ekonomis untuk membuat
dan context switch thread. Akan susah untuk mengukur perbedaan
waktu antara proses dan thread dalam hal pembuatan dan pengatu-
ran, tetapi secaraumumpembuatandanpengaturanproseslebihlama
dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30
kali dibandingkan pembuatan thread, dan context switch proses 5kali
lebih lama dibandingkan context switchthread.
4. Utilisasi arsitektur multiprocessor: Keuntungan dari multithreadingda-
pat sangat meningkat pada arsitektur multiprocessor, dimana setiap
BAB 3. PROSES 39
thread dapat berjalan secara pararel di atas processor yang berbeda.
Pada arsitektur processor tunggal, CPU menjalankansetiap thread se-
carabergantiantetapi hal ini berlangsungsangat cepat sehingga men-
ciptakan ilusi pararel, tetapi pada kenyataannya hanya satu thread
yangdijalankanCPU padasatu-satuanwaktu(satu-satuanwaktupada
CPU biasa disebut timesliceatau quantum).
3.2.3 User dan K ernel Thread
User T hread
User thread didukungdi atas kernel dan diimplementasi oleh thread library
pada user level. Library menyediakan fasilitas untuk pembuatan thread,
penjadualan thread, dan managemen thread tanpa dukungan dari kernel.
Karena kernel tidak menyadari user-level thread maka semua pembuatan
dan penjadualanthreaddilakukan di user spacetanpaintervensi dari kernel.
Oleh karena itu, user-level thread biasanya cepat untuk dibuat dan diatur.
Tetapi user threadmempunyai kelemahanyaituapabilakernelnyamerupakan
threadtunggal makaapabilasalahsatuuser-level threadmenjalankanblock-
ingsystemcall maka akan mengakibatkan seluruh proses diblok walau pun
adathreadlainyangdapat jalandalamaplikasi tersebut. Contohuser-thread
libraries adalah POSIX Pthreads, Mach C-threads, dan Solaris threads.
K ernel T hread
Kernel thread didukung langsung oleh sistem operasi. Pembuatan, pen-
jadualan, dan managemen thread dilakukan oleh kernel pada kernel space.
Karena pengaturan thread dilakukan oleh sistemoperasi maka pembuatan
dan pengaturan kernel thread lebih lambat dibandingkan user thread. Ke-
untungannya adalah thread diatur olehkernel, karenaitujikasebuah thread
menjalankan blocking systemcall maka kernel dapat menjadualkan thread
lain di aplikasi untuk melakukan eksekusi. Keuntunganlainnya adalah pada
lingkunganmultiprocessor, kernel dapat menjadual thread-threadpadaproces-
sor yang berbeda. Contoh sistem operasi yang mendukung kernel thread
adalah Windows NT, Solaris, Digital UNIX.
BAB 3. PROSES 40
Gambar~3.5: Many to one
3.2.4 Multithreading Model
Many to one Model
Many-to-Onemodel memetakanbanyakuser-level threadkesatukernel thread.
Pengaturan thread dilakukan di user space, oleh karena itu ia esien tetapi
ia mempunyai kelemahan yangsama dengan user thread. Selain itu karena
hanyasatuthreadyangdapat mengaksesthreadpadasuatuwaktumakamul-
tiple thread tidak dapat berjalan secara pararel pada multiprocessor. User-
level threadyangdiimplementasi padasistemoperasi yangtidak mendukung
kernel thread menggunakan Many-to-Onemodel.
One to one Model
One-to-Onemodel memetakansetiapuser threadkekernel thread. Iamenye-
diakan lebih banyak concurrency dibandingkan Many-to-One model. Keun-
tungannya sama dengan keuntungan kernel thread. Kelemahannya model
ini adalah setiap pembuatan user thread membutuhkan pembuatan kernel
thread. Karena pembuatan thread dapat menurunkan performa dari sebuah
BAB 3. PROSES 41
Gambar~3.6: Oneto one
aplikasi maka implmentasi dari model ini membatasi jumlah thread yang
dibatasi oleh sistem. Contoh sistem operasi yang mendukung One-to-One
model adalahWindows NT dan OS/ 2.
Many to many Model
Many-to-many model multiplexes banyak user-level thread kekernel thread
yang jumlahnya lebih kecil atau sama banyaknya dengan user-level thread.
J umlah kernel thread dapat spesik untuk sebagian aplikasi atau sebagian
mesin. Many-to-Onemodel mengizinkandeveloper ntukmembuat user thread
sebanyakyangiamautetapi concurrencytidakdapat diperolehkarenahanya
satu thread yangdapat dijadual oleh kernel pada suatu waktu. One-to-One
menghasilkan concurrency yang lebih tetapi developer harus hati-hati un-
tuk tidak menciptakan terlalu banyak thread dalam suatu aplikasi (dalam
beberapa hal, developer hanya dapat membuat thread dalamjumlah yang
terbatas). Many-to-Many model tidak menderita kelemahan dari 2model di
atas. Developer dapat membuat user thread sebanyak yangdiperlukan, dan
kernel thread yang bersangkutan dapat bejalan secara pararel pada mul-
tiprocessor. Dan juga ketika suatu thread menjalankan blocking system
BAB 3. PROSES 42
Gambar~3.7: Many to many
call maka kernel dapat menjadualkanthreadlain untuk melakukan eksekusi.
Contoh sistemoperasi yangmendukungmodel ini adalah Solaris, IRIX, dan
Digital UNIX.
3.2.5 Fork dan Exec System Call
Ada dua kemungkinan dalam system UNIX jika fork dipanggil oleh salah
satu thread dalamproses:
Semua thread diduplikasi.
Hanya thread yangmemanggil fork.
Kalau thread memanggil exec SystemCall maka programyang dispesi-
kasi di parameter execakan mengganti keseluruhanprosestermasuk thread
dan LWP.
Penggunaan dua versi dari fork di atas tergantung dari aplikasi. Kalau
exec dipanggil seketika sesudah fork, maka duplikasi seluruh thread tidak
BAB 3. PROSES 43
dibutuhkan, karenaprogramyangdispesikasi di parameter execakanmeng-
ganti seluruh proses. Pada kasus ini cukup hanya mengganti thread yang
memanggil fork. Tetapi jikaprosesyangterpisahtidakmemanggil exec sesu-
dahfork makaprosesyangterpisahtersebut hendaknyamenduplikasi seluruh
thread.
3.2.6 Cancellation
Thread cancellation adalah tugas untuk memberhentikan thread sebelumia
menyelesaikan tugasnya. Sebagi contohnya jika dalam program java kita
hendak mematikan J ava Virtual Machine (J VM) maka sebelum J VM-nya
dimatikan maka seluruh thread yang berjalan dihentikan terlebuh dahulu.
Threadyangakan diberhentikan biasa disebut target thread.
Pemberhentiantarget threaddapat terjadi melalui duacarayangberbeda:
Asynchronouscancellation: suatuthreadseketikaitujugamemberhen-
tikan target thread.
Defered cancellation: target thread secara perodik memeriksa apakah
diaharusberhenti, caraini memperbolehkantarget threaduntukmem-
berhentikan dirinya sendiri secara terurut.
Hal yang sulit dari pemberhentian thread ini adalah ketika terjadi situ-
asi dimana sumber daya sudah dialokasikan untuk thread yangakan diber-
hentikan. Selain itu kesulitan lain adalah ketika thread yang diberhentikan
sedangmeng-updatedatayangiabagi denganthreadlain. Hal ini akanmen-
jadi masalahyangsulit apabiladigunakanasynchronouscancellation. Sistem
operasi akanmengambil kembali sumber dayadari threadyangdiberhentikan
tetapi seringkali sistemoperasi tidak mengambil kembali semuasumber daya
dari thread yangdiberhentikan.
Alternatifnya adalah dengan menggunakan deered cancellation. Cara
kerja dari deered cancellation adalah dengan menggunakan satu thread
yang berfungsi sebagai pengindikasi bahwa target thread hendak diberhen-
tikan. Tetapi pemberhentianhanyaakanterjadi jikatarget threadmemeriksa
apakah ia harus berhenti atau tidak. Hal ini memperbolehkan thread untuk
memeriksa apakah ia harus berhenti pada waktu dimana ia dapat diberhen-
tikansecaraamanyangaman. Pthreadmerujuktersebut sebagai cancellation
points.
BAB 3. PROSES 44
Pada umumnya sistemoperasi memperbolehkan proses atau thread un-
tuk diberhentikan secara asynchronous. Tetapi Pthread API menyediakan
deferred cancellation. Hal ini berarti sistem operasi yang mengimplemen-
tasikan Pthread API akan mengizinkan deferred cancellation.
3.2.7 Penanganan Sinyal
Sebuah sinyal digunakan di sistemUNIX untuk notify sebuah proses kalau
suatu peristiwa telah terjadi. Sebuah sinyal dapat diterima secara synchro-
nousatauasynchronoustergantungdari sumber danalasankenapaperistiwa
itu memberi sinyal.
Semua sinyal (asynchronous dan synchronous) mengikuti pola yang
sama:
Sebuahsinyal dimunculkan oleh kejadian dari suatu persitiwa.
Sinyal yangdimunculkantersebut dikirimkeproses.
Sesudah dikirim, sinyal tersebut harus ditangani.
Contoh dari sinyal synchronous adalah ketika suatu proses melakukan
pengaksesanmemori secarai ilegal ataupembagiandengannol, sinyal dimunculkan
dan dikirimke proses yang melakukan operasi tersebut. Contoh dari sinyal
asynchronousmisalnyakitamengirimkansinyal untukmematikanprosesden-
gankeyboard(ALT-F4) makasinyal asynchronousdikirimkeprosestersebut.
J adi ketikasuatusinyal dimunculkanolehperistiwadiluar prosesyangsedang
berjalanmakaprosestersebut menerimasinyal tersebut secaraasynchronous.
Setiap sinyal dapat ditangani oleh salah satu dari dua penerima sinyal:
Penerima sinyal yangmerupakan set awal dari sistemoperasi.
Penerima sinyal yangdidenisikan sendiri ole user.
Penanganan sinyal pada programyang hanya memakai thread tunggal
cukup mudah yaitu hanya dengan mengirimkan sinyal keprosesnya. Tetapi
mengirimkan sinyal lebih rumit pada programyang multithreading, karena
sebuah proses dapat memiliki beberapa thread.
Secara umumada empat pilihan kemana sinyal harus dikirim:
BAB 3. PROSES 45
Mengirimkan sinyal kethread yangdituju oleh sinyal tersebut.
Mengirimkan sinyal kesetiap thread pada proses tersebut.
Mengirimkan sinyal kethread tertentu dalamproses.
Menugaskan thread khusus untuk menerima semua sinyal yang ditu-
jukan pada proses.
Cara untuk mengirimkansebuah sinyal tergantungdari jenis sinyal yang
dimunculkan. Sebagai contoh sinyal synchronous perludikirimkankethread
yang memunculkan sinyal tersebut bukan thread lain pada proses tersebut.
Tetapi situasi dengan sinyal asynchronous menjadi tidak jelas. Beberapa
sinyal asynchronous seperti sinyal yang berfungsi untuk mematikan proses
(contoh: alt-f4) harus dikirimke semua thread. Beberapa versi UNIX yang
multithreadingmengizinkanthreadmenerimasinyal yangakaniaterimadan
menolak sinyal yang akan ia tolak. Karena itu sinyal asynchronouns hanya
dikirimkankethreadyangtidak membloksinyal tersebut. Solaris 2mengim-
plementasikan pilihan ke-4 untuk menangani sinyal. Windows 2000 tidak
menyediakan fasilitas untuk mendukung sinyal, sebagai gantinya Windows
2000 menggunakan asynchronous procedure calls (APCs). Fasilitas APC
memperbolehkan user thread untuk memanggil fungsi tertentu ketika user
thread menerima notikasi peristiwa tertentu.
3.2.8 Thread Pools
Pada web server yangmultithreadingada dua masalah yangtimbul:
Ukuranwaktuyangdiperlukanuntukmenciptakanthreaduntukmelayani
permintaan yangdiajukanterlebihpada kenyataannyathreaddibuang
ketika ia seketika sesudah ia menyelesaikantugasnya.
Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan
performa dari sistem.
SolusinyaadalahdenganpenggunaanThreadPools, carakerjanyaadalah
dengan membuat beberapa thread pada proses startup dan menempatkan
mereka kepools, dimana mereka duduk diamdan menunggu untuk bekerja.
J adi ketikaserver menerimapermintaanmaka makaia akanmembangunkan
BAB 3. PROSES 46
thread dari pool dan jika thread tersedia maka permintaan tersebut akan
dilayani. Ketikathreadsudahselesai mengerjakantugasnyamakaiakembali
ke pool dan menunggu pekerjaan lainnya. Bila tidak thread yang tersedia
pada saat dibutuhkan maka server menunggu sampai ada satu thread yang
bebas.
Keuntungan threadpool:
Biasanya lebih cepat untuk melayani permintaan dengan thread yang
ada dibandingdengan menunggu thread baru dibuat.
Thread pool membatasi jumlah thread yang ada pada suatu waktu.
Hal ini pentingpadasistemyangtidakdapat mendukungbanyakthread
yangberjalan secara concurrent.
J umlah thread dalam pool dapat tergantung dari jumlah CPU dalam
sistem, jumlahmemori sik, dan jumlah permintaan klienyangconcurrent.
Bab 4
Sistem Operasi Terdistribusi
4.1 Apakah sistem operasi terdistribusi ?
Sistemoperasi terdistribusi adalah salah satu implementasi dari sistemter-
distribusi, di mana sekumpulan komputer dan prosesor yangheterogen ter-
hubung dalam suatu jaringan. Koleksi-koleksi dari objek-objek ini secara
tertutup bekerja secara bersama-sama untuk melakukan suatu tugas atau
pekerjaan tertentu.
Tujuan utamanya adalahuntuk memberikan hasil secaralebih, terutama
dalam:
lesystem
namespace
waktu pengolahan
keamanan
akses ke seluruh resources, seperti prosesor, memori, penyimpanan
sekunder, dan perangkat keras.
4.1.1 Sistem Operasi terdistribusi vs Sistem Operasi
J aringan
Suatu sistem operasi terdistribusi yang sejati adalah yang berjalan pada
beberapa buah mesin, yang tidak melakukan sharing memori, tetapi ter-
lihat bagi user sebagai satu buah komputer single. Pengguna tidak perlu
47
BAB 4. SISTEM OPERASI TERDISTRIBUSI 48
memikirkan keberadaanperangkat keras yangada, seperti prosesor. Contoh
dari sistemseperti ini adalah Amoeba.
Sistemoperasi terdistribusi berbedadengansistemoperasi jaringan. Un-
tukdapat membedakannya, sistemoperasi jaringanmemiliki ciri-ciri sebagai
berikut:
Tiap komputer memiliki sistemoperasi sendiri
Tiappersonal komputer memiliki sistemlesendiri, di manadata-data
disimpan
Sistemoperasi tiap komputer dapat berbeda-beda atau heterogen
Penggunaharusmemikirkankeberadaankomputer lainyangterhubung,
dan harus mengakses, biasanya menggunakan remotelogin (telnet)
Filesystemdapat digunakan dengan dukungan NFS
Contoh dari sistemini adalah Unix danLinux Server
Gambar~4.1: Skema SistemOperasi J aringan
BAB 4. SISTEM OPERASI TERDISTRIBUSI 49
4.2 Fungsi Sistem Operasi Terdistribusi
Sistemoperasi terdistribusi memiliki manfaat dalambanyaksistemdandunia
komputasi yangluas. Manfaat-manfaat ini termasuk dalansharingresource,
waktu komputasi, reliabilitas, dan komunikasi.
4.2.1 Shared Resource
Walaupunperangkat sekarangsudahmemiliki kemampuanyangcepat dalam
proses-proses komputasi, ataumisal dalammengakses data, tetapi pengguna
masih saja menginginkan sistemberjalandengan lebih cepat. Apabilahard-
wareterbatas, kecepatan yang diinginkan user dapat diatasi dengan meng-
gabungperangkat yangadadengansistemDOS(DistributedOperatingSys-
tem).
4.2.2 Manfaat K omputasi
Salah satu keunggulan sistem operasi terdistribusi ini adalah bahwa kom-
putasi berjalan dalamkeadaan pararel. Proses komputasi ini dipecahdalam
banyaktitik(nodes), yangmungkinberupakomputer pribadi, prosesor tersendiri,
dan kemungkinanperangkat prosesor-prosesor yanglain. Sistemoperasi ter-
distribusi ini bekerjabaikdalammemecahkomputasi ini danbaikpuladalam
mengambil kembali hasil komputasi dari titik-titikcluster untuk ditampilkan
hasilnya.
4.2.3 Reliabilitas
Fitur unikyangdimiliki olehDOSini adalahreliabilitas. Berdasarkandesign
dan implementasi dari design sistemini, maka hilangnya suatu node tidak
akan berdampak terhadap integritas system. Hal ini berbeda dengan kom-
puter personal, apabilaadasalah satuhardwareyangmengalami kerusakan,
maka systemakan berjalan tidak seimbang, bahkan sistembisa tidak dapat
berjalanatau mati.
Dalam sistem operasi terdistribusi tadi sebenarnya cara kerjanya mirip
denganpersonal computer, tetapi bedanyaapabilaadanodeyangmati, maka
akanterjadi proses halt terhadapnodetersebut danproses komputasi dapat
dialihkan. Hal ini akan membuat sistem DOS selalu memiliki reliabilitas
yangtinggi.
BAB 4. SISTEM OPERASI TERDISTRIBUSI 50
4.2.4 Komunikasi
Sistemoperasi terdistribusi biasanya berjalan dalamjaringan, dan biasanya
melayani koneksi jaringan. Sistemini biasanyadigunakanuser untuk proses
networking. User dapat saling bertukar data, atau saling berkomunikasi
antar titik baik secara LAN maupunWAN.
4.3 K omponen Sistem Operasi
Sistemoperasi terdistribusi, yang saat ini akan dibahas sebagai titik tolak
adalah Amoeba, yang saat ini banyak digunakan sebagai salah satu imple-
mentasi dari sistemoperasi terdistribusi itusendiri. SistemAmoebaini tum-
buhdari bawahhinggaakhirnyatumbuhmenjadi sistemoperasi terdistribusi.
Design SistemOperasi Amoeba
Sistemoperasi terdistribusi padaumumnyamemerlukanhardwaresecara
spesik. Komponen utama dalam sistem ini adalah : workstation, LAN,
gateway, danprocessor pool, seperti yangdiilustrasikanpadagambar di atas.
Workstation atau komputer personal mengeksekusi proses yang memer-
lukan interaksi dari user seperti text editor atau manager berbasis window.
Server khusus memiliki fungsi untuk melakukan tugas yangspesik. Server
BAB 4. SISTEM OPERASI TERDISTRIBUSI 51
ini mengambil alih proses yang memerlukan I/ O yang khusus dari larikan
disk. Gateway berfungsi untuk mengambil alih tugas untuk terhubung ke
jaringan WAN.
Procesor pool mengambil alih semua proses yang lain. Tiap unit ini
biasanya terdiri dari prosesor, memori lokal, dan koneksi jaringan. Tiap
prosesor mengerjakan satu buah proses sampai prosesor yang tidak digu-
nakan habis. Untuk selanjutnya proses yanglain berada dalamantrian me-
nunggu proses yang lain selesai. Inilah keunggulan sistem operasi terdis-
tribusi dalam hal reliabilitas. Apabila ada satu unit pemroses yang mati,
makaprosesyangdialokasikanharus di restart, tetapi integritas sistemtidak
akan terganggu, apabila proses deteksi berjalan dengan baik. Desain sistem
ini memungkinkan untuk 10sampai 100prosesor.
Spesikasi perangkat keras yangharus disediakan pada tiapcluster min-
imalnya adalah :
Fileserver: 16MB RAM, 300MB HD, Ethernet card.
Workstation: 8MB RAM, monitor, keyboard, mouse
Pool processor: 4MB RAM, 3.5oppy drive
4.3.1 Arsitektur Software
Sistem operasi terdistribusi sejati memiliki arsiitektur software yang unik.
Arsitektur software ini dikarakterkan dalam objek di dalamhubungan an-
tara klien dan server. Proses-proses yang terjadi di klien menggunakan re-
mote procedure yang memanggil dan mengirimkan request ke server untuk
memproses data atau objek yangdibawa. Tiap objek yangdibawa memiliki
karakteristik yangdisebut sebagai kapabilitas.
Kapabilitas ini besarnya adalah 128bits. 48 bits pertama menunjukkan
servis mana yangmemiliki objek tersebut. 24bits berikutnya adalah nomor
dari objek. 8bits berikutnya menampilkan operasi yang diijinkan terhadap
objek yangbersangkutan. Dan 48bits terakhir merupakan check eld yang
merupakan eld yang telah terenkripsi agar tidak dapat dimodikasi oleh
proses yanglain.
Operasi diselesaikan olehRPC (remoteprocedurecalls) yangdibuat oleh
klien di dalam proses yang kecil dan ringan. Proses dengan tipe seperti
BAB 4. SISTEM OPERASI TERDISTRIBUSI 52
ini memiliki bidang alamat sendiri, dan bisa saja memiliki satu atau lebih
hubungan. Hubungan ini ketika berjalan memiliki program counter dan
stack sendiri, tetapi dapat saling berbagi kode dan data antara hubungan
lain di dalamproses. Ada 3 macambasis panggilan sistemyang dapat di-
gunakan dalamproses yangdimiliki user, yaitu do_ operation, get_ request,
dan send_ reply.
Bagian yangpertama mengirimkan pesan keserver, setelah proses mem-
blok sampai server mengirimkan balasan. Server menggunakan panggilan
sistem ke dua untuk mengindikasikan bahwa server akan menerima pesan
pada port tertentu. Server juga menggunakan panggilan sistemke tiga un-
tuk mengirimkan kembali informasi keproses yangdipanggil.
Dengan dibangun dari perintah sistem yang primitif, maka sistem ini
menjadi antarmukauntuk programaplikasi. Hal ini diselesaikan olehtingkat
dari pengarahanyangmengijinkan pengguna untuk berkir terhadapstruk-
tur ini sebagai objek dan operasi-operasi terhadap objek ini.
Berhubungan dengan objek-objek adalah class. Kelas dapat berisi kelas
yang lain dan juga hierarki secara alami. Pewarisan membuat antarmuka
objek untuk implementasi manipulasi objek seperti menghapus, membaca,
menulis, dan sebagainya.
4.3.2 Manaj emen Berkas
Dalamsistemoperasi terdistribusi ini sistemberkas dipetakan dengan baik
dengan berorientasi pada objek yang ada dan kapabilitasnya. Hal ini akan
menjadi berkesan abstrak, terutama untuk kelas pengguna. Ada tingkatan
yanglebih ekstra dalampemetaan berkas yangada, mulai dari simbol, pen-
gurutannamapath, dan kapabilitasnya. Melalui sistemini objek lokal tidak
ada bedanya dengan objek publik.
Dalam sistem ini ada semacan tingkatan akses yang sebenarnya mirip
UNIX. Setiap user dan group memiliki hak akses yang berbeda-beda pada
setiap berkas atau folder yangada pada sistemoperasi terdistribusi.
Dalam implementasi sistem Amoeba, terutama di negeri Belanda, hak
akses yang dimiliki pengguna terbatas pada hak baca le, tulis/ membuat
le, dan hapus le. Dengan hal ini, maka keamanan server dapat terjaga.
Pelayanan terhadap direktori yang ada dibuat sangat ketat dalam hal
keamanan. Bahkan dibuat semacan kode acak yang akan menyandikan le
BAB 4. SISTEM OPERASI TERDISTRIBUSI 53
tersebut sehingga tidak mudah dibaca oleh siapapun. Kode penyandinya
akan digunakan lagi oleh sistem untuk mengembalikan le seperti semula
kepada user.
Kode ini hanya akan diberikan kepada pemilik le tersebut. J adi ketika
user mengakses le/berkas yang bersangkutan, maka kode penyandi akan
dibuat oleh sistem, agar pemilik ledapat membacanya.
Pelayanandirektori ini jugabertanggungjawabdalamhal backupsistem.
Hal ini akanmenyebabkan leselaluberada dalamkeadaanyangaman, dan
lebihkebal tehadapgangguanyangterjadi di dalamsistem, karenapelayanan
direktori ini menyimpan cachedari le atau direktori yangberada pada sis-
tem.
4.4 Proses
Dalamsistemoperasi terdistribusi yangsejati, tiap proses berada pada ala-
mat segmen-segmenvirtual. Proses-proses ini dapat memiliki lebihdari satu
hubungan. Kaitan-kaitanini dialokasikankeprosesor-prosesor sampai semua
prosesor habis digunakan. Hasil dari manajemen proses seperti ini meng-
hasilkan utilisasi yanglebih baik, di mana tidak perlu switch apabila harus
ada proses yang berat, karena satu proses dialokasikan ke satu prosesor.
Sedangkan untuk proses yang tidak kebagian tempat, maka akan masuk ke
antrian. Kaitan-kaitan proses ini menggunakan semaphore untuk menun-
jukkan aktitasnya
Masing- masing proses memiliki kontrol sendiri pada spasi alamatnya.
Masing-masingproses dapat menambah atau menghapus segmen dari spasi
alamat virtualnya melalui operasi pemetaan. Objek seperti le yang berisi
kapabilitas, dan yangmembaca adalah kernel, dan apabila proses diijinkan,
maka ia dapat memetakan atau menghapus pemetaan segmen pada alamat
virtualnya.
Untukmembangunsebuahproses, makapendekripsi prosesmengirimkan-
nya ke kernel. Hal ini diketahui sebagai pengiriman request untuk proses.
Sebuah deskriptor proses dapat berisi deskriptor host, kapabilitas proses,
penanganan kapabilitas, dan juga jumlah segmen. Deskriptor host berisi
proses ini memiliki jenis apa, dan dapat berjalan di mana. Isinya adalah
baris instruksi, kebutuhan memori, kelas mesin, informasi, dan sebagainya.
Kernel harus memiliki deskriptor host yangsamauntuk melanjutkan proses.
BAB 4. SISTEM OPERASI TERDISTRIBUSI 54
Kapabilitas proses adalah memiliki tingkatan lebih tinggi dari proses,
yangmengatur apayangdapat dilakukan oleh proses, atau proses ini hanya
dapat dilakukanolehsiapa. Pengatur kapabilitasmiripdenganhal ini, tetapi
hanya bekerja untuk proses yangtidak normal.
Alamat proses terenkapsulasi di dalam peta memori internal. Peta ini
meiliki entri untuk setiap segmen dari alamat untuk proses yangpotensial.
Entri berisi alamat virtual, panjangsegmen, pemetaansegmen, dan kapabil-
itas dari objek yangmengetahui dari mana objek tersebut diinisialisasi..
Ada juga kaitan pemetaan yangmendeskripsikan atribut yanglain, ter-
masuk di antaranya mendenisikan inisial keadaan dari kaitan, status pros-
esor, programcounter, stack pointer, stack base, nilai register, dan keadaan
sistempemanggil. Hal ini mengijinkandeskriptor untuk digunakandi proses.
Proses memiliki dua macamkeadaan, yaitu proses sedangberjalan atau
sedangstunned. Stunnedterjadi bilaprosesmasihada, tetapi tidakmelakukan
eksekusi apapun, atau sedang dalam proses debug. Pada keadaan ini ker-
nel memberitahu komunikator (kernel yanglain) adanya proses yangdalam
keadaan stunned. Kernel yang lain tersebut berusaha berkomunikasi den-
gan proses itu sampai proses di-kill atau proses tersebut berjalan kembali.
Debuggingdan migrasi pada proses ini selesai setelah adanya stunning.
Bab 5
File Service
5.1 Pengenalan
Presently, our most common exposureto distributedsystems that exemplify
some degree of transparency is through distributed le systems. Wed like
remoteles to look and feel just likelocal ones.
A le systemis responsiblefor theorganization, storage, retrieval, nam-
ing, sharing, and protection of les. File systems providedirectory services,
whichconvert a lename(possibly ahierarchical one) intoan internal iden-
tier (e.g. inode, FAT index). They contain a representationof theledata
itself and methods for accessingit (read/ write). Thelesystemis responsi-
blefor controllingaccess to thedataandfor performinglow-level operations
such as bueringfrequentlyused data and issuingdisk I/ O requests.
Our goals in designing a distributed le system are to present certain
degrees of transparency to the user and thesystem:
access transparency
Clients are unaware that les are distributed and can access themin
thesameway as local les areaccessed.
location transparency
A consistent name space exists encompassing local as well as remote
les. Thenameof a ledoes not giveit location.
concurrency transparency
55
BAB 5. FILE SERVICE 56
All clients have the same view of the state of the le system. This
means that if one process is modifying a le, any other processes on
thesamesystemor remotesystems that areaccessingtheles will see
themodications in a coherent manner.
failuretransparency
Theclient and client programs should operatecorrectly after a server
failure.
heterogeneity
Fileserviceshouldbeprovidedacrossdierent hardwareandoperating
systemplatforms.
scalability
The le system should work well in small environments (1 machine,
a dozen machines) and also scale gracefully to huge ones (hundreds
through tens of thousands of systems).
replication transparency
To support scalability, we may wish to replicate les across multiple
servers. Clients should beunawareof this.
migration transparency
Files shouldbeableto movearound without theclients knowledge.
5.1.1 Konsep Sistem Files terdistribusi
A le service is a specication of what the le systemoers to clients. A
le server is the implementation of a le service and runs on one or more
machines.
A le itself contains a name, data, and attributes (such as owner, size,
creation time, access rights). An immutable le is one that, once created,
cannot bechanged. Immutablelesareeasy tocacheand toreplicateacross
servers sincetheir contents areguaranteedto remain unchanged.
Two forms of protection are generally used in distributed le systems,
andtheyareessentiallythesametechniques that areusedinsingle-processor
non-networked systems:
BAB 5. FILE SERVICE 57
capabilities
Eachuser is granted aticket (capability) fromsometrusted sourcefor
each object to which it has access. Thecapability species what kinds
of access areallowed.
access control lists
Each le has a list of users associated with it and access permissions
per user. Multiple users may be organized into an entity known as a
group.
5.1.2 J enis File Service
Toprovidearemotesystemwithleservice, wewill havetoselect oneof two
models of operation. One of these is the upload/ download model. In this
model, therearetwofundamental operations: readletransfersanentirele
fromtheserver to therequestingclient, andwritelecopies theleback to
theserver. It isasimplemodel andecient inthat it provideslocal accessto
thelewhenit is beingused. Threeproblems areevident. It canbewasteful
if the client needs access to only a small amount of thele data. It can be
problematic if the client doesnt have enough spaceto cache the entire le.
Finally, what happens if others need to modify the same le? The second
model is a remoteaccess model. The leserviceprovides remoteoperations
such as open, close, read bytes, write bytes, get attributes, etc. The le
systemitself runs on servers. The drawback in this approach is the servers
areaccessedfor theduration of leaccess rather thanonceto download the
leand again to upload it.
Another important distinction in providing le service is that of under-
standingthedierencebetweendirectoryserviceandleservice. A directory
service, in the context of le systems, maps human-friendly textual names
for les totheir internal locations, whichcanbeused by theleservice. The
le service itself provides the le interface (this is mentioned above). An-
other component of ledistributed lesystems is the client module. This is
theclient-side interfacefor le and directory service. It provides a local le
systeminterfaceto client software (for example, the vnode lesystemlayer
of a UNIX kernel).
BAB 5. FILE SERVICE 58
5.2 K omponen File Service
5.2.1 Naming
In designing a distributed le service, we should consider whether all ma-
chines (and processes) should have the exact same view of the directory
hierarchy. We might also wish to consider whether the name space on all
machines should have a global root directory (a.k.a. super root) so that
les can be accessed as, for example, / / server/ path. This is a model that
was adopted by theApollo Domain System, an early distributedlesystem,
and more recently by the web community in the construction of a uniform
resource locator (URL).
Inconsideringour goals in nameresolution, wemust distinguish between
location transparency and location independence. By location transparency
we mean that the path name of a le gives no hint to where the le is
located. For instance, wemay refer to aleas / / server1/dir/le. Theserver
(server) can move anywhere without the client caring, so we have location
transparency. However, if the lemoves to server2 things will not work. If
wehavelocation independence, the les can be moved without their names
changing. Hence, if machineor server names areembedded into pathnames
wedo not achievelocation independence.
It is desirabletohaveaccess transparency, sothat applications and users
can access remote les just as they access local les. To facilitate this, the
remote le system name space should be syntactically consistent with the
local name space. One way of accomplishing this is by redening the way
les are named and require an explicit syntax for identifying remote les.
This cancauselegacyapplicationstofail anduser discontent (users will have
to learn a newway of naming their les). An alternate solution is to use a
le systemmounting mechanismto overlay portions of another le system
over a node in a local directory structure. Mounting is used in the local
environment to construct a uniformname space fromseparate le systems
(whichresideondierent disksor partitions) aswell as incorporatingspecial-
purposelesystemsintothenamespace(e.g. / proconmany UNIX systems
allows lesystemaccesstoprocesses). A remotelesystemcan bemounted
at aparticular point inthelocal directory tree. Attempts to access les and
directories under that nodewill bedirectedtothedriver for that lesystem.
To summarize, our namingoptions are:
BAB 5. FILE SERVICE 59
machineand path naming(machine:path, ./machine/ path).
mount remotelesystems onto the local directory hierarchy (merging
thetwo namespaces).
providea singlenamespacewhich looks the same on all machines.
Therst two of theseoptions arerelatively easy to implement.
Tipe Nama
When we talk about le names, we refer to symbolic names (for example,
server.c). Thesenames are used by people (users or programmers) to refer
to les. Another name is the identier used by the system internally to
refer to a le. Wecan think of this as a binary name (moreprecisely, as an
address). On most UNIX lesystems, this would bethedevicenumber and
inodenumber. OnMS-DOSsystems, this would bethedriveletter and FAT
index.
Directories provideamappingfromsymbolic names toleaddresses (bi-
nary names). Typically, one symbolic name maps to one le address. If
multiple symbolic names map onto one binary name, these are called hard
links. On inode-based le systems (e.g., most UNIX systems), hard links
must exist within the same device since the address (inode) is unique only
on that device. On MS-DOS systems, they are not supported because le
attributes arestored with thenameof thele. Having two symbolic names
refer to the same data will cause problems in synchronizing le attributes
(howwould youlocateother les that point to this data?). A hack to allow
multiplenames to refer to the same le(whether its on the samedevice or
a dierent device) is to havethesymbolic namerefer to a singleleaddress
but that lemay havean attributeto tell the systemthat its contents con-
tain asymbolic lenamethat shouldbedereferenced. Essentially, this adds
a level of indirection: access a lewhich contains another le name, which
references the le attributes and data. These les are known as symbolic
links. Finally, it is possible for one symbolic name to refer to multiple le
addresses. This doesnt make much sense on a local system1, but can be
useful on a networked le system to provide fault tolerance or enable the
systemto use thele address which is most ecient.
BAB 5. FILE SERVICE 60
5.2.2 File Sharing Semantik
Theanalysis of le sharingsemantics is that of understandinghowles be-
have. For instance, onmost systems, if areadfollowsawrite, thereadof that
location will returnthevaluesjust written. If two writes occur insuccession,
thefollowingread will return theresults of thelast write. Filesystems that
behavethis way aresaid to observesequential semantics.
Sequential semantics can be achieved in a distributed systemif there is
only one server and clients do not cache data. This can cause performance
problems sinceclients will begoingtotheserver for everyleoperation(such
assingle-bytereads). Theperformanceproblemscanbealleviatedwithclient
caching. However, nowif theclient modiesitscacheandanother client reads
datafromtheserver, it will get obsoletedata. Sequential semanticsnolonger
hold.
Onesolutionis tomakeall thewriteswrite-throughtotheserver. Thisis
inecient and does not solvetheproblemof clients havinginvalid copies in
their cache. To solvethis, theserver would haveto notify all clients holding
copies of thedata.
Another solution is to relax thesemantics. We will simply tell theusers
that things do not work thesameway on thedistributedlesystemas they
didon thelocal lesystem. Thenewrulecanbechanges toan openleare
initially visibleonly to theprocess (or machine) that modied it. Theseare
known as session semantics.
Yet another solution is to make all the les immutable2. That is, a
le cannot be open for modication, only for reading or creating. If we
need to modify a le, well createa completely newleunder theold name.
Immutableles are an aid to replication but they do not help with changes
to theles contents (or, moreprecisely, that theold leis obsoletebecause
a newone with modied contents succeeded it). We still have to contend
with the issue that there may be another process reading the old le. Its
possibletodetect that alehaschangedandstart failingrequests fromother
processes.
A nal alternativeistouseatomictransactions. Toaccessaleor agroup
of les, aprocessrst executesabegintransactionprimitivetosignal that all
futureoperations will beexecuted indivisibly. Whenthework is completed,
an end transaction primitive is executed. If two or more transactions start
BAB 5. FILE SERVICE 61
at the same time, thesystemensures that the end result is as if they were
runin somesequential order. All changes haveanall or nothingproperty.
5.2.3 Chaching
We can employ caching to improve system performance. There are four
places in a distributed systemwherewecan hold data:
1. on theservers disk
2. in a cachein theservers memory
3. in theclients memory
4. on theclients disk
Therst two places arenot an issuesinceany interfaceto theserver can
check the centralized cache. It is in thelast two places that problems arise
and we have to consider the issue of cacheconsistency. Several approaches
may betaken:
write-through
What if another client reads its own cached copy? All accesses would
require checking with theserver rst (adds network congestion) or re-
quiretheserver to maintainstateonwhohas what les cached. Write-
through also does not alleviatecongestion on writes.
delayed writes
Datacanbebueredlocally(whereconsistencysuers) but lescanbe
updated periodically. A singlebulk writeis far moreecient than lots
of littlewrites everytimeany lecontentsaremodied. Unfortunately
thesemantics becomeambiguous.
writeonclose
This is admittingthat thelesystemuses session semantics.
centralized control
Server keeps track of who has what open in which mode. We would
haveto support a stateful systemand deal with signalingtrac.
Bab 6
Name Service
6.1 Pengenalan
Pengaksesan resourcepd sistemterdistribusi memerlukan:
Nama resource(untuk pemanggilan).
Alamat (lokasi resource tsb).
Rute(bagaimana mencapai lokasi tsb).
Konsentrasi pada aspek penamaan, dan pemetaanantara nama & ala-
mat, bukan pada masalah rute, ygdibahas di J aringan Komputer.
Yang dimaksud dengan resource adalah : komputer, layanan, remote
object, berkas, pemakai.
Berikut contohnamingpd aplikasi sistemterdistribusi:
URL utk mengakses suatu halaman web.
Alamat e-mail utk komunikasi antar pemakai.
Namingsering dianggap remeh, tapi mendasar dlmsistemterdistribusi.
Karena dalamhal ini nameberfungsi sebagai identier (pengenal) pada sis-
tem
62
BAB 6. NAME SERVICE 63
6.1.1 Tujuan Penamaan
Identikasi:
Seorangpemakai menginginkanobyek/ layananA, bukanobyek/ layanan
B.
Memungkinkan terjadinya sharing
Lebih dari satu pemakai dapat mengindentikasikan resource dengan
nama yangsesuai (tidak harus nama yangsama).
Memungkinkan locationindependence:
Perubahanlokasi tidakmenuntut perubahannama, asalkanlokasi tidak
menjadi bagiandari nama resourcetsb.
Memberikan kemampuan keamanan (security)
- J ikasebuahnama dipilih secara acak dari himpunan besar interger,
makanamatsbhanyabisadiketahui dari legitimatesource, bukan
dari menebak.
- J adi jika seseorangmengetahui nama obyek tsb, maka dia memang
diberitahu, karena sulit sekali menebak nama tsb.
6.1.2 Contoh Penamaan yang memberikan kemampuan
keamanan
Nama dipilih secara acak dari 128bit integer -> ada sekitar 3 x 1038 nama
yang berbeda. J ika sekumpulan obyek membutuhkan nama yang unik, dan
di-generate 1 juta dalam 1 detik selama 100 tahun, maka pada akhirnya
akan ada sekitar 3x 1015 obyek (nama). Proporsi nama yangdipakai, jauh
lebih kecil dari keseluruhan nama yang tersedia. Probabilitas benar dalam
menebaknamaobyektsbadalah1:1023. J ikadalamdalam1detik dilakukan
1 juta tebakan, maka diperlukan sekitar 1010 tahun untuk menebak nama
yangbenar.
BAB 6. NAME SERVICE 64
Ilustrasi kerja nameservice
6.1.3 J enis Nama
User names:
Dibuat olehpemakai (user).
Merujuk pada suatuobyek atau layanan.
Terdiri dari strings of characters.
Contoh: hp201untuk pencetak, ~bettyp/ tmp/ test.c untuk berkas.
Systemnames:
Terdiri dari bit string.
Internal untuk sistem, tidak ditujukan untuk manusia.
Lebihcompact dari user names, shgdapat dibandingkan dengan lebih
esien.
BAB 6. NAME SERVICE 65
6.1.4 Struktur Nama
Primitive/ at names (UniqueIdentiers = UIDs)
Tanpa struktur internal, hanya stringof bits.
Digunakan utk perbandingan denganUID lain.
Tidak membawa informasi lain -> purenames.
Sangat berguna & banyak digunakan karena:
- Location&applicationindependent, shgtidakmenjadi masalahbagi
mobilitas obyek.
- Seragam, xed size.
- Compact: mudah disimpan, di-pass, & jika cukup besar menjadi
sulit ditebak.
Partitioned Names (PN)
Komposisi dari beberapa nama primitif, biasanya disusun secara hi-
rarkis.
Contoh: www.gunadarma.ac.id/ cs/ docs/akademik/SisDis/ naming.ppt.
Membawa informasi ->impurenames.
Biasanya tidak secara unik mengidentikasikan obyek, beberapa nama
bisa dipetakan kesatu obyek (e.g. UNIX lelinks).
Descriptive names (DN)
Daftar atribut yang secara bersama-sama mengidentikasikan obyek
secara unik.
Membawa informasi ->impurenames.
DN adalah superset dari PN.
BAB 6. NAME SERVICE 66
6.1.5 Tujuan Fasilitas Penamaan
Esien, karena fasilitas penamaan merupakan dasar pada sisdis & di-
gunakan secara terus menerus.
Terdistribusi. Renungkan jika UIDs dibangkitkanolehcentralizedgen-
erator.
- Bottleneck.
- Nodetempat generator tsb mengalami kegagalan.
Tampak seperti global space, tidak tergantung konektitas, topologi,
dan lokasi obyek.
Mendukung pemetaan 1:many antara nama & obyek, untuk memu-
ngkinkan multicast.
Mendukungdynamic relocation of objects, jika obyek/ proses potensial
untuk mobile (berpindah-pindah). J adi diperlukan dynamic binding
antara nama & alamat, juga antara alamat & rute.
Memungkinkan local aliases, shg pemakai dapat mengekspresikan in-
terpretasi semantik mereka thdp suatu obyek. Tentu saja diperlukan
pemetaan antara aliases danfull names.

Anda mungkin juga menyukai