زمان کنونی: ۰۶ دى ۱۴۰۳, ۰۸:۴۶ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

چالش بزرگ -سوال ۷۱ سیستم عامل -دکتر حقیقت

ارسال:
  

lonelyforever پرسیده:

چالش بزرگ -سوال ۷۱ سیستم عامل -دکتر حقیقت

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


ایشون حتی به این فکر نکرده اند که پیاده سازی مصرف کننده و تولید کننده بودن پروسس شماره ۲ به چه نحوی بوده .اگه حتی بوسیله یه نخ پیاده سازی شده باشد باز در صورت سوال مطرح نشده که آیا اول کد مصرف کننده وجود داره یا تولید کننده.
همه دوستان کورکورانه به این حل ایشون اشاره می کنن. از صاحب نظران سیستم عامل خواهش می کنم وارد شوید تو این مسله
شما بفرمایید پروسس شماره ۲ بر چه اساسی کار می کنه ؟ آیا بوسیله دوتا نخ پیاده سازی شده ؟
شما بفرمایید وقتی سوال هیچ اشاره ای به نوع نخ بندی نکرده است چه باید کرد؟
اینجا هم مثل درخت که نیست بگم پیش فرض نخ بندی سطح هسته یا سطح کاربر یا بوسیله پروسس های سبک وزن هستش. باید در صورت سوال مطرح می کرد. بعدش هم شما فرض کنید سطح هسته یا بوسیله پروسس های سبک وزن ( که سیستم عامل های کنونی از آن استفاده می کنند) فرض کنید فرایند اول کل بافر را پر می کند. و سپس فرایند دوم اجرا میشود ( فرایند دوم از دو نخ ، یک نخ تولید کننده و یه نخ مصرف کننده تشکلیل شده است) در صورتی که نخ تولید کنند بخواد شروع کنه وقتی کل بافر پر شده نمی تواند کار کند ( استدلال دوستان این است که اینجا به بن بست می خورد ) اما چرا در نظر نمی گیرید که با بلوکه شدن نخ تولید کننده می توان به نخ مصرف کننده سویچ کرد و این نخ هم از بافر استفاده می کنه . در بدترین حالت دچار گرسنگی برای پروسس شماره ۳ می شود.
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

askary_amir69 پاسخ داده:

معرفت - سوال ۷۱ سیستم عامل

بر اساس تست پارسال که جواب مشخصه و بن بست داره و گرسنگی نداره ! ولی نظر شخصی من این هست که هم گرسنگی داره هم بن بست ! چون اصولا سیستمی که تو بن بست گیر کنه خب براش گرسنگی پیش میاد دیگه !

اما چرا بن بست داره؟ به نظرم واضحه. خب فرض کنید بافر ۱۲ بیش از حد رشد کنه و فضای مشترک رو پر کنه ، حالا فرآیند ۲ میخواد از این اطلاعات بهره ببره و بافر ۲۳ رو پر کنه ولی متاسفانه جایی نداره تا بافر ۲۳ رو بسازه ، در همین جا سیستم تو بن بست گیر میکنه و هرگز بافر ۲۳ ایجاد نمیشه تا بعد از اون بافر ۱۲ خالی شه و کار همین طور پیش بره .

خیلی ممنون
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

lonelyforever پاسخ داده:

معرفت - سوال ۷۱ سیستم عامل

باز که شما هم حفظ کردید.
خوب شما میگید پروسس ۲ میخواد استفاده کنه !!!! وقتی میخواد استفاده کنه از چی استفاده می کنه !!! از داده های توی بافر ۱۲ . و جا خالی میشه که برای بافر ۲۳/ دقت کنید لطفا
نقل قول این ارسال در یک پاسخ

ارسال:
  

samira پاسخ داده:

RE: معرفت - سوال ۷۱ سیستم عامل

(۱۰ اسفند ۱۳۹۰ ۱۰:۲۹ ق.ظ)lonelyforever نوشته شده توسط:  باز که شما هم حفظ کردید.
خوب شما میگید پروسس ۲ میخواد استفاده کنه !!!! وقتی میخواد استفاده کنه از چی استفاده می کنه !!! از داده های توی بافر ۱۲ . و جا خالی میشه که برای بافر ۲۳/ دقت کنید لطفا

سلام
متاسفانه من هم مثل شما اشتباه زدمSad
ولی به گفته دوست قبلی ،توجه کنید.
اگه قبل از اینکه پروسس ۲ بخواد از بافر ۱۲ استفاده کنه ،دستوری وجود داشته باشه که نیاز به بافر ۲۳ داشته باشه ،پس بن بست رخ میده
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

lonelyforever پاسخ داده:

معرفت - سوال ۷۱ سیستم عامل

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

واقعا این یه چالش هستش. لطفا جواب بدید.
نقل قول این ارسال در یک پاسخ

ارسال:
  

samira پاسخ داده:

RE: معرفت - سوال ۷۱ سیستم عامل

(۱۰ اسفند ۱۳۹۰ ۰۲:۴۶ ب.ظ)lonelyforever نوشته شده توسط:  ببینید من باز روی این فکر کردم
شما میگید پروسس ۲ از دو قسمت تولید کننده ومصرف کننده تشکلیل شده میشه بفرمایید ترتیب کد انها چه جوری؟
ایا فقط یه نخ هست؟
فرض کنیم بوسیله دو نخ پیاده سازی شده باشد یه نخ برای تولید۳۲ و یه نخ برای مصرف بافر ۱۲/
طبق فرض شما فرایند شماره ۱ بافر رو کامل پر میکنه
نوبت به فرایند ۲ میرسه اون هم نخ تولید کننده و وقتی می بینه جای وجود نداره بلوک میشه . خوب اگه نخ اول بلوک بشه و در حالتی باشه ( نخ بندی سطح کاربر نباشد ، یا سطح هسته یا همون حالت سوم "فرایند سبک وزن") ایا امکان نداره که سویچ بشه به نخ مصرف کننده فرایند شماره ۲ ؟

واقعا این یه چالش هستش. لطفا جواب بدید.

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

۰
ارسال:
  

pos پاسخ داده:

معرفت - سوال ۷۱ سیستم عامل

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

۰
ارسال:
  

lonelyforever پاسخ داده:

معرفت - سوال ۷۱ سیستم عامل

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

۰
ارسال:
  

pos پاسخ داده:

معرفت - سوال ۷۱ سیستم عامل

یعنی جواب ایشان منطقی نبود؟

من جواب آقای حقیقت را خواندم و به نظرم کاملا منطقی اومد. نظر شما را هم خواندم ولی حقیقتش اصلا نفهمیدم چی گفتین! یک هو توپولف اومد و بافر پر شد؟ فکر کنم اگر نوشتتان را علامت گذاری کنین بهتر معلوم باشه.
توی همین جواب خودتان هم به نظر میاد یک حالت را گفتین دچار بن بست میشه. خوب وقتی یک حالت دچار بن بست بشه تمام هست دیگه. وقتی میگه دچار بن بست میشه منظور این نیست که همیشه به بن بست می خوره. منظور این هست که احتمال وقوعش هست. حتی کدی که دکر توی ستوم اش ارائه داده، به اینصورت هست که توی آن ها امکان وقوع بن بست وجود داره(سوم بود یا چهارم؟) و نه اینکه حتما بن بست زخ میده. ممکن هست شما کدی با شیوه تلاش سوم دکر بنویسی و تو هزار بار اجرا هم دچار بن بست نشه ولی دفعه هزار و یکم دچار ین بست بشه.
نقل قول این ارسال در یک پاسخ

ارسال: #۱۰
  

lonelyforever پاسخ داده:

RE: معرفت - سوال ۷۱ سیستم عامل

(۱۱ اسفند ۱۳۹۰ ۰۲:۱۳ ق.ظ)pos نوشته شده توسط:  یعنی جواب ایشان منطقی نبود؟

من جواب آقای حقیقت را خواندم و به نظرم کاملا منطقی اومد. نظر شما را هم خواندم ولی حقیقتش اصلا نفهمیدم چی گفتین! یک هو توپولف اومد و بافر پر شد؟ فکر کنم اگر نوشتتان را علامت گذاری کنین بهتر معلوم باشه.
توی همین جواب خودتان هم به نظر میاد یک حالت را گفتین دچار بن بست میشه. خوب وقتی یک حالت دچار بن بست بشه تمام هست دیگه. وقتی میگه دچار بن بست میشه منظور این نیست که همیشه به بن بست می خوره. منظور این هست که احتمال وقوعش هست. حتی کدی که دکر توی ستوم اش ارائه داده، به اینصورت هست که توی آن ها امکان وقوع بن بست وجود داره(سوم بود یا چهارم؟) و نه اینکه حتما بن بست زخ میده. ممکن هست شما کدی با شیوه تلاش سوم دکر بنویسی و تو هزار بار اجرا هم دچار بن بست نشه ولی دفعه هزار و یکم دچار ین بست بشه.

دوست عزیز شما بفرمایید پروسس شماره ۲ بر چه اساسی کار می کنه ؟ آیا بوسیله دوتا نخ پیاده سازی شده ؟
شما بفرمایید وقتی سوال هیچ اشاره ای به نوع نخ بندی نکرده است چه باید کرد؟
شما چرا دقیق به سوال ریز نمی شوید دوستان گرامی؟
اینجا هم مثل درخت که نیست بگم پیش فرض نخ بندی سطح هسته یا سطح کاربر یا بوسیله پروسس های سبک وزن هستش. باید در صورت سوال مطرح می کرد. بعدش هم شما فرض کنید سطح هسته یا بوسیله پروسس های سبک وزن ( که سیستم عامل های کنونی از آن استفاده می کنند) فرض کنید فرایند اول کل بافر را پر می کند. و سپس فرایند دوم اجرا میشود ( فرایند دوم از دو نخ ، یک نخ تولید کننده و یه نخ مصرف کننده تشکلیل شده است) در صورتی که نخ تولید کنند بخواد شروع کنه وقتی کل بافر پر شده نمی تواند کار کند ( استدلال دوستان این است که اینجا به بن بست می خورد ) اما چرا در نظر نمی گیرید که با بلوکه شدن نخ تولید کننده می توان به نخ مصرف کننده سویچ کرد و این نخ هم از بافر استفاده می کنه . در بدترین حالت دچار گرسنگی برای پروسس شماره ۳ می شود.
اگه استدلالی دارید بفرمایید و از تکرار حفظیات اجتناب کنید
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۱
  

sadjad_t پاسخ داده:

چالش بزرگ -سوال ۷۱ سیستم عامل -دکتر حقیقت

منم تا همین چند لحظه پیش فکر می کردم که این سوال غلطه. ولی الان کاملا توجیه شدم!
ببین این حالتی که توی کتاب توضیح داده یه همچین چرخه ی انتظاری رو ایجاد می کنه:
P2->P3->P2
نکته کلیدی حل اینه که ممکنه P2 یه محصول P1 رو از روی بافر برداره اما بلافاصله محصول خودش رو در بافر نذاره! یعنی دوباره کنترل اجرا به P1 برگرده و اون یه جای خالیه که P2 برای خودش ایجاد کرده رو پر کنه! بدین صورت P2 منتظره که P3 بافرو خالی کنه در حالی که چیزی براش تولید نکرده!
نکته دیگه هم اینه که این مسئله با مسئله تولیدکننده مصرف کننده کلا متفاوته! در اون مسئله ما پردازه‏های مختلف از نوع تولیدکننده و مصرف کننده داریم! اینجا ما کلا ۳ تا پردازه داریم که همه تک نسخه این! بنابراین گرسنگی و این‏ها معنی نداره اصلا توش!
امیدوارم متوجه شده‏باشی دوست عزیز!
نقل قول این ارسال در یک پاسخ

ارسال: #۱۲
  

lonelyforever پاسخ داده:

RE: چالش بزرگ -سوال ۷۱ سیستم عامل -دکتر حقیقت

(۱۱ اسفند ۱۳۹۰ ۰۱:۱۴ ب.ظ)sadjad_t نوشته شده توسط:  منم تا همین چند لحظه پیش فکر می کردم که این سوال غلطه. ولی الان کاملا توجیه شدم!
ببین این حالتی که توی کتاب توضیح داده یه همچین چرخه ی انتظاری رو ایجاد می کنه:
P2->P3->P2
نکته کلیدی حل اینه که ممکنه P2 یه محصول P1 رو از روی بافر برداره اما بلافاصله محصول خودش رو در بافر نذاره! یعنی دوباره کنترل اجرا به P1 برگرده و اون یه جای خالیه که P2 برای خودش ایجاد کرده رو پر کنه! بدین صورت P2 منتظره که P3 بافرو خالی کنه در حالی که چیزی براش تولید نکرده!
نکته دیگه هم اینه که این مسئله با مسئله تولیدکننده مصرف کننده کلا متفاوته! در اون مسئله ما پردازه‏های مختلف از نوع تولیدکننده و مصرف کننده داریم! اینجا ما کلا ۳ تا پردازه داریم که همه تک نسخه این! بنابراین گرسنگی و این‏ها معنی نداره اصلا توش!
امیدوارم متوجه شده‏باشی دوست عزیز!

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

۰
ارسال: #۱۳
  

lonelyforever پاسخ داده:

چالش بزرگ -سوال ۷۱ سیستم عامل -دکتر حقیقت

مرسی و ممنون که با دقت نوشته ها و این چالش ذهنی که پیش امده بود رو خوندید و دقت کردین جناب sadjad_t
واقعا سپاسگذارام. من قبول دارم با این فرضیات که من درذهن داشتم سیستم دچار بن بست نمی شود و به نوشته ها و فرضیات شما که نزدیکتر به صورت سوال هستش احترام میگذارم.به هر حال ما باید از خودمون شروع کنیم و تو ساختاری که بزرگ شدیم با مفاهیم دمکراسی و بحث مثبت زیاد آشنامون نکردن اما من اینجا صادقانه میگم هرچند این بر خلاف خواسته ذهنی من هستش اما صاقانه میگم که فرضیاتی که شما ارائه دادید به صورت سوال نزدیکتره از فرضیات ذهن من. البته هنوز هم تا حدودی اعتقاد دارم که این سوال یه مقدار ناقص طرح شده نمونه اش همون ترتیب "اینجای چیزی مطرح نشده که حتما فرایند ۲ برای تولید داده برای فرایند ۳ باید حتما از داده های تولید شده توسط فرایند ۱ استفاده کنه" و یا همون صحبت شما " اگه فرایند ۲ شروع کننده باشه و ... چند تا اشکال از این حدود "

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

۰
ارسال: #۱۴
  

lonelyforever پاسخ داده:

چالش بزرگ -سوال ۷۱ سیستم عامل -دکتر حقیقت

مشکلی که من داشتم در نحوه پیاده سازی پروسس شماره ۲ هستش که چطوری پیاده سازی شده. " چون گفته از فرایند p1 استفاده می کند و فرایند ۳ هم از ۲ استفاده می کند " و دقیقا اشاره نشده که آیا توسط دو نخ پیاده سازی شده یا توسط یه نخ !!!! بعدش هم در صورت سوال اشاره نشده که تولیدی های ۲ دقیقا وابسته به بافر ۱۲ است یعنی نگفته که پروسس شماره۲ اولم میاد داده ای رو از بافر اول میخونه بعد کارهاش رو روش انجام میشه و بعد تبدیل میکنه به داده ای برای بافر ۲۳ . در واقعا نحوه کار پروسس شماره ۲ هیچ گونه داده ای داده نشده باشه. طرف هم فکر کرد ما حتما خودمون باید بدونیم !!! . در حالی که از روی صورت سوال میشه چیزی غیر اون رو فرض کرد. یعنی واقعا ما از کجا باید علم غیب داشته باشید که تولید بافر ۲۳ وابسته به خواند از بافر ۱۲ است و اینکه کل این دو کار توسط یه نخ پیاده سازی شده در حالی که اگه دو نخ متفاوت باشه هرگز بن بست پیش نمیاید. !!! بعدش هم بادر نظر گرفتن توسط یه نخ هم من خودم حاضرم جوری پیاده سازی کنم که هرگز بن بست بوجود نیاد. یعنی دقیقا اینطوری نباشه که اول حتما باید داده ای خونده بشه و بعد داده ای تولید بشه. میشه با یه " if " نا قابل که پر بودن بافر ۱۲ رو چک کنه از بوجود امدن بن بست جلوگیری کرد.
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۵
  

n_alaie پاسخ داده:

چالش بزرگ -سوال ۷۱ سیستم عامل -دکتر حقیقت

با سلام خدمت همه دوستان
هر چند من این سوال را اشتباه زدم
اما اگر به صورت سوال نگاه کنیم گفته شده که بافر روی "دیسک" پیاده سازی شده یعنی یک عمل IO بنابراین در هر لحظه
دو فرایند از IO استفاده می کند بنابراین بن بست روی میدهد
اما اگر بافر روی RAM پیاده سازی شده باشد بن بست روی نمی دهد
در مورد گرسنگی هم - گرسنگی زمانی رخ میدهد که پروسس نتواند از پردازنده استفاده کند ، در صورتی در این ساختار هر سه پروسس به راحتی می توانند از پردازنده استفاده کنند
نقل قول این ارسال در یک پاسخ

ارسال: #۱۶
  

lonelyforever پاسخ داده:

RE: چالش بزرگ -سوال ۷۱ سیستم عامل -دکتر حقیقت

(۱۳ اسفند ۱۳۹۰ ۱۲:۱۷ ب.ظ)n_alaie نوشته شده توسط:  با سلام خدمت همه دوستان
هر چند من این سوال را اشتباه زدم
اما اگر به صورت سوال نگاه کنیم گفته شده که بافر روی "دیسک" پیاده سازی شده یعنی یک عمل IO بنابراین در هر لحظه
دو فرایند از IO استفاده می کند بنابراین بن بست روی میدهد
اما اگر بافر روی RAM پیاده سازی شده باشد بن بست روی نمی دهد
در مورد گرسنگی هم - گرسنگی زمانی رخ میدهد که پروسس نتواند از پردازنده استفاده کند ، در صورتی در این ساختار هر سه پروسس به راحتی می توانند از پردازنده استفاده کنند


"گرسنگی زمانی رخ میدهد که پروسس نتواند از پردازنده استفاده کند" واقعا شما این رو از رو چی برداشت کردید؟ گرسنگی تو این سوال به این معنی هستش که فرایند cpu در اختیار داشته باشه اما داده ای برای مصرف وجود نداشته باشد و احتمال اینکه اینکار( گرسنه ماندن اینجا یعنی فراهم نبودن مصرف داده های بافر ( البته تو تولید هم بحث گرسنگی وجود داره) . بحث گرسنگی تو این سوال ربطی به پردازنده نداره و بر اساس استفاده از داده های بافر مطرح هستش.
"اما اگر به صورت سوال نگاه کنیم گفته شده که بافر روی "دیسک" پیاده سازی شده یعنی یک عمل IO بنابراین در هر لحظه
دو فرایند از IO استفاده می کند بنابراین بن بست روی میدهد" واقعا این رو هم از روی چه منبعی درک کردید که اگه دو فرایند از IO استفاده کنند بن بست رخ می دهد؟؟؟؟؟
ببخشید این رو میگم اما باید به مقدار تو بحث سیستم عامل بازبینی بفرماید.
میشه همزمان ۱۰۰۰ تا فرایند از IO همزمان ( البته همپوشان لغت بهتری ) و هیچ وقت هم حتی خطر بن بست به وجود نیاد.
موضوعی که تو این سوال مطرحه شکل پیاده سازی فرایند شماره ۲ هستش و ترتیب کار اون.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۷
  

n_alaie پاسخ داده:

چالش بزرگ -سوال ۷۱ سیستم عامل -دکتر حقیقت

به نظر من اگر بافر ها روی یک دیسک واحد پیاده سازی شده باشند امکان وقوع بن بست وجود دارد؟
در ضمن حرف شما را هم تائید می کنم
"میشه همزمان ۱۰۰۰ تا فرایند از IO همزمان ( البته همپوشان لغت بهتری ) و هیچ وقت هم حتی خطر بن بست به وجود نیاد"
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۸
  

hossein3363 پاسخ داده:

RE: چالش بزرگ -سوال ۷۱ سیستم عامل -دکتر حقیقت

(۱۰ اسفند ۱۳۹۰ ۱۲:۱۰ ق.ظ)lonelyforever نوشته شده توسط:  دوستان عزیز بعضی ها شما ممکن بر اساس چیزی که حفظ کردید و واقعا خودتون هرگز به اثباتش نرسیدید گزینه های بوجود آمدن بن بست رو زده باشید
همه اشاره به حل این سوال توسط جناب دکتر حقیقت در کتاب پارسه آن هم چز سوالهای IT پارسال است.

ایشون حتی به این فکر نکرده اند که پیاده سازی مصرف کننده و تولید کننده بودن پروسس شماره ۲ به چه نحوی بوده .اگه حتی بوسیله یه نخ پیاده سازی شده باشد باز در صورت سوال مطرح نشده که آیا اول کد مصرف کننده وجود داره یا تولید کننده.
همه دوستان کورکورانه به این حل ایشون اشاره می کنن. از صاحب نظران سیستم عامل خواهش می کنم وارد شوید تو این مسله
شما بفرمایید پروسس شماره ۲ بر چه اساسی کار می کنه ؟ آیا بوسیله دوتا نخ پیاده سازی شده ؟
شما بفرمایید وقتی سوال هیچ اشاره ای به نوع نخ بندی نکرده است چه باید کرد؟
اینجا هم مثل درخت که نیست بگم پیش فرض نخ بندی سطح هسته یا سطح کاربر یا بوسیله پروسس های سبک وزن هستش. باید در صورت سوال مطرح می کرد. بعدش هم شما فرض کنید سطح هسته یا بوسیله پروسس های سبک وزن ( که سیستم عامل های کنونی از آن استفاده می کنند) فرض کنید فرایند اول کل بافر را پر می کند. و سپس فرایند دوم اجرا میشود ( فرایند دوم از دو نخ ، یک نخ تولید کننده و یه نخ مصرف کننده تشکلیل شده است) در صورتی که نخ تولید کنند بخواد شروع کنه وقتی کل بافر پر شده نمی تواند کار کند ( استدلال دوستان این است که اینجا به بن بست می خورد ) اما چرا در نظر نمی گیرید که با بلوکه شدن نخ تولید کننده می توان به نخ مصرف کننده سویچ کرد و این نخ هم از بافر استفاده می کنه . در بدترین حالت دچار گرسنگی برای پروسس شماره ۳ می شود.
در مورد بن بست که دکتر درست ذکر کرده اند و مثال هم آورده اند و کاملا درست است (به نظر بنده).

اما به نظرم سیستم دچار قحطی زدگی هم میشه به این دلیل:
در صورت سوال اینطوری ذکر شده که فرآیند p3 خروجی p2 را مصرف میکند و p2 خروجی p1 را، این به این معنی نیست که فرآیندها لزوما تولیدکننده و مصرف کننده اند و همچنین نباید حتما داده ای از قبلی بگیرند تا بتوانند کارشان را ادامه دهند، تنها ممکن است به داده تولیدی از مرحله قبل نیاز پیدا کنند
اما شرایط قحطی زدگی: فرآیند p2 آنقدر زودتر از p1 فعالیت کند که بافر ۲۳ پر شود و کل دیسک را اشغال کند، حال تا زمانی که فرآیند های P2 و p3 فعالیت میکنند و p2 هم به خروجی p1 نیاز نداشته باشد، p1 فضایی برای قرار دادن داده تولیدی اش نخواهد داشت در حالی که سیستم در بن بست نیست و بدین معنی که p1 دچار قحطی زدگی شده است.
(۱۳ اسفند ۱۳۹۰ ۱۲:۳۸ ب.ظ)lonelyforever نوشته شده توسط:  
(13 اسفند ۱۳۹۰ ۱۲:۱۷ ب.ظ)n_alaie نوشته شده توسط:  با سلام خدمت همه دوستان
هر چند من این سوال را اشتباه زدم
اما اگر به صورت سوال نگاه کنیم گفته شده که بافر روی "دیسک" پیاده سازی شده یعنی یک عمل IO بنابراین در هر لحظه
دو فرایند از IO استفاده می کند بنابراین بن بست روی میدهد
اما اگر بافر روی RAM پیاده سازی شده باشد بن بست روی نمی دهد
در مورد گرسنگی هم - گرسنگی زمانی رخ میدهد که پروسس نتواند از پردازنده استفاده کند ، در صورتی در این ساختار هر سه پروسس به راحتی می توانند از پردازنده استفاده کنند


"گرسنگی زمانی رخ میدهد که پروسس نتواند از پردازنده استفاده کند" واقعا شما این رو از رو چی برداشت کردید؟ گرسنگی تو این سوال به این معنی هستش که فرایند cpu در اختیار داشته باشه اما داده ای برای مصرف وجود نداشته باشد و احتمال اینکه اینکار( گرسنه ماندن اینجا یعنی فراهم نبودن مصرف داده های بافر ( البته تو تولید هم بحث گرسنگی وجود داره) . بحث گرسنگی تو این سوال ربطی به پردازنده نداره و بر اساس استفاده از داده های بافر مطرح هستش.
"اما اگر به صورت سوال نگاه کنیم گفته شده که بافر روی "دیسک" پیاده سازی شده یعنی یک عمل IO بنابراین در هر لحظه
دو فرایند از IO استفاده می کند بنابراین بن بست روی میدهد" واقعا این رو هم از روی چه منبعی درک کردید که اگه دو فرایند از IO استفاده کنند بن بست رخ می دهد؟؟؟؟؟
ببخشید این رو میگم اما باید به مقدار تو بحث سیستم عامل بازبینی بفرماید.
میشه همزمان ۱۰۰۰ تا فرایند از IO همزمان ( البته همپوشان لغت بهتری ) و هیچ وقت هم حتی خطر بن بست به وجود نیاد.
موضوعی که تو این سوال مطرحه شکل پیاده سازی فرایند شماره ۲ هستش و ترتیب کار اون.

گرسنگی به این معنی است که فرآیندی در سیستم به منبع یا داده ای نیاز داشته باشد ولی نتواند به نیازش برسد. گرسنگی صرفا برای منبعی خاص یا داده ای خاص تعریف نشده. ممکن است برای دسترسی و استفاده از بافر، cpu ، یا داده یا ... فرآیندی دچار گرسنگی شود.
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۹
  

abcd1234 پاسخ داده:

چالش بزرگ -سوال ۷۱ سیستم عامل -دکتر حقیقت

منم فکر میکردم بخاطر نداشتن شرط انتظار چرخشی تو بن بست گیر نمیکنه و فقط ممکنه دچار قحطی بشه Sad
با جوابای sadjad_t تا حدودی قانع شدم
ولی آخه مگه شرط انتظار چرخشی یکی از شروط لازم برای ایجاد بن بست نیست؟؟
نقل قول این ارسال در یک پاسخ

ارسال: #۲۰
  

abbas001 پاسخ داده:

RE: چالش بزرگ -سوال ۷۱ سیستم عامل -دکتر حقیقت

در گرسنگی تعدادی از فرآیندها می توانند به کار خود ادامه دهند و از منابع استفاده کنند در حالی که سایرین از دسترسی به صورت دائمی منع می شوند بنابراین به نظر می رسد این سوال گرسنگی ندارد
(۱۴ اسفند ۱۳۹۰ ۱۱:۰۳ ق.ظ)abcd1234 نوشته شده توسط:  منم فکر میکردم بخاطر نداشتن شرط انتظار چرخشی تو بن بست گیر نمیکنه و فقط ممکنه دچار قحطی بشه Sad
با جوابای sadjad_t تا حدودی قانع شدم
ولی آخه مگه شرط انتظار چرخشی یکی از شروط لازم برای ایجاد بن بست نیست؟؟

انتظار چرخشی وجود دارد

فرایند اول منتظر دوم یا سوم است ( برای برداشتن داده)

فرآیند دوم منتظر سومی است

فرآیند سوم منتظر فرآیند دوم است
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  تست ۸۷ کامپیوتر مربوط به عامل ها Shekarchi_shab ۳ ۲,۵۹۶ ۲۰ بهمن ۱۴۰۱ ۰۷:۳۹ ب.ظ
آخرین ارسال: HamidReza1
  انتخاب موضوع پروژه درباره سیستم عامل آیلا ۱۸ ۲۰,۳۸۴ ۱۳ دى ۱۴۰۰ ۰۵:۴۱ ب.ظ
آخرین ارسال: Cimia
  منابع پایگاه داده وسیستم عامل پیشرفته!دکتری ؟ morweb ۰ ۲,۱۱۱ ۱۷ بهمن ۱۳۹۹ ۰۴:۰۹ ب.ظ
آخرین ارسال: morweb
  طراحی یک سیستم عامل (از صفر) sina4everafter ۱۲ ۱۶,۸۷۵ ۰۶ بهمن ۱۳۹۹ ۱۲:۵۳ ب.ظ
آخرین ارسال: nahalmomen2007@yahoo.com
  خواص محیط برای عامل سیستم تحلیل تصاویر پزشکی Ali1991khe ۶ ۶,۱۴۵ ۰۴ مهر ۱۳۹۹ ۰۸:۳۲ ق.ظ
آخرین ارسال: Ali1991khe
  تغییرات کتاب سیستم عامل جدید سیستم عامل sima84 ۱ ۲,۸۸۸ ۱۶ اردیبهشت ۱۳۹۹ ۰۹:۴۳ ب.ظ
آخرین ارسال: marvelous
  چالش ده ساله soltanMohammad ۴ ۳,۲۵۰ ۱۴ بهمن ۱۳۹۸ ۰۱:۵۴ ب.ظ
آخرین ارسال: unipaper
  سیستم عامل سیلبرشاتز marvelous ۱ ۲,۳۳۰ ۲۵ دى ۱۳۹۸ ۰۸:۵۴ ب.ظ
آخرین ارسال: marvelous
  سیستم عامل طورانی marvelous ۴ ۵,۱۲۵ ۰۳ دى ۱۳۹۸ ۰۲:۲۱ ق.ظ
آخرین ارسال: marvelous
  یادگیری برنامه نویسی تا اجرای پروژه های بزرگ The BesT ۳ ۳,۷۱۴ ۱۲ آذر ۱۳۹۸ ۰۳:۵۸ ب.ظ
آخرین ارسال: marvelous

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close