تعویض متن نخ ها - نسخهی قابل چاپ صفحهها: ۱ ۲ |
RE: تعویض متن نخ ها - mosaferkuchulu - 22 آبان ۱۳۹۰ ۰۴:۱۱ ب.ظ
(۲۱ آبان ۱۳۹۰ ۰۱:۵۱ ب.ظ)هاتف نوشته شده توسط: ۱- چون PCB اطلاعات نخها را نگهداری نمی کند، نیازی به درج آنها در جدول فرآیند نداریم.این نمی تونه درست باشه چون باید اطلاعات و تو پی سی بی ذخیره کنه تا سری بعد بفهمه از کجا باید شروع کنه به اجرا کردن برنامه. (۲۱ آبان ۱۳۹۰ ۰۱:۵۱ ب.ظ)هاتف نوشته شده توسط: ۲- چون برنامه نویس از نقاط بحرانی نیاز برنامه اش به بلوکه شدن مطلع است، و خودش مدیریت تعویض نخ را انجام می دهد، در زمان مناسب اینکار را کرده و این عمل موجب افزایش سرعت می شود.اینم به نظرم نمی تونه درست باشه! (۲۱ آبان ۱۳۹۰ ۰۱:۵۱ ب.ظ)هاتف نوشته شده توسط: ۳- چون نیازی به تغییر نگاشت حافظه و حسابداری CPU نداریم.این هم که فقط تغییر نگاشت حافظه نیاز نیست!فکر می کنم به حسابداری سی پی یو واسه هر نخ نیاز دارم(البته مطمئن نیستم اما بالای ۵۷۰ درصد احتمال می دم!) (۲۱ آبان ۱۳۹۰ ۰۱:۵۱ ب.ظ)هاتف نوشته شده توسط: ۴- چون لزومی ندارد همه اطلاعات فرآیند ذخیره شود، تهنها محتویات CPU برای نخ جاری در پسته مربوطه اش ذخیره و مقادیر نخ بعدی جایگزین می شود. به نظر من این گزینه هم نمی تون باشه چون نوشتن تو رجیستر های سی پی یو مثل psw و بعضی ثبات های دیگه نیاز به حضور تو مد هسته داره!حتی اگر اینا رو ذخیره کنیم توی پشته چطور می تونیم اطلاعات مربوط به فرایند دیگه رو چایگزین کنیم تو سی پی یو!(دارم گیج میزنم یا درست می گم؟؟؟) با این حساب اگر من گیج نزده باشم ،آقا هاتف جواب صحیح وجود داره؟ نظرم در مورد سوال:خدا کنه اینطور سوالی تو کنکور نیاد |
RE: تعویض متن نخ ها - هاتف - ۲۲ آبان ۱۳۹۰ ۰۹:۳۹ ب.ظ
خوب من با دیدن استقبالتون ترغیب میشم دیرتر جواب بدم اما دیگه باید جواب داد: چون بعضی دوستان ممکنه در مورد صحت مطالبی که عرض می کنم مشکوک باشتند، مطالب رو به کتاب دکتر حقیقت ارجاع دادم، ابتدا لازمه این اطلاع نخست رو بدانید: در پاراگراف دوم صفحه ۱۰۶ کتاب دکترحقیقت اینچنین آمده: " مزیت دوم نخ های سطح کاربر این است که تعویض متن اغب می تواند با تعداد اندکی از دستورالعملها انجام شود (سوییچ ارزان) اصولا فقط کافی است محتوای ثبات های CPU برای نخ فعلی، ذخیره شده و سپس مقادیر قبلا ذخیره شده مربوط به نخ بعدی بارگذاری مجدد شوند، نیازی به تغییر نگاشت های حافظه، فلاش کردن TLB، حسابداری CPU و مانند آن نیست" در مورد گزینهی اول، اینکه بگوییم PCB اطلاعات نخها را نگهداری نمی کند، در حالتی که مدیریت نخها در سطح کاربر باشد، صحیح است، در صفحه پاراگراف سوم صفحه ۱۰۵ کتاب دکتر حقیقت به این نکته اشاره شده که در این روش پیاده سازی نخها (مد کاربر) سیستم عامل اطلاعی از وجود نخ ندارد، پس طبیعی است که در جدول فرآیند چیزی از آن ذخیره نکند، بهـــــــــــــرحال این امر دلیل کافی کم هزینه بودن این مورد نیست، پس این گزاره در اینجا غلط است. در مورد گزینهی دوم، برنامه نویس با اینکه کدهای برنامه خود را می داند و جزئیات آن برایش مخفی نیست (عکس سیستم عامل) اما هرگز قادر به پیش بینی زمان نیاز برنامه به بلوکه شدن نیست، وقفه های زیادی داریم که غیرمنتظره و اتفاقی منجر به بلوکه شدن فرآیند می شوند، پس این گزاره غلط است. در مورد گزینهی سوم و چهارم، همانطور که که متن بالا اشاره شد، دقیقا دلایل کم هزینه بودن این روش هستند و به همین خاطر سرعت بالاتری داریم.
از همه دوستانی که توی این بحث شرکت کردند تشکر می کنم، انشاالله سوالات بهتر و با کیفیت بیشتری رو شاهد باشیم.
البته به طور ویژه از خانم مسافرکوچولو تشکر می کنم که توضیحات من رو خوند و منظم و با نقل قول جواب دادند موضوع بسته میشه اما اگر ابهامی وجود داره پ.خ بدید تا جواب بدم یا اگر لازم شد باز کنم Challenge کنیم. |