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

سوال ششم از فصل دوم

ارسال:
۲۹ مرداد ۱۳۹۰, ۰۴:۰۱ ق.ظ
سوال ششم از فصل دوم
مبحث نخها


فایل‌(های) پیوست شده


برای مدیر " کامیابی " یک سفر است نه یک مقصد
یافتن تمامی ارسال‌های این کاربر
 سپاس‌گزاری شده توسط: ehsan_nekooee , رضا_ایرانی
ارسال:
۰۱ شهریور ۱۳۹۰, ۰۲:۴۷ ق.ظ
سوال ششم از فصل دوم
فک کنم گزینه دو باشه.
به این دلیل که وقتی فرآیندی تعویض میشه درایه های TLB باید مربوط به همون فرآیند باشن.
در تعویض نخ هم به این دلیل که بخش مجزایی از برنامه باید اجرا بشه شمارنده برنامه قاعدتا باید تغییر کنه.

پ.ن
کتاب استالینگ فک کنم در مورد نخ‌ها خیلی خوب و مبسوط صحبت کرده برعکس تننباوم که زیاد از نخ‌ها حرفی به میون نیاورده.

یا علی جان تربت زهرا کجاست؟
یادگار غربت زهرا کجاست؟
تا ز نورش دیده را روشن کنم
بر مزارش شعله‌ها بر تن کنم
یافتن تمامی ارسال‌های این کاربر
ارسال:
۰۳ شهریور ۱۳۹۰, ۰۲:۴۹ ب.ظ
سوال ششم از فصل دوم
راستی این تست کنکور سال ۹۰ است. از کتابهای دیگر هم اگر برای جواب دادن استفاده کنید مشکلی نداره

برای مدیر " کامیابی " یک سفر است نه یک مقصد
یافتن تمامی ارسال‌های این کاربر
ارسال:
۲۰ شهریور ۱۳۹۰, ۰۲:۳۳ ق.ظ
سوال ششم از فصل دوم
گزینه های یک و چهار غلطه (به خاطر اینکه در گرینه یک: tlb تغییر میکنه، و در گرینه چهار: ثباتها با تغییر نخ عوض میشه)
گزینه دو به نظر اشتباه میاد. وقتی ما یک برش زمانی به یک فرایند میدیم با تعویض نخها این زمان عوض نمیشه.

به نظر میاد سه درسته. چون هر نخ پشته خودشو داره (چون یک نخ ممکنه که یک تابع بازگشتی باشه) و tlb هم باتفییر نخ عوض میشه.

من جواب سوالهای نود رو ندیدم.دوستان در مورد جوابم نظر بدن لطفا.

خدایا مرا ببخش به خاطر تمام درهایی که کوبیدم و خانه ی تو نبود...
یافتن تمامی ارسال‌های این کاربر
ارسال:
۱۲ مهر ۱۳۹۰, ۱۲:۱۲ ق.ظ
سوال ششم از فصل دوم
به نظر من گزینه ۲ درسته
گزینه ۱ غلطه چون با تغییر متن فرایند tlb تغییر میکنه ولی در این گزینه گفته شده تغییر نمیکنه
گزینه ۳ غلطه چون گفته شده با تغییر نخ tlb پاک میشه در حالی که تغییر متن نخ در فضای کاربر انجام میشود پس tlb تغییری نمیکند
گزینه ۴ غلطه چون با تغییر نخ pc تغییر میکنه نه با تغییر فرایند
از طرفی هم گزینه دوم صحیح است چون نخها هم مانند فرایندها ممکنه به حالت معلق بروند پس نیاز به شمارنده برنامه یا pc برای نخها وجود داره و با تغییر نخ pc تغییر میکنه و همینطور اینکه با تغییر متن فرایند هم tlb پاک میشه و هم اشاره گر پشته
یافتن تمامی ارسال‌های این کاربر
ارسال:
۱۲ مهر ۱۳۹۰, ۰۱:۵۵ ق.ظ (آخرین ویرایش در این ارسال: ۱۴ مهر ۱۳۹۰ ۰۲:۴۹ ق.ظ، توسط رضا_ایرانی.)
RE: سوال ششم از فصل دوم
نقل قول: گزینه ۳ غلطه چون گفته شده با تغییر نخ tlb پاک میشه در حالی که تغییر متن نخ در فضای کاربر انجام میشود پس tlb تغییری نمیکند
شما فرض کنید اول کار نخ A شروع میکنه به اجرا کردن دستوراتش، و بعضی دستوراتشو در tlb بار میکنه و ازش استفاده میکنه؛ حالا تغییر نخ انجام میگیره و نخ B اجرا میشه، الان اگر tlb پاک نشه و نخ جدید نتونه دستورات مختص به خودشو در tlb بار کنه، وجود دستورات نخ A در tlb که به درد نخ B نمیخوره و هر مراجعه به tlb با miss مواجه میشه. بعد نخ های C و D و... هم اجرا میشن که کاری با دستورات نخهای دیگه که در tlb هست ندارن. پاک کردن tlb با تغییر نخ معقولتر به نظر میاد.
نقل قول: گزینه ۴ غلطه چون با تغییر نخ pc تغییر میکنه نه با تغییر فرایند
هم با تغییر نخ و هم با تغییر فرایند حتما PC تغییر میکنه. هر فرایند فضای آدرس خودشو داره که از این فضا باید آدرسی در PC قرار بگیره.
ایرادی که به گزینه چهار میشه گرفت اینه که گفته با تغییر نخ ثباتها تغییر نمیکنه، که این اشتباهه.فرض کنید نخ A چند خط برنامه شو اجرا میکنه و نتیجه رو در ثبات AC میزاره، حالا نخ B اجرا میشه و مقدار AC رو تغییر میده و بعد دوباره اجرا میرسه به نخ A، الان نخ A به مقدار AC خودش نیاز داره .پس میبایست قبل تغییر نخ، AC در جایی ذخیره شده باشه و با تغییر نخ به A‌، مقدارش تغییر کنه با مقدار مرتبط با نخ A. چون نخها مستقل اجرا میشن باید بتونن در صورت مواجه شدن با تغییر نخ در حین اجراشون، رد پاهاشونو حفظ کنن.
نقل قول: از طرفی هم گزینه دوم صحیح است چون نخها هم مانند فرایندها ممکنه به حالت معلق بروند پس نیاز به شمارنده برنامه یا pc برای نخها وجود داره و با تغییر نخ pc تغییر میکنه و همینطور اینکه با تغییر متن فرایند هم tlb پاک میشه و هم اشاره گر پشته
دلیل تغییر PC در تغییر نخها به خاطر استقلال اجرایی هر نخ در برابر نخهای دیگه س، نه معلق شدن نخها.
گزینه دو میگه که تغییر متن در نخها موجب تخصیص سهم زمانی تازه میشود، در حالی که معمولا تخصیص زمان در سطح فرایند انجام میشه و به نظرم این جمله اشتباست.

خدایا مرا ببخش به خاطر تمام درهایی که کوبیدم و خانه ی تو نبود...
یافتن تمامی ارسال‌های این کاربر
ارسال:
۱۲ مهر ۱۳۹۰, ۰۳:۲۹ ق.ظ (آخرین ویرایش در این ارسال: ۱۲ مهر ۱۳۹۰ ۰۳:۳۷ ق.ظ، توسط narges_r.)
RE: سوال ششم از فصل دوم
(۱۲ مهر ۱۳۹۰ ۰۱:۵۵ ق.ظ)رضا_ایرانی نوشته شده توسط:  
نقل قول: گزینه ۳ غلطه چون گفته شده با تغییر نخ tlb پاک میشه در حالی که تغییر متن نخ در فضای کاربر انجام میشود پس tlb تغییری نمیکند
شما فرض کنید اول کار نخ A شروع میکنه به اجرا کردن دستوراتش، و بعضی دستوراتشو در tlb بار میکنه و ازش استفاده میکنه؛ حالا تغییر نخ انجام میگیره و نخ B اجرا میشه، الان اگر tlb پاک نشه و نخ جدید نتونه دستورات مختص به خودشو در tlb بار کنه، وجود دستورات نخ A در tlb که به درد نخ B نمیخوره و هر مراجعه به tlb با miss مواجه میشه. بعد نخ های C و D و... هم اجرا میشن که کاری با دستورات نخهای دیگه که در tlb هست ندارن. پاک کردن tlb با تغییر نخ معقولتر به نظر میاد.

اینکه گفتم TLBپاک نمیشه برای اینه که تو کتاب اقای حقیقت نوشته تغییر متن نخ در فضای کاربر انجام میشه و وقتی تغییر متن در فضای کاربر انجام بشه هسته از اون بیخبره و برای تغییر متن دیگه احتیاجی به نگاشت در حافظه و فلاش کردن TLB نیست پس TLB تغییر نمیکنه

(۱۲ مهر ۱۳۹۰ ۰۱:۵۵ ق.ظ)رضا_ایرانی نوشته شده توسط:  
نقل قول: گزینه ۴ غلطه چون با تغییر نخ pc تغییر میکنه نه با تغییر فرایند
هم با تغییر نخ و هم با تغییر فرایند حتما PC تغییر میکنه. هر فرایند فضای آدرس خودشو داره که از این فضا باید آدرسی در PC قرار بگیره.
ایرادی که به سوال چهار میشه گرفت اینه که گفته با تغییر نخ ثباتها تغییر نمیکنه، که این اشتباهه.فرض کنید نخ A چند خط برنامه شو اجرا میکنه و نتیجه رو در ثبات AC میزاره، حالا نخ B اجرا میشه و مقدار AC رو تغییر میده و بعد دوباره اجرا میرسه به نخ A، الان نخ A به مقدار AC خودش نیاز داره .پس میبایست قبل تغییر نخ، AC در جایی ذخیره شده باشه و با تغییر نخ به A‌، مقدارش تغییر کنه با مقدار مرتبط با نخ A. چون نخها مستقل اجرا میشن باید بتونن در صورت مواجه شدن با تغییر نخ در حین اجراشون، رد پاهاشونو حفظ کنن.

در این موردباهاتون موافقم چون اصلا حواسم به این نبود که نوشه با تغییر نخ محتویات ثبات عوض نمیشه در حالیکه عوض میشه
وهمینطور اینکه وقتی با تغییر نخ PC عوض بشه حتما با تغییر فرایند هم PC عوض میشه

(۱۲ مهر ۱۳۹۰ ۰۱:۵۵ ق.ظ)رضا_ایرانی نوشته شده توسط:  [quote
دلیل تغییر PC در تغییر نخها به خاطر استقلال اجرایی هر نخ در برابر نخهای دیگه س، نه معلق شدن نخها.
گزینه دو میگه که تغییر متن در نخها موجب تخصیص سهم زمانی تازه میشود، در حالی که معمولا تخصیص زمان در سطح فرایند انجام میشه و به نظرم این جمله اشتباست.

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

ولی کلا این تست به من نشون داد هنوز مفاهیم مربوط به نخو کامل متوجه نشدم
باید برم یکبار دیگه بخونمش
یافتن تمامی ارسال‌های این کاربر
ارسال:
۱۲ مهر ۱۳۹۰, ۰۱:۵۸ ب.ظ
RE: سوال ششم از فصل دوم
(۱۲ مهر ۱۳۹۰ ۰۳:۲۹ ق.ظ)narges_r نوشته شده توسط:  
(12 مهر ۱۳۹۰ ۰۱:۵۵ ق.ظ)رضا_ایرانی نوشته شده توسط:  دلیل تغییر PC در تغییر نخها به خاطر استقلال اجرایی هر نخ در برابر نخهای دیگه س، نه معلق شدن نخها...
این دلیلی که گفتم رو در کتاب اقای حقیقت گفته و منطقی هم هست. وقتی امکان تعلیق برای نخ باشه، وقتی نخ از حالت تعلیق خارج بشه و بخواد انتخاب بشه باید PC وجود داشته باشه...

نه فقط هنگام تعلیق، نخها اگر به حالت آماده هم برن، وقت از سرگیری اجراشون نیاز به تغییر PC دارن.

خدایا مرا ببخش به خاطر تمام درهایی که کوبیدم و خانه ی تو نبود...
یافتن تمامی ارسال‌های این کاربر
ارسال:
۱۴ مهر ۱۳۹۰, ۱۲:۳۸ ق.ظ
سوال ششم از فصل دوم
کسی در مورد این سوال نظری نداره؟
سواله خوبیه، در موردش صحبت کنید.
یافتن تمامی ارسال‌های این کاربر
ارسال: #۱۰
۱۷ مهر ۱۳۹۰, ۰۱:۴۲ ق.ظ
سوال ششم از فصل دوم
این سوال مثل اکثر سوال هایی که تو درس سیستم عامل مطرح میشه غلط و چیزی که تو واقعیت هست فرق داره. flush شدن TLB کاملا بسته به سخت افزار داره و سیاست های مختلفی برای این مورد هست. در بعضی پیاده سازی‌ها کلا TLB رو هنگام Context Switch هر بار flush می کنند بعضی‌ها هم نه بعضی‌ها هم Selective عمل می کنند. در x86 وقتی یک Context Switch اتفاق می افته باید Page Table پردازه ای که قراره بهش CPU اختصاص داده بشه آدرسش در ثبات CR3 قرار بگیره و وقتی این اتفاق بیفته TLB هم flush میشه.

به نظر من در این سوال باید فرص کنیم طراح سوال فکر می کرده همیشه Context Switch با flush شدن TLB همراه است. پس تا اینجا گزینه ۱ غلط هست.

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

گزینه سوم هم غلط هست به این دلیل که اگر قرار باشه TBL با Context Switch بین دو نخ flush بشه باید این دو نخ مربوط به پردازه های مختلفی باشند که در صورت سوال گفته شده هر دو مروبوط به یک فرآیند(غلطه !!!! پردازه صحیح) هستند.

گزینه ۴ هم اشتباه است به این دلیل که گفته در Context Switch بین نخ‌ها Register‌ها تغییر نمی کنند.

جواب سازمان سنجش چی بوده Smile) ؟!

@narges_R: فقط به کتاب آقای حقیقت اکتفا کردید؟
دوستان پیشنهاد می کنم کتاب آقای Stallings رو بخونید برای کنکور ظاهرا نظر ایشون به نظر طراحاس سوال نزدیک تره Smile
یافتن تمامی ارسال‌های این کاربر
ارسال: #۱۱
۱۷ مهر ۱۳۹۰, ۱۱:۱۹ ب.ظ
RE: سوال ششم از فصل دوم
با این سوالا تو کنکور باید چکار کرد؟!!!!Huh
یافتن تمامی ارسال‌های این کاربر
ارسال: #۱۲
۲۰ مهر ۱۳۹۰, ۰۹:۲۹ ب.ظ
RE: سوال ششم از فصل دوم
(۱۷ مهر ۱۳۹۰ ۰۱:۴۲ ق.ظ)_Milad_ نوشته شده توسط:  در مورد گزینه دوم باید ابهام وجود داره اگه نخ سطح هسته باشه کاملا درست هست ولی اگه نخ سطح کاربر باشه بازه زمانی جدیدی تخصیص پیدا نمی کنه!

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

(۱۷ مهر ۱۳۹۰ ۰۱:۴۲ ق.ظ)_Milad_ نوشته شده توسط:  گزینه سوم هم غلط هست به این دلیل که اگر قرار باشه TBL با Context Switch بین دو نخ flush بشه باید این دو نخ مربوط به پردازه های مختلفی باشند که در صورت سوال گفته شده هر دو مروبوط به یک فرآیند(غلطه !!!! پردازه صحیح) هستند.

دو نخ اگرچه از یک فرایند هستند اما ممکنه که کدهای اجرایی کاملا متفاوت داشته باشن. پس پاک کردن tlb با تغییر نخها توجیح پذیره، حتی اگر از یک فرایند باشن.

خدایا مرا ببخش به خاطر تمام درهایی که کوبیدم و خانه ی تو نبود...
یافتن تمامی ارسال‌های این کاربر
ارسال: #۱۳
۲۱ مهر ۱۳۹۰, ۱۲:۴۸ ق.ظ
سوال ششم از فصل دوم
وقتی نخ سطح کاربر باشه نمی تونه TLB رو flush و update کنه چون کرنل نمی دونه چنین نخی وجود داره. بعد ببین به این سادگی نگو توجیح پذیره به این دلیل که همین عمل flush کردن TLB خودش یک نوع سربار هست و اثر بدی داره.
یافتن تمامی ارسال‌های این کاربر


موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
Information فصل یک تا پنج پایان نامه αɾια ۵ ۴,۸۳۵ ۲۶ بهمن ۱۴۰۰ ۰۴:۱۶ ب.ظ
آخرین ارسال: HoseinMos
  فصل Np , Np hard nazanin2020 ۱ ۱,۷۷۳ ۲۱ آذر ۱۴۰۰ ۱۰:۴۵ ب.ظ
آخرین ارسال: nazanin2020
  درخواست ارائه تکمیل ظرفیت دکتری نیمسال دوم دانشگاه ازاد alireza6660 ۱ ۳,۸۸۷ ۱۷ بهمن ۱۳۹۹ ۱۱:۵۲ ب.ظ
آخرین ارسال: hmaryam567
Smile فروش کتابهای دست دوم و ارزان آمادگی ارشد انفورماتیک پزشکی qizilbash ۱ ۴,۲۴۱ ۲۸ آبان ۱۳۹۹ ۱۱:۳۴ ب.ظ
آخرین ارسال: zeilabi69
  مشکل در حل تست ۲۲ فصل اول کتاب گسسته یوسفی pure.yaser ۷ ۸,۳۲۰ ۰۹ اردیبهشت ۱۳۹۹ ۰۶:۵۴ ب.ظ
آخرین ارسال: mohsentafresh
  فصل HEAP از کتاب ساختمان داده طورانی (پارسه) tourani ۳۷ ۳۶,۱۳۳ ۱۲ اسفند ۱۳۹۸ ۰۵:۱۹ ب.ظ
آخرین ارسال: hossein4070
  خرید کتابهای دست دوم پوران پژوهش همه دروس ارشد فناوری اطلاعات sherwod7 ۳ ۵,۱۴۷ ۲۱ دى ۱۳۹۸ ۰۸:۱۶ ب.ظ
آخرین ارسال: roxana.r
  مهمترین فصل های ذخیره و بازیابی مقسمی enofcom ۱۰ ۵,۴۴۰ ۲۵ آبان ۱۳۹۸ ۰۵:۲۳ ب.ظ
آخرین ارسال: alma1988
  درج عبارت "نوبت دوم" در مدرک دکتری siiib70 ۳ ۳,۵۶۸ ۲۸ مهر ۱۳۹۸ ۰۲:۵۰ ق.ظ
آخرین ارسال: marvelous
  ساختمان داده پوران، فصل اول، راهنمایی برای حل یک مثال ساده marvelous ۲ ۲,۶۲۰ ۲۲ مرداد ۱۳۹۸ ۰۳:۳۰ ب.ظ
آخرین ارسال: marvelous

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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