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

تست سیستم عامل- ۷۶ کامپیوتر ۸۶ - reyhaneh64 - 08 دى ۱۳۹۰ ۰۷:۲۲ ب.ظ

[attachment=2128]

سوال ضمیمه شده
پاسخ گزینه ۲ هست.
دلیل نادرستی گزینه ۳ چیه؟
به چه ترتیبی وقفه بیاد امکان نوشتن در بافر پر وجود داره یا انحصار متقابل برقرار نیست؟
مرسی

RE: سوال ۷۶ سیستم عامل‌، کامپیوتر ۸۶ - homa - 08 دى ۱۳۹۰ ۰۸:۵۰ ب.ظ

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

وقتی جمله ایی یک قسمتش غلط باشه نمیشه گفت جمله‌ی درستیه

جمله اول و چهارم غلطه چون:امکان بن بست وجود داره ،فرض کن اول مصرف کننده اجرا میشه و میبینه بافر خالیه اما قبل از اینکه بخوابه وقفه می خوره و نویسنده اجرا میشه و تو if دوم تو برنامه نویسنده چون الان یکی تو بافر نوشتیم به مصرف کننده سیگنال بیدار باش میده اما این سیگنال از بین میره چون اصلا مصرف کننده نخوابیده و حالا اینجا وقفه میخوره و مصرف کننده اجرا میشه و به خواب میره و تولید کننده همینجور به بافر اضافه میکنه تا اینکه خودش هم با پر شدن بافر به خواب میره
جمله‌ی سوم غلطه چون انحصار متقابل رعایت نمیشه،منبع بحرانی ما بافر هست که هر دو یک زمان می تونن بهش دسترسی پیدا کنن.
ولی قسمت اول جمله‌ی چهارم و سوم درسته چون مصرف کننده هیچ وقت نمیتونه از بافر خالی بخونه و تولید کننده هم نمی تونه تو بافر پر بنویسه

RE: سوال ۷۶ سیستم عامل‌، کامپیوتر ۸۶ - reyhaneh64 - 12 دى ۱۳۹۰ ۰۷:۱۹ ب.ظ

انحصار متقابلشو متوجه نمیشم.
به نظرم برقراره
همزمان نمیتونن به بافر دسترسی پیدا کنن.

تشکر

سوال ۷۶ سیستم عامل‌، کامپیوتر ۸۶ - narges_r - 12 دى ۱۳۹۰ ۰۸:۰۶ ب.ظ

همونجور که هما جان گفتن دسترسی همزمان به بافر وجود داره
همین که در وسط اجرای if که شرط ان دسترسی به ناحیه بحرانیست امکان وقفه وجود داره یعنی دسترسی همزمان چون مثلا مصرف کننده در حال خواندن بافر است و درواقع در ناحیه بحرانی که همان بافر هست وقفه ایجاد میشه و همونطور هم که میدونید وقتی وقفه ساعت ایجاد میشه برنامه در جایی که هست متوقف میشه یعنی در اینجا در ناحیه بحرانی در بافر متوقف شده و تولید کننده هم پردازنده را در دست گرفته قادر به استفاده از بافر هست پس هردو مصرف کننده و تولید کننده به ناحیه بحرانی که همان بافر هست دسترسی دارد.

سوال ۷۶ سیستم عامل‌، کامپیوتر ۸۶ - Mohammad-A - 12 دى ۱۳۹۰ ۱۱:۰۱ ب.ظ

در ادامه صحبت دوستان٬ شما به متغیر count نگاه کنید. فرض کنید تولیدکننده تعدادی آیتم تولید کرده. در این هنگام حالا فرض کنید که CPU به مصرف‌کننده رسیده. مصرف‌کننده متغیر Count رو برابر یک مقدار خاصی می‌بینه٬ اما پیش از اینکه بخواد یکی از این متغیر کم کنه٬ دوباره پردازنده به تولیدکننده میرسه و دوباره Count رو یکی زیاد می‌کنه. اینجا مصرف‌کننده متغیر count رو برابر یک مقدار دیگری دیده که در واقعیت به دلیل اینکه پردازنده در زمان خاصی به تولیدکننده رسیده٬ این مقدار درست نیست.

بنابراین انحصار متقابل میتونه جای تردید ایجاد کنه.