SpongeBob SquarePants esetblog: PERTEMUAN VI (SISTEM TERDISTRIBUSI)

WELCOME

ESETBLOG.BLOGGSPOT.COM

Rabu, 22 Januari 2014

PERTEMUAN VI (SISTEM TERDISTRIBUSI)

BAB IV
NAMING


4.2.3 Home-Based Approaches
            Alternatif teknik lain yang tidak mengalami permasalahan ketika entitas bergerak dalam jaringan skala besar adalah pendekatan home-based, yaitu sebuah teknik resolving sedemikian sehingga sebuah entitas bergerak memiliki entitas agen dengan sebuah alamat tetap yang menjadi 'alamat rumah' . Ketika entitas tersebut bergerak ke lokasi lain entitas tersebut akan mendapatkan alamat baru yang kemudian didaftarkan entitas agen yang berada di 'alamat rumah'. Ketika sebuah pesan dikirimkan untuk entitas bergerak tersebut tujuan dari pesan adalah 'alamat rumah'. Entitas agen di alamat rumah akan menyampaikan pesan tersebut ke lokasi baru dari entitas bergerak berdasarkan alamat baru yang didaftarkan entitas tersebut. Entitas agen juga akan memberitahu pengirim pesan alamat baru dari entitas bergerak tersebut sehingga komunikasi berikutnya terjadi antara pengirim dengan entitas bergerak di lokasi barunya.
Penggunaan penyiaran dan forwarding pointer membebankan masalah skalabilitas. Penyiaran atau multicasting sulit untuk menerapkan secara efisien dalam skala besar jaringan sedangkan rantai panjang pointer forwarding memperkenalkan masalah kinerja dan rentan terhadap link yang rusak.
Pendekatan yang populer untuk mendukung entitas mobile di jaringan skala besar adalah untuk memperkenalkan lokasi rumah yang melacak lokasi saat suatu entitas. Teknik khusus dapat diterapkan untuk melindungi terhadap kegagalan jaringan atau proses. Dalam prakteknya, lokasi rumah sering dipilih untuk menjadi tempat di mana sebuah entitas diciptakan.
Pendekatan berbasis rumah digunakan sebagai mekanisme jatuh-kembali untuk layanan lokasi didasarkan pada pointer forwarding, seperti yang dibahas di atas. Contoh lain di mana pendekatan rumahan diikuti, adalah mobile IP (perkins, 1997). Setiap mobile host menggunakan alamat IP tetap. Semua komunikasi ke alamat IP yang awalnya diarahkan ke host mobile, AOS agen rumah. Ini agen rumah terletak di jaringan lokal-daerah sesuai dengan alamat jaringan yang terkandung dalam mobile host, AOS alamat IP. Setiap kali mobile host pindah ke jaringan lain, ia meminta alamat sementara yang dapat digunakan untuk komunikasi. Ini perawatan-alamat yang terdaftar di agen rumah.
Ketika agen rumah menerima paket untuk mobile host, itu mendongak tuan rumah, AOS lokasi saat ini. Jika tuan rumah itu adalah pada jaringan lokal saat ini, paket hanya diteruskan. Jika tidak, maka terowongan ke host, AOS lokasi saat ini, yang dibungkus sebagai data dalam paket IP dan dikirim ke alamat perawatan-. Pada saat yang sama, pengirim paket yang diinformasikan dari tuan rumah, AOS lokasi saat ini. Prinsip ini ditunjukkan pada Gbr.4-20. Perhatikan bahwa alamat IP secara efektif digunakan sebagai pengidentifikasi untuk mobile host. Gbr.4-20 juga menggambarkan kelemahan dari rumahan pendekatan dalam jaringan skala besar. Untuk berkomunikasi dengan entitas mobile, klien pertama harus menghubungi rumah, yang mungkin berada di lokasi yang sama sekali berbeda dari entitas itu sendiri. Hasilnya adalah peningkatan latency komunikasi.
Sebuah solusi diterapkan pada telepon selular adalah dengan menggunakan skema dua-berjenjang (Mohan dan Jain, 1994). Saat membuat sambungan ke badan ponsel, klien pertama memeriksa registri lokal untuk melihat apakah entitas mobile avalaible lokal. Jika tidak, entitas, AOS lokasi rumah yang dihubungi untuk menemukan lokasi saat ini. Di bawah ini, kita membahas perpanjangan dengan skema ini yang berkembang di seluruh lapisan hirarkis beberapa.

Gambar 4-20. prinsip mobile IP.
Kekurangan teknik ini adalah penggunaan lokasi rumah yang tetap sehingga rumah ini harus dipastikan selalu tersedia. Jika entitas bergerak hendak pindah untuk jangka waktu lama atau menetap di lokasi lain maka ada baiknya lokasi rumah juga ikut berpindah. Solusi masalah ini adalah dengan mendaftarkan lokasi rumah pada sebuah layanan penerjemahan alamat (naming service) jika lokasi rumah dapat berpindah sehingga lokasi rumah dapat ditemukan oleh entitas yang memerlukannya melalui naming service tersebut.
Sebuah solusi untuk masalah ini adalah untuk mendaftarkan rumah pada layanan penamaan tradisional dan membiarkan klien pertama mencari lokasi rumah. Karena lokasi rumah dapat diasumsikan relatif stabil, lokasi yang dapat secara efektif cache setelah telah mendongak.

4.2.4 Pendekatan hirarkis
            Pada teknik ini jaringan dibagi-bagi menjadi beberapa bagian yang dikenal sebagai domain. Domain-domain ini berada di dalam sebuah domain yang berada di tingkat paling atas yang meliputi seluruh jaringan (top-level domain). Sebuah domain yang berada di bawah/dalam sebuah domain lain dikenal sebagai sub-domain. Domain yang berada pada posisi paling bawah dan tidak memiliki sub-domain lagi dikenal sebagai leaf-domain.
Setiap domain D memiliki simpul direktori, dir(D), yang menyimpan informasi lokasi setiap entitas dalam domain tersebut. Akibatnya terbentuk sebuah pohon direktori dengan simpul paling atas disebut simpul direktori akar (root directroy node) yang mengetahui semua entitas.
Dua-tier rumahan pendekatan entitas lokasi dapat digeneralisasi untuk beberapa lapisan. Pada bagian ini, pertama-tama kita membahas pendekatan umum untuk skema lokasi hirarkis, setelah beberapa optimasi disajikan. Pendekatan kami sajikan didasarkan pada layanan lokasi Globe yang mewakili banyak layanan lokasi hirarkis diusulkan untuk apa yang disebut Sistem Komunikasi Pribadi (Pitoura dan Samaras, 2001; Wang, 1993).

Mekanisme umum
Dalam skema hirarkis, jaringan dibagi menjadi koleksi domain, sangat mirip dengan organisasi hirarkis DNS. Ada top-level domain tunggal yang meliputi seluruh jaringan. Setiap domain dapat dibagi menjadi beberapa, subdomain kecil. Sebuah domain tingkat terendah, disebut domain daun, biasanya berkaitan dengan jaringan area lokal dalam jaringan komputer atau sebuah sel dalam jaringan telepon selular.
Juga analog ke DNS dan sistem penamaan hirarkis, masing-masing D domain memiliki direktori terkait simpul dir (D) yang melacak entitas dalam domain tersebut. Hal ini menyebabkan pohon node direktori. Simpul direktori dari domain top-level, yang disebut root (direktori) node, tahu tentang semua entitas. Ini organisasi umum dari domain inot jaringan dan node direktori diilustrasikan dalam Gbr.4-21.
Gambar 4-21. Hirarkis organisasi layanan lokasi ke dalam domain, masing-masing memiliki simpul direktori terkait
Untuk melacak lokasi sebuah entitas dalam sebuah domain setiap entitas dalam domain terdaftar di dalam simpul direktori domain tersebut. Catatan lokasi (location record) sebuah entitas E pada simpul direktori N dari domain D berisi alamat entitas tersebut di dalam domain D. Sebaliknya, simpul direktori N' dari domain D' yang menjadi domain induk dari domain D hanya akan menyimpan catatan lokasi E berupa penunjuk (pointer) ke simpul direktori N dan demikian juga induk dari N' hanya menyimpan penunjuk ke simpul direktori N'. Pada akhirnya simpul direktori root berisi penunjuk ke simpul direktori dari semua sub-domain di bawahnya.
Sebuah entitas dapat memiliki beberapa alamat sebagai contoh: jika entitas tersebut direplikasi. Jika sebuah entitas memiliki alamat di leaf-domain D1 dan D2 maka simpul direktori dari domain induk dari domain D1 dan D2 menyimpan dua penunjuk untuk setiap sub-domain.
Gambar 4-22. Contoh dari menyimpan informasi dari sebuah entitas yang memiliki dua alamat dalam domain daun yang berbeda.
Mari kita mempertimbangkan bagaimana suatu operasi pencarian berlangsung sedemikian layanan lokasi hirarkis. Seperti yang ditunjukkan pada Gambar. 4-23, klien yang ingin mencari suatu entitas E, isu permintaan lookup ke node direktori dari domain D daun di mana klien berada. Jika node direktori tidak menyimpan catatan lokasi untuk entitas, maka entitas saat ini tidak terletak di D. Akibatnya, ke depan permintaan untuk node induknya. Perhatikan bahwa node orangtua merupakan domain lebih besar dari anaknya. Jika orangtua juga tidak memiliki catatan lokasi untuk E, permintaan pencarian diteruskan ke tingkat berikutnya yang lebih tinggi, dan sebagainya.
Jika sebuah entitas E1 ingin mengetahui alamat entitas E2 maka pertama kali ia akan mencari catatan lokasi entitas tujuan tersebut di simpul direktori domain tempat ia berada. Jika pada simpul direktori ini tidak terdapat catatan lokasi entitas E2 berarti entitas E2 tidak berada pada domain yang sama dengan entitas E1. Permintaan entitas E1 akan diteruskan ke simpul direktori dari simpul direktori dari induk domain tempatnya berada dan seterusnya ke simpul direktori induk dari induk domainnya hingga menemukan catatan lokasi untuk E2. Pada kasus terburuk pencarian akan berlanjut hingga simpul direktori domain akar. Jika pada salah satu domain ditemukan catatan lokasi untuk E2 maka permintaan pencarian akan diteruskan ke sub domain yang ditunjuk oleh catatan lokasi untuk E2 tersebut seterusnya hingga ditemukan alamat dari E2.
Gambar 4-23. mencari lokasi di layanan lokasi hirarki terorganisir.
Setelah permintaan mencapai M direktori simpul yang menyimpan catatan lokasi untuk E entitas, kita tahu bahwa E adalah suatu tempat di dom domain (M) diwakili oleh simpul M. di Gbr.4-23, M ditampilkan untuk menyimpan lokasi record yang mengandung pointer ke salah satu subdomainnya. Permintaan lookup kemudian diteruskan ke node direktori itu subdomain, yang pada gilirannya ke depan itu lebih bawah pohon, hingga permintaan akhirnya mencapai simpul daun. Catatan lokasi disimpan dalam simpul daun akan berisi alamat E dalam domain daun. Alamat ini kemudian dapat dikembalikan ke klien yang awalnya meminta lookup berlangsung.
Sebuah pengamatan penting sehubungan dengan layanan lokasi hirarkis, adalah bahwa operasi pencarian mengeksploitasi lokalitas. Pada prinsipnya, entitas yang dicari dalam cincin bertahap meningkatkan berpusat di sekitar klien meminta. Daerah pencarian diperluas setiap kali permintaan pencarian diteruskan ke node yang lebih tinggi-level direktori berikutnya. Dalam kasus terburuk, pencarian continoues hingga permintaan mencapai simpul akar. Karena akar memiliki catatan lokasi untuk setiap entitas, permintaan yang kemudian dapat hanya diteruskan sepanjang jalan ke bawah dari pointer ke salah satu node daun.
Operasi update mengeksploitasi lokalitas dalam cara yang sama, seperti yang ditunjukkan pada Gambar. 4-24. Pertimbangkan E entitas yang telah menciptakan replika dalam daun domain D yang dibutuhkan untuk memasukkan alamatnya. Penyisipan ini dimulai pada daun simpul dir (D) dari D, yang segera meneruskan permintaan insert ke induknya. Orang tua akan meneruskan permintaan insert juga, sampai mencapai M direktori simpul yang sudah menyimpan catatan lokasi untuk E.        
Node M kemudian akan menyimpan pointer dalam catatan lokasi untuk E, mengacu pada node anak dari mana permintaan insert itu diteruskan. Pada saat itu, simpul anak menciptakan rekor lokasi untuk E, yang mengandung pointer ke simpul yang lebih rendah-tingkat berikutnya dari mana permintaan datang. Ini terus menerus proses sampai kita mencapai simpul daun dari mana insert dimulai. Simpul daun, akhirnya, menciptakan rekor dengan alamat entitas dalam domain daun terkait.
Gambar 4-24. (a) Permintaan insert diteruskan ke node pertama yang tahu tentang E entitas
(b) Sebuah rantai forwarding pointer ke node daun dibuat.
Memasukkan alamat seperti yang baru saja dijelaskan, mengarah ke menginstal rantai pointer secara top-down dimulai dari node direktori tingkat terendah yang memiliki catatan lokasi untuk entitas E. Alternatif adalah untuk membuat data lokasi sebelum melewati permintaan insert ke simpul orangtua. Dengan kata lain, rantai pointer dibangun dari bawah ke atas. Keuntungan yang kedua adalah bahwa alamat menjadi avalaible untuk pencarian sesegera mungkin. Akibatnya, jika node induk untuk sementara tidak terjangkau, alamat masih bisa mendongak dalam domain diwakili oleh node saat ini.
Sebuah operasi menghapus analog dengan operasi insert. Ketika sebuah alamat untuk E entitas dalam daun domain D perlu dihapus, direktori simpul dir (D) diminta untuk menghapus alamat yang dari rekor lokasi untuk E. Jika yang merekam lokasi menjadi kosong, yang tidak berisi alamat lain untuk E di D, catatan dapat dihapus. Dalam hal ini, node induk dir (D) ingin menghapus pointer untuk dir (D). Jika catatan lokasi untuk E pada orangtua kini juga menjadi kosong, catatan yang harus dihapus juga dan simpul yang lebih tinggi-level direktori selanjutnya harus diberitahu. Sekali lagi, ini terus menerus proses sampai pointer dihapus dari catatan lokasi yang tetap tidak kosong sesudahnya atau sampai akar tercapai.

4.3.1 Obyek dengan cara kerangka terkait yang dilakukan oleh Server.
Dalam apa yang berikut, kita asumsikan bahwa sebuah objek hanya dapat diakses jika ada remote untuk itu. Sebuah objek yang ada referensi terpencil ada harus dihapus sistem. Di sisi lain, memiliki referensi remote ke obyek tidak berarti bahwa objek akan pernah diakses. Untuk berbagai alasan, adalah mungkin bahwa ada dua benda, masing-masing menyimpan direferensikan ke yang lain, tetapi sebaliknya tidak direferensikan sama sekali. Situasi ini dengan mudah digeneralisasikan ke siklus obyek hanya merujuk satu sama lain. Objek tersebut juga harus dideteksi dan dihapus.
Secara umum, model ini dapat diwakili oleh grafik di mana setiap node mewakili obyek. Keunggulan dari M node ke node N mewakili fakta bahwa objek M berisi referensi ke obyek N. ada bagian dibedakan dari benda-benda yang disebut set root, yang tidak perlu dirujuk sendiri. Sebuah objek di set akar biasanya merupakan layanan sistem yang luas, pengguna dan sebagainya. Gambar. 4.28 menunjukkan contoh seperti grafik direferensikan. Semua node putih yang mewakili benda-benda yang tidak langsung atau tidak langsung direferensikan oleh benda Di set root. Benda tersebut harus dihapus.


Gambar 4-28 An example of a graph representing objects containing references to each other
Dalam sistem prosesor tunggal, mendeteksi dan menghapus objek unreferenced relatif sederhana dibandingkan dengan situasi dalam sistem terdistribusi (untuk ikhtisar dari pengumpulan sampah dalam sistem uniprocessor, lihat Wilsons, 1994). Karena objek didistribusikan di beberapa mesin, pengumpulan sampah didistribusikan memerlukan jaringan komunikasi. Ternyata, komunikasi ini secara signifikan menentukan efisiensi dan skalabilitas dari solusi. Selain itu, komunikasi sebagai mesin juga suatu proses yang tunduk pada kegagalan, yang membuat masalah lebih buruk.
 Bagian ini, kami mempertimbangkan sejumlah baik-tahu solusi untuk pengumpulan sampah didistribusikan. Dalam kebanyakan kasus, solusi ini hanya sebagian memecahkan masalah. Pendekatan kami berikut pada mengambil dalam (plainfosse dan Shapiro, 1995), yang memberikan gambaran lebih lanjut dari pengumpulan sampah terdistribusi. Informasi lebih lanjut juga dapat ditemukan dalam (Abdullahi dan rinwood, 1998).

4.3.2 Referensi Menghitung
Sebuah metode yang populer di sistem prosesor tunggal untuk memeriksa apakah sebuah objek dapat dihapus adalah hanya menghitung referensi ke obyek itu. Setiap kali referensi ke sebuah objek dibuat, sebuah referensi counter untuk objek tersebut. Sebuah meja referensi untuk objek yang bertambah. Selanjutnya, pada saat referensi dihapus, counter referensi decremented. Segera setelah counter mencapai nol, objek dapat dihapus.
Sederhana Referensi Menghitung Referensi sederhana menghitung dalam sistem terdistribusi menyebabkan sejumlah masalah, yang sebagian disebabkan oleh kenyataan bahwa komunikasi tidak dapat diandalkan. Tanpa kehilangan umum, kita dapat mengasumsikan bahwa objek menyimpan kontra referensi sendiri dalam kerangka terkait sebagai dipelihara oleh server objek yang bertanggung jawab untuk objek. Situasi ini ditunjukkan pada gambar. 4-29.
Ketika P proses menciptakan referensi ke obyek O terpencil, menginstal p proxy untuk O dalam ruang alamat nya, seperti yang juga ditampilkan dalam Gbr.4-29. Untuk increment counter referensi, proxy mengirim pesan m ke kerangka obyek, dan mengharapkan untuk kembali pengakuan. Namun, jika pengakuan hilang, proxy akan mengirim ulang m. Jika tidak ada langkah khusus yang diambil untuk mendeteksi pesan duplikat, kerangka palsu mungkin kenaikan referensi yang kontra lagi.
Dalam prakteknya, mendeteksi pesan duplikat relatif mudah. Demikian juga, s masalah juga bisa disebabkan ketika referensi remote untuk dihapus. Dalam hal ini, proxy akan mengirim pesan untuk penurunan konter referensi. Jika pengakuan hilang lagi, maka transmisi pesan yang dapat menyebabkan penurunan yang lain, yang salah meja. Akibatnya, dalam menghitung referensi didistribusikan, adalah penting untuk mendeteksi pesan duplikat dan kemudian membuang mereka saat mereka masuk.
Masalah lain yang perlu diselesaikan terjadi ketika menyalin referensi remote ke proses lain. Jika P1 proses melewati referensi untuk proses P2, objek, atau lebih tepatnya, tulangnya, akan menyadari bahwa sebuah referensi baru telah dibuat. Akibatnya, jika proses P1 memutuskan untuk menghapus referensi sendiri, counter referensi mungkin drop ke nol dan O dapat dihapus sebelum P2 pernah kontak itu. Masalah ini diilustrasikan pada Gambar. 4-30 (a).

Referensi Menghitung Sebuah solusi adalah membiarkan P1 menginformasikan kerangka benda itu akan melewati sebuah referensi untuk memproses P2. Selain itu, proses ini tidak pernah diperbolehkan untuk menghapus referensi sebelum kerangka memiliki pengakuan bahwa ia tahu tentang keberadaan referensi yang. Solusi ini ditunjukkan pada Gambar. 4-30 (b). pengakuan mengirim melalui O ke P2 mengkonfirmasikan ke P2 bahwa O telah terdaftar referensi, nantinya akan memungkinkan P2 untuk menghapus referensi untuk O. Selama P2 tidak yakin bahwa O tahu tentang referensi, P2 tidak diperbolehkan untuk meminta O untuk lakukan dengan decrement counter referensi.
Perhatikan bahwa, selain komunikasi yang handal, melewati referensi sekarang membutuhkan tiga pesan. Jelas, ini dapat dengan mudah menyebabkan masalah kinerja dalam skala besar sistem terdistribusi.

Lanjutan Referensi Menghitung
Sederhana sistem terdistribusi referensi menghitung memaksakan kondisi lomba antara incrementing dan decrementing counter referensi sebagai hanya dijelaskan. Kondisi balapan tersebut dapat dihindari jika operasi pengurangan hanya dapat terjadi. Solusi ini diadopsi dalam referensi menghitung tertimbang, di mana setiap objek sebagai berat, tetap total. Ketika objek dibuat, berat total toko dalam kerangka terkait (yang kita sebut sebagai s), bersama dengan berat badan parsial, yang diinisialisasi dengan berat total, seperti yang ditunjukkan pada Gambar. 4-31 (a).
Ketika referensi remote baru (p, s) dibuat, setengah dari berat parsial disimpan dalam kerangka objek ditugaskan untuk p proxy baru, seperti ditunjukkan pada Gambar. 4-31 (b). Setengah yang tersisa adalah kerangka s. Ketika referensi remote diduplikasi,

Misalnya, ketika melewati itu dari P1 proses P2, setengah dari berat sebagian proxy di P1 ditugaskan ke proxy disalin untuk P2, sementara separuh lainnya tetap di proxy di P1, seperti ditunjukkan pada Gambar. 4-31 (c).
Ketika referensi hancur, pesan penurunan dikirim ke kerangka obyek, yang kemudian mengurangi berat parsial referensi dihapus dari berat total. Begitu berat total mencapai nol, tidak ada referensi lebih jauh ada, sehingga objek bisa dihapus secara aman. Perhatikan bahwa, juga dalam kasus ini, pesan yang dianggap tidak akan hilang atau memberikan lebih dari sekali.
Masalah utama dengan referensi menghitung tertimbang adalah bahwa hanya sejumlah referensi dapat dibuat. Begitu berat sebagian kerangka obyek, serta orang-orang dari referensi terpencil, turun menjadi nol, tidak ada referensi lebih dapat diciptakan atau digandakan. Solusi untuk masalah ini adalah dengan menggunakan berat o, proxy sendiri telah mencapai 1, seperti ditunjukkan pada Gambar. 4-32. Dalam hal ini, P1 menciptakan 'kerangka dalam ruang alamatnya dengan berat total yang tepat, dan berat parsial ditetapkan sama dengan berat total. Ini sangat sejalan dengan kerangka s dibuat dalam ruang alamat di mana objek berada. Proxy kemudian dikirim ke P2, dengan setengah dari berat parsial 'kerangka s ditugaskan untuk itu. Sisi lain berat disimpan di 's untuk distribusi ke proxy lain.

            Perhatikan bahwa jika berat total 's kerangka diatur 1, pendekatan ini adalah sama dengan menciptakan pointer forwarding dari P2 proses P1. Jika pada gilirannya, P2 ingin menyampaikan referensi, ia akan harus membuat yang lain pointer forwarding. Masalah yang paling serius dengan menggunakan pointer forwarding adalah bahwa rantai panjang serius menurunkan kinerja. Juga, rantai lebih rentan terhadap kegagalan.
Sebuah alternatif untuk menggunakan tipuan disediakan oleh penghitungan Generation referensi. Sekali lagi, menganggap bahwa setiap referensi remote dibangun sebagai pasangan (proxy, kerangka), di mana (saja) kerangka s terletak di ruang alamat yang sama sebagai obyek. Setiap proxy menyimpan counter untuk jumlah kali ini telah disalin, n samping sejumlah generasi. Ketika sebuah referensi baru (p, s) dibuat, jumlah generasi p proxy yang sesuai diatur ke nol. Karena tidak ada salinan tersebut belum dibuat dari p, counter salinannya juga diatur ke nol.
Menyalin referensi remote (p, s) untuk proses lain dilakukan dengan cara biasa dengan mengirimkan copy p 'p. Dalam hal ini, konter salinan P bertambah, sementara itu dari 'p diatur ke nol. Namun, karena p 'disalin dari P, dikatakan milik generasi berikutnya, yang untuk alasan jumlah generasi p' diatur satu lebih tinggi dari dari p, seperti yang ditunjukkan pada Gambar. 4-33.

            Kerangka mempertahankan G meja, di mana G [i] menunjukkan jumlah salinan yang beredar untuk generasi i. jika p proxy dihapus, hapus pesan dikirim ke kerangka yang berisi nomor generasi proxy, katakanlah, k, dan jumlah salinan yang telah dibuat dari p, katakanlah n. kerangka menyesuaikan G dengan terlebih dahulu decrementing G [k] oleh satu, menunjukkan bahwa referensi milik generasi k-th telah dihapus. Kedua, kenaikan itu G [k +1] dengan n, untuk mendaftarkan bahwa referensi dihapus telah menciptakan saudara n, atau, dengan kata lain, itu, itu telah disalin ke n generasi referensi. (Perhatikan bahwa kerangka pertama mungkin perlu membuat entri G [k +1] sebagai generasi k +1 adalah belum diketahui untuk itu.) Segera setelah setiap entri G [i] adalah nol, diketahui bahwa objek tidak lagi direferensikan sehingga dapat dihapus.
Generasi referensi menghitung masih membutuhkan komunikasi yang handal, tetapi dapat menangani duplikasi referensi tanpa perlu menghubungi kerangka ketika membuat salinan.

4.3.3 Referensi Daftar
Sebuah pendekatan yang berbeda untuk mengelola referensi, adalah untuk membiarkan kerangka melacak proxy yang memiliki referensi untuk itu. Dengan kata lain, alih-alih menghitung referensi, kerangka memelihara daftar eksplisit semua proxy yang menunjukkan hal itu. Seperti daftar referensi tidak berpengaruh ketika proxy yang sudah terdaftar. Demikian juga, menghapus proxy dari daftar di mana hal itu tidak terjadi, juga tidak memiliki efek. Menambahkan atau menghapus proxy kembali operasi sehingga idempoten.
            Operasi idempoten dicirikan oleh kenyataan bahwa mereka dapat diulang tanpa mempengaruhi hasil akhir. Secara khusus, saat membuat referensi baru ke obyek, proses pembuatan berulang kali dapat mengirim pesan ke kerangka objek, meminta untuk menambahkan proxy ke dalam daftar referensi. Ini seperti berhenti mengirim pesan secepat pengiriman telah diakui. Demikian pula, menghapus referensi dapat dilaporkan oleh (mungkin berulang-ulang) mengirimkan pesan meminta kerangka untuk menghapus proxy dari daftar. Kenaikan dan penurunan operasi jelas tidak idempotent.
Akibatnya, daftar referensi tidak memerlukan komunikasi dapat diandalkan, juga tidak perlu bahwa pesan duplikat dapat dideteksi dan dibuang. (Namun, perlu bahwa penyisipan atau penghapusan referensi diakui.) Ini merupakan keuntungan penting selama referensi menghitung.
Daftar referensi yang digunakan di Jawa RMI, berdasarkan metode yang diuraikan dalam (Birrell et al .. 1993). Dalam metode ini, ketika P proses menciptakan referensi remote ke obyek, ia mengirimkan identifikasi terhadap kerangka obyek, yang menambahkan P ke daftar referensi. Ketika pengakuan dikembalikan, proses menciptakan proxy untuk objek dalam ruang alamat sendiri.
Melewati referensi ke proses lain, yaitu, mengirimkan salinan proxy, ditangani sama. Setiap kali P1 proses mengirimkan salinan proxy untuk objek O untuk memproses P2, P2 permintaan pertama kerangka objek untuk menambahkan P2 ke daftar referensi. Ketika itu telah dilakukan, P2 proses menginstal proxy dalam ruang alamat nya.
            Masalah dapat terjadi ketika P1 proses menghilangkan proksi sendiri sebelum P2 telah meminta untuk dimasukkan dalam daftar referensi objek. Dalam hal ini, jika menghapus meminta P1 kirim ke kerangka objek ditangani sebelum permintaan insert dari P2, daftar referensi dapat menjadi kosong sehingga kerangka palsu menyimpulkan dapat membiarkan objek dihapus. Ini kondisi lomba benar-benar analog dengan satu dengan referensi menghitung, seperti ditunjukkan pada Gambar. 4-30 (a), dan dapat diselesaikan dengan cara yang sama.
            Keuntungan penting lainnya dari daftar referensi, adalah bahwa lebih mudah untuk menjaga daftar referensi yang konsisten dalam menghadapi kegagalan proses. Kerangka objek secara teratur memeriksa apakah setiap proses yang terdaftar masih berdiri dan berjalan dengan mengirimkan pesan ping, meminta apakah masih hidup dan memegang referensi ke objek. Proses ini diharapkan untuk segera menanggapi pesan ini. Jika tidak ada respon yang diterima, bahkan mungkin setelah beberapa upaya telah dilakukan, kerangka menghilangkan proses dari daftar.
            Kelemahan utama dari daftar referensi, adalah bahwa hal itu mungkin skala buruk jika kerangka itu perlu untuk melacak banyak referensi. Salah satu solusi untuk menjaga daftar bawah, adalah untuk membiarkan janji kerangka itu akan mendaftarkan referensi hanya untuk waktu yang terbatas. Jika proxy belum memperpanjang pendaftaran tersebut pada kerangka sebelum waktu itu berakhir, referensi hanya dijatuhkan dari daftar. Pendekatan ini juga disebut sebagai penanganan keluar sewa. Kami kembali ke sewa di Chap.6.

4.3.4 Mengidentifikasi Unreachable Entitas
            Seperti juga ditunjukkan pada Gambar. 4-28, koleksi entitas dalam sistem terdistribusi dapat terdiri dari entitas yang menyimpan referensi satu sama lain, namun tidak satupun dari entitas dapat dicapai dari suatu entitas di set akar, dan dengan demikian, mereka juga harus dihapus. Sayangnya, teknik pengumpulan sampah dijelaskan di atas gagal untuk menemukan entitas.
            Apa yang dibutuhkan adalah sebuah metode dimana semua entitas dalam sistem terdistribusi yang ditelusuri. Secara umum, hal ini dilakukan dengan memeriksa mana entitas dapat dicapai dari set akar dan kemudian menghapus semua orang lain. Metode tersebut umumnya disebut menelusuri berbasis pengumpulan sampah. Berbeda dengan referensi didistribusikan dibahas sejauh ini, menelusuri berbasis pengumpulan sampah memiliki masalah skalabilitas yang melekat, karena kebutuhan untuk melacak semua entitas dalam sistem terdistribusi.

Naif Tracing dalam Sistem Terdistribusi
            Untuk memahami didistribusikan menelusuri berbasis pengumpulan sampah, akan sangat membantu untuk mempertimbangkan bagaimana menelusuri dalam kerja sistem uniprocessor. Pendekatan yang paling sederhana untuk uniprocessor tracing, diikuti oleh mark-dan-menyapu kolektor. Kolektor tersebut membedakan dua fase.
            Selama fase mark, entitas yang ditelusuri oleh rantai berikut referensi yang berasal dari entitas di set root. Setiap entitas yang dapat dicapai dengan cara ini ditandai, misalnya dengan merekam entitas dalam tabel terpisah. Fase menyapu terdiri dari mendalam memeriksa memori untuk menemukan entitas yang belum ditandai. Entitas tersebut dianggap sampah yang akan dihapus.
            Cara lain untuk melihat tanda-dan-menyapu kolektor adalah untuk menerapkan warna tiga-menandai untuk entitas. Awalnya, setiap entitas yang perlu diperiksa adalah berwarna white.by akhir fase mark, semua entitas yang telah berwarna hitam yang dicapai dari akar, sementara mereka yang tidak terjangkau masih putih. Warna abu-abu digunakan untuk melacak kemajuan yang sedang dibuat dalam fase mark. Entitas ditandai abu-abu ketika ditemukan dapat dicapai tetapi referensi yang disimpan oleh entitas yang perlu belum diperiksa. Ketika semua referensi yang telah ditandai abu-abu, entitas adalah berwarna hitam.
            Sebuah versi didistribusikan mark-menyapu dan-yang diimplementasikan dalam sistem Emerals, dijelaskan dalam (Jul et al, 1998.). Di Emerald, seorang kolektor sampah lokal dimulai pada rocess masing-masing, dengan semua kolektor berjalan secara paralel. Kolektor warna proxy, kerangka, dan benda-benda yang sebenarnya. Awalnya, semuanya ditandai putih. Ketika sebuah benda yang berada di ruang alamat dari proses P dicapai dari akar yang juga di P, objek tersebut ditandai abu-abu. Ketika menandai suatu objek abu-abu, semua proxy yang terkandung dalam objek tha ditandai abu-abu juga. Menandai sarana abu-abu proxy yang catatan kolektor lokal sampah yang remote object direferensikan masih perlu diperiksa oleh pengumpul sampah terkait lokalnya.
            Ketika proxy ditandai abu-abu, pesan dikirim ke kerangka proxy terkait untuk menandainya abu diri juga. Obyek terkait dengan kerangka ditandai abu-abu secepat kerangka menjadi abu-abu. Dengan rekursi, ini berarti bahwa semua proxy dalam objek yang ditandai abu-abu juga. Pada saat itu, kerangka dan objek yang terkait ditandai hitam, dan pesan yang dikirim kembali ke semua proxy yang terkait. Perhatikan bahwa walaupun dalam pendekatan ini, kerangka yang tahu proxy yang terhubung, hal ini tidak berarti bahwa proxy dianggap dicapai dari kerangka tersebut. Logikanya, sepasang (proxy, kerangka) adalah referensi searah ketat dari proxy untuk kerangka.
            Ketika proxy menerima pesan bahwa kerangka terkait adalah nowblack, proxy ditandai hitam juga. Dengan kata lain, pengumpul sampah setempat sekarang tahu bahwa objek remote direferensikan dengan cara proxy telah dicatat sebagai terjangkau.
            Ketika semua kolektor lokal telah selesai fase jejak mereka, mereka dapat secara terpisah mengumpulkan semua benda putih seperti sampah. Sebuah fase mark berakhir ketika semua benda, kerangka, dan proxy sudah ditandai baik putih atau hitam. Menghapus objek putih juga berarti menghapus kerangka terkait serta semua proxy yang terkandung dalam objek tersebut.
            The drawbacck utama dari algoritma mark-dan-menyapu adalah bahwa ia memerlukan grafik reachability tetap sama selama kedua fase kedua. Dengan kata lain, pelaksanaan program yang proses awalnya diciptakan harus dihentikan sementara dan eksekusi diaktifkan untuk mengumpulkan sampah. Dalam didistribusikan mark-dan-menyapu berarti, ini bahwa semua proses dalam sistem yang pertama perlu disinkronkan, maka masing-masing dari mereka beralih ke mengumpulkan sampah, setelah itu mereka semua bisa melanjutkan pekerjaan asli mereka.
            Skenario ini, juga disebut "stop-the-dunia" sinkronisasi, sering tidak dapat diterima untuk kolektor sampah didistribusikan. Perbaikan dapat dilakukan dengan pengumpul sampah tambahan, yang memungkinkan eksekusi program yang akan disisipkan dengan pengumpulan sampah. Sayangnya, kolektor tersebut tidak skala baik dalam sistem terdistribusi. Karena mereka berjalan bersamaan dengan program yang memodifikasi grafik reachability, benda sering selalu ditandai abu-abu, yang mengarah ke penyebaran tanda abu-abu untuk proses remote. Hasilnya adalah pesan lalu lintas tinggi, kinerja sistem mungkin merendahkan keseluruhan.

Menelusuri di Grup
            Untuk menjelaskan masalah scability melekat banyak tracing berbasis pengumpul sampah, Lang et al. Merancang metode yang proses (yang containthe objek) dalam sebuah sistem terdistribusi besar yang hirarki terorganisir dalam kelompok-kelompok (Lang et al., 1992). Pengumpulan sampah terjadi di dalam kelompok melalui kombinasi mark-menyapu dan-dan referensi menghitung. Mari kita berkonsentrasi pada algoritma dasar untuk mengumpulkan sampah dalam kelompok proses. Grup A hanyalah sebuah kumpulan proses. Satu-satunya alasan mengapa kelompok yang digunakan adalah untuk scability. Ide dasarnya adalah pertama untuk mengumpulkan sampah semua dalam kelompok, termasuk siklus referensi yang terletak seluruhnya di dalam grup. Langkah berikutnya adalah untuk mempertimbangkan kelompok yang lebih besar yang meliputi sejumlah sub kelompok, tetapi yang masing-masing hanya dibersihkan oleh garbage collector.
            Untuk mengakomodasi penelusuran dalam kelompok, diasumsikan bahwa referensi remote lagi diimplementasikan sebagai ("proxy, kerangka) pasang. Untuk setiap objek, hanya ada satu kerangka di ruang alamat di mana objek berada, namun beberapa proxy untuk objek yang dapat berkomunikasi dengan kerangka itu. Kerangka mempertahankan counter referensi seperti yang dijelaskan dalam Sec.4.3.2, yang menghitung jumlah proxy terkait. Sebuah proses dapat memiliki paling banyak satu proxy untuk setiap objek terdistribusi.
            Setelah sekelompok proses telah dibentuk, algoritma dasar untuk mengumpulkan sampah dalam suatu kelompok terdiri dari lima langkah berikut, yang dibahas secara rinci di bawah ini:
1. Awal menandai, di mana kerangka hanya ditandai.
2. Intraprocess propagasi tanda dari kerangka ke proxy.
3. Interprocess propagasi tanda dari proxy untuk kerangka.
4. Stabilisasi dengan pengulangan dari dua langkah sebelumnya.
5. Sampah reklamasi.
Sebelum kita mulai menjelaskan masing-masing langkah dalam beberapa detail, adalah penting untuk memahami apa yang menandai entitas singkatan. Algoritma pada dasarnya berhubungan dengan menandai proxy saja dan kerangka. Penting untuk dicatat bahwa baik proxy atau kerangka yang bisa milik set akar. Sebuah kerangka dapat ditandai tidak lembut atau keras sedangkan proxy dapat ditandai eithe, lembut, atau keras. Ketika kerangka ditandai keras, ini berarti bahwa baik dicapai dari proxy dalam proses di luar kelompok, atau dicapai dari objek akar dalam kelompok. Sebuah kerangka yang ditandai lembut, dianggap dapat dicapai hanya dari proxy dalam kelompok. Penandaan kerangka diperbolehkan untuk mengubah hanya dari lembut ke keras.
            Sebuah proxy yang ditandai keras, dapat dicapai dari suatu objek di set root. Ketika ditandai lembut, proxy dapat dicapai dari suatu kerangka yang telah ditandai lembut serta. Proxy tersebut berpotensi berbaring di siklus yang tidak dapat diraih dari suatu objek di set root. Sebuah proxy yang ditandai tidak ada yang tidak dapat dijangkau dari kerangka, atau obyek di set root. Proxy Hanya yang sudah ditandai tidak dapat diubah keras. Seperti yang akan terlihat, begitu proxy telah ditandai lembut, tetap seperti itu.
            Langkah pertama terdiri dari penandaan hanya kerangka. Sebuah kerangka ditandai baik lembut atau keras, tergantung pada apakah ot dapat dicapai dari proxy luar kelompok. Reachability ini dapat dengan mudah diperiksa dengan memeriksa meja referensi kerangka itu. Nilai counter ini menunjukkan berapa banyak proxy dalam proses-proses lain menyebutnya. Beberapa dari proses ini dalam kelompok, sementara yang lain berada di luar kelompok. Jika ada proxy dalam proses di luar kelompok, kerangka harus ditandai keras. Dengan hanya menghitung berapa banyak proxy yang berhubungan dengan kebohongan kerangka dalam kelompok dan mengurangkan angka tersebut dari meja referensi, dapat diputuskan jika ada proxy juga terkait di luar kelompok. Hal ini mengarah pada algoritma berikut:
1. Untuk setiap proksi dalam kelompok, lakukan dengan decrement counter referensi kerangka terkait, hanya jika kerangka yang juga dalam kelompok.
2. Kerangka dalam kelompok yang kontra referensi kini turun menjadi nol ditandai lembut. Jika tidak, itu dapat dicapai dari proxy luar kelompok, dan ditandai keras.
Ini langkah pertama diilustrasikan pada Gambar. 4-34 (a), di mana semua kecuali satu kerangka telah ditandai lembut. Kerangka-satunya yang ditandai keras, dipandang dicapai dari proxy luar kelompok.
Langkah kedua terdiri dari membiarkan setiap proses menjalankan garbage collector lokal sendiri. Bagaimana kolektor yang bekerja independen dari pengumpulan sampah global. Satu-satunya persyaratan adalah bahwa seorang kolektor sampah lokal menyebarkan tanda dari kerangka ke proxy dalam proses sedang berjalan. Lebih khusus, anggaplah bahwa dalam proses tunggal proxy dicapai dari kerangka. (Perhatikan bahwa proxy dan kerangka milik objek yang berbeda). Hasil propagasi lokal tanda adalah bahwa proxy akan ditandai setidaknya sekeras kerangka. Apalagi jika proxy dapat dicapai dari suatu objek di set akar, maka akan ditandai keras.
Propagasi lokal dalam proses P dapat dilakukan sebagai berikut. Awalnya, semua proxy di P ditandai tidak ada. Para kolektor lokal mulai menelusuri mulai penelusuran dari set yang terdiri dari kerangka yang sebelumnya telah ditandai keras, serta dari benda-benda di set root. Tanda Hard disebarkan ke semua objek (yaitu, objek lokal dan proxy) yang dicapai dari set ini. Sebuah jejak kedua dilakukan dari kerangka yang telah ditandai lembut. Jika proxy yang kini mencapai yang ditandai tidak ada, tandanya berubah menjadi lembut. Jika proxy ditandai keras, tetap ditandai seperti. Akibatnya, setelah propagasi lokal, masing-masing proxy di proses akan ditandai baik tidak ada, lembut, atau keras. Gambar. 4-34 (a).
            Langkah ketiga terdiri dari menyebarkan tanda dari proxy untuk kerangka mereka terkait. Dengan kata lain, tanda yang disebarkan antara proses yang berbeda. Secara khusus, jika proxy telah ditandai keras, pesan harus dikirim ke kerangka yang terkait untuk menandai sulit juga, jika tidak sudah ditandai seperti. Sebuah pesan akan dikirim hanya jika kerangka terletak di dalam kelompok. Tanda lembut tidak harus disebarkan: fase menandai awal sudah ditetapkan bahwa setiap kerangka dalam kelompok ditandai baik lembut atau keras.
            Hasil Langkah keempat dari propagasi global marka keras pada langkah sebelumnya. Sebuah kerangka dalam, katakanlah, P proses sekarang mungkin memiliki tandanya berubah dari lembut ke keras. Perubahan ini berasal dari fakta bahwa kerangka ternyata dicapai dari obyek yang terkandung dalam set akar dari proses remote. Akibatnya, ini tanda keras pertama perlu disebarkan ke proxy lokal di P, dan kemudian, secara global disebarkan kepada proses tetangga. Dengan kata lain, langkah 2 dan 3 harus diulang asalkan tanda dapat baik secara lokal atau global disebarkan. Segera setelah stabilisasi telah tercapai, yaitu, tidak ada perubahan yang lebih berkenaan dengan menandai terjadi proses dalam kelompok, hasil algoritma dengan langkah berikutnya. Dalam contoh kita, efek mengulangi langkah 2 dan 3 mengarah ke final menandai seperti ditunjukkan pada Gambar. 4-34 (c).
            Langkah kelima dan terakhir terdiri dari menghilangkan benda terjangkau, termasuk proxy terjangkau, serta mereka proxy dan tengkorak yang sudah ditandai lembut. Penting untuk dicatat bahwa yang terakhir tidak dapat diraih dari luar kelompok, mereka juga tidak dapat dicapai dari objek dalam satu set root. Dengan kata lain, soft-ditandai proxy dan kerangka hanya mengacu pada satu sama lain, dan dengan demikian harus dihapus.
            Sampah reklamasi dapat dilakukan sebagai efek samping dari propagasi lokal. Alih-alih eksplisit menghapus entitas dalam langkah terakhir, kerangka ditandai lembut diubah untuk merujuk nihil. Akibatnya, dapat direklamasi kemudian ketika pengumpulan sampah lokal dijalankan lagi. Selain itu, jika objek yang terkait dengan kerangka yang sekarang menjadi terjangkau, maka akan direklamasi juga. Jika proxy lokal disebut dengan objek yang juga tidak lagi terjangkau, mereka akan ditandai dan tetap tidak ditandai seperti itu. Oleh karena itu aman untuk membiarkan pengumpul sampah lokal merebut kembali proxy none-ditandai, setelah mengirim pesan ke penurunan kerangka proxy terkait di salah satu proses remote.
            Dengan hirarki mengorganisir ke dalam kelompok, solusi yang lebih scalable untuk pengumpulan sampah terdistribusi dapat dicapai. Ide dasarnya adalah untuk membiarkan tingkat rendah kelompok mengumpulkan sampah, dan meninggalkan analisis referensi antarkelompok kepada kelompok yang lebih tinggi-tingkat berikutnya. Dengan membiarkan rendah tingkat kelompok mengurangi jumlah objek yang perlu ditelusuri, lebih tinggi tingkat kelompok dasarnya beroperasi pada jumlah yang sama sebagai obyek masing-masing jika subkelompok, tetapi yang tersebar di jaringan yang lebih besar. Kami menghilangkan detail, yang dapat ditemukan dalam (Lang et al, 1992.).


Daftar Pustaka

Andrew S. Tanenbaum & Maarten Van Steen. 2002. Distributed Systems Principles And Paradigms. New Jersey 07458: Prentice Hall.
repository.politekniktelkom.ac.id

Tidak ada komentar:

Posting Komentar