فی موو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

فی موو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

تحقیق درباره بررسی عملکرد الگوریتم بهینه سازی توده ذرات (PSO )

اختصاصی از فی موو تحقیق درباره بررسی عملکرد الگوریتم بهینه سازی توده ذرات (PSO ) دانلود با لینک مستقیم و پر سرعت .

تحقیق درباره بررسی عملکرد الگوریتم بهینه سازی توده ذرات (PSO )


تحقیق درباره بررسی عملکرد الگوریتم بهینه سازی توده ذرات (PSO )

فرمت فایل:word(قابل ویرایش)،تعداد صفحات:11   چکیده :الگوریتم [1]PSO یک الگوریتم جستجوی اجتماعی است که از روی رفتار اجتماعی دسته‌های پرندگان مدل شده است. در ابتدا این الگوریتم به منظور کشف الگوهای حاکم بر پرواز همزمان پرندگان و تغییر ناگهانی مسیر آنها و تغییر شکل بهینه‌ی دسته به کار گرفته شد . در PSO، ذرات[2] در فضای جستجو جاری می‌شوند. تغییر مکان  ذرات در فضای جستجو تحت تأثیر تجربه و دانش خودشان و همسایگانشان است. بنابراین موقعیت دیگر توده[3] ذرات روی چگونگی جستجوی یک ذره اثر می‌گذارد . نتیجه‌ی مدل‌سازی این رفتار اجتماعی فرایند جستجویی است که ذرات به سمت نواحی موفق میل می‌کنند. ذرات از یکدیگر می‌آموزند و بر مبنای دانش بدست آمده به سمت بهترین همسایگان خود می‌روند اساس کار PSO بر این اصل استوار است که در هر لحظه هر ذره مکان خود را در فضای جستجو با توجه به بهترین مکانی که تاکنون در آن قرار گرفته است و بهترین مکانی که در کل همسایگی‌اش وجود دارد، تنظیم می‌کند.


[1] -Particle Swarm Optimization

[2] -Particle

[3] -Swarm


دانلود با لینک مستقیم


تحقیق درباره بررسی عملکرد الگوریتم بهینه سازی توده ذرات (PSO )

پایان نامه کار شناسی با عنوان رنگ آمیزی گراف با الگوریتم ژنتیک

اختصاصی از فی موو پایان نامه کار شناسی با عنوان رنگ آمیزی گراف با الگوریتم ژنتیک دانلود با لینک مستقیم و پر سرعت .

پایان نامه کار شناسی با عنوان رنگ آمیزی گراف با الگوریتم ژنتیک


 پایان نامه کار شناسی با عنوان رنگ آمیزی گراف با الگوریتم ژنتیک

مساله بهینه سازی رنگ آمیزی گراف تعیین حداقل تعداد رنگ های مورد نیاز برای رنگ آمیزی گرافی معین است به گونه ای که هیچ راس مجاوری هم رنگ نباشد و این عدد مورد تظر را عدد

کروماتیک گراف میگویم مساله تصمیم گیری رنگ آمیزی گراف آن است که برای یک عدد صحیح mداده شده تعیین کنیم که آیا رنگ آمیزی وجود دارد که حد اکثر از این m رنگ استفاده کرده و هیچ دو راس مجاوری هم رنگ نباشد تا امروز برای حالت های تصمیم گیری و بهینه سازی لگوریتم های زیادی مانند روش عقبگرد شمارش فضای حالت و ... ارائه شده است که از مرتبه چند جمله ای پیدا نشده است .در اینجا سعی شده با استفاده از الگوریتم ژنتیک راه حل های بهینه ای را برای این مساله ارائه دهیم


دانلود با لینک مستقیم


پایان نامه کار شناسی با عنوان رنگ آمیزی گراف با الگوریتم ژنتیک

دانلود مقاله کارایی الگوریتم مسیریابی شکسته شده برای شبکه های چندبخشی سه طبقه

اختصاصی از فی موو دانلود مقاله کارایی الگوریتم مسیریابی شکسته شده برای شبکه های چندبخشی سه طبقه دانلود با لینک مستقیم و پر سرعت .

 

 

چکیده:
این مقاله شبکه های سویچنگ سه طبقه clos را از نظر احتمال bloking برای ترافیک تصادفی در ارتباطات چند بخشی بررسی می کند حتی چنانچه سویچ های ورودی توانایی چند بخشی را نداشته باشند و نیاز داشته باشند به تعداد زیاد وغیرمجازی از سویچهای میانی برای فراهم کردن این مسیرهایی که پلاک نشوند مطابق درخواستها مدل احتمالی این دید را به ما میدهد که احتمال پلاک شدن در آن بسیار کاهش یافته و تقریبا به صفر می رسد در ضمن اینکه تعداد سویچهای میانی بسیار کمتر از تعداد تئوریک آن است.
در این مقاله یک الگوریتم مسیریابی شکسته شده را فعال پلاک شدن در آن معدنی شده است برای اینکه قابلیت مسیریابی با fanout بالا را برآورده کند. ما همچنین مدل تحلیلی را بوسیله شبه سازی کردن شبکه بر روی
فهرست اصطلاحات: چند بخشی، ارزیابی عملکرد، مدل احتمالی، شبکه های سویچینگ

 


معدنی:
شبکه های clos بخاطر انعطاف پذیری وساده بود نشان بطور گسترده در شبکه های تلفن، ارتباطات Data و سیستمهای محاسبه ای موازی بکار برده می شوند. کارایی خیلی از برنامه های کاربردی بوسیله یک عمل چند بخشی موثر که پیغامی را به چند دریافت کننده بصورت همزمان می فرستد بهتر می شود. به عنوان مثال در سیستمهای چند پردازنده ای یک متغیر همزمان سازی قبل از آنکه پرازنده ا بکارشان ادامه دهند باید فرستاده شود. همانطوریکه برنامه های کاربردی به خدمات چند بخشی موثر که توسعه پیدا کرده نیاز دارند در طی چند سال اخیر حتی در شبکه های با دامنه عمومی طراحی سیستمهای سویچینگ که بطور موثر بادرخواستهای چندبخشی سروکار دارد نیز اهمیت پیدا کرده است.
تلاشهای زیادی برای سازگار کردن شبکه های clos (که در ابتدا برای ارتباطات نقطه به نقطه توسعه پیدا کرده بودند) برای آنکه با ارتباطات چند بخشی وفق پیدا کنند انجام شده است.شبکه clos چند بخشی با قابلیت پلاک نشدن هنوز بسیار گران در نظر گرفته میشوند برای همین کارایی آن را روی پیکربندی های کوچکتر از معمول در نظر نمی گیرند.
یک شبکه clos سه طبقه بوسیله نشان داده می شود که سویچهای طبقه ورودی m سویچهای لایه میانی و سویچهای لایه خروجی است، هر کدام از سویچهای لایه ورودی تاپورت ورودی خارجی دارند و به هر کدام از سویچهای لایه میانی اتصال دارد بنابراین ارتباط بین طبقه ورودی وطبقه میانی وجود دارد . هر سویچ طبقه خروجی عدد پورت خروجی دارد و به هر کدام از سویچها یک درخواست اتصال نشان داده میشود به شکل c(x,y) که در آن x یک سویچ ورودی و را یک مجموعه مقصد از سویچهای خروجی است.
چندی /1 درجه fanout درخواست نامیده می شود. به یک مجموعه از درخواستهای اتصال سازگار گفته می شود اگر جمع تصادفات هر کدام از سویچهای ورودی از بزرگتر نباشد وجمع تصادفات کدام از سویچهای خروجی بزرگتر از نباشد.
یک درخواست با شبکه موجود سازگار است اگر تمام درخواستها و همچنین درخواست جدید سازگار باشد در شکل (1) برای نمونه با پیکربندی موجود سازگار است ولی سازگار نیست جون سویچ خروجی شماره 1 درخواست را قبلا حمل کرده است. یک خط سیر برای درخواست اتصال جدید یک درخت است که سویچ ورودی x را به مجموعه /1 تا سویچ خروجی از میان سویچهای میانی متصل می کند. یک درخواست اتصال قابل هدایت است اگر یک مسیر روی تمامی اتصالات بین طبقه ای پیدا کند وبتواند ردر انحصار قرار دهد.
ماسول و جدول برای اولین بار nonblacking محض /1 وشبکه clos سه طبقه قابل بازآیی را برای اتصالات چندگانه که اتصالات بین هر تعداد از سویچهای ورودی وسویچیهای خروجی بوجود می آورد را معدنی کردند.
هرانگ قابلیت بازایی وخواص nonblaking شبکه های clos چند بخشی را تحت شرایط مختلف ومحدودیت های fonout مورد بررسی قرار داد
یانگ وماسول اولین تحلیل خود را که اجازه می داد سویچهای هر طبقه برای کاهش نیازهای سخت افزاری همانند سازی کند را انجام دادند آنها ثابت کردند که اگر تعداد سویچهای میانی o(nlogr/logloyr) باشد آنگاه شبکه nonblacking بوجود آمده است که تمام درخواستها از حداکثر k عدد سویچ میانی استفاده می کند که k نیز ثابت می باشد. علاوه بر مطالعات شبکه های clos چندبخشی nonblamking چندین تلاش رویکرد برای تعیین رفتاری blacking شبکه های swiching برای ارتباطات نقطه نقطه وجود داشت.
این تحقیق مدلهای احتمالی را را که بصورت نزدیکی رفتار شبکه های سویچینگ سه طبقه ای را تخمین می زند را تامین می کند.
برای ارتباطات چند بخشی هرانگ ولین یک مدل blocking از درخواستهای چند پخشی قابل بازآرایی را در شبکه clos نقطه به نقطه nonblocking با فرمول c(n,r,2n-1) پیشنهاد کردند. یانگ ووانگ رفتار blaocking درخواستهای چند پخشی را روی شبکه clos بوسیله بسط دادن مدل بررسی کردند

 

بخش 2: مقدمات
این بخشی قسمتی از نتایج قبلی به علاوه تعاریف ونکاتی که در مدل های blocking خودمان استفاده کردیم و یک شمای مسیریابی برای شبکه های clos را نشان می دهد.

 

‎1st. استراتژی های مسیریابی
ما می توانیم در مورد 3 کلاس از استراتژی های مسیریابی برای ارتباطات چند پخشی بحث کنیم. فرض کنید که یک درخواست (x,y) با شبکه موجود با فرمول c( سازگار است.اولین الگوریتم مسیریابی این است که سویچ میانی را که هر کدام یک اتصال را با یکی از مقصدها برقرار می کند را پیدا کنیم. سوی
های لایه میانی تحت این الگوریتم پیش گنجایش خروجی نیازی به قابلیت چندپخشی ندارند هوانگ نشان داد که یک همچین شبکه ای nonbloking است اگر فقط اگر باشد.
از آنجاییکه الگوریتم نیازمند جایگزین کردن درخواستهای همه پخشی می باشد فقط در ابتدا ترین لایه یعنی را به ورودی میتواند تعداد زیادی از درخواست های جایگزین داشته باشد که بوسیله سویچ های میانی متفاوت هدایت می شوند در نتیجه تعداد زیادی از سویچ های میانی احتمال دارد از طرف سویچ ورودی پلاک شوند.
دومین استراتژی مسیریابی خروج از سیستم را تا زمان نیاز به تعویق می اندازد الگوریتم کندی در fanowt در شبکه clos سه طبقه تلاش می کشد تا یک سویچ میانی را که بتواند یک اتصال به تمام مقاصد در سویچهای خروجی را پیدا کند و نیازی به قابلیت همه پخشی در سویچهای ورودی ندارد در عوض نیاز به آن دارد که سویچ میانی پیدا کند که هیچ تقاضایی را به تمامی سویچ های خروجی مقصد رد y حمل نمی کنند.
هوانگ همچنین نشان داد که شبکه تحت این استراتژی nonblocking است اگر و فقط اگر باشد.
تعداد نقاط عرضی برای c(n,r,m) برابر است با mr(2n+r) . بنابراین هر دو الگوریتم مسیریابی به عدد نقطه عرضی نیاز دارند. این واقعیت که تعداد نقاط عرضی بصورت توان دوم رشد پیدا می کندن باعث شده است که شبکه های nonblocking در ارتباطات چند پخشی بکار نروند.
دلیل اینکه الگوریتم نیاز به تعداد زیادی نقطه عرضی برای تشکیل یک سویچ خط عرضی ساده دارد این است که آنها از قابلیت ظرفیت خروجی در طبقه اول و میانی بعره نمی گیرند.
کلاس آخر از استراتژی ها یک ترکیب از دو روش متفاوت است که اجازه می دهد تا سویچ ورودی یک درخواست به چندین سویچ میانی ارسال کند و هر کدام از سویچ های میانی یک زیر مجموعه از مقصد را هدایت می کنند. به این وسیله قابلیت بهره وری گنجایش خروجی در تمام سه طبقه بعینه می شود.

 

B.صفات منیره اتصالات بین طبقه ای
برای شرح وضعیت اتصالات بخش به عنوان مجموعه ای از سویچ های میانی قابل دسترسی که به سویچ ورودی x متصل شده اند و هیچ درخواستی را حمل نمی کنند را مشخص می کنیم.
در شکل 1 برای مثال را مجموعه ای از سویچ های میانی موجود که متصل شده اند به سویچ خروجی y که هیچ درخواستی را حمل نمی کند تعریف می کنیم.
در همان شکل
For a set of out put swite ches:تعریف 1
Y={
الگوریتم fanout کند تقاضای چند پخشی (x,y) را بوسیله بکاربردن یک سویچ میانی کنترل می کند.
برای کنترل صحیح درخواست باید حداقل یک سویچ میانی در وجود داشته باشد.
این روش اگر اجازه نداشته باشد که درخواست های موجود را دوباره بازآرایی کند نمی تواند درخواست را هدایت کند برای نمونه فکر کنید یک درخواست به حالت زیر داریم: در شکل 1
{5}={2,7,5} {5}=V1 بنابراین سویچ میانی 5 قابل دسترسی است و برای درخواست جدید موجود است.
برای یک درخواست جدید دیگر داریم
بنابراین از این به بعد نخواهیم توانست درخواست جدید دیگری را توسط سویچ میانی هدایت کنیم.
فرض می کنیم که ما فقط الگوریتم fanout کند را بکار می بریم. سویچ ورودی x دارد حداکثر درخواست به علاوه یک درخواست جدید سازگار به مشخصه (x,y) می فرستد، از آنجاییکه هر درخواست اجازه دارد فقط از یک سویچ میانی استفاده کند.
سویچ خروجی y در y حداکثر درخواست مقرر برای سازگاری و حداکثر اتصال از نوع اشغال شده دارد. تعداد اتصالات I اشغال شده بستگی به الگوریتم مسیر یابی دارد.
یک الگوریتم مسیریابی بصورت محض از یک درخواست چند پخشی برای استفاده از حداکثر k سویچ میانی جلوگیری کند به عنوان مثال سویچ ورودی حداکثر n-1 اتصال I اشغال شده دارد.

 

C.توزیع درخواست های چندپخشی
احتمال پلاک شدن درخواست fanout d قسمت بار داده شده شبکه که با PB(d) مشخص شده است یک تابع است از 2 پارامتر p1,p2 که احتمال های اینکه یک اتصال 7 ویک اتصال O توسط دیگر تقاضا ها اشغال شده اند هستند. همه این پارامترها مرتبط با متغیرهای مستقل مثل ترافیک الگوها و پیکربندی شبکه هستند.
فرض می کنیم که یک درگاه ورودی با احتمال Qd از درخواست dfanout و PB(d) احتمال پلاک شدن برای باشد آنگاه بهره وری شبکه ورودی یعنی احتمال اشغال درگاه ورودی a می باشد که
و تعداد مورد انتظار از درگاهای ورودی اشغال شده می باشد.
اگر f(d) را تابع چگالی احتمال درخواست های ورودی با d.fanout در تفکر بگیریم آنگاه داریم
فرض کنید درخواستهای واگذار شده در سیستم سویچنگ توزیع شده اند با تابع چگالی احتمال g(d) می توان بدست آورد.
اگر یک الگوریتم مسیریابی اجازه دهد که یک درخواست چندپخشی از یک سویچ میانی استفاده کند ودرخواستهای بصورت تصادفی از طریق m سویچ طبقه میانی هدایت شوند آنگه ما را بدست می آوریم. تعداد درگاههای خروجی اشغال شده برابر است با میانگین درجه ظرفیت خروجی باشد.
B را بهره وری شبکه خروجی تعریف می کنیم که با احتمال یک درگاه خروجی اشغال شده باشد برابر می باشد و قابل ذکر است که
ثابت می شود که درخواستها بصورت تصادفی از طریق اتصال O هدایت می شود بنابراین خواهیم رسید به رابطه
برخلاف شبکه نقطه به نقطه متقارن بهره وری در یک شبکه چندپخشی ممکن است با بهره وری خروجی فرق کند.ما از روی احتیاز یک بهره وری به رنگ را برای نمایش یک بهره وری شبکه عمومی انتخاب می کنیم. قابل ذکر می باشد که ad=b برای شبکه متقارن و d کوچکتر از یک نمی باشد بنابراین b بهره وری شبکه عمومی می شود.

 

D-مدل های blacking پیشین
تا جائیکه ما اطلاع داریم تمام مدل های پلاکینگ برای شبکه های clos چند پخشی بر پایه مدل نقطه به نقطه لی که از نوع پلاکینگ هستند بنا شده اند در این مدل یک سوئیچ میانی از طرف طبقه ورودی و یا از طرف طبقه خروجی با احتمال 1-( پلاک می شود.
بنابراین احتمال پلاک شدن برای درخواست یعنی اگر تمام سویچ های میانی پلاک شده باشند از رابطه زیر بدست می آید برابر است با (1
این مدل به غیر از چندین مورد در پیش تر موارد تقریب خوبی می باشد که آن چندین مورد عبارتند از اینکه، اول از همه شرایط nonblocking سازگار نیست از آنجایی که آن دارد مقادیر غیرصفر مثبت اگر چه m خیلی بزرگ است و شبکه nonblock می شود در فرمول 1 PB صفر نمی شود وربطی هم باین ندارد که چند تا سوئیچ میانی در شبکه ها بکار می رود.
ثانیا مدل به گران های بالای اشغال اتصالات بین طبقه ای توجه نمی کند. با توجه به اینکه یک درخواست سازگار سوئیچ خروجی y را به عنوان مقصد داردوچون سویچ خروجی می تواند حداکثر n2-1 درخواست به علاوه یک درخواست جدید بیشتر از n2-1 اتصال از نوع O داشته باشد در یک دلخواه مشغول نمی شوند. برای اتصالات بخش I یک منطق مشابه نیز بکار می رود.
بنابراین بیشینه تعداد آن بستگی به انتخاب الگوریتم مسیریابی دارد. در نهایت مدل به احتمال blocking یک سوئیچ میانی از طرف سوئیچ ورودی یا خروجی توجه می کند ولی از تاثیر پلاک شدن سوئیچ های میانی توسط هر 2 سوئیچ ورودی خروجی چشم پوشی می کند. از آنجائیکه معلوم کردیم که تعداد اتصالات مشغول پلاک شدن یک سوئیچ میانی بر احتمال پلاک شدن دیگر سوئیچ های میانی تاثیر می گذارد در قسمت بعد یک مدل پلاکرینگ با دقت بیشتر را برای شبکه های clos چند پخشی برای کامل کردن این کمبودها پیشنهاد می کنیم.

 

III احتمال پلاک شدن شبکه های چندپخشی
این بخش مدل پلاکینگ الگوریتم fanaut کند را در شبکه متقارن c(n,r,m) مطالعه می کند و نشان می دهد که مدل سازگار است با شرایط nonbloking بطوریکه احتمال پلاک شدن در تعداد یکسانی از سوئیچ های میانی تقریبا به صفر می رسد.
همانطوری که در بخش II نشان داده شد یک درخواست چند پخشی (x,y) پلاک می شوند اگر وفقط اگر باشد.بگذارید احتمال اینکه سوئیچ ورودی (m-j)xسویچ میانی قابل دسترسی داشته باشد و باشد را پیدا کنیم.
حال احتمال j سوئیچ میانی غیرقابل دسترسی را حساب می کنیم. سویچهای میانی قابل دسترسی بصورت تصادفی در میان m سوئیچ میانی پراکنده و توزیع شده اند که بوسیله توزیع دو جمله ای (m,p1) تقریب زده می شود. در تحت شرایطی که تعداد سوئیچهای غیرقابل دسترسی بزرگتر از n-1 می باشد بنابراین احتمال اینکه j سویچ میانی غیرقابل دسترسی باشند از روابط زیر بدست می آیند

‎1st. احتمال اینکه k سویچ میانی آماده باشند.
بگذارید mxd عدد اتصال O برای درخواست چند پخشی سازگار (x,y) از فکر کنیم ما ویژگی اتصالات بین طبقه ای با یک مشکل اشغالی در mxd سلول از ماتریس مستطیلی را شرح میدهیم. یک خانه میتواند به وسیله یک نقطه با احتمال p2 تحت شرایطی که هر کدام از ستونها حداکثر n-1 نقطه دارند اشغال شود. توزیع این نقاط در یک ستون مستقل ازتوزیع آنها درستونهای دیگر فرض می شود. توزیع آنها به وسیله دوجمله ای تقریب زده می شود. به یک سطر خالی یا موجودگفته می شود اگرآن سطر شامل هیچ نقطه ای نباشد. اگر Ed را تعداد سطرهای خالی بنامیم و Aj تعداد نقاط در j امین ستون باشد آنگاه را احتمال خالی بودن k سطر می نامیم که از روابط زیر بدست می آید

ما احتمال خالی بودن k سطر را با استفاده از استنتاج روی d پیدا می کنیم. ابتدا با توجه به اینکه در یک ستون k سلول خالی یا m-k نقطه داریم:

 

اگر در رویداد مستقل Ad=h را داشته باشیم، آنگاه وجود دارند راه برای قراردادن h عدد نقطه داخل m سلول از ستون d ام و راه برای قراردادن j-k نقطه از h داخل j سلول که داخل سطرهای خالی در mx(d-1)_ زیرماتریس هستند و راه برای قراردادن باقیمانده h-j+k نقطه داخل m-j سلول، همانگونه که در شکل 2 می بینیم. بنابراین احتمال شرطی خالی بودن k سطر هست:

استقراء 1: احتمال خالی بودن k سطر در یک ماتریس با سایر mxd میشود.

زیرا

اثبات: از فرمولهای 4,3 و احتمال شرطی میانگین داریم

 

 

فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد

تعداد صفحات این مقاله  35  صفحه

پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید


دانلود با لینک مستقیم


دانلود مقاله کارایی الگوریتم مسیریابی شکسته شده برای شبکه های چندبخشی سه طبقه

مکانیابی خطا در مهندسی نرم افزار با استفاده از الگوریتم های متاهیورستیک ( فایل Word)

اختصاصی از فی موو مکانیابی خطا در مهندسی نرم افزار با استفاده از الگوریتم های متاهیورستیک ( فایل Word) دانلود با لینک مستقیم و پر سرعت .

مکانیابی خطا در برنامههای کامپیوتری یکی از  پرهزینهترین، کسل کنندهترین و زمان برترین فعالیت در فرآیند تست نرمافزار میباشد، از آنجا که نرمافزارها هر روز پیچیدهتر میشوند بنابراین یافتن محل خطا در برنامههای کامپیوتری نیاز به تلاش بیشتری دارند و از این جهت نیاز به تکنیکهای برای کمک به توسعه دهنده نرمافزار در یافتن محل خطا با کمترین دخالت عامل انسانی یک امر اساسی است این نیازها باعث شده که ایدههای مختلفی بصورت خلاقانه در یافتن محل خطا پیشنهاد و توسعه داده شوند.


دانلود با لینک مستقیم


مکانیابی خطا در مهندسی نرم افزار با استفاده از الگوریتم های متاهیورستیک ( فایل Word)

تحقیق در مورد الگوریتم

اختصاصی از فی موو تحقیق در مورد الگوریتم دانلود با لینک مستقیم و پر سرعت .

تحقیق در مورد الگوریتم


تحقیق در مورد الگوریتم

ک پرداخت و دانلود *پایین مطلب*

 

فرمت فایل:Word (قابل ویرایش و آماده پرینت)

  

تعداد صفحه:19

 

فهرست مطالب

 

 

 

 

 

چکیده : در این گزارش ما به بررسی ویژگی های الگوریتمهای کنترل همروندی توزیعی که بر پایه مکانیزم قفل دو مرحله ای(2 Phase Locking)   ایجاد شده اند خواهیم پرداخت. محور اصلی این بررسی بر مبنای تجزیه مساله کنترل همروندی به دو حالت read-wirte و write-write می‌باشد. در این مقال، تعدادی از تکنیکهای همزمان سازی برای حل هر یک از قسمتهای مساله بیان شده و سپس این تکنیکها برای حل کلی مساله با یکدیگر ترکیب می‌شوند.

در این گزارش بر روی درستی و ساختار الگوریتمها متمرکز خواهیم شد. در این راستا برای ساختار پایگاه داده توزیعی یک سطحی از انتزاع را در نظر می‌گیریم تا مساله تا حد ممکن ساده سازی شود.

 

  1. مقدمه : کنترل همروندی فرآیندی است که طی آن بین دسترسی های همزمان به یک پایگاه داده در یک سیستم مدیریت پایگاه داده چند کاربره هماهنگی بوجود می‌آید. کنترل همروندی به کاربران اجازه می‌دهد تا در یک حالت چند برنامگی با سیستم تعامل داشته باشند در حالیکه رفتار سیستم از دیدگاه کاربر به نحو خواهد بود که کاربر تصور می‌کند در یک محیط تک برنامه در حال فعالیت است. سخت ترین حالت در این سیستم مقابله با بروز آوری های آزار دهنده ای است که یک کاربر هنگام استخراج داده توسط کاربر دیگر انجام می‌دهد. به دو دلیل ذیل کنترل همروندی در پایگاه داده های توزیعی از اهمیت بالایی برخوردار است:
  2. کاربراان ممکن است به داده هایی که در کامپیوترهای مختلف در سیستم قرار دارند دسترسی پیدا کنند.
  3. یک مکانیزم کنترل همروندی در یک کامپیوتر از وضعیت دسترسی در سایر کامپیوترها اطلاعی ندارد.

مساله کنترل همروندی در چندین سال قبل کاملا مورد بررسی قرار گفته است و در خصوص پایگاه‌داده‌های متمرکز کاملا شناخته شده است. در خصوص این مسال در پایگاه داده  توزیعی با توجه به اینکه مساله در حوزه مساله توزیعی قرار می‌گیرد بصورت مداوم راهکارهای بهبود مختلف عرضه می‌شود. یک تئوری ریاضی وسیع برای تحلیل این مساله ارائه شده و یک راهکار قفل دو مرحله ای به عنوان راه حل استاندارد در این خصوص ارائه شده است. بیش از 20 الگوریتم کنترل همروندی توزیعی ارائه شده است که بسیاری از آنها پیاده سازی شده و در حال استفاده می‌باشند.این الگوریتمها معمولا پیچیده هستند و اثبات درستی آنها بسیار سخت می‌باشد. یکی از دلایل اینکه این پیچیدگی وجود دارد این است که آنها در اصطلاحات مختلف بیان می‌شوند و بیان های مختلفی برای آنها وجود دارد. یکی از دلایل اینکه این پیچدگی وجود دارد این است که مساله از زیر قسمتهای مختلف تشکیل شده است و برای هر یک از این زیر قسمتها یک زیر الگوریتم ارائه می‌شود. بهترین راه برای فائق آمدن بر این پیچدگی این است که زیر مساله ها و الگوریتمهای ارائه شده برای هر یک را در ی.ک سطح از انتزاع نگاه داریم.

با بررسی الگوریتمهای مختلف می‌توان به این حقیقت رسید که این الگوریتمها همگی ترکیبی از زیر الگوریتمهای محدودی هستند. در حقیقت این زیر الگوریتمها نسخه‌های متفاوتی از دو تکنیک اصلی در کنترل همروندی توزیعی به نامهای قفل دو مرحله ای و ترتیب برچسب زمانی می‌باشند.

همانطور که گفته شد، هدف کنترل همروندی مقابله با تزاحمهایی است که در اثر استفاده چند کاربر از یک سری داده واحد برای کاربران بوجود می‌آید است. حال ما با ارائه دو مثال در خصوص این مسائل بحث خواهیم نمود. این دو مثال از محک معروف TPC_A مقتبس شده اند. در این مثالها، یک سیستم اطلاعات را از پایگاه داده ها استخراج کرده و محاسبات لازم را انجام داده و در نهایت اطلاعات را در پایگاه داده ذخیره می‌نماید.

حالت اول را می‌توان بروزآوری از دست رفته نامید. حالتی را تصور کنید که دو مشتری از دو سیستم مجزا بخواهند از یک حساب مالی برداشت نمایند. در این حالت فرض کنید در غیاب سیستم کنترل همروندی، هر دو با هم اقدام به خواندن اطلاعات و درج اطلاعات جدید در سیستم میکنند. در این حالت در غیاب سیستم کنترل همروندی تنها آخرین درج در سیستم ثبت می‌شود. این حالت در شکل 1 نشان داده شده‌ است.

 

حالت دوم حالتی است که در آن اطلاعات صحیح از پایگاه داده استخراج نمی‌شود. در این حالت فرض کنید دو مشتری بخواهند کارهای ذیل را انجام دهند.

  • مشتری 1: بخواهد یک چک 1 میلیونی را به حساب X واریز و از حساب Y برداشت نماید.
  • مشتری 2: بخواهد بیلان حساب مالی X و Y شامل کل موجودی را نمایش دهد.

در غیاب کنترل همروندی همانطور که در شکل 2 نشان داده شده‌است، تزاحم بین پروسس ها بوجود خواهد آمد. فرض کنید در زمانی که مشتری 1 اطلاعات را از حساب Y خوانده و اطلاعات حساب X را دریافت نموده و 1 میلیون از حساب Y برداشت نموده ولی هنوز 1 میلیون به حساب X و اریز نکرده مشتری 2 اطلاعات کل دو حساب را دریافت نموده و نتیجه را چاپ نماید. در این حالت مشتری شماره 2 اطلاعاتی را که به عنوان بیلان نمایش می‌دهد 1 میلیون از مقدار واقعی کمتر است. این حالت یک فرق اساسی با حالت اول دارد و آن این است که در این حالت نتیجه نهایی در پایگاه داده درست خواهد بود در حالیکه اطلاعات دریافت شده بصورت موقت غلط خواهند بود.

 

 

مساله کنترل همروندی در پایگاه داده های توزیعی تا حدودی شبیه مساله دوبه‌دو ناسزگاری در سیستم عامل می‌باشد.  در مساله دوبه‌دو ناسازگاری، هماهنگی جهت دسترسی به منابع سیستم ائم از حافظه، ابزارهای ورودی و خروجی و CPU و .... بوجود می‌آید. در این حالت راه حلهای گوناگونی ائم از قفلها، سمافورها، مونیتورها و ... پیشنهاد شده است.

کنرتل همروندی و دوبه‌دو ناسگاری از این جهت که هر دو دسترسی به منابع مشترک را کنترل میکنند با هم شباهت دارند.  با این حال راه حلی که برای یکی بکار می‌رود قابل بهره برداری برای دیگری نیست. فرض کنید پردازه های P1 و P2 بخواهند از نقاط مختلف کدهای خود به منابع R1 و R2 دسترسی پیدا کنند. در سیستم عامل دسترسی مجزای ذیل قابل قبول است. P2 از R1 استفاده کند، P2 از R1 استفاده کند، P2  از R2 استفاده نموده و سپس P1 از R2 استفاده نماید. در پایگاه داده این روند اجرا مورد قبول نیست و مشکلاتی را ایجاد می‌کند. فرض کنید P1 بخواهد از R1 مبلغی را به R2 انتقال دهد. در این حالت اگر P2 مقادیر R1 وR2  را چک کند مقادیر غیر صحیح را دریافت می‌کند.

  1. مدل پردازش تراکنش: برای اینکه روند اجرای عملیات در سیستمهای پایگاه داده های توزیعی برای خواننده مشخص شود ما در اینجا یک مدل از پایگاه داده‌های توزیعی را ارائه می‌دهیم. سپس نحوه عملکرد مکانیزم کنترل همروندی را در این مدل بیان خواهیم نمود. در این مدل پایگاه داده، یک پایگاه داده توزیعی مجموعه از سایتهاست که توسط یک شبکه به هم متصل شده‌اند. هر سایت یک کامپیوتر است که یکی یا هر دوی برنامه های ذیل را اجرا می‌کند. برنامه‌ها شامل یک مدیر تراکنش یا TM و یک مدیر داده یا DM است. TM مسئول مدیریت تعامل کاربر با پایگاه داده است و DM مسئول نگهداری داده‌ها است. شبکه نیز یک وسیله ارتباطی کامپیوتر – کامپیوتر است. فرض بر این است که شبکه کاملا امن می‌باشد و پیامها را با همان ترتیبی که وارد سیستم می‌شوند به مقصد ارسال می‌شود. فرض بر این است که تعداد داده های موجود در سیستم شامل X ، Y  و Z است که داده های منطقی موجود در سیستم را تشکیل می‌دهند. داده های ذکر شده فقط واحد داده های منطقی هستند و ما با سایز و قالب و جزئیات آنها کاری نخواهیم داشت. هر پایگاه داده در این سیستم یک نسبت دهی مقادیر بصورت منطقی به این داده های منطقی است. هر داده منطقی می‌تواند در یک یا بیشتر از یک DM ذخیره شود. افزونگی داده در اثر ذخیره داده در چندین DM برای افزایش دسترسی به داده‌ها است. هر کپی از داده ذخیره شده آیتم داده نامیده می‌شود. نسخه های متعدد داده X را بصورت  X1,X2,...   نشان داده می‌شوند. کاربران با DDBMS از طریق اجرای تراکنشها تعامل دارند. تراکنشها می‌توانند پرس و جو های on-line باشند که با زبان استاندارد پرس و جو ارسال شده اند. از طرفی تراکنشها می‌توانند عملیاتی باشند که از طریق برنامه های نوشته شده به سیستم داده می‌شوند. الگوریتمهای کنترل همروندی، کاری با نوع تراکنشهای موجود در سیستم ندارند و محاسبات انحام شده در این تراکنشها تاثیری در روند این الگوریتمها ندارد. بر خلاف اینها این الگوریتمها تمام تصمیم گیری های خود را بر اساس داده هایی که این تراکنشها به آنها دسترسی پیدا می‌کنند انجام می‌دهند. دسترسی ها می‌توانند از نوع خواندن یا نوشتن باشند. فرض بر این است که محاسبات در تراکنشها کامل بوده و اگر تراکنش در یک پایگاه داده به تنهایی اجرا شود، پایگاه داده در حالت صحیح و مانا قرار گرفته و نتایج کاملا صحیحی در بر خواهد داشت. مجموعه منطقی خواندنی یک تراکنش مجموعه ای از آیتمهای داده ای است که تراکنش می‌خواند. این امر در شکل 3 نمایش داده شده است.

 

 

صحت یک الگوریتم کنترل همروندی بر اساس نیاز کاربران به اجرای تراکنشها تعریف می‌شود. در اینجا می‌توان دو شرط اساسی را می‌توان برای اجرای صحیح تراکنشها می‌توان در نظر گرفت. شرط اول این است که کاربران انتظار دارند تراکنشهایی را که در سیستم ثبت می‌کنند، نهایتا اجرا شود. شرط دو م این است که کاربران انتظار دارند تراکنشهای ارسالی دقیقا مانند زمانی که تراکنش در یک سیستم مجزا یا در یک محیط موازی چند برنامه، اجرا می‌شود اجرا شود و نتایج آن در هر دوحالت کاملا مشابه باشد. تحقق این شرایط دقیقا اهداف یک الگوریتم کنترل همروندی را مشخص می‌کنند. یک سیستم DDBMS چهار جزء اصلی را در برخواهد داشت: تراکنش، TM، DM و داده‌ها. تراکنشها با TM ارتباط دارند. TM ها با DM ها ارتباط برقرار می‌کنند و DM  ها داده ها را مدیریت می‌کنند. TM ها با سایر TM  ها ارتباط برقرار نمی‌کنند.

TM  ها بر ترکانش ها و اجرای آنها نظارت می‌کنند. هر تراکنش در پایگاه داده های توزیعی فقط با یک TM در ارتباط است. این بدین معنا است که هر تراکنش تمام عملیات پایگاه داده خود را به TM مربوط به خود ارسال می‌کنند.  تمامی عملیاتهای توزیعی که بایستی توسط تراکنش انجام شود توسط TM مزبور مدیریت می‌شود. چهار عملیات مختلف توسط واسط TM برای تراکنشها قابل تعریف است. read(x) مقدار جاری x را در وضعیت فعلی پایگاه داده های منطقی برمی‌گرداند. write(x,newvalue) مقدار x را در حالت جاری پایگاه داده‌های منطقی به مقدار Newvalue تغییر می‌دهد. همچنین با استفاده از begin و end ابتدا و انتهای یک تراکنش برای یک TM مشخص می‌شود.

3-تحلیل مساله کنترل همروندی : در اینجا ما با دو رویکرد به مواجه با مساله کنترل همروندی خواهیم پرداخت. در رویکرد اول به نحوه اجرای صحیح خواهیم پرداخت و در رویکرد دوم به تجزیه مساله به بخشهای قابل حل خواهیم پرداخت.

3-1- قابلیت توالی: فرض کنید E یک ترتیب اجرای تراکنشهای t1 تا Tn باشد. در اینصورت E یک اجرای متوالی از تراکنشها است، در صورتیکه هر تراکنش قبل از اجرای تراکنش بعدی به طور کامل اجرا شده و خاتمه پذیرد. تمامی ترتیبهای اجرای متوالی از دیدگاه پایگاه داده‌ها صحیح تصور می‌شوند، چرا که خواص تراکنش اذعان می‌کند که در خاتمه اجرای متوالی صحت پایگاه داده حفظ می‌شود. یک ترتیب اجرای تراکنش قابل توالی (Serializable) محسوب می‌شود در صورتیکه نتیجه خروجی اجرای آن برابر یک اجرای متوالی از تراکنشهای مشابه باشد. در نتیجه تمام اجراهای متوالی serializable  محسوب می‌شوند و نتیجه صحیحی خواهند داشت.

هدف الگوریتم کنترل همروندی این است که تضمین کند که تمامی ترتیب های اجرای تراکنش ها قابل توالی می‌باشند. تنها عملیاتی که به داده‌های پایگاه داده دسترسی پیدا میکنند dm-read و dm-write می‌باشند. بنا براین برای پایش اجرای توالی لازم است فقط dm-read و dm-write های موجود در پایگاه داده توزیعی در dm ها مختلف مدل شده و رفتار آنها کنترل شود. log فایلها می‌توانند شرح دهنده توالی dm-read ها و Dm-write ها باشند. در یک پایگاه داده توزیعی، یک ترتیب اجرا قابل توالی نامیده میشود در صورتیکه به ازای Ti که قبل از tj در توالی قرار دارد، تمامی عملیاتهای Ti قبل از tj در تمامی سایتها انجام شده باشند. این نشان دهنده این است که تمامی تراکنشها باید به ترتیب وارد شده در تمامی سایتها اجرا شوند.

دو عملیات با هم تداخل دارند اگر هر دو عملیات بر روی یک داده مشترک کار کرده و یکی از داده ها dm-write باشد. در این حالت اگر دو عملیات با هم تداخل داشته باشند، ترتیب اجرای دو عمل بر روی نتیجه نهایی تاثیر مستقیم خواهد داشت. برای روشنتر شدن موضوع به بحث در خصوص یک مثال خواهیم پرداخت. فرض کنید ایتم داده‌ای x و تراکنشهای ti و Tj موجود باشند. اگر ti  اقدام به خواندن مقدار X نموده و tj اقدام به نوشتن مقدار جدیدی در x نماید. در اینصورت مقدار خوانده شده توسط ti به تقدم و تاخر عملیاتهای خواندن و نوشتن وابسته خواهد شد. بطور مشابه فرض کنید ti و tj  هر دو بخواهند مقدار جدید را در x بنویسند، در اینصورت مقدار x دقیقا به این امر وابسته می‌شود که کدام عملیات دیرتر انجام شده است. حالت اول را تداخل خواندن- نوشتن (rw) و حالت دوم را تداخل نوشتن – نوشتن (ww)  می‌نامند.

نمایش تداخل های مختلف می‌تواند به ارائه یک تعریف فرموله شده برای ترتیبهای اجرای هم ارز کمک کند. دو ترتیب اجرای تراکنش از نظر محاسباتی زمانی معادل هستند که دو شرط ذیل در آنها صادق باشد:

  1. هر dm-read در تراکنش، داده ای را بخواند که از ابتدا به تراکنش داده شده باشد یا داده ای باشد که توسط یک dm-write از همین تراکنش نوشته شده باشد.
  2. نتیجه نهایی نوشته شده در آیتم داده‌ای در هر دو ترتیب اجرا یکسان باشد.

قضیه 1: فرض کنید t که بصورت ذیل تعریف شده است مجموعه ای از تراکنشها در یک پیگاه داده باشد:

 

آنگاه اگر E یک ترتیب اجرا از این تراکنشها در log های l1 تا lm باشد، E قابل توالی خواهد بود اگر به ازای هر دو عملیات oi و oj که با یکدیگر تداخل دارند به ازای تمامی Log ها ترتیب یکسانی نسبت به یکدیگر داشته باشند.

قضیه فوق الذکر برای حل مسائل مربوط به ترتیب توالی در سیستم بکارمی‌رود.

3-2- یک الگو برای کنترل همروندی: در قضیه فوق تداخلهای خواندن- نوشتن و نوشتن – نوشتن بصورت مشترک در یک تعریف عمومی از تداخل ظاهر شده اند. در هر حال ما می‌توانیم مساله قابلیت توالی را با تفکیک این دو نوع تداخل بهتر بررسی کنیم. فرض کنید E یک مجموعه از log های ثبت شده در یک توالی باشد.  ما چند رابطه را می‌توانیم بین تراکنشهای موجود در E تعریف کنیم. برای هر جفت تراکنش Ti و Tj خواهیم داشت:

شرح رابطه

نوع رابظه

اگر log وجود داشته باشد که در آن Ti داده‌ای را می‌خواند که بلافاصله Tj در آن می‌نویسد.

rw

اگر log وجود داشته باشد که در آن Ti در داده‌ای را می‌نویسد که بلافاصله Tj از آن می‌خواند.

wr

اگر log وجود داشته باشد که در آن Ti در داده‌ای را می‌نویسد که بلافاصله Tj در آن می‌نویسد

ww

اگر Ti->rw Tj با Ti->wr Tj

rwr

اگر Ti->rwr Tj با Ti->ww Tj

 

 

قضیه 2: اگر روابط rwr و ww بصورت غیر حلقوی بوده و یک ترتیب کلی برای این روابط بتوان متصور شد.

بنا بر قضیه فوق می‌توان الگوریتمهای کنترل همروندی را مورد ارزیابی و بررسی قرار داده و صحت آنها را از طریق اثبات ریاضی محک زد. تشخیص تداخلهای rw و ww برای کشف ایراد در الگوریتمهای کنترل همروندی کاربرد فراوانی دارد. قضیه 2 به ما اجازه می‌دهد تا مساله کنترل همروندی را به قسمتهای کوچکتر تقسیم نموده و بتوان هر یک از این قسمتها را بطور مستقل بررسی  نمود.

4-مکانیزمهای کنترل همروندی بر پایه قفل دو مرحله‌ای : قفل دو مرحله ای با تشخیص روشن تداخل بین عملیاتهای همروند و جلوگیری از آنها، بین عملیاتهای خواندن و نوشتن همزمانی بوجود می‌آورد. قبل از اینکه یک تراکنش x را بخواند باید یک قفل خواندن بر روی x قرار دهد و قبل از اینکه یک تراکنش روی داده x بنویسد، باید یک قفل نوشتن روی x قرار دهد. تصاحب قفلها با توجه به دو قانون بدست می‌آید.:

  1. تراکنشهای مختلف نمی‌توانند قفلهایی که باعث ایجاد تداخل می‌شوند بدست آورند.
  2. زمانی که یک تراکنش شروع به آزاد کردن قفلهای خود نمود، دیگر نمی‌تواند قفل دیگری بدست آورد.

قفلهایی که باعث تزاحم می‌شوند با توجه به نوع همزمان سازی مشخص و تعریف می‌شوند. برای حالت rw دو قفل زمانی با هم تداخل دارند که دو شرط در آنها صدق کند:

  1. هر دو قفل بر روی یک داده واحد باشند.
  2. یکی قفل نوشتنی و دیگری قفل خواندنی باشد.

برای حالت ww دو قفل زمانی با هم تداخل دارند که دو شرط در آنها صدق کند:

  1. هر دو قفل بر روی یک داده واحد باشند.
  2. هر دو قفل از نوع نوشتنی باشند.

قانون دوم ایجاب میکند که هر تراکنش برای بدست آوردن قفل دو فاز را طی کند. فاز اول که فاز دستیابی به قفلهاست، تراکنش اقدام به بدست آوردن قفلهای لازم می‌کند. در فاز دوم که فاز تخلیه است، تراکنش به مرور زمان قفلهای خود را آزاد می‌کند. هنگامی که تراکنش خاتمه پیدا می‌کند کلیه قفلها رها می‌شوند.

روشهای مختلفی برای الگوریتمهای قفل دو مرحله‌ای پیشنهاد شده است. یکی از این روشها این است که تراکنش قفلهای مورد نیاز را قبل از اجرای اصلی خود بدست آورد.  این نسخه از قفل دو مرحله‌ای را پیش تعریف می‌نامند. برخی از سیستمهای تراکنشها را مجبور می‌کنند تا قفلهای خود را تا پیش از خاتمه نگه دارند. قفل دو مرحله‌ای یک تکنیک صحیح ایجاد قابلیت توالی است. این امر با بررسی سیستم از لحظه عدم وجود حلقه و دور در روابط rwr و ww مشخص است.  ترتیب اجرای تراکنشها با ترتیب بدست آوردن قفلها مشخص می‌گردند. نقطه ای که در آن تراکنش تمامی قفلهای مورد نیاز خود را بدست آورده است را نقطه تصاحب قفل می‌نامند. روشهای مختلفی برای ایجاد الگوریتم قفل دو مرحله ای در سیستمهای توزیعی وجود دارد که در قسمت بعد مورد بررسی قرار می‌گیرد.

5-پیاده سازی پایه قفل دو مرحله‌ای : در پیاده سازی پایه الگوریتم قفل دو مرحله‌ای یک ماژول نرم افزاری ایجاد می‌شود که روند دریافت و آزاد سازی قفلها را بر اساس ویژگی های الگوریتم قفل دو مرحله‌ای کنترل می‌کند.

یک روش برای پیاده سازی توزیعی این الگوریتم این است که ماژولهای نرم افزاری را بین اجزای پایگاه‌داده توزیع نمائیم. برای اینکار هر ماژول را در dm یعنی آنجائیکه x داده تحت کنترل است قرار دهیم. اگر یک قفل قابل تخصیص نباشد، درخواست برای قفل در یک صف انتظار قرار داده می‌شود. قفلهای نوشتن بطور خودکار با انجام عمل write آزاد می‌شوند. در اینصورت برای آزاد نمودن قفلهای خواندنی بایستی عملیات اضافه تعریف نمود. آزاد نمودن قفلها با نوشتن اطلاعات و آغاز فاز تخلیه آغاز می‌شود. هرگاه یک قفل آزاد می‌شود عملیاتهای موجود در صف شروع به ادامه می‌کنند.

توجه داشته باشید که این پیاده سازی افزونگی داده را به درستی پوشش داده و مشکل افزونگی داده و صحت و مانایی اطلاعات را حل می‌کند. اگر این روش برای همزمان سازی های rw بکار رود، تراکنش می‌تواند هر کپی داده ای را که در دسترس بود بخواند و هر قفل خواندنی که مهیا بود را بدست آورد. در هر صورت اگر بخواهد داده را بروزآوری کند، یعنی مقدار جدیدی به داده ای نسبت دهد باید بر روی تمام افزونه‌های دادهای مورد نظر، مقدار جدید را ثبت کند و داده را بروز کند که مستلزم بدست آوردن قفل نوشتن بر روی تمامی نسخه های داده ای است.

 

6-قفل دو مرحله‌ای با نسخه اولیه : قفل دو مرحله‌ای با نسخه اولیه یک تکنیک از نوع قفله دو مرحله‌ای است که که به افزونگی داده توجه خاصی دارد. یک کپی از هر داده منطقی به عنوان یک کپی یا نسخه اولیه از داده مزبور مطرح می‌شود. قبل از دسترسی به هر گونه کپی از داده های منطقی، قفل صحیح باید از کپی اولیه اخذ شود.

برای قفلهای خواندنی این روش تعامل و ارتباطات بیشتری را نیاز دارد.فرض کنید که  ‏T یک تراکنش باشد که بخواهد داده x را بخواند. در اینصورت اگر X1 کپی اولیه از x باشد و xi برای خواندن توسط تراکنش در دسترس باشد، تراکنش بایستی با x1 که کپی اولیه داده است تعامل داشته و قفل خود را بدست آورد و پس از آن نیز با تعامل با xi داده مورد نظر خود را از Xi بخواند. برای قفلهای نوشتنی بر عکس پیاده سازی پایه قفل دو مرحله ای تراکنش احتیاجی به تعامل بیشتر با سایر dm ها ندارد. در پیاده سازی پایه قفل دو مرحله ای، اگر یک تراکنش می‌خواست داده x را بروز کند، لازم بود تا بر تمامی نسخه های x قفل نوشتنی بزند و سپس عمل نوشتن را بر روی تمامی نسخه های x   انجام دهد اما در اینجا فقط لازم است که تراکنش قفل نوشتن را بر روی کپی اولیه قرار دهد و در صورت بدست آوردن قفل، باید عملیات نوشتن را مانند روش قبل بر روی تمامی نسخه های x انجام دهد.

6-قفل دو مرحله‌ای با رای گیری : قفل دو مرحله ای با رای گیری پیاده‌سازی دیگری از روشهای قفل دو مرحله ای است که در آن افزونگی داده بیشتر مد نظر قرار گرفته است. این روش شکل تغییر یافته الگوریتم توافق اکثریت توماس است و تنها برای همزمان سازیهای ww مناسب است.

برای فهم بهتر این روش بهتر است آنرا در داخل روش two phase commit توصیف کنیم. فرض کنید یک تراکنش بخواهد بر روی داده x مقدار جدیدی را بنویسد، در اینصورت درخواست قفل به تمامی نسخه های داده x ارسال شود. در صورتیکه قفل قابل تخصیص باشد، DM دریافت کننده قفل بایستی یک پیام تخصیص قفل صادر نماید. در صورتیکه قفل قابل تخصیص نباشد نیز یک پیام بلوکه شدن در خواست قفل ارسال می‌گردد. در صورتیکه پیامها از dm های مختلف برگشت داده شد، حال tm ارسال کننده درخواست قفل اقدام به تصمیم‌گیری می‌نماید. در صورتیکه تعداد قفلهای اخذ شده دارای اکثریت باشند، آنگاه tm دقیقا مانند حالتی عمل میکند که قفلهای لازم را بر روی نسخه داده ای مزبور بدست آورده است. در این حالت tm باقی عملیات یعنی نوشتن بر روی داده مزبور را انجام می‌دهد. در صورتیکه قفلهای لازم بر روی داده مورد نظر به تعداد اکثریت نباشد، Tm منتظر دریافت پاسخ تخصیص قفل از dm هایی که پاسخ بلوکه شدن قفل را ارسال نمودند، می‌شود. در این حالت با دریافت پاسخ جدید از dm هایی که قبلا درخواست را بلوکه کردند، tm تعداد قفلهای لازم را بررسی می‌کند. در صورت اخذ اکثریت آرا، اجرای خود را ادامه می‌دهد. از آنجائیکه فقط یک تراکنش می‌تواند در هر لحظه اکثریت قفلهای نوشتن را بدست آورد در نتیجه فقط در هر لحظه فقط بک تراکنش می‌تواند بر روی اطلاعات تغییرات اعمال نماید. در هر لحظه فقط یک تراکنش می‌تواند در فاز نوشتن خود قرار داشته باشد. در نتیجه تمامی نسخه های x دارای یک ترتیب مشخص و مشترک  از مقادیر می‌باشند. نقطه قفل یک تراگنش جایی است که یک تراکنش توانسته است اکثریت قفلهای لازم را برای نوشتن برای هر آیتم داده‌ای در مجموعه نوشتاری خود بدست آورد.  برای بروز آوری های با حجم بالا ، تراکنش بایستی اکثریت قفلهای نوشتن را بر روی تمامی آیتمهای داده ای نوشتنی خود قبل از ارسال دستورات نوشتن بدست آورد.

در حقیقت، قفل دو مرحله ای با رای گیری می‌تواند برای همزمان سازی عملیات های rw سازگار شود. برای اینکار برای خواندن یک نسخه داده‌ای بایستی قفل خواندن از تمامی نسخه های داده ای درخواست شود. در صورتیکه اکثریت قفل خواندن از dm ها بدست آید می‌تواند اطلاعات مورد نظر را بخواند. این روش روش بسیار خوب و قدرتمندی است ولی در این روش برای خواندن یک آیتم داده ای بایستی از تمامی سایتهایی که دارای یک نسخه از آیتم داده‌ای مذکور هستند قفل خواندن اخذ شود که عملا سیستم را بسیار کند می‌کند.

7- قفل دو مرحله‌ای متمرکز : بجاری توزیع نمودن زمانبندها بر روی سایتهای مختلف، همه زمانبندها را بر روی یک سایت متمرکز خواهیم نمود. در این خالت اگر یک تراکنش بخواهد به یک داده x دسترسی پیدا کند باید از سایت مذکور درخواست قفل مناسب بر روی داده مذکور نماید. در این وضعیت داده ممکن است بر روی یک سایت غیر از سایت زمانبند مرکزی قرار داشته باشد.

فرض کنید تراکنشt بخواهد داده x را بخواند در اینصورت بایستی t یک قفل خواندن را از سایت مرکزی درخواست نماید. در این حالت اگر قفل تخصیص داده شود تراکنش می‌تواند اطلاعات را از یکی از سایتهایی که دارای xهستند درخواست نماید. در غیر اینصورت باید منتظر دریافت مجوز تخصیص ثقفل خواندن از سوی سایت زمانبند مرکزی باشد. در حالتی که داده x بر روی سایت مرکزی زمانبند نیز باشد، درخواست قفل و داده بطور مشترک به سایت مرکزی ارسال می‌شود، در صورتیکه قفل قابل تخصیص باشد، عملیات خواندن به همراه تخصیص قفل انجام می‌شود. برای عملیات بروز آوری و نوشتن نیز فرآیند تخصیص قفل به همین نحو است با این تفاوت که بعد از تخصیص قفل و اعلام به درخواست کننده از سوی سایت مرکزی زمانبندی، سایت درخواست کننده موظف است تمامی کپی های نسخه های اطلاعاتی را بروز نماید. این روش نیز مانند قفل دو مرحله‌ای کپی اولیه مستلزم نقل و انتقال مضاعف پیام می‌باشد.

 

8-تشخیص و ترمیم بن بست : در این خصوص روشهای مختلفی ارائه شده است. مهمترین روش ارائه شده روش ترسیم گراف تخصیص منابع می‌یاشد. در خصوص بروز آوری این گراف در حالت توزیع شده مراتب مختلفی مطرح می‌شود که در این مقال نمی‌گنجد. در خصوص روش قفل دو مرحله‌ای متمرکز نیازی به نگهداری توزیع شده این گراف و تکنیکهای بروزآوری آن نمی‌باشد و لی در سایر انواع روشهای قفل دو مرحله‌ای به نگهداری این گراف و مدیریت نگهداری آن و تصمیم گیری بر اساس آن نیاز مبرم وجود دارد.

4-نتیجه گیری :.در این گزارش با توجه به توسعه سیستمهای پایگاه‌ توزیعی، بحث کنترل همروندی و صحت و مانایی اطلاعات در حضور همروندی مطرح می‌شود. در بین سه روش پایه ای  موجود برای کنترل همروندی، یعنی روشهای قفل دو مرحله‌ای، برچسب زمانی متوالی و روش خوش بینانه، روش قفل دو مرحله ای مورد تجزیه و تحلیل قرار گرفت. در این خصوص یک مقدمه برای تشریح مساله کنترل همروندی بیان شد.

در این گزارش مزایای روش قفل دو مرحله‌ای بیان شده و علل صحت این روش تشریح شده است. نهایتا میتوان گفت از آنجائیکه این روش از نظر صحت عملکرد کاملا اثبات شده است، می‌تواند در پایگاه داده‌های توزیعی مورد استفاده قرار گیرد.

 

5-تقدیر و تشکر : بر خود لازم می‌دانیم، از راهنمایی‌ها و کمکهای جناب آقای دکتر مسعود رهگذر، استادیار گروه مهندسی برق و کامپیوتر دانشکده فنی دانشگاه تهران و نیز جناب آقای مهندس مهدی عمادی، تشکر و قدردانی نمائیم.

 


6-منابع و مآخذ :

[1] M. Blakey, “Models a Very Large Distributed Database”, ACM Transactions on Computer Systems, Vol. 10, No. 6. 1992

[2] P. A. Bernstein and N. Goodman, ”Concurrency Control in Distributed Database Systems”, Computing Surveys, Vol. 13, No. 2, June 1981

[3] M. J. Carey and M. Livny “Distributed Concurrency Control Performance: A Study of Algorithms, Distribution, and Replication”, 14th VLDB Conference Los Angeles, California 1988

[4] P.A. Franaszek, J. T. Robinson and Thomson, “Concurrency Control for High Contention Environments” ACM Transactions on Database Systems, 1992

[5] A. Thomasian, “Performance Limits of Two-Phase Locking”. IEEE International Conference on Data Engineering, 1991

[6] M.J. Carey, and M. Livny “Parallelism and Concurrency Control Performance in Distributed Database Machines”, 1989 ACM SIGMOD, 1989

[7] Kj. Norvag, O. Sansta and K. Bratbergsengen, “Concurrency Control in Distributed Object-Oriented Database Systems”, Advances in Database and Information Systems, 1997

 

 

 


دانلود با لینک مستقیم


تحقیق در مورد الگوریتم