Jarayonlar



Yüklə 1,24 Mb.
səhifə31/38
tarix16.05.2023
ölçüsü1,24 Mb.
#114382
1   ...   27   28   29   30   31   32   33   34   ...   38
Operatsion tizm Chapter 3 Jarayonlar

Rasm 3.28 Sana mijoz.

Aloqa foydalanish rozetkalar — garchi umumiy va samarali — hisoblanadi taqsimlangan jarayonlar o'rtasidagi aloqaning past darajadagi shakli hisoblangan . Buning sabablaridan biri shundaki, rozetkalar faqat tuzilmagan bayt oqimini almashish imkonini beradi aloqa tarmoqlari. Bu mas'uliyatdir mijoz yoki server ilova ma'lumotlarga tuzilma yuklash. Keyingi bo'limda biz yuqori darajadagi aloqa usulini ko'rib chiqamiz: masofaviy protsedura chaqiruvlari ( RPC ).


      1. Masofadan Jarayon Qo'ng'iroqlar

Bir ning the eng umumiy shakllari ning masofaviy xizmat hisoblanadi the RPC paradigmasi, o'rtasida foydalanish uchun protsedura-chaqiruv mexanizmini mavhum qilish usuli sifatida ishlab chiqilgan tizimlari bilan tarmoq ulanishlar. Bu hisoblanadi o'xshash ichida ko'p hurmat qiladi uchun IPC mexanizmi _ tasvirlangan ichida Bo'lim 3.4, va bu hisoblanadi odatda qurilgan yoqilgan yuqori ning shunday tizim. Bu yerga, ammo, chunki biz bor muomala bilan a muhit ichida qaysi jarayonlar bor ijro etuvchi yoqilgan alohida tizimlari, biz kerak foydalanish a masofaviy xizmat ko'rsatish uchun xabarga asoslangan aloqa sxemasi.

IPC xabarlaridan farqli o'laroq , RPC aloqasida almashiladigan xabarlar yaxshi tuzilgan va shuning uchun endi shunchaki ma'lumotlar paketlari emas. Har bir xabar hisoblanadi murojaat qilgan uchun a RPC demoni tinglash uchun a port yoqilgan the masofaviy tizim, va har biri o'z ichiga oladi a identifikator belgilash the funktsiyasi uchun bajarmoq va parametrlari _ uchun o'tish uchun bu funktsiyasi. The funktsiyasi hisoblanadi keyin bajarilgan kabi so'raladi va har qanday chiqish alohida xabarda so'rovchiga qaytariladi.


A port ichida bu kontekst hisoblanadi oddiygina a raqam kiritilgan da the boshlash ning a xabarlar paketi. Tizim odatda bitta tarmoq manziliga ega bo'lsa, u qo'llab-quvvatlaydigan ko'plab tarmoq xizmatlarini farqlash uchun ushbu manzil ichida ko'plab portlarga ega bo'lishi mumkin. Agar masofaviy jarayonga xizmat kerak bo'lsa, u tegishli portga xabar yuboradi. Misol uchun, agar tizim boshqa tizimlarga ruxsat berishni xohlasa o'zining joriy foydalanuvchilarini ro'yxatga olish imkoniyatiga ega bo'lsa, u shunday RPCni qo'llab- quvvatlaydigan demonga ega bo'ladi uchun a port - demoq, port 3027. Har qanday masofaviy tizimi mumkin olish the kerakli ma'lumotlar (bu bu, the ro'yxati ning joriy foydalanuvchilar) tomonidan yuborish a RPC xabari uchun serverdagi 3027 port . Ma'lumotlar javob xabarida olinadi.
RPC ning semantikasi mijozga masofaviy xostda protsedurani chaqirish imkonini beradi chaqirar edi protsedura mahalliy. RPC tizimi _ yashiradi buning tafsilotlari ruxsat berish aloqa uchun olish joy tomonidan ta'minlash a stub yoqilgan the mijoz tomoni. Odatda, har bir alohida masofaviy protsedura uchun alohida stub mavjud. Mijoz masofaviy protsedurani chaqirganda, RPC tizimi tegishli stubni chaqiradi va unga masofaviy protseduraga taqdim etilgan parametrlarni uzatadi. Ushbu stub serverdagi portni aniqlaydi va parametrlarni o'zgartiradi . Keyin stub uzatadi a xabar uchun the server foydalanish xabar o'tish. A o'xshash stub yoqilgan server tomoni bu xabarni oladi va serverdagi protsedurani chaqiradi. Agar kerak bo'lsa, qaytish qiymatlar bor o'tdi orqaga uchun the mijoz foydalanish the bir xil texnikasi. Yoniq Windows tizimlari, stub kod hisoblanadi tuzilgan dan a spetsifikatsiya yozilgan ichida Microsoft interfeysi ta'rifi Mijoz va server dasturlari o'rtasidagi interfeyslarni aniqlash uchun foydalaniladigan til ( MIDL ).
Parametrlarni marshallash mijoz va server mashinalarida ma'lumotlarni taqdim etishdagi farqlar bilan bog'liq muammolarni hal qiladi. 32-bitli butun sonlarning tasvirini ko'rib chiqaylik. Ba'zi tizimlar ( big-endian deb nomlanuvchi ) birinchi navbatda eng muhim baytni saqlaydi, boshqa tizimlar ( lick-endian deb nomlanuvchi ) esa eng kam baytni saqlaydi. ahamiyatli bayt birinchi. Yo'q buyurtma hisoblanadi " yaxshiroq " boshiga se; aksincha, the tanlash ichida ixtiyoriydir a kompyuter arxitektura. Kimga hal qilish farqlar kabi bu, ko'pgina RPC tizimlari ma'lumotlarning mashinadan mustaqil ko'rinishini belgilaydi. Bunday vakilliklardan biri tashqi ma'lumotlar namoyishi ( XDR ) sifatida tanilgan . Mijoz tomonida, parametr marshallash o‘z ichiga oladi konvertatsiya qilish the mashinaga bog'liq ma'lumotlarga kiradi XDR oldin ular bor yuborilgan uchun the server. Yoniq the server yon, the XDR ma'lumotlar ajralmasdir va aylantirildi uchun the mashinaga bog'liq vakillik uchun server .
Yana bir muhim masala qo'ng'iroqning semantikasini o'z ichiga oladi. Mahalliy protsedura chaqiruvlari faqat o'ta og'ir holatlarda muvaffaqiyatsiz bo'lsa, RPC lar umumiy tarmoq xatolari natijasida muvaffaqiyatsiz bo'lishi yoki takrorlanishi va bir necha marta bajarilishi mumkin. Bir yo'l uchun manzil bu muammo hisoblanadi uchun the faoliyat ko'rsatmoqda tizimi uchun xabarlar ko'pi bilan bir marta emas, balki aynan bir marta harakatlanishini ta'minlang . Ko'pgina mahalliy protseduralar qo'ng'iroqlar bor the " aniq bir marta ” funksionallik, lekin bu hisoblanadi Ko'proq qiyin amalga oshirish.
Birinchidan, ko'rib chiqing “ da eng bir marta. ” Bu semantik mumkin bo'l amalga oshirildi tomonidan har bir xabarga vaqt tamg'asi qo'shish . Server barcha vaqt belgilarining tarixini saqlashi kerak ning xabarlar bu ega allaqachon qayta ishlangan yoki a tarix katta yetarli

takroriy xabarlar aniqlanishini ta'minlash uchun. Tarixda allaqachon vaqt tamg'asi bo'lgan kiruvchi xabarlar e'tiborga olinmaydi. Keyin mijoz bir yoki bir necha marta xabar yuborishi mumkin va u faqat bir marta bajarilishiga ishonch hosil qilishi mumkin.


“ Aniq bir marta ” uchun server hech qachon qabul qilmaydigan xavfni olib tashlashimiz kerak the iltimos. Kimga bajarish bu, the server kerak amalga oshirish the “ da ko'p marta " yuqorida tavsiflangan protokol, lekin mijozga RPC qo'ng'irog'i qabul qilinganligi va bajarilganligini tan olishi kerak. Ushbu ACK xabarlari hamma joyda keng tarqalgan tarmoqqa ulanish. The mijoz kerak qayta yuborish har biri RPC chaqiruvi vaqti-vaqti bilan u qo'ng'iroq uchun ACKni qabul qilmaguncha .
Hali boshqa muhim nashr xavotirlar the aloqa orasida a server va a mijoz. Bilan standart tartib qo'ng'iroqlar, biroz shakl ning bog'lash oladi davomida joylashtiring havola, yuk, yoki ijro vaqt (Bob 9) shunday bu a tartib qo'ng'iroqlar nom protsedura chaqiruvining xotira manzili bilan almashtiriladi. RPC sxemasi talab qiladi a o'xshash bog'lash ning the mijoz va the server port, lekin Qanaqasiga qiladi a mijoz serverdagi port raqamlarini biladimi? Hech bir tizim boshqasi haqida to'liq ma'lumotga ega emas, chunki ular xotirani baham ko'rmaydilar.
Ikki yondashuvlar bor umumiy. Birinchidan, the bog'lash ma `lumot mumkin bo'l oldindan belgilangan, ichida the shakl ning belgilangan port manzillar. Da kompilyatsiya qilish vaqt, a RPC chaqiruvi bor belgilangan port raqam bog'langan bilan bu. Bir marta a dastur hisoblanadi tuzilgan, the server qila olmaydi o'zgartirish the port raqam ning the so'ragan xizmat. Ikkinchi, bog'lash mumkin bajarilsin dinamik ravishda tomonidan a uchrashuv mexanizmi. Odatda, a faoliyat ko'rsatmoqda tizimi taqdim etadi a uchrashuv (shuningdek chaqirdi a sotuvchi ) demon ona belgilangan RPC port. Mijoz keyin yuboradi a xabar o'z ichiga olgan the nomi ning the RPC uchun the amalga oshirishi kerak bo'lgan RPC port manzilini so'ragan uchrashuv demoni. Port raqami hisoblanadi qaytib keldi, va the RPC qo'ng'iroqlari mumkin bo'l yuborilgan uchun bu port qadar the jarayon tugaydi (yoki the server halokatlar). Bu usuli talab qiladi the qo'shimcha tepalik ning _ boshlang'ich iltimos lekin hisoblanadi Ko'proq moslashuvchan dan the birinchi yondashuv. Rasm 3.29 o'zaro ta'sir namunasini ko'rsatadi .
The RPC sxema hisoblanadi foydali ichida amalga oshirish a tarqatilgan fayl tizimi (bob 19). Bunday a tizimi mumkin bo'l amalga oshirildi kabi a o'rnatish ning RPC demonlar va mijozlar. The xabarlar bor murojaat qilgan uchun the tarqatilgan fayl tizimi port yoqilgan a server qaysi ustiga a fayl operatsiya hisoblanadi uchun olish joy. The xabar o'z ichiga oladi the disk bajariladigan operatsiya. Diskdagi operatsiya o'qish() , yozish() , nomini o'zgartirish() , o'chirish() yoki bo'lishi mumkin status() , mos keladigan uchun the odatiy fayl bilan bog'liq tizim qo'ng'iroqlar. Qaytish xabari ushbu qo'ng'iroq natijasida amalga oshiriladigan har qanday ma'lumotlarni o'z ichiga oladi tomonidan the DFS demon yoqilgan nomidan ning the mijoz. Uchun misol, a xabar butun faylni mijozga o'tkazish so'rovini o'z ichiga olishi yoki oddiy blok bilan cheklanishi mumkin iltimos. In the ikkinchisi hol, bir nechta so'rovlar mumkin bo'l kerak agar a butun fayl uzatilishi kerak.

        1. Android RPC

Garchi RPC s bor odatda bog'langan bilan mijoz-server hisoblash ichida a taqsimlangan tizim, ular bir xil tizimda ishlaydigan jarayonlar o'rtasida IPC shakli sifatida ham foydalanish mumkin. Android operatsion tizimi IPC ning boy to'plamiga ega mexanizmlar o'z ichiga olgan ichida uning bog'lovchi ramka, shu jumladan RPC s bu bir jarayonga boshqa jarayondan xizmatlar so‘rashga ruxsat berish.
Android belgilaydi a ilova komponent kabi a Asosiy bino blok ta'minlaydi qulaylik uchun a Android ariza, va a ilova mumkin aralashtirmoq bir nechta dastur komponentlar uchun ta'minlash funksionallik uchun a ilova. Bir shunday ariza-


client messages server





Rasm 3.29 Ijro ning a masofaviy tartib qo'ng'iroq qiling (RPC).

tion komponenti bu xizmat boʻlib , u foydalanuvchi interfeysi yoʻq, lekin uning oʻrniga serverda ishlaydi fon esa ijro etuvchi uzoq muddatli operatsiyalar yoki amalga oshirish uchun ishlash masofaviy jarayonlar. Misollar ning xizmatlar o'z ichiga oladi o'ynamoqda musiqa ichida the boshqa jarayon nomidan tarmoq ulanishi orqali ma'lumotlarni qayta tiklash va olish va shu bilan boshqa jarayonning ma'lumotlarning bloklanishiga yo'l qo'ymaslik. yuklab olingan. Qachon a mijoz ilova chaqiradi the bindService() Xizmat usuli, bu xizmat “ bog'langan ” va xabar uzatish yoki RPC yordamida mijoz-server aloqasini ta'minlash uchun mavjud .


A Bog'langan xizmat Android sinf xizmatini kengaytirishi va mijoz bindService() ga qo'ng'iroq qilganda chaqiriladigan onBind() usulini amalga oshirishi kerak . Xabar uzatilganda, onBind() usuli mijozdan xizmatga xabarlarni yuborish uchun ishlatiladigan Messenger xizmatini qaytaradi . The Messenger xizmat hisoblanadi faqat Bir tomonli yo'l; agar the xizmat kerak yuborish a mijozga javob berish uchun mijoz xizmatga yuborilgan Xabar ob'ektining javob berish maydonida joylashgan Messenger xizmatini ham taqdim etishi kerak. Keyin xizmat mijozga xabarlarni yuborishi mumkin.
RPC ni ta'minlash uchun onBind() usuli mijozlar bilan o'zaro aloqada bo'lish uchun uzoq ob'ektdagi usullarni aks ettiruvchi interfeysni qaytarishi kerak.

    1. Xulosa 153

xizmat. Ushbu interfeys oddiy Java sintaksisida yozilgan va Android interfeysidan foydalanadi Ta'rif Til — AIDL - uchun yaratmoq stub fayllar, qaysi xizmat qilish kabi masofaviy xizmatlarga mijoz interfeysi.


Bu erda biz talab qilinadigan jarayonni qisqacha bayon qilamiz ta'minlash uchun umumiy masofaviy xizmat nomli remoteMethod() yordamida AIDL va the bog'lovchi xizmat. The masofaviy xizmat uchun interfeys quyidagicha ko'rinadi:
/* RemoteService.aidl */ interfeysi RemoteService

Yüklə 1,24 Mb.

Dostları ilə paylaş:
1   ...   27   28   29   30   31   32   33   34   ...   38




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin