کنترل همروندی
کنترل همروندی [۱] در علوم رایانه به خصوص در مبحث برنامهنویسی (برنامهنویسی همروند، برنامهنویسی موازی)، سیستمعامل (رایانش موازی)، چندپردازها و پایگاه داده تضمین میکند که دستورهای همروند منجر به نتایج درست شوند و روشهایی که با بهکارگیری آنها این نتایج درست را در کوتاهترین زمان ممکن بهدست آورد.
محتویات |
کنترل همروندی خوشبینانه [ویرایش]
کنترل همروندی خوشبینانه از سه مرحله تشکیل شده است.
۱. خواندن [ویرایش]
فرض کنید که فردی در خانه نشسته است و میخواهد یک صفحه از ویکیپدیا را ویرایش کند. فرد مزبور ابتدا بر دکمه ویرایش میفشارد و تغییرات مورد نظر خود را انجام میدهد. این تغییرات در کاشه رایانه قرار دارد. سپس با فشردن دکمه «ذخیره شود» متن ویرایش به سرور ویکیپدیا فرستاده میشود.
۲.تایید [ویرایش]
در سرور نرمافزار مدیاویکی بررسی میکند که آیا ویرایش شما با ویرایش دیگران درگیری دارد یا نه. اگر درگیری وجود داشت الگوریتمی مورد استفاده قرار میگیرد تا درگیری را برطرف سازد. یک راه برای رفع درگیری این است که ویرایش نخست در پایگاه داده ذخیره شود و ویرایشهای درگیر دیگر با فرستادن پیامی برای کاربران موردنظر نادیده انگاشته شود. راه دیگر این است که آن بخشهایی از ویرایش کاربران دیگر که درگیری ندارند نیز ذخیره شوند.
۳.نوشتن [ویرایش]
اگر درگیری وجود نداشت تراکنش انجام میشود.
نمونه این نوع کنترل نرمافزار مدیاویکی است. الگوریتم کنترل آن در اینجا توصیف شده است. نمونه دیگر باگزیلا است (اینجا).
کنترل همروندی بدبینانه [ویرایش]
در این روش به وسیله قفل گذاری جلوی هرگونه همروندی گرفته میشود. تا زمانیکه یک دستور درحال اجراست جلوی اجرای دستوراتی که ممکن است مانع اجرای صحیح دستور نخست شوند گرفته میشود.
پروتوکلها [ویرایش]
۱. قفلگذاری [ویرایش]
قفلگذاری روش بدبینانه کنترل همروندی است. بقیه روشها خوشبینانه هستند. قفل امتیاز دستیابی به یک واحد داده است که توسط سیستم قفل گذاری به یک تراکنش داده میشود و یا از او پس گرفته میشود .
مدیر قفل ممکن است قفلها را به طور پویا و یا ایستا در اختیار تراکنشها قرار دهد . در حالت پویا، مدیر قفل، پیرو درخواست تراکنش اقدام میکند. این روش قفلگذاری پویا موسوم است . در حالت قفلگذاری ایستا، تمام قفلهای لازم برای اجرای یک تراکنش، پیش از اجرا، درخواست میشود و لازمه این روش این است که مجموعه قفلهای مورد نیاز تراکنش، از قبل شناخته شده باشند.
روشهای قفلگذاری [ویرایش]
۲. برچسب زمانی [ویرایش]
۳. تعیین اعتبار [ویرایش]
۴. دانهبندی چندگانه [ویرایش]
۵. نسخهسازی [ویرایش]
مساله بنبست [ویرایش]
کابردها [ویرایش]
کنترل همروندی در پایگاههای داده [ویرایش]
کنترل همروندی در سیستمهای عامل [ویرایش]
در سیستمهای عامل معمولاً چند وظیفه همزمان انجام میشوند. اگر این وظایف مستقل از هم باشند اجرای آنها ساده است اما درصورتیکه درگیر باشند، مثلا نوشتن همروند بر روی یک فایل، در این صورت برای انجام درست وظایف نیاز به کنترل همروندی است وگرنه ممکن است منجر به نتایج ناخواسته شوند.
پانویس [ویرایش]
- ↑ کنترل همزمانی هم گفتهاند
منابع [ویرایش]
- علی عباسی، پروتکلهای کنترل همزمانی، دانشگاه تهران
- علی عباسی، کنترل همروندی، دانشگاه تهران
- (انگلیسی) (۳۷۰ ص) Philip A. Bernstein, Concurrency Control and Recovery in Database Systems, Addison Wesley, 1987
- (انگلیسی) Introduction to Concurrency Control
- (انگلیسی) http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/cejb_cncr.html
- (انگلیسی) http://www.cs.berkeley.edu/~brewer/cs262/kung.pdf
- محمد جعفری فوتمی، تکنیکهای کنترل همروندی
- سیستم مدیریت پایگاه دادهها (مفاهیم و تکنیکها)، سید محمد تقی روحانی رانکوهی، انتشارات جلوه، بهار ۸۶
|
|||||||||||||||||