تابع MAXrequ3Select وضعیت تراکنش شماره سه را از نوع colset MODE به عنوان پارامتر اول می‌گیرد و شماره درخواست هر سه تراکنش را از نوع colset REQUEST به عنوان پارامترهای دوم، سوم و چهارم می‌گیرد. این تابع با توجه به وضعیت تراکنش شماره سه و شماره درخواست‌های همه تراکنش‌ها، شماره درخواستی را برای تراکنش سه که به حالت انتظار رفته است ایجاد می‌کند. اگر تراکنش سه تازه به حالت انتظار رفته است، شماره درخواست جدید برای آن در نظر گرفته می‌‎شود؛ به طوری که به بزرگ‌ترین شماره درخواست، یک واحد اضافه می‌شود و شماره درخواست تراکنش سه معین می‌شود. ولی اگر تراکنش سه قبلاً در حالت انتظار بوده است دیگر برای آن شماره درخواست جدیدی ایجاد نخواهد شد و شماره درخواست آن همان شماره قبلی خواهد ماند.
دانلود پایان نامه

 

    • تابع MAXrequ2Select

 

تابع MAXrequ2Select وضعیت تراکنش شماره دو را از نوع colset MODE به عنوان پارامتر اول می‌گیرد و شماره درخواست هر سه تراکنش را از نوع colset REQUEST به عنوان پارامترهای دوم، سوم و چهارم می‌گیرد. این تابع با توجه به وضعیت تراکنش شماره دو و شماره درخواست‌های همه تراکنش‌ها، شماره درخواستی را برای تراکنش دو که به حالت انتظار رفته است ایجاد می‌کند. اگر تراکنش دو تازه به حالت انتظار رفته است، شماره درخواست جدید برای آن در نظر گرفته می‌‎شود؛ به طوری که به بزرگ‌ترین شماره درخواست، یک واحد اضافه می‌شود و شماره درخواست تراکنش دو معین می‌شود. ولی اگر تراکنش دو قبلاً در حالت انتظار بوده است دیگر برای آن شماره درخواست جدیدی ایجاد نخواهد شد و شماره درخواست آن همان شماره قبلی خواهد ماند.

 

    • تابع MAXrequ1Select

 

تابع MAXrequ1Select وضعیت تراکنش شماره یک را از نوع colset MODE به عنوان پارامتر اول می‌گیرد و شماره درخواست هر سه تراکنش را از نوع colset REQUEST به عنوان پارامترهای دوم، سوم و چهارم می‌گیرد. این تابع با توجه به وضعیت تراکنش شماره دو و شماره درخواست‌های همه تراکنش‌ها، شماره درخواستی را برای تراکنش یک که به حالت انتظار رفته است ایجاد می‌کند. اگر تراکنش یک تازه به حالت انتظار رفته است، شماره درخواست جدید برای آن در نظر گرفته می‌‎شود؛ به طوری که به بزرگ‌ترین شماره درخواست، یک واحد اضافه می‌شود و شماره درخواست تراکنش یک معین می‌شود. ولی اگر تراکنش یک قبلاً در حالت انتظار بوده است دیگر برای آن شماره درخواست جدیدی ایجاد نخواهد شد و شماره درخواست آن همان شماره قبلی خواهد ماند.

 

    • تابع MAXtespSelect

 

تابع MAXtespSelect زمان‌مهر هر سه تراکنش را از نوع colset TIMESTAMP می‌گیرد. این تابع با توجه به زمان‌مهر هر سه تراکنش، یک زمان‌مهر جدید را برای هر تراکنشی که طرد شده است ایجاد می‌کند. به طوری که به بزرگ‌ترین زمان‌مهر، یک واحد اضافه می‌شود و زمان‌مهر تراکنش مورد نظر معین می‌شود.

 

    • تابع checklock برای مدل‌های WW و WD

 

تابع checklock مهمترین تابع مدل‌های WW و WD است که در شکل ۵-۵، دیده می‌شود.
فرض می‌کنیم TS(Ti) زمان‌مهر تراکنش Ti باشد و TS(Tj) زمان‌مهر تراکنش Tj باشد.
برای مدل WD تابع checklock بررسی می‌کند که اگر TS(Ti)<TS(Tj) باشد، آنگاه Ti که خواهان قفل روی داده است انتظار می‌کشد تا Tj به اتمام برسد، در غیر این صورت Ti طرد می‌شود تا دیرتر با مقدار زمان‌مهر جدید دوباره وارد سیستم شود و شروع به کار کند.
برای مدل WW تابع checklock بررسی می‌کند که اگر TS(Ti)<TS(Tj) باشد و Tj روی داده قفل داشته باشد آنگاه Tj طرد می‌شود، در واقع داده از Tj گرفته می‌شود و به Ti که قدیمی‌تر است داده می‌شود. اما اگر این شرط برقرار نباشد Ti باید انتظار بکشد. همچنین وضعیت تراکنش‌ها برای انجام مراحل بعدی را نیز مشخص می‌کند.
در جدول ۵-۵، پارامترهای ورودی تابع checklock برای مدل‌های WW و WD را مشاهده می‌نمایید.
جدول ۵-۵- پارامترهای ورودی تابع checklock برای مدل‌های WW و WD

 

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


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