تالار گفتمان مانشت
سمافور - نسخه‌ی قابل چاپ

سمافور - *tarannom* - 18 فروردین ۱۳۹۶ ۱۰:۵۹ ق.ظ

بچه ها این گزینه ۲ میشه یا یک. ؟؟؟
اول که ۱۵ تا پشت x میمونه پشت y تو ناحیه a هیچی نیست بعد تو ناحیه b،پنج تاست .بعد اگه این پنج تا یکی یکی اجرا شن آپ x رو رد کنن پنجتا میاد تو ناحیه a, پس الان پشت y,پنج تا گیره که تا آپ yاجرا نشه اینا رد نمیشن. پس چرا زده گزینه ۲
[attachment=21535]

RE: سمافور - shahraz - 18 فروردین ۱۳۹۶ ۰۱:۴۷ ب.ظ

(۱۸ فروردین ۱۳۹۶ ۱۰:۵۹ ق.ظ)*tarannom* نوشته شده توسط:  بچه ها این گزینه ۲ میشه یا یک. ؟؟؟
اول که ۱۵ تا پشت x میمونه پشت y تو ناحیه a هیچی نیست بعد تو ناحیه b،پنج تاست .بعد اگه این پنج تا یکی یکی اجرا شن آپ x رو رد کنن پنجتا میاد تو ناحیه a,
تا این قسمت از تحلیلتون درسته
ولی
(۱۸ فروردین ۱۳۹۶ ۱۰:۵۹ ق.ظ)*tarannom* نوشته شده توسط:  پس الان پشت y,پنج تا گیره که تا آپ yاجرا نشه اینا رد نمیشن. پس چرا زده گزینه ۲

این قسمت از تحلیلتون درست نیست چون در این لحظه سمافور y مقدارش صفر نیست و برابر با ۵ هست. به همین دلیل اون ۵ تا پردازه ای که وارد ناحیه A شدن، پشت y منتظر نمی مونن و ازش رد می شن. در نتیجه پشت سمافور y هیچ پردازه ای منتظر نمی مونه و گزینه ۲ درسته
................................................................................​..................
توضیحات کامل:

در این تست مقدار اولیه سمافور y برابر با ۱۰ و مقدار اولیه سمافور x برابر با ۵ هست. ۲۰ تا پردازه داریم که قراره قطعه کد مطرح شده در سوال رو اجرا کنن.

در خط اول ، به دلیل اینکه مقدار اولیه سمافور x برابر با ۵ هست، ۵ تا پردازه اول که این خط رو اجرا می کنن، وارد ناحیه A میشن و مقدار سمافور x برابر با صفر میشه . در نتیجه ۱۵ تا پردازه بعدی به دلیل اینکه مقدار سمافور x صفر شده، پشت سمافور x منتظر می مونن.

در خط سوم، ۵ تا پردازه ای که خط اول رو اجرا کرده بودن و وارد ناحیه A شده بودن، به دلیل اینکه مقدار اولیه سمافور y برابر با ۱۰ هست، هر ۵ تا، این خط رو اجرا می کنن و وارد ناحیه B میشن. در نتیجه: ۱)مقدار سمافور y برابر با ۵ میشه ۲) تا اینجا هیچ پردازه ای پشته سمافور y منتظر نمی مونه.

در خط پنجم اون ۵ تا پردازه ای که وارد ناحیه B شدن، با اجرای این خط، ۵ تا از ۱۵ پردازه منتظر پشت سمافور x رو آزاد می کنن. در نتیجه:۱) ۵ تا پردازه جدید وارد ناحیه A میشه .۲) مقدار سمافور x برابر با ۱۰ میشه ۳) ۵ تا پردازه قدیمی وارد ناحیه C میشه.

تا اینجا وضعیت به این صورته که
۱) ۵ پردازه به ناحیه A وارد شده و مقدار سمافور y برابر با ۵ هست. در نتیجه خط سوم رو اجرا می کنن و وارد ناحیه B میشن و مقدار سمافور y صفر میشه و باز هم هیچ پردازه ای پشت سمافور y منتظر نمی مونه.
۲) ۵ پردازه به ناحیه ناحیه C وارد شده و مقدار سمافور x برابر با ۱۰ هست. در نتیجه خط آخر رو اجرا می کنن و مقدار سمافور y برابر با ۵ میشه.

(در این وضعیت پردازه های ناحیه A و پردازه های ناحیه C با هر ترتیبی ممکنه خط بعدشون رو اجرا کنن، مثلا ممکنه اول، دوتا از پردازه های ناحیه A اجرا شه و بعدش ۳ تا از پردازه های ناحیه C و ..... هر ترتیبی که در نظر بگیرید باز هم پشت سمافور y پردازه ای منتظر نمی مونه و در نهایت مقدار این سمافور برابر با ۵ میشه)

بر اساس توضیحات بالا و با بررسی تاریخچه اجرای این کد توسط ۲۰ پردازه، حداکثر تعداد پردازه های منتظر پشت سمافور x، برابر با ۱۵ و حدکثر تعداد پردازه های منتظر پشت سمافور y برابر با صفر هست.

RE: سمافور - *tarannom* - 18 فروردین ۱۳۹۶ ۰۲:۱۲ ب.ظ

(۱۸ فروردین ۱۳۹۶ ۰۱:۴۷ ب.ظ)chokolat نوشته شده توسط:  
(18 فروردین ۱۳۹۶ ۱۰:۵۹ ق.ظ)*tarannom* نوشته شده توسط:  بچه ها این گزینه ۲ میشه یا یک. ؟؟؟
اول که ۱۵ تا پشت x میمونه پشت y تو ناحیه a هیچی نیست بعد تو ناحیه b،پنج تاست .بعد اگه این پنج تا یکی یکی اجرا شن آپ x رو رد کنن پنجتا میاد تو ناحیه a,
تا این قسمت از تحلیلتون درسته
ولی
(۱۸ فروردین ۱۳۹۶ ۱۰:۵۹ ق.ظ)*tarannom* نوشته شده توسط:  پس الان پشت y,پنج تا گیره که تا آپ yاجرا نشه اینا رد نمیشن. پس چرا زده گزینه ۲

این قسمت از تحلیلتون درست نیست چون در این لحظه سمافور y مقدارش صفر نیست و برابر با ۵ هست. به همین دلیل اون ۵ تا پردازه ای که وارد ناحیه A شدن، پشت y منتظر نمی مونن و ازش رد می شن. در نتیجه پشت سمافور y هیچ پردازه ای منتظر نمی مونه و گزینه ۲ درسته
یعنی چون مقدار سمافور y 10 هست ،۵ تاش رفته ,۵ تاش مونده وقتی ۵ تا میاد تو ناحیه a این ۵ تا رو رد میکنه؟
اگه سمافور y مقدار اولیش ۵ بود اونوقت اون تحلیل قبلی من درست بود؟

RE: سمافور - shahraz - 18 فروردین ۱۳۹۶ ۰۲:۱۶ ب.ظ

(۱۸ فروردین ۱۳۹۶ ۰۲:۱۲ ب.ظ)*tarannom* نوشته شده توسط:  یعنی چون مقدار سمافور y 10 هست ،۵ تاش رفته ,۵ تاش مونده وقتی ۵ تا میاد تو ناحیه a این ۵ تا رو رد میکنه؟
بله دقیقا
(۱۸ فروردین ۱۳۹۶ ۰۲:۱۲ ب.ظ)*tarannom* نوشته شده توسط:  اگه سمافور y مقدار اولیش ۵ بود اونوقت اون تحلیل قبلی من درست بود؟
بله دقیقا

RE: سمافور - *tarannom* - 18 فروردین ۱۳۹۶ ۰۲:۱۶ ب.ظ

من نمیدونم چرا بعضی وقتا مغزمم هنگ میکنه یه چیز به این سادگیو گیر میکنم.Sad مرسی که جواب دادید
متوجه شدم....

RE: سمافور - Saman - 18 فروردین ۱۳۹۶ ۰۲:۲۰ ب.ظ

سلام؛
سپاس بابت پاسخگویی اگر فرصت کردید ممنون میشم سوال رو با توضیحات کامل بنویسید برای مراجعه کاربران بعدی؛ که این سوالم در ردیف سوال درست قرار دهیم
باز هم ممنون

RE: سمافور - shahraz - 18 فروردین ۱۳۹۶ ۰۲:۲۴ ب.ظ

(۱۸ فروردین ۱۳۹۶ ۰۲:۱۶ ب.ظ)*tarannom* نوشته شده توسط:  من نمیدونم چرا بعضی وقتا مغزمم هنگ میکنه یه چیز به این سادگیو گیر میکنم.Sad مرسی که جواب دادید
متوجه شدم....

خواهش می کنم
نگران نباشید دوست عزیز مشکل از شما نیست . بعضی از سوالات مثل این ساده هستن ولی ماهیتا غلط انداز طرح می شن که همه نتونن جواب درست رو به راحتی پیدا کنن. تمرکز سر جلسه خیلی مهمه

RE: سمافور - *tarannom* - 18 فروردین ۱۳۹۶ ۰۲:۲۴ ب.ظ

(۱۸ فروردین ۱۳۹۶ ۰۲:۲۰ ب.ظ)samanbeigmiri نوشته شده توسط:  سلام؛
سپاس بابت پاسخگویی اگر فرصت کردید ممنون میشم سوال رو با توضیحات کامل بنویسید برای مراجعه کاربران بعدی؛ که این سوالم در ردیف سوال درست قرار دهیم
باز هم ممنون

الان من باید کاری کنم یا خانم شکلات؟!

(۱۸ فروردین ۱۳۹۶ ۰۲:۲۴ ب.ظ)chokolat نوشته شده توسط:  
(18 فروردین ۱۳۹۶ ۰۲:۱۶ ب.ظ)*tarannom* نوشته شده توسط:  من نمیدونم چرا بعضی وقتا مغزمم هنگ میکنه یه چیز به این سادگیو گیر میکنم.Sad مرسی که جواب دادید
متوجه شدم....

خواهش می کنم
نگران نباشید دوست عزیز مشکل از شما نیست . بعضی از سوالات مثل این ساده هستن ولی ماهیتا غلط انداز طرح می شن که همه نتونن جواب درست رو به راحتی پیدا کنن. تمرکز سر جلسه خیلی مهمه

اره دقیییا موافقم . امیدوارم سرجلسه بتونم تمرکز کنم...