سلام
در کتاب مهندسی نرم افزار نوشته اگر Swap به شکل زیر نوشته بشود مشکل انتظار محدود (Bounded Waiting) را حل نمی کند . می شه بگید مشکل کجاست ؟!
key := true;
repeat
swap(lock,key);
until key = false;
Creitical section
lock := false
سلام
در کتاب مهندسی نرم افزار نوشته اگر Swap به شکل زیر نوشته بشود مشکل انتظار محدود (Bounded Waiting) را حل نمی کند . می شه بگید مشکل کجاست ؟!
key := true;
repeat
swap(lock,key);
until key = false;
Creitical section
lock := false
فرض کنید پروسه ای در زمانی که قفل را بدست می اورد قبل از شرط until وقفه بخورد ، در این زمان پروسه دیگری می تواند قفل را بگیرد و شرط بر قرار نمی شود و در این صورت این پروسه به مشکل انتظار محدود بر می خورد.
موفق باشید
To follow the path:
Look to the master
Follow the master
Walk with the master
See through the master
Become the master
بعد از Swap اگر وقفه بیاد Lock مقدارش true شده , پروسه دوم چطوری می تونه قفل را بگیره؟؟؟!!
اولا ممنون از اینکه جواب می دهید.
منظورم انتظار مشغول نبود که بخوام با سمافور حلش کنم ,
در این کتاب دو روش TSL و Swap را پشت هم توضیح داده و یک کد اولیه برای هردو نوشته بعد گفته هر دو این روشها مشکل Bounded Waiting دارند . بعد طرز استفاده درست از TSL را نوشته ولی SWAP را ننوشته و توضیحی هم نداده !!!!!