موضوع مقاله: کنترل همروندی | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # کنترل همروندی | مقدمه: در فناوری اطلاعات و علوم رایانه‌ای، به‌خصوص در شاخه‌های برنامه‌نویسی رایانه‌ای، سیستم عامل، چندپردازشی، و پایگاه‌داده‌ها، کنترل همروندی ، از نتایج تولید شده ناشی از عملیات هم‌زمان اطمینان حاصل کرده، درحالی که سعی می کند در سریع ترین زمان ممکن به نتایج برسد. | ## بخش 1: کنترل همروندی | سیستم‌های رایانه‌ای، چه نرم‌افزاری و چه سخت‌افزاری، شامل ماژول‌ها یا مؤلفه‌هایی اند. هر مؤلفه به گونه‌ای طراحی شده که به طرز صحیحی عمل کند، یعنی، از قوانین سازگاری بخصوصی تبعیت نموده، یا با آن ها تطابق داشته باشند. هنگامی که مؤلفه‌های هم‌روند با یکدیگر به وسیله پیام‌دهی یا اشتراک‌گذاری داده‌های دسترسی شده برهمکنش کنند (در حافظه یا محل ذخیره‌سازی)، هم‌روندی برخی از مؤلفه‌ها ممکن است توسط مؤلفه‌های دیگری مورد تجاوز و تخطی قرار گیرد. به طور کلی، مبحث هم‌روندی به ارائه قواعد، روش‌ها، روش‌شناسی‌های طراحی و نظریاتی می پردازد که به حفظ سازگاری مؤلفه‌های هم‌روندی، طی اجرای عملیاتشان کمک کند؛ بدین طریق سازگاری و صحت کل سیستم حفظ خواهد شد. معرفی کنترل هم‌روندی به یک سامانه، به معنای اعمال محدودیت‌های عملیاتیست که اغلب منجر به کاهش یافتن برخی از کارایی‌های سامانه می گردد. دستیابی به سازگاری عملیاتی و صحت باید تا حد امکان همراه با بهره‌وری باشد، به گونه‌ای که کارایی از حد معقول خاصی کمتر نشود. به عنوان مثال، شکست در کنترل هم‌روندی، ممکن است منجر به خراب‌شدن داده‌ها شود، که ناشی از گسست عملیات خواندن یا نوشتن است. خواندن فرض کنید که فردی در خانه نشسته است و می‌خواهد یک صفحه از ویکی‌پدیا را ویرایش کند. | ## بخش 2: کنترل همروندی | تأیید در سرور نرم‌افزار مدیاویکی بررسی می‌کند که آیا ویرایش شما با ویرایش دیگران درگیری دارد یا نه. اگر درگیری وجود داشت الگوریتمی مورد استفاده قرار می‌گیرد تا درگیری را برطرف سازد. یک راه برای رفع درگیری این است که ویرایش نخست در پایگاه داده ذخیره شود و ویرایش‌های درگیر دیگر با فرستادن پیامی برای کاربران موردنظر نادیده انگاشته شود. راه دیگر این است که آن بخش‌هایی از ویرایش کاربران دیگر که درگیری ندارند نیز ذخیره شوند. کنترل همروندی بدبینانه در این روش به وسیله قفل گذاری جلوی هرگونه همروندی گرفته می‌شود. تا زمانیکه یک دستور در حال اجراست جلوی اجرای دستورهایی که ممکن است مانع اجرای صحیح دستور نخست شوند گرفته می‌شود. قفل امتیاز دستیابی به یک واحد داده است که توسط سیستم قفل گذاری به یک تراکنش داده می‌شود یا از او پس گرفته می‌شود. در حالت قفل‌گذاری ایستا، تمام قفل‌های لازم برای اجرای یک تراکنش، پیش از اجرا، درخواست می‌شود و لازمه این روش این است که مجموعه قفل‌های مورد نیاز تراکنش، از قبل شناخته شده باشند. | ## بخش 3: کنترل همروندی | دانه‌بندی چندگانه اجازه می‌دهد که عناصر داده اندازه‌های متفاوت داشته باشند و یک سلسله مراتب از دانه بندی داده‌ها را تعریف می‌کند، که در ان عناصر کوچکتر در عناصر بزرگتر قرار گرفته‌اند. هنگامی که یک تراکنش یک نود را به صورت صریح قفل می‌کند، تمام نودهای زیر آن را به صورت ضمنی قفل کرده‌است. نشان می‌دهد که در سطوح پایین‌تر قفل اشتراکی یا انحصاری به صورت صریح انجام شده‌است. زیردرخت با ریشه نود به صورت صریح در مد اشتراکی قفل شده‌است وقفل صریح در سطوح پایین‌تر در مد صریح رخ داده است. قفل‌های intention به نود اجازه می‌دهند که در مد انحصاری یا اشتراکی بدون نیاز به چک تمام زیر درخت زیر آن قفل شوند. نسخه‌سازی مسئله بن‌بست کابردها کنترل همروندی در پایگاه‌های داده کنترل همروندی در سیستم‌های عامل در سیستم‌های عامل معمولاً چند وظیفه همزمان انجام می‌شوند. | ## جمع‌بندی | اگر این وظایف مستقل از هم باشند اجرای آن‌ها ساده است اما درصورتی‌که درگیر باشند، مثلاً نوشتن همروند بر روی یک فایل، در این صورت برای انجام درست وظایف نیاز به کنترل همروندی است وگرنه ممکن است منجر به نتایج ناخواسته شوند.