د کیج ریموټ فایل لاسرسي سیسټم

د سیسټم هدف

په شبکه کې کمپیوټرونو کې فایلونو ته د لیرې لاسرسي لپاره ملاتړ. سیسټم "په حقیقت کې" د TCP پروتوکول په کارولو سره د راکړې ورکړې (پیغامونو) تبادلې له لارې د ټولو لومړني فایل عملیاتو (جوړول ، حذف کول ، لوستل ، لیکل او نور) ملاتړ کوي.

کاریالونه

د سیسټم فعالیت په لاندې قضیو کې اغیزمن دی:

  • د ګرځنده او ایمبیډ شوي وسیلو لپاره اصلي غوښتنلیکونو کې (سمارټ فونونه ، د بورډ کنټرول سیسټمونه ، او داسې نور) چې په مخابراتو کې د احتمالي لنډمهاله خنډونو سره (د آفلاین کیدو سره) په لرې پرتو سرورونو کې فایلونو ته ګړندي لاسرسي ته اړتیا لري؛
  • په بار شوي DBMSs کې، که د پوښتنو پروسس په ځینو سرورونو کې ترسره کیږي، او د معلوماتو ذخیره په نورو کې ترسره کیږي؛
  • د معلوماتو راټولولو او پروسس کولو لپاره توزیع شوي کارپوریټ شبکې کې، د تیز رفتار ډیټا تبادلې، بې ځایه کیدو او اعتبار ته اړتیا لري؛
  • په پیچلي سیسټمونو کې د مایکرو سرویس جوړښت سره، چیرې چې د ماډلونو ترمنځ د معلوماتو تبادله کې ځنډ خورا مهم دی.

جوړښت

د کیج سیسټم (د وینډوز په پایتون 3.7 کې د بیټا نسخه پلي کول شتون لري) دوه اصلي برخې لري:

  1. کیجسرور - د فایل سرور برنامه (د دندو یوه بسته) چې د شبکې په کمپیوټرونو کې چلیږي چې فایلونه یې لرې لاسرسي ته اړتیا لري؛
  2. класс قفس د مراجعینو سافټویر لپاره د میتودونو کتابتون سره، د سرورونو سره د متقابل عمل کوډ کول ساده کول.

د پیرودونکي اړخ کې د سیسټم کارول

د کیج ټولګي میتودونه د معمول، "معمول" فایل سیسټم عملیات بدلوي: جوړول، پرانیستل، تړل، ړنګول فایلونه، او همدارنګه په بائنری شکل کې د معلوماتو لوستل / لیکل (د معلوماتو موقعیت او اندازه په ګوته کوي). په تصور کې، دا طریقې د C ژبې د فایل فعالیتونو ته نږدې دي، چیرته چې د فایلونو پرانیستل / بندول د ان پټ/آؤټ پوټ "چینلونو" کې ترسره کیږي.

په بل عبارت، پروګرامر د "فایل" شیانو میتودونو سره کار نه کوي (ټولګي _io په Python کې)، مګر د کیج ټولګي میتودونو سره.

کله چې د کیج څیز مثال رامینځته شي ، دا د سرور (یا څو سرورونو) سره لومړنۍ اړیکه رامینځته کوي ، د پیرودونکي ID لخوا اختیار شوی ، او د ټولو فایل عملیاتو لپاره د وقف شوي پورټ شمیرې سره تایید ترلاسه کوي. کله چې د کیج اعتراض حذف شي، دا سرور ته لارښوونه کوي چې د اړیکو مخه ونیسي او فایلونه بند کړي. د مخابراتو ختمول هم پخپله د سرورونو لخوا پیل کیدی شي.

سیسټم د RAM کیچ (بفر) کې د مراجعینو برنامو د مکرر کارول شوي فایل ټوټې بفر کولو سره د لوستلو / لیکلو فعالیت ښه کوي.
د پیرودونکي سافټویر کولی شي د مختلف ترتیباتو سره د کیج هر ډول توکي وکاروي (د بفر حافظې اندازه ، د بلاک اندازه کله چې له سرور سره تبادله کیږي ، او داسې نور).

یو واحد کیج اعتراض کولی شي په ډیری سرورونو کې د ډیری فایلونو سره اړیکه ونیسي. د مخابراتو پیرامیټونه (IP پته یا DNS سرور، د اختیار لپاره اصلي بندر، لاره او د فایل نوم) مشخص شوي کله چې د اعتراض رامینځته کول.

څرنګه چې هر کیج اعتراض کولی شي په ورته وخت کې د ډیری فایلونو سره کار وکړي، د ګډ حافظې ځای د بفرینګ لپاره کارول کیږي. د کیچ اندازه - د پاڼو شمیر او د دوی اندازه، په متحرک ډول ټاکل کیږي کله چې د کیج اعتراض رامینځته کوي. د مثال په توګه، د 1 GB زیرمه 1000 پاڼې د 1 MB هر یو، یا 10 زره پاڼې د 100 KB هر یو، یا 1 ملیون پاڼې د 1 KB هر یو. د پاڼو اندازه او شمیر غوره کول د هرې غوښتنلیک قضیې لپاره ځانګړی دنده ده.

تاسو کولی شئ په ورته وخت کې ډیری کیج توکي وکاروئ ترڅو د مختلف بفر حافظې تنظیمات تعریف کړئ پدې پورې اړه لري چې معلوماتو ته په مختلف فایلونو کې څنګه لاسرسی کیږي. د بنسټیز په توګه، ترټولو ساده بفرینګ الګوریتم کارول کیږي: وروسته له دې چې ټاکل شوې حافظه پای ته ورسیږي، نوي پاڼې د لږ تر لږه لاسرسي سره د تقاعد د اصولو سره سم زاړه پاڼې بې ځایه کوي. بفرینګ په ځانګړي ډول د غیر مساوي په حالت کې مؤثر دی (په احصایوي معنی کې) شریک لاسرسی ، لومړی ، مختلف فایلونو ته ، او دوهم ، د هرې فایل ټوټې ته.

د کیج طبقه نه یوازې د I/O ملاتړ کوي د ډیټا پتې (د سرې موقعیت او اوږدوالی په ګوته کوي ، د فایل سیسټم عملیات "بدلول") ، بلکه په ټیټه ، "فزیکي" کچه کې - په بفر حافظه کې د مخ شمیرې لخوا.

اصلي فعالیت د کیج شیانو لپاره ملاتړ شوی "هیبرنیشن" ("خوب") - دوی کولی شي "نړیدل" (د مثال په توګه ، د سرورونو سره د پیوستون له لاسه ورکولو په حالت کې ، یا کله چې غوښتنلیک ودرول شي ، او داسې نور) د پیرودونکي اړخ کې ځایی ډمپ فایل ته او په چټکۍ سره بیرته له سره رغول کیدی شي. دا فایل (وروسته له دې چې اړیکه بیا پیل شي، کله چې تاسو غوښتنلیک بیا پیل کړئ). دا د دې امکان رامینځته کوي چې د پام وړ ترافیک کم کړي کله چې د لنډمهاله "آفلاین" کیدو وروسته د پیرودونکي برنامه فعاله کړئ ، ځکه چې په مکرر ډول کارول شوي فایل ټوټې به دمخه په کیچ کې وي.

کیج د کوډ شاوخوا 3600 لینونه دي.

د سرور جوړولو اصول

د کیجسرور فایل سرورونه د خپل سري شمیر بندرونو سره پرمخ وړل کیدی شي ، چې یو یې ("اصلي") یوازې د ټولو پیرودونکو اختیار لپاره کارول کیږي ، پاتې نور د ډیټا تبادلې لپاره کارول کیږي. د کیج سرور پروګرام یوازې پایتون ته اړتیا لري. په موازي توګه، کمپیوټر د فایل سرور سره کولی شي کوم بل کار ترسره کړي.

سرور په پیل کې د دوه اصلي پروسو ټولګه په توګه پیل کیږي:

  1. "اړیکې" - د پیرودونکو سره د اړیکو رامینځته کولو عملیاتو ترسره کولو او د سرور په نوښت یې پای ته رسولو پروسه؛
  2. "عملیات" - د فایلونو سره کار کولو لپاره د پیرودونکو دندو (عملیات) ترسره کولو پروسه ، او همدارنګه د پیرودونکي امرونو پراساس د مخابراتو غونډو بندولو لپاره.

دواړه پروسې همغږي شوي ندي او د څو پروسس قطارونو ، پراکسي څیزونو ، لاکونو او ساکټونو پراساس د پیغامونو ترلاسه کولو او لیږلو نه ختمیدونکي لوپونو په توګه تنظیم شوي.
د اتصال پروسه د هر پیرودونکي لپاره د معلوماتو ترلاسه کولو او لیږدولو لپاره بندر تخصیص کوي. د بندرونو شمیر ټاکل کیږي کله چې سرور پیل شي. د بندرونو او پیرودونکو ترمنځ نقشه د انټرپروسیس شریک پراکسي حافظه کې زیرمه شوې.

د عملیاتو پروسه د فایل سرچینو شریکولو ملاتړ کوي ترڅو ډیری مختلف پیرودونکي شریک کړي (نیم موازي، ځکه چې لاسرسی د لاکونو لخوا کنټرول کیږي) د یوې فایل څخه ډیټا ولولئ که چیرې دا اجازه ورکړل شوې وي کله چې دا په پیل کې د "لومړي" پیرودونکي لخوا پرانیستل شوې وه.

په سرور کې د فایلونو رامینځته کولو / ړنګولو / خلاص / بندولو لپاره د امرونو پروسس کول پخپله د "عملیات" پروسې کې په کلکه په ترتیب سره د سرور OS فایل سب سیسټم په کارولو سره ترسره کیږي.

په عمومي ډول د لوستلو / لیکلو ګړندی کولو لپاره ، دا عملیات د "عملیات" پروسې لخوا رامینځته شوي تارونو کې ترسره کیږي. د تارونو شمیر معمولا د خلاص فایلونو شمیر سره مساوي وي. د مراجعینو څخه د لوستلو / لیکلو دندې عمومي کتار ته سپارل کیږي او لومړی وړیا موضوع د خپل سر څخه دنده اخلي. ځانګړی منطق تاسو ته اجازه درکوي د سرور په رام کې د ډیټا بیا لیکلو عملیات له مینځه ویسي.

د عملیاتو پروسه د پیرودونکي فعالیت څارنه کوي او یا د دوی په امرونو یا کله چې د غیر فعالیت وخت پای ته رسیدلی وي خدمت کول ودروي.

د اعتبار ډاډ ترلاسه کولو لپاره، کیجسرور د ټولو معاملو لاګ ساتي. یو عمومي لاګ د پیرودونکو څخه د پیغامونو کاپي لري چې د فایلونو رامینځته کولو / خلاصولو / نوم بدلولو / حذف کولو دندې لري. د هرې کاري فایل لپاره یو جلا لاګ رامینځته شوی ، په کوم کې چې پدې کاري فایل کې د ډیټا لوستلو او لیکلو لپاره د دندو سره د پیغامونو کاپي ثبت کیږي ، په بیله بیا د لیکل شوي (نوي) ډیټا او د ډیټا سرې چې د لیکلو (لیکلو) پرمهال ویجاړ شوي. نوي معلومات د زړو څخه "پورته").

دا لاګ د دې وړتیا چمتو کوي چې دواړه بیک اپ ته نوي بدلونونه بیرته راولي او اوسني مینځپانګې په تیرو وختونو کې بیرته راولي.

کیجسرور د کوډ شاوخوا 3100 لینونه دي.

د کیج ریموټ فایل لاسرسي سیسټم

د کیجسرور فایل سرور برنامه پیل کول

کله چې پیل کوئ، په ډیالوګ کې تاسو باید تعریف کړئ:
- د اجازې لپاره اصلي بندر؛
- د مجاز پیرودونکو سره د راکړې ورکړې د تبادلې لپاره د بندرونو شمیر (له 1 یا ډیرو څخه، د شمیرو حوض د اصلي بندر شمیرې ته نږدې له یو څخه پیل کیږي).

د کیج ټولګي کارول

ټولګي پنجرهقفس( cage_name="", pagesize=0, numpages=0, maxstrlen=0, server_ip={}, wait=0, awake=False, cache_file="" )

د دې ټولګي څخه شیان جوړ شوي چې د فایل سرورونو سره اړیکه لري او د بفر حافظه لري.

پارامترونو

  • cage_name(س) - د څیز مشروط نوم، کوم چې د سرور اړخ کې د پیرودونکو پیژندلو لپاره کارول کیږي
  • د پاڼې اندازه(اینټ) - د بفر حافظې د یوې پاڼې اندازه (بایټ کې)
  • شمیرې(اینټ) - د بفر حافظې مخونو شمیر
  • maxstrlen(اینټ) - د لیکلو او لوستلو عملیاتو کې د بایټ تار اعظمي اوږدوالی
  • server_ip(ډیک) - د کارول شوي سرورونو ادرسونو سره قاموس، چیرې چې کیلي د سرور مشروط نوم دی (د غوښتنلیک دننه د سرور ID)، او ارزښت د پتې سره یو تار دی: "IP پته: پورټ" یا "DNS: بندر" (د نومونو او اصلي پتو پرتله کول لنډمهاله دي، دا کیدی شي بدلون ومومي)
  • انتظار(اینټ) - د سرور څخه د ځواب لپاره د انتظار وخت کله چې بندرونه ترلاسه کوي (په ثانیو کې)
  • ویښ(بولین) - بیرغ چې څرنګوالی څنګه رامینځته شوی (غلط - که یو نوی څیز جوړ شي، ریښتیني د - که یو څیز د مخکینۍ "نړیدلي" څخه رامینځته شوی وي - د "هایبرنیشن" عملیاتو په کارولو سره ، په ډیفالټ غلط)
  • cache_file(س) - د هایبرنیشن لپاره د فایل نوم

میتودونه

پنجره.file_create( سرور، لاره ) - یوه نوې فایل جوړ کړئ

پنجره.د فایل_نوم بدلول( سرور، لاره، نوی_نوم ) - د فایل نوم بدل کړئ

پنجره.file_remove( سرور، لاره) - یوه فایل حذف کړئ

پنجره.دابرخه( سرور، لاره، موډ ) - خلاص فایل

راګرځي fchannel د چینل شمیره. پیرامیټر په وړاندې د - دا د فایل خلاصولو حالت دی: "wm" - ځانګړی (لوستل/لیکل)، "rs" - یوازې د لوستلو لپاره، او یوازې د نورو مراجعینو لخوا د لوستلو لپاره شریک شوی، "ws" - لوستل / لیکل، او یوازې د لوستلو لپاره شریک شوي نور مشتریان.

پنجره.نژدې (fchannel) - فایل بند کړئ

پنجره.ولیکي (fchannel, start, data ) - فایل ته د بایټ تار ولیکئ

پنجره.پاتې برخه (fchannel، پیل، len_data ) - د فایل څخه د بایټ تار ولولئ

پنجره.put_pages ( fchannel ) - د بفر څخه سرور ته د ځانګړي چینل ټولې پاڼې چې تعدیل شوي "پوش" کوي. دا په الګوریتم کې په دې ټکو کې کارول کیږي کله چې تاسو اړتیا لرئ ډاډ ترلاسه کړئ چې په چینل کې ټول عملیات په فزیکي ډول په سرور کې په فایل کې خوندي شوي.

پنجره.push_all () - د بفر څخه سرور ته د ټولو چینلونو ټولې پاڼې د کیج ټولګي د بیلګې په توګه چې تعدیل شوي "پوش" کوي. کارول کیږي کله چې تاسو اړتیا لرئ ډاډ ترلاسه کړئ چې په ټولو چینلونو کې ټول عملیات په سرور کې خوندي شوي.

سرچینه: www.habr.com

Add a comment