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

صفحه‌ها: ۱ ۲
تعویض متن نخ ها - هاتف - ۲۱ آبان ۱۳۹۰ ۰۱:۵۱ ب.ظ

سلام

از چه روی می گوییم "اگر نخ های یک فرآیند در سطح کاربر مدیریت شوند، تعویض متن کم هزینه تری داریم" ؟

کدام گزاره (ها)‌ی زیر دلیل این امر می باشد؟

۱- چون PCB اطلاعات نخ‌ها را نگهداری نمی کند، نیازی به درج آنها در جدول فرآیند نداریم.

۲- چون برنامه نویس از نقاط بحرانی نیاز برنامه اش به بلوکه شدن مطلع است، و خودش مدیریت تعویض نخ را انجام می دهد، در زمان مناسب اینکار را کرده و این عمل موجب افزایش سرعت می شود.

۳- چون نیازی به تغییر نگاشت حافظه و حسابداری CPU نداریم.

۴- چون لزومی ندارد همه اطلاعات فرآیند ذخیره شود، تهنها محتویات CPU برای نخ جاری در پسته مربوطه اش ذخیره و مقادیر نخ بعدی جایگزین می شود.


لطفا بعد از پاسخ به سوال، نظر خودتون رو در مورد سطح سوال مطرح شده بیان کنید.


تعویض متن نخ ها - mfXpert - 21 آبان ۱۳۹۰ ۰۴:۳۲ ب.ظ

گزینه سه میتونه دلیل خوبی باشه البته گزینه ۴ هم تا حدودی درسته

تعویض متن نخ ها - موج - ۲۱ آبان ۱۳۹۰ ۰۴:۴۰ ب.ظ

بین یک و سه !!!

تعویض متن نخ ها - pos - 21 آبان ۱۳۹۰ ۰۵:۰۰ ب.ظ

سه و چهار Big Grin

RE: تعویض متن نخ ها - reyhaneh64 - 21 آبان ۱۳۹۰ ۰۵:۰۲ ب.ظ

بین ۱ و ۳

دو تا ابهام دارم

۱) در نخ های سطح کاربر حسابداری cpu نیاز نیست؟
۲)وقتی اطلاعات فرایندها در pcb ذخیره میشه شامل نخ نمیشه؟

تعویض متن نخ ها - mamat - 21 آبان ۱۳۹۰ ۰۵:۴۵ ب.ظ

جواب ۳ و ۴ صحیح است

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

RE: تعویض متن نخ ها - lucky_luke - 21 آبان ۱۳۹۰ ۱۰:۲۲ ب.ظ

(۲۱ آبان ۱۳۹۰ ۰۱:۵۱ ب.ظ)هاتف نوشته شده توسط:  سلام

از چه روی می گوییم "اگر نخ های یک فرآیند در سطح کاربر مدیریت شوند، تعویض متن کم هزینه تری داریم" ؟

کدام گزاره (ها)‌ی زیر دلیل این امر می باشد؟

۱- چون PCB اطلاعات نخ‌ها را نگهداری نمی کند، نیازی به درج آنها در جدول فرآیند نداریم.

۲- چون برنامه نویس از نقاط بحرانی نیاز برنامه اش به بلوکه شدن مطلع است، و خودش مدیریت تعویض نخ را انجام می دهد، در زمان مناسب اینکار را کرده و این عمل موجب افزایش سرعت می شود.

۳- چون نیازی به تغییر نگاشت حافظه و حسابداری CPU نداریم.

۴- چون لزومی ندارد همه اطلاعات فرآیند ذخیره شود، تهنها محتویات CPU برای نخ جاری در پسته مربوطه اش ذخیره و مقادیر نخ بعدی جایگزین می شود.


لطفا بعد از پاسخ به سوال، نظر خودتون رو در مورد سطح سوال مطرح شده بیان کنید.

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

تعویض متن نخ ها - هاتف - ۲۱ آبان ۱۳۹۰ ۱۰:۵۷ ب.ظ

خوبه، فعلا اظهار نظر نمی کنم تا دوستان دیگه هم بیان و نظر بدند.

فقط خواهش می کنم روی گزینه‌ها بحث کنید، تعاریف کلی ندید، اگر گزینه ای رو رد یا می پذیرید دلیلتون رو بیارید.

(۲۱ آبان ۱۳۹۰ ۱۰:۲۲ ب.ظ)lucky_luke نوشته شده توسط:  هاتف میگم نکنه قراره سوالای ارشد ۹۱ رو تو طرح کنی؟؟ Tongue
نه بمن گفتن قبول نکردم که Big Grin
امروز یکم فسفر سوزوندم بتونم سوال خوب طرح کنم، قبلی‌ها زودی لو میرفت!

RE: تعویض متن نخ ها - aatwo - 22 آبان ۱۳۹۰ ۰۸:۱۰ ق.ظ

سویچ بین فرایندها در سطح کاربر بسیار سریعتر از حالتی است که از فراخوان سیستمی در مد هسته انجام می شود
من فکر میکنم گزینه ۳

تعویض متن نخ ها - natanz - 22 آبان ۱۳۹۰ ۱۲:۵۵ ب.ظ

من میگم ۴
نخ‌ها سبک وزن هستند وتو مد کاربر تو تله هسته نمی افتند
نظز خودت چیه هاتف؟

تعویض متن نخ ها - هاتف - ۲۲ آبان ۱۳۹۰ ۰۲:۵۰ ب.ظ

من نظرم رو در آخر میدم، الان نظر بدم که جواب رو گفتم که!
ولـــــــی، بچه‌ها توجه کنید، من عرض نکردم یکی از گزینه‌ها درسته!!
عرض کردم در مورد این گزاره‌ها نظر بدید و بفرمائید کدوم درسته کدوم غلط.
اگر اون گزاره مد نظرتون رو نقل قول کنید و نظرتون رو زیرش بنوسید زیبا تره میشه.
ممنون.

RE: تعویض متن نخ ها - Masoud05 - 22 آبان ۱۳۹۰ ۰۳:۲۰ ب.ظ

(۲۱ آبان ۱۳۹۰ ۰۱:۵۱ ب.ظ)هاتف نوشته شده توسط:  - چون لزومی ندارد همه اطلاعات فرآیند ذخیره شود، تهنها محتویات CPU برای نخ جاری در پسته مربوطه اش ذخیره و مقادیر نخ بعدی جایگزین می شود.
فکر کنم این مورد بالایی درست باشه، ۱ که واضح است . در مورد ۳ هم بنظرم اطلاعات حسابرسی مورد نیاز باشه (نمیدونم )اما مدیرت حافظه رو درست گفته پس ۳ هم شاید غلط باشه و برای ۲ هم نمیشه گفت برنامه نویس همچین توانایی رو داره.
پس ۱و ۲ جواب نیستن. و به احتمال قوی ۴ هست - ۳ احتمالش کمتره

RE: تعویض متن نخ ها - TABAN - 22 آبان ۱۳۹۰ ۰۳:۴۳ ب.ظ

دلیل رد گزینه یک:
وقتی که از چند نخ در یک فضای آدرس استفاده میکنیم، برخی از فیلدهای PCB دیگر نمی توانند به ازای هر فرایند به کار روند.بلکه باید به ازای هر نخ به طور مجزا تعریف شده و مورد استفاده قرار گیرند.بنابراین یک جدول نخ جداگانه مورد نیاز است.

دلیل درستی گزینه‌ی سه و چهار:
هنگام تعویض متن در سطح کاربر کافی است محتوای ثبات های CPU برای نخ فعلی ذخیره شده و سپس مقادیر قبلا ذخیره شده مربوط به نخ بعدی که به آن سوییچ میشود بارگذاری مجدد شوند.
نیازی به تغییر نگاشت های حافظه،فلاش کردن TLB، حسابداری CPU، و مانند آن نیست.

گزینه‌ی دوم هم به نظرم اشتباس اما نمیتونم دلیل بیارم.

البته نمیدونم جوابام صحیح هست یا خیر.

بچه‌ها خواهشا واسه هر جوابی که میدید دلیل بیارید که همه متوجه بشیم.

تعویض متن نخ ها - موج - ۲۲ آبان ۱۳۹۰ ۰۳:۴۷ ب.ظ

تست دادی در حد کنکور ۱۴۰۰ هاتف جان

تعویض متن نخ ها - pos - 22 آبان ۱۳۹۰ ۰۴:۰۱ ب.ظ

گزینه یک غلط هست زیرا‌: درسته اطلاعات نخ‌ها در pcb ذخیره نمیشه ولی همین طوری رو هوا هم نگه داشته نمیشه. بالاخره در حین سوئیچ کردن باید در جدول نخ‌ها ذخیره بشه.
گزینه دو غلط‌: زیرا بیشتر به همگام سازی مربوط میشه و برنامه نویس دخالتی در تعویض نخ‌ها ندارد.
گزینه سه: فکر کنم غلط باشه‌: درسته که نیاز به حسابداری cpu برای نخ در سیستم عامل نیست ولی به هرحال خود فرآیند نخ هاش را مدیریت می کنه و باید بداند هر کدام چه مدت اجرا شدن و دفعه بعد نوبت کدام فرآیند هست
گزینه چهار‌: به نظرم مهمترین مسئله توی پایین اومدن سرعت نخ در مد هسته تعداد دفعات تعویض متن هست. یکبار از نخ جاری به هسته سیستم عامل میریم و دوباره از هسته به نخ بعدی در حالی که در سطح هسته تنها یک جابجایی از نخ جاری به نخ بعدی داریم و این همان جابجایی محتویات نخ جاری هست.