مقاله ویژگی ها و کاربرد الگوریتم ها

درخواست حذف این مطلب
مقاله ویژگی ها و کاربرد الگوریتم ها
دسته بندی ریاضی
فرمت فایل doc
حجم فایل 79 کیلو بایت
تعداد صفحات فایل 16
مقاله ویژگی ها و کاربرد الگوریتم ها

فروشنده فایل

کد کاربری 4152

*مقاله ویژگی ها و کاربرد الگوریتم ها*

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

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

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

1. کاربراان ممکن است به داده هایی که در کامپیوترهای مختلف در سیستم قرار دارند دسترسی پیدا کنند.

2. یک مکانیزم کنترل همروندی در یک کامپیوتر از وضعیت دسترسی در سایر کامپیوترها اطلاعی ندارد.

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

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

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

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

شکل 1 نمایش ح بروز آوری از دست رفته

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

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

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

شکل 2 خواندن اطلاعات نادرست از سیستم

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