بسیاری از قابلیت‌ها و عملکردهای مدل CPN بر اساس توابع نوشته شده توسط کاربر به زبان تابعی ML صورت می‌گیرد (Paulson, 1996)، (Harper, Rothwell, and Mitchell, 1989)، (Gilmore, 1997) و (Harper, 2001). در این بخش، همه‌ی توابع مدل و عملیات آن‌ها توصیف شده است.
شرح توابع مشترک بین مدل‌های ۲PL، WW و WD
توابع بیان شده در زیر در هر سه مدلِ طراحی شده استفاده شده‌اند.

    • تابع getTransIndex

تابع getTransIndex یک شناسه تراکنش را از نوع colset TRANSACTION به عنوان پارامتر اول دریافت می‌کند و یک لیست از تراکنش‌ها را از نوع colset TRANSLIST به عنوان پارامتر دوم می‌گیرد و شاخص موقعیت تراکنش در لیست را برمی‌گرداند، توجه شود که شمارش از صفر است. اگر لیست شامل این تراکنش نباشد، آنگاه تابع ‘۱-’ را به عنوان نتیجه برمی‌گرداند.

    • تابع eliminateTrans

تابع eliminateTrans یک شناسه تراکنش را با نام T، از نوع colset TRANSACTION به عنوان پارامتر اول می‌گیرد و یک لیست از شناسه‌های تراکنش‌ها را به نام L از نوع colset TRANSLIST به عنوان پارامتر دوم می‌گیرد. اگر تراکنشِ پارامتر اول در لیست تراکنش‌های پارامتر دوم وجود داشت، پس از آن تابع یک لیستی را باز می‌گرداند که با از بین بردن تراکنش T از لیست اولیه ایجاد می‌شود؛ در غیر این صورت، لیست بدون تغییرِ تراکنش‌ها را برمی‌گرداند. به عبارت دیگر تابع eliminateTrans همان لیست تراکنش‌ها را بدون تراکنش T بر می‌گرداند، یعنی تراکنش T را از لیست حذف می‌کند و لیست را برمی‌گرداند.

    • تابع isExists

تابع isExists یک شناسه تراکنش را از نوع colset TRANSACTION به عنوان پارامتر اول می‌گیرد و یک لیست از شناسه‌های تراکنش‌ها را از نوع colset TRANSLIST به عنوان پارامتر دوم می‌گیرد. اگر پارامتر اول، در لیست پارامتر دوم وجود داشته باشد، این تابع مقدار true را برمی‌گرداند؛ در غیر این صورت این تابع false را باز می‌گرداند.
شرح توابع مدل ۲PL
توابع بیان شده در زیر فقط در مدل ۲PL استفاده شده‌اند.

        • تابع checklock برای مدل ۲PL

      (( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))

تابع checklock مهمترین تابع مدل ۲PL است که در شکل ۵-۱ دیده می‌شود.
تابع checklock عملیات اصلی مدل ۲PL را انجام می‌دهد. ۲PL دارای دو مرحله است، مراحل قفل کردن و باز کردن قفل. تابع checklock در زمان‌بندی کردن ۲PL نقش اصلی را دارد. تمام عملیات قفل کردن تراکنش‌ها باید قبل از اولین عمل باز کردن قفل درهمان تراکنش باشد. قفل‌گذاری روی داده‌ها به تدریج که نیاز به دستیابی به آن‌ها پیش می‌آید صورت می‌گیرد و قفل‌گشایی از آن‌ها پس از دریافت تمام قفل‌های تراکنش رخ خواهد داد. اما ۲PL به تنهایی ممکن است باعث بروز بن‌بست شود.
در جدول ۵-۳، پارامترهای ورودی تابع checklock برای مدل ۲PL را مشاهده می‌نمایید.
جدول ۵-۳- پارامترهای ورودی تابع checklock برای مدل ۲PL

پارامتر ورودی نوع colset عملکرد
RAcc ACCESS عملیات مورد نیاز دستور جاری بر روی یک منبع را نشان می‌دهد.
ELock LOCK قفل موجود جاری بر روی منبعی که دستور جاری می‌خواهد عملیات RAcc روی آن داشته باشد را نمایش می‌دهد.
CurT TRANSACTION شناسه تراکنشی که دستور جاری متعلق به آن است را نمایش می‌دهد.
موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...