SajjadKhati
کاربر فعال <A href="http://forum.majidonline.com/f
سلام
استاد علی ، در ادامه ی بحثی که اینجا میکردیم :
گفتگو هایی در باب سی شارپ
ببینید قبلا گفتید که پردازنده هر موقع تشخیص داد (معمولا موقعی که نخ رو متوقف کنیم یا به هر نحوی پردازنده حس کنه که نخ داره معطلش میکنه بیخودی و ...) ، یه نخ را رها میکنه ، نخ دیگه ای رو اجرا میکنه و بعد میاد ادامه ی نخ قبلی را اجرا میکنه (برداشت کلی رو گفتم)
خوب . حالا منظورتون اینه که این سوئیچ کردن بین نخ ها ، زمان درخواست پردازنده برای خوندن و نوشتن اطلاعات از رم ، اتفاق نمیافته . مثا زمانی که پردازنده درخواست خوندن اطلاعات متغییر x را از حافظه میده ، به طبع چون سرعت رم خیلی پایینه ، پردازنده باید منتظر بمونه . در این لحظه ای که منتظر خوندن (یا نوشتن) اطلاعات در رم هست ، دیگه نمیره نخ دیگه ای (از یه پروسه ی دیگه یا از همون پروسه) را اجرا کنه . منتظر میمونه تا اطلاعات از رم برسه و ادامه ی نخ را اجرا کنه . منظورتون اینه . درسته؟
اما زمانی سوئیچ بین نخ ها انجام میشه که غیر از زمان انتظار برای خوندن و نوشتن اطلاعات از رم باشه . مثلا وقتی خودمون نخ را متوقف کنیم . درسته؟
حالا فرض میکنم اینها درست باشن ؛ حالا زمان منتظر موندن پردازنده برای دریافت اطلاعات متغییر x (هر میلی یا میکروثانیه که هست ، باشه) ولی ما فرض میکنیم این زمان انتظار ، فرضا 10 ثانیه هست . توی این 10 ثانیه انتظار ، در task manager اینو نشون میده که اون نخ ، در حال اشغال یک هسته از پردازنده هست؟ مثلا اگه پردازنده 4 هسته ای باشه ، توی task manager اون نخ رو نشون میده که 25 درصد از پردازنده را اشغال کرد؟
استاد علی ، در ادامه ی بحثی که اینجا میکردیم :
گفتگو هایی در باب سی شارپ
ببینید قبلا گفتید که پردازنده هر موقع تشخیص داد (معمولا موقعی که نخ رو متوقف کنیم یا به هر نحوی پردازنده حس کنه که نخ داره معطلش میکنه بیخودی و ...) ، یه نخ را رها میکنه ، نخ دیگه ای رو اجرا میکنه و بعد میاد ادامه ی نخ قبلی را اجرا میکنه (برداشت کلی رو گفتم)
خوب . حالا منظورتون اینه که این سوئیچ کردن بین نخ ها ، زمان درخواست پردازنده برای خوندن و نوشتن اطلاعات از رم ، اتفاق نمیافته . مثا زمانی که پردازنده درخواست خوندن اطلاعات متغییر x را از حافظه میده ، به طبع چون سرعت رم خیلی پایینه ، پردازنده باید منتظر بمونه . در این لحظه ای که منتظر خوندن (یا نوشتن) اطلاعات در رم هست ، دیگه نمیره نخ دیگه ای (از یه پروسه ی دیگه یا از همون پروسه) را اجرا کنه . منتظر میمونه تا اطلاعات از رم برسه و ادامه ی نخ را اجرا کنه . منظورتون اینه . درسته؟
اما زمانی سوئیچ بین نخ ها انجام میشه که غیر از زمان انتظار برای خوندن و نوشتن اطلاعات از رم باشه . مثلا وقتی خودمون نخ را متوقف کنیم . درسته؟
حالا فرض میکنم اینها درست باشن ؛ حالا زمان منتظر موندن پردازنده برای دریافت اطلاعات متغییر x (هر میلی یا میکروثانیه که هست ، باشه) ولی ما فرض میکنیم این زمان انتظار ، فرضا 10 ثانیه هست . توی این 10 ثانیه انتظار ، در task manager اینو نشون میده که اون نخ ، در حال اشغال یک هسته از پردازنده هست؟ مثلا اگه پردازنده 4 هسته ای باشه ، توی task manager اون نخ رو نشون میده که 25 درصد از پردازنده را اشغال کرد؟