Name Service dalam Sistem Terdistribusi merupakan layanan penamaan yang berfungsi untuk menyimpan naming context, yakni kumpulan binding nama dengan objek, tugasnya untuk me-resolve nama.
Pengaksesan resource pada sistem terdistribusi yang memerlukan:
- Nama resource (untuk pemanggilan),
- Alamat (lokasi resource tsb),
- Rute (bagaimana mencapai lokasi tsb).
Name Service memiliki konsentrasi pada aspek penamaan dan pemetaan antara nama & alamat, bukan pada masalah rute, yang dibahas di Jaringan Komputer. Resource yang dipakai dalam Name Service adalah: komputer, layanan, remote object, berkas, pemakai.
Contoh penamaan pada aplikasi sistem terdistribusi:
– URL untuk mengakses suatu halaman web.
– Alamat e-mail utk komunikasi antar pemakai.
Name Resolution, Binding, Attributes
– Name resolution: Nama ditranslasikan ke data ttg resource/object tsb.
– Binding: Asosiasi antara nama & obyek, dan biasanya nama diikat (bound) ke
attributes dr suatu obyek.
– Address: atribut kunci dari sebuah entitas dalam sistem terdistribusi.
─ Attribute: nilai suatu object property.
Tujuan atau manfaat penamaan antara lain adalah:
• Identifikasi:
Seorang pemakai menginginkan obyek/layanan A, bukan obyek/layanan B.
• Memungkinkan terjadinya sharing
Lebih dari satu pemakai dapat mengindentifikasikan resource dengan nama yang sesuai
(tidak harus nama yang sama).
• Memungkinkan location independence:
Perubahan lokasi tidak menuntut perubahan nama, asalkan lokasi tidak menjadi bagian
dari nama resource tsb.
• Memberikan kemampuan keamanan (security)
- Jika sebuah nama dipilih secara acak dari himpunan besar interger, maka nama tsb
hanya bisa diketahui dari legitimate source, bukan dari menebak.
- Jadi jika seseorang mengetahui nama obyek tsb, maka dia memang diberitahu,
karena sulit sekali menebak nama tsb.
Jenis nama
User names:
• Dibuat oleh pemakai (user).
• Merujuk pada suatu obyek atau layanan.
• Terdiri dari strings of characters.
Contoh: hp201 untuk pencetak, ~bettyp/tmp/test.c untuk berkas.
System names:
- Terdiri dari bit string.
- Internal untuk sistem, tidak ditujukan untuk manusia.
- Lebih compact dari user names, shg dapat dibandingkan dengan lebih efisien.
• Pure name : nama yang tidak perlu di terjemahkan, karena pada nama tersebut sudah
menunjuk alamat objek langsung.
– Contoh : IP
• non-pure name : dalam nama mengandung suatu informasi (atribut misalnya) tentang
suatu objek.
– Contoh : URL, alamat email, X.500 Directory Service, IOR (Interoperability Object
Reference).
Kebutuhan terhadap name service
• penamaan unik yang standard
• scalability
• Consistency
• performance dan availability
• mudah menyesuaikan terhadap perubahan perlindungan kegagalan
Struktur nama
Primitive/‡at names (Unique Identi…ers = UIDs)
a. Tanpa struktur internal, hanya string of bits.
b. Digunakan utk perbandingan dengan UID lain.
c. Tidak membawa informasi lain -> pure names.
d. Sangat berguna & banyak digunakan karena:
• Location & application independent, shg tidak menjadi masalah bagi mobilitas obyek.
• Seragam, fixed size.
• Compact: mudah disimpan, di-pass, & jika cukup besar menjadi sulit ditebak.
a) Partitioned Names (PN)
- Komposisi dari beberapa nama primitif, biasanya disusun secara hirarkis. Contoh:
www.gunadarma.ac.id/cs/docs/akademik/SisDis/naming.ppt.
- Membawa informasi -> impure names.
- Biasanya tidak secara unik mengidenti…kasikan obyek, beberapa nama bisa
dipetakan ke satu obyek (e.g. UNIX file links).
b) Descriptive names (DN)
- Daftar atribut yang secara bersama-sama mengidentifikasikan obyek secara unik.
- Membawa informasi -> impure names.
- DN adalah superset dari PN.
Tujuan fasilitas Penamaan
a. Efisien, karena fasilitas penamaan merupakan dasar pada sisdis & digunakan secara terus menerus.
b. Terdistribusi. Renungkan jika UIDs dibangkitkan oleh centralized generator.
• Bottleneck.
• Node tempat generator tsb mengalami kegagalan.
c. Tampak seperti global space, tidak tergantung konekti…tas, topologi, dan lokasi
obyek.
d. Mendukung pemetaan 1:many antara nama & obyek, untuk memungkinkan multicast.
e. Mendukung dynamic relocation of objects, jika obyek/proses potensial untuk mobile
(berpindah-pindah). Jadi diperlukan dynamic binding antara nama & alamat, juga
antara alamat & rute.
f. Memungkinkan local aliases, shg pemakai dapat mengekspresikan interpretasi
semantik mereka thdp suatu obyek. Tentu saja diperlukan pemetaan antara aliases dan
full names.
Source:
- http://sisterfrisca.blogspot.com/
- http://teg849.wordpress.com/2011/04/27/name-service/
- http://blogerahman.staff.unisbank.ac.id/files/2011/07/Sist-Terdistribusi-Anton-Pres10.pdf
Rabu, 18 April 2012
Konsep Dasar Nama Service
Kamis, 05 April 2012
Proses Threading dalam Pemrograman
Suatu thread merupakan suatu alur instruksi yang di
eksekusi. Program yang melakukan lebih dari satu alur instruksi biasa disebut
melakukan multithreading.
Contoh,
kita ingin membuat suatu aplikasi untuk meng-import file yang besar sementara
memungkinkan user untuk menekan tombol “Batal”, seorang developer akan membuat
thread tambahan untuk melakukan proses import. Dengan melakukan proses import
di thread yang lain, aplikasi bisa menerima pesan pembatalan dari user daripada
harus menyebabkan aplikasi menjadi “Not Responding” sampai proses upload
selesai.
Suatu
sistem operasi men-simulasikan beberapa thread melalui mekanisme yang disebut
“time slicing”. Time Slicing adalah mekanisme dimana sistem operasi mengalihkan
eksekusi dari satu thread (urutan instruksi) ke thread berikutnya sehingga
proses eksekusi perintah secara terus menerus akan tetap berlanjut dengan
cepat.
Efeknya
hampir sama dengan efek dalam kabel fiber optic dari telepon, dimana kawat dari
fiber optic mewakili processor dan setiap percakapan yang terjadi mewakili
suatu thread. Satu (single-mode) kawat fiber optic telepon hanya bisa
mengirimkan 1 sinyal pada sekali pakai, tetapi banyak orang bisa saling
melakukan percakapan secara terus menerus. Channel-channel dalam fiber optic
cukup cepat dalam melakukan pergantian antar percakapan. Hampir sama, setiap
thread dari suatu proses multithread selalu berjalan terus menerus secara
paralel dengan thread yang lain.
Suatu
thread seringkali menunggu event-event yang berbeda, seperti operasi I/O,
mengganti ke suatu thread yang berbeda menyebabkan lebih efisiennya proses
eksekusi perintah, karena processor tidak perlu idle untuk menunggu sampai
operasi selesai.
Tetapi,
mengganti proses dari satu thread ke thread yang lain akan bisa menyebabkan
“overhead”. Jika terlalu banyak thread, pengalihan overhead akan membanjiri
bagian dari proses thread yang sedang di eksekusi, juga, sistem akan mulai
berjalan lambat – mulai melakukan proses pergantian antar thread daripada
menyelesaikan proses dari thread sebelumnya terlebih dahulu.
Yang
baru mengenal programming-pun pasti pernah mendengar istilah multithreading
sebelumnya, seringkali mengenai kerumitannya.
Pemrograman,
betapapun, meninggalkan suatu kerumitan yang patut dipertimbangkan, tidak
sebanyak seperti membuat aplikasi yang memiliki banyak thread.
Atomicity
(Valensi)
Pikirkan suatu kode program yang melakukan proses transfer dari suatu rekening. Pertama, pastikan apakah dananya cukup, jika cukup, proses transfer terjadi. Jika sesudah mengecek dana, eksekusi diganti dengan thread untuk menghapus dana tersebut, maka akan menyebabkan proses transfer yang invalid ketika proses eksekusi kembali ke thread awal. Mengatur akses rekening sehingga hanya satu thread yang bisa mengakses rekening tersebut, dalam satu waktu akan memperbaiki masalah dan menjadikan transfer tersebut “atomic”.
Pikirkan suatu kode program yang melakukan proses transfer dari suatu rekening. Pertama, pastikan apakah dananya cukup, jika cukup, proses transfer terjadi. Jika sesudah mengecek dana, eksekusi diganti dengan thread untuk menghapus dana tersebut, maka akan menyebabkan proses transfer yang invalid ketika proses eksekusi kembali ke thread awal. Mengatur akses rekening sehingga hanya satu thread yang bisa mengakses rekening tersebut, dalam satu waktu akan memperbaiki masalah dan menjadikan transfer tersebut “atomic”.
Suatu
operasi atomic adalah satu, yang mana menyelesaikan seluruh prosesnya sampai
selesai, atau mengembalikan sistem ke kondisi awal. Operasi transfer pada bank
pastinya merupakan suatu operasi atomic karena melibatkan 2 langkah. Dalam
proses melakukan langkah-langkah tersebut, sangat mungkin kehilangan operasi
atomicity jika thread yang lain melakukan modifikasi terhadap rekening sebelum
proses transfer selesai.
Identifikasi
dan implementasi atomicity merupakan salah satu kerumitan utama dalam
pemrograman multithreading.
Kerumitannya
bertambah karena secara umum statemen dalam C# tidak secara penuh memerlukan
atomic. _Count++, sebagai contohnya, merupakan statemen dalam C#, tetapi
diterjemahkan menjadi beberapa instruksi untuk processor.
1.
Proses membaca data dalam Count.
2. Processor mengkalkulasikan nilai yang baru.
3. Nilai baru diberikan pada Count (walaupun ini mungkin bukan atomic).
2. Processor mengkalkulasikan nilai yang baru.
3. Nilai baru diberikan pada Count (walaupun ini mungkin bukan atomic).
Sesudah
data diakses, tetapi sebelum nilai baru diberikan, thread yang lain mungkin
akan memodifikasi nilai aslinya.
Deadlock
Untuk menghindari kondisi yang tidak diinginkan, bahasa pemrograman mendukung kemampuan untuk mengunci dan membatasi kode untuk dijalankan pada thread tertentu, umumnya satu. Tetapi, jika perintah penguncian dijalankan pada thread berbeda, suatu deadlock bisa terjadi, seperti thread menjadi berhenti, masing-masing menunggu yang lain untuk melepaskan penguncian.
Untuk menghindari kondisi yang tidak diinginkan, bahasa pemrograman mendukung kemampuan untuk mengunci dan membatasi kode untuk dijalankan pada thread tertentu, umumnya satu. Tetapi, jika perintah penguncian dijalankan pada thread berbeda, suatu deadlock bisa terjadi, seperti thread menjadi berhenti, masing-masing menunggu yang lain untuk melepaskan penguncian.
Contohnya :
Pada poin ini, setiap thread menunggu thread lain sebelum memulai proses, jadi setiap thread dikunci, sehingga mengakibatkan deadlock secara keseluruhan dalam proses eksekusi kode yang dijalankan.
Pada poin ini, setiap thread menunggu thread lain sebelum memulai proses, jadi setiap thread dikunci, sehingga mengakibatkan deadlock secara keseluruhan dalam proses eksekusi kode yang dijalankan.
Masalah
dari code yang tidak atomic atau menyebabkan deadlock adalah bahwa kode
tersebut tergantung pada urutan terjadinya instruksi dalam processor pada
beberapa thread.
Sekilas pemrograman multithreading memang agak susah dan
rumit, semua tergantung bagaimana logika programmer dalam mengatasinya. Salam
Software, Teknologi dan Bahasa Komunikasi Agent
Software
Perangkat Lunak merupakan suatu program yang dibuat oleh pembuat program untuk menjalankan
perangkat keras komputer. Perangkat Lunak adalah program yang berisi kumpulan
instruksi untuk melakukan proses pengolahan data. Perangkat lunak sebagai
penghubung antara manusia sebagai pengguna dengan perangkat keras komputer,
berfungsi menerjemahkan bahasa manusia ke dalam bahasa mesin sehingga perangkat
keras komputer memahami keinginan pengguna dan menjalankan instruksi yang
diberikan dan selanjutnya memberikan hasil yang diinginkan oleh manusia
tersebut.
Perangkat lunak komputer berfungsi
untuk :
1.
Mengidentifikasi program
2.
Menyiapkan aplikasi program sehingga
tata kerja seluruh perangkat komputer terkontrol.
3.
Mengatur dan membuat pekerjaan lebih
efisien.
Macam-macam Perangkat Lunak
1.
Sistem Operasi (Operating System),
2.
Program Aplikasi (Application
Programs),
3.
Bahasa Pemrograman (Programming
Language),
4.
Program Bantu (Utility)
Teknologi
Teknologi adalah metode ilmiah untuk mencapai tujuan praktis;
ilmu pengetahuan terapan atau dapat pula diterjemahkan sebagai keseluruhan
sarana untuk menyediakan barang-barang yg diperlukan bagi kelangsungan dan
kenyamanan hidup manusia.
Ada tiga klasifikasi dasar dari
kemajuan teknologi yaitu :
§ Kemajuan teknologi yang bersifat netral (bahasa
Inggris: neutral technological progress)
Terjadi bila tingkat pengeluaran (output) lebih tinggi dicapai dengan kuantitas dan kombinasi faktor-faktor pemasukan (input) yang sama.
Terjadi bila tingkat pengeluaran (output) lebih tinggi dicapai dengan kuantitas dan kombinasi faktor-faktor pemasukan (input) yang sama.
§ Kemajuan teknologi yang hemat tenaga kerja (bahasa
Inggris: labor-saving technological progress)
Kemajuan teknologi yang terjadi sejak akhir abad kesembilan belas banyak ditandai oleh meningkatnya secara cepat teknologi yang hemat tenaga kerja dalam memproduksi sesuatu mulai dari kacang-kacangan sampai sepeda hingga jembatan.
Kemajuan teknologi yang terjadi sejak akhir abad kesembilan belas banyak ditandai oleh meningkatnya secara cepat teknologi yang hemat tenaga kerja dalam memproduksi sesuatu mulai dari kacang-kacangan sampai sepeda hingga jembatan.
§ Kemajuan teknologi yang hemat modal (bahasa
Inggris: capital-saving technological progress)
Fenomena yang relatif langka. Hal ini terutama disebabkan karena hampir semua riset teknologi dan ilmu pengetahuan di dunia dilakukan di negara-negara maju, yang lebih ditujukan untuk menghemat tenaga kerja, bukan modalnya.
Fenomena yang relatif langka. Hal ini terutama disebabkan karena hampir semua riset teknologi dan ilmu pengetahuan di dunia dilakukan di negara-negara maju, yang lebih ditujukan untuk menghemat tenaga kerja, bukan modalnya.
Bahasa Komunikasi Agent
Komunikasi antar agent terjadi ketika mereka
akan menyampaikan pesan atau informasi tertentu. Dalam berkomunikasi, agent
memiliki cara tersendiri yang simulasinya dapat kita lihat pada pemakaian
netlogo. Komunikasi bisa di definisikan sebagai proses bertukar informasi antar
agent. Agent memperlihatkan cara berkomunikasinya ketika akan menyampaikan
informasi pada agent lainnya.
Bahasa di definisikan sebagai satu set simbol
yang dikomunikasikan oleh agent untuk menyampaikan informasi. Dalam artificial
intelligent bahasa manusia sering disebut bahasa alami sebagai pembeda dengan
bahaa pemrograman komputer. Bahasa juga didefinisikan sebagai satu set aturan
sosial bersama yang diterima dan dibatasi oleh aturan tata bahasa.
sumber :
Langganan:
Postingan (Atom)