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

رگه چیه دیگه ؟؟؟؟ همون نخ؟؟؟ - mostafa2012 - 25 دى ۱۳۹۳ ۰۱:۳۷ ق.ظ

سلام ببخشید رگه جیست؟؟؟؟
منظور همون نخ اس؟؟
[تصویر:  326865_7nhvk1pa79f951rjl3bb.png]
لطفا در موردش یک کم توضیح بدید ....
باتشکر

RE: رگه چیه دیگه ؟؟؟؟ همون نخ؟؟؟ - Ametrine - 25 دى ۱۳۹۳ ۰۹:۰۱ ق.ظ

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

RE: رگه چیه دیگه ؟؟؟؟ همون نخ؟؟؟ - mostafa2012 - 25 دى ۱۳۹۳ ۱۱:۴۳ ق.ظ

(۲۵ دى ۱۳۹۳ ۰۹:۰۱ ق.ظ)Ametrine نوشته شده توسط:  سلام
منظورش همون نخ (Thread) هست.
همون طور که میدونید نخ ها دو دسته هستن، نخ های سطح کاربر و نخ های سطح هسته.
سیستم عامل نخ های سطح کاربر رو نمیبینه و وقتی یکی از نخ های فرایند درخواست وقفه میکنه، کل فرایند بلوکه میشه چون سیستم عامل فقط اون فرایند رو میبینه و نه نخ های داخلش رو.
ولی در نخ های سطح هسته، سیستم عامل نخ ها رو میبینه و اونها رو مدیریت میکنه و اگر نخی از فرایند درخواست وقفه کنه، فقط همون نخ از فرایند بلوکه میشه و نه کل فرایند.



سلام مجدد

الان ببخشید گزینه یک رو میشه شرح بدید با توضیحاتتون !

چون فرآینده ما (میتونه/یا باید ؟؟؟ کدومش) از نخ استفاده کنه.... اگر یک دونه از نخ هاش بلوکه بشه طوری نیس چون سیستم عامل اون رو نمیبینه => شما گفتین که اگه نخ چیزی بخواد و بوکه بشه => باعث بلوکه شدن فرآیند میشه..
پس این گزینه هم نارست است .....
درست گفتم /یا نه؟؟

بیزحمت غلط هام رو هم بگید...Undecided

RE: رگه چیه دیگه ؟؟؟؟ همون نخ؟؟؟ - Ametrine - 25 دى ۱۳۹۳ ۱۲:۲۰ ب.ظ

فرایند میتونه چندین نخ داشته باشه یا یک نخ داشته باشه، الزامی نداره که حتماً چندتا نخ داشته باشه. بستگی به سیستم داره.

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

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

گزینه ۳:
اینم که توضیح دادم.
اگه نخ ها تو سطح کاربر باشن سیستم اونا رو نمیبینه و اگر یکی از نخ ها وقفه بده برای سیستم عامل مثل این میمونه که خودِ فرایند وقفه داده و کل فرایند رو بلوکه میکنه ولی اگه نخ ها تو سطح هسته باشن سیستم عامل از وجودشون اطلاع داره، مثلاً اگه یه فرایند ۳ تا نخ داشته باشه نخ اول برای انجام کاری وقفه بده، فقط همون نخ بلوکه میشه و فرایند با ۲ نخ دیگه میتونه به کارش ادامه بده تا کار این نخ اول تموم بشه.

گزینه ۴: هم که واضح هست. مثلاً وقتی cpu میخواد از نخ t1 که تو فرایند A هست، بره به نخ t1 که تو فرایند B هست. باید تعویض متن بین فرایندها انجام بده دیگه.