بدیهی است وقتی نخ توسط نخ دیگری کشته می شود که آن نخ (کشنده) در حال اجرا است (نه نخی که قرار است کشته شود) یا توسط سیستم کشته می شود (خاتمه غیر عادی) در هر وضعیتی که باشد چه اماده چه مسدود چه ... کشته شده و به وضعیت خاتمه می رود.
اما چرا گزینه ۳ به طور عام (مثلا برای نخ های سطح هسته و ترکیبی) نمی تواند درست باشد.
این امر بدیهی است که فرایندی که در وضعیت اماده است و CPU ندارد چگونه ممکن است به وضعیت waiting (یا با واژه کتاب های دیگر Blocked یا Asleep) برود و منتظر یک رویداد مثل تکمیل l/O شود. اصلا اجرا نمی شود که درخواست ورودی کند.
Stallings:
این امر بدیهی است که فرایندی که در وضعیت اماده است و CPU ندارد چگونه ممکن است به وضعیت waiting (یا با واژه کتاب های دیگر Blocked یا Asleep) برود و منتظر یک رویداد مثل تکمیل l/O شود. اصلا اجرا نمی شود که درخواست ورودی کند.
Stallings:
در وضعیت waiting نخ مسدود شده و منتظر یک رویداد مثل تکمیل I/O است. در وضعیت Transition یک نخ ممکن است مثلا پشته اش بیرون حافظه باشد و منتظر آن منبع باشد در وضعیت standby نیز نخ منتظر ایستاده تا پردازنده در دسترس قرار گیرد. پس منظور طراح نمی تواند از انتظار standby باشد چون ما n جور انتظار داریم اما کلمه فارسی انتظار در بین وضعیت ها ترجمه waiting است و ما نمی توانیم برای وضعیت ها نامگذاری دلخواه کنیم.
طبق کتاب سیلبرشاتز نیز کلمه Waiting به وضعیت blocked یا Asleep اطلاق می شود:
یعنی نخی که در حال اجرا نیست می تواند توسط یک نخ دیگر در حال اجرا cancel شود و فورا terminate شود (خاتمه یابد). در نوع Asynchronous Cancellation نخ توسط نخ دیگر کشته شده و فورا خاتمه می یابد (درستی واضح گزینه ۱) اما در نوع Deferred Cancellation نخ هدف (مقتول) باید اجرا شود و چک کند و در صورت لزوم خودش را بکشد و از حالت اجرا به خاتمه می رود که به گزینه ۱ ربطی ندارد.
ممکن است طراح به وضعیت مسدود شدن کل یک فرایند و حتی نخ های آماده درون آن در فراخوان های سیستمی مسدود کننده در نخ های سطح کاربر نیز توجه کرده باشد. این یک حالت خاص است و در همه نخ ها درست نیست و نمی توان مطلب را به کل سیستم های نخ تعمیم داد. در این صورت هم باید گزینه های ۱ و ۲ و ۳ هر سه درست اعلام شوند و فقط گزینه ۴ است که بی معنی است!
۹۹- قبلا هم گفتم که این سوال ناقص است و Tmem داده نشده و قابل حل نیست. حتما در سایت سنجش درخواست کنید این سوال حذف شود.
۱۰۰- گزینه ۴ درست است.
فکر می کردم طراح مثل تست ۶ فصل ۶ بن بست کتاب خودم که دو بار در کنکور سراسری آمده بود اشتباه می کند و گزینه ۱ را اعلام می کند. این اشتباه در بین برخی از اساتید کشور رایج شده و دو بار در کنکور هم به اشتباه آمده که نا امن یعنی وقوع قطعی بن بست!
خوشحالم که این بار طراح درست فکر کرده و بالاخره فهمیدیم که نا امن یعنی ریسک و احتمال بن بست 😃
فکر می کردم طراح مثل تست ۶ فصل ۶ بن بست کتاب خودم که دو بار در کنکور سراسری آمده بود اشتباه می کند و گزینه ۱ را اعلام می کند. این اشتباه در بین برخی از اساتید کشور رایج شده و دو بار در کنکور هم به اشتباه آمده که نا امن یعنی وقوع قطعی بن بست!
خوشحالم که این بار طراح درست فکر کرده و بالاخره فهمیدیم که نا امن یعنی ریسک و احتمال بن بست 😃