![]() |
تست_مهندسی کامپیوتر۸۹ _مبحث نخ ها - نسخهی قابل چاپ |
تست_مهندسی کامپیوتر۸۹ _مبحث نخ ها - aria - 19 خرداد ۱۳۹۲ ۱۱:۲۱ ب.ظ
ممنون می شم دوستان کمک کنند سوال رو پیوست کردم جواب تست گزینه ۳ هست مسئله اینجاست که اگر بلوک شونده باشد انگاه وضعیت هم روند انجام می شه یعنی نخ درخواست کننده i/o بلوکه می شود سپس نخ دیگر ان فرایند به اجرا در می اید واگر غیر بلوک شونده باشد باز هم همروند انجام می گیرد اما چگونه ؟نخی که درخواست i/o داده است ولی بلوکه نمی شود چی می شه اگه می تونید شرح بدید چگونه |
RE: تست_مهندسی کامپیوتر۸۹ _مبحث نخ ها - aria - 20 خرداد ۱۳۹۲ ۱۱:۴۹ ق.ظ
کسی نیست از دوستان بدونه؟ |
RE: تست_مهندسی کامپیوتر۸۹ _مبحث نخ ها - Joonz - 20 خرداد ۱۳۹۲ ۰۲:۳۰ ب.ظ
نگاه کنید در سمت هسته سیستم عامل سه نخ برای زمانبندی داره خوب اگه یکیش بلوکه بشه خوب دو تا دیگه هستن برای همروندی. و اگه هم بلاکینگ در کار نباشه که خوب ۳ تا نخ برای همروندی هستند که بالاتر از قبلی هست. فقظ توجه کنید ما منظورمون از همروندی سیستم عامله یعنی اینکه نخ های هسته بتونه همروندی داشته باشه و از اونجا که هسته هم فقط نخ های سطح هسته رو زمانبندی میکنه(تا اجرا بشه) پس اگه درشکل اگه در سمت چپ یه نخ سمت هسته بلاک بشه در اینصورت اون ۲ نخ کاربر(سمت چپ ها) فقط میتونن روی همون یه نخ باقی مونده زمانبندی بشن که در نتیجه همروندیش برای سمت چپ فقط یکی هست و یه دونه هم که سمت راست شکله(پس بازم همروندی داره).و در ضمن اون نخ کاربری هم که system call بلاکینگ رو فراخوانی کرده هم بلوکه میشه (که دیگه نتونه رو نخ های سطح هسته دیگه زمانبندی بشه) اگه lwp در کار باشه که اونجا راهکارهایی مثه ندا و وظیفه هستن که اینکارهارو خیلی جالب انجام میدن البته اینجا خبری ار lwp نیست. |
RE: تست_مهندسی کامپیوتر۸۹ _مبحث نخ ها - aria - 20 خرداد ۱۳۹۲ ۱۰:۳۱ ب.ظ
ممنون از پاسختون لطف می کنید بگید منبع مطالعاتی شما در این درس چی بوده؟ مسئله اول: مگه بین نخ های سطح کاربر با نخ های سطح کرنل رابطه ای هست چون من فکر می کردم که شکل برای این در دو طرف نخ ها رو کشیده که این منظور رو برسونه که روش ترکیبی ، شما می گید یعنی به ازای نخ های سطح کاربر در کرنل هم به ازای ان نخ وجود دارد بعد رابطه اینها چگونه است من در مورد lwp خوندم که این کار رو می کنه وظایف سطح کرنل هر نخ رو برعهده می گیره مثلا فراخوان های سیستمی ------------------------------------------------------- مسئله دوم: از طرفی اگه رو ش بلوک کننده نباشه نخی درخواست i/o بدهد خوب تکلیف خودش چیست اگه نخ های دیگه جایگزین اون می شن برای پردازش پس اصولا یه جورایی بلوکه شده وفرقش با بلوک کننده چیه اگه نه که لطفا توضیح بدید ممنون |
RE: تست_مهندسی کامپیوتر۸۹ _مبحث نخ ها - Joonz - 21 خرداد ۱۳۹۲ ۱۲:۳۰ ق.ظ
برای مفاهیم و کنکور سیلبرشاتس نگا کنید نخ های سطح کاربر چیزی جز یه سری توابع مخصوص برنامه نویسی نیستند مثله pthread ها که تو زبان c هستش و تو لینوکس و مک خیلی استفاده میشه.وقتی شما یه برنامه تون رو با مثلاً pthread می نویسید یعنی مثلا دارید برنامه تون رو به صورت چند نخ پیاده می کنید که بهشون میگن نخ های سطح کاربر.خوب حالا که برنامه تونو کامپایل کردین و خواستین اجرا کنید اون وقت سیستم عامل میفهمه میگه آ اینجا از pthread استفاده کردی پس یه نخ سطح هسته براش تشکیل میده به همین ترتیب پیش میره تا تمام نخ ها ی کاربرو براش یه نخ سطح هسته بسازه(روش یک به یک) یا می تونه به روشای دیگه سیستم عامل نخ های سطح هستشو بسازه که این اواخر به این نتیجه رسیدن که همون روش یکی به یک بهترینه(توی لینوکسو و ویندوزو مک الآن داره یک به یک استفاده میشه) .خوب حالا سیستم عامل باید این نخ ها رو زمانبندی کنه دیگه مثله همون سیکلهای اجرایی که برای فرایند داشتیم و سیستم عامل این کار رو با نخ های هسته انجام میده که نماینده نخ های کاربر هستن منتها در فضای هسته البته خوب یه چیزای نسبت به نخ های کاربر اضافه دارن مثه فرایندها در مورد سوال دومتون من متوجه نمیشم(فک کنم این قسمتو نگرفتین) خوب وقتی عمل i/o انجام میشه نخ هسته بلوک میشه دیگه وقتی i/o اتفاق میفته باید نخ بره تو بلوکه تا منتظر رویداد بشه دیگه. در ضمن وقتی نخ سطح هسته بلوکه بشه نخ کاربر متناظرش هم بلوکه میشه. |