Mohammad Mghi
Mohammad Mghi
خواندن ۵ دقیقه·۵ سال پیش

سیستم عامل - ایده پشت thread ها ! چیز های جدید خلق کن!


خب دوستان توی مقاله قبلی راجب سیستم عامل کمی و صحبت کردم حالا می خوام یک ایده با حال که شما می تونید بعدا در برنامتون ازش استفاده کنید... رو بگم !

اون ایده چیزی نیست جز Thread !

قبلش بگم اگه جایی اشتباه توضیح دادم توی نظرات بهم بگید یا می تونید توی انستا توی دایرکت درگوشی بهم بگید :)

اول ببینیم ترد چیه اصلا :

A thread is a flow of execution through the process code .

یعنی : ترد یک روند (بر اساس ترجمه دیکشنری روندی که مدوام و پیوسته هست) اجرای یک برنامه کامپیوتری می باشد که ادامه پیدا می کندتا پایان فرآیند اجرای کد : یعنی یک کدی دارید در یک thread که روند اجرا هست این ترد (یعنی ترد یک روند اجراست) ، و توی این کدتون اجرا میشه البته کدتون یعنی کدی که قرار توش اجرا بشه !


امیدوارم از ترجمه خرچنگیم خوشتون بیام :) کلا شد ترد یک روند اجراست بیخیال بقیش :) البته بقیشم میشه توی این روند کد اجرا میشه

ترد ها توی Process ها اجرا میشن یعنی ما یک Process داریم و تو این Process چندین ترد ؛ شاید البته؛ شایدم نیاز نباشه ! تعداد ترد ها بستگی به نیازتون داره !

ترد ها از منابع مشترک استفاده می کنن ! یعنی حافظه بینشون تقسیم میشه منظور حافظه Process !

اگر مبتدی باشید یعنی تازه شروع به یادگیری کردید می گید این یارو چی میگه ؟!

ببینید این یک مبحث سیستم عاملیه سیستم عامل وظیفش اینه که بیاد از منابع بهینه استفاده کنه ... قبلا که سیستم عامل ها خیلی داغون بودن مثلا شما یک برنامه رو باز می کردید اگر یک کار می خواسته انجام بشه می رفتید می خوابیدید و دو سه روز دیگه میومدید ببینید انجام شد یا نه ! ولی بعدا گفتم چی کنیم چی نکنیم ؟! آمدن با سیستم عامل منبع رو تقسیم کردن ! منابع چین ؟! رم ،گرافیک، هارد ، سی پی یو

حالا این مبحث هم داره می گه Thread ها Process رو می کنن چن قسمت ، فک کنم قبلا که thread نبوده Process ها فقط با هم ارتباط داشتن و راه ارتباطیشون هم از طریق Massage بوده (الانم باز massage ، البته اینم بگم که الان Process ها وجود دارن اینا همون برنامه هاتونن قبلا هم گفتم دیگه برو بالا تر رو بخون اگه یادت رفته ! )ولی این thread که اختراع شده همین Process ها رو چندید بخش کرده و خیلی لطف کرده چون سرعت رو بیشتر کرده و کار ها رو می تونیم همزمان انجام بدیم... خوبی های زیادی داره مثلا TLB نیازی به خالی شدن نداره وقتی یک thread اضافه کنید ... چون حافظه که اختصاص دادیم به Process ثابت بوده ! و حافظه رو عوض نکردیم ... لازم نیست کل منابع رو بذاریم تو دسترسش منابع خاص خودش رو Process داره فقط این قسمتش می کنه بین خودشون !

در واقع به زبون ساده تر thread آمده که سرعت رو بیشتر که و کار های همزمان انجام بدیم! البته حدس می زنم با Process ها هم می شده ولی خب شما برنامتون تک بعدی میشه یعنی مثلا تو گوشی مبایلتون اگه بخواید یک عکسی دانلود کنید و هم زمان بخواید تو همون دانلود منیجر یک بازی دانلود کنید نمیشه چون ترد نیست که بخواد اون یک وظیفه رو بندازید رو دوشش ! اما اما ، اینجا برداشت شخصیه: اگه Process ها تنها بودن و thread ها نبودن چی می شد یعنی نمی شد دو تا برنامه رو باز کنیم و کار کنیم ؟! جواب این سوال به نظرم میشد منتها شرط داشت اول اینه Process آیا بهش یک بخشی از منابع اختصاص داده می شد ؟! یا کامل کل منابع در اختیار اون باید باشه ؟! اگر کل منابع باشه چی میشه؟ خب هیچی برنامه با یک سرعت خاص که (البته به رویداد های برنامتون بستگی داره) فقط و فقط می تونه یک برنامه رو اجرا کنه یعنی یک سیستم عامل دارید که فقط و فقط سیستم عامله دیگه هیچ برنامه جدایی روش اجرا نشده یعنی اون برنامه نویس سیستم عامل فقط زحت کشیده منابع رو بین یک سری نیاز های پایه سیستم عامل تقسیم کرده حالا شما اگر کروم رو باز کنید فقط برنامه کروم به صورت تک بعدی (یعنی نمی تونه یک برنامه دیگه تو پس زمینش باز کنه نه مثل الان که هم یک سایت باز می کنید و هم با دانلود منیجر مرور گر دانلود می کنید) می تونست یک وظیفه رو انجام بده و بعد بره سراغ وظیفه بعدی این وظیفه می تونه یک ثانیه و می تونی هزار سال طول بکشه تموم شدنش و بعد از پایان این وظایفه می ره سراغ وظیفه بعدی و این داستان ادامه دارد !

خب حالا اگر سیستم منابع رو تقسیم کنه بینه Process ها و خبری از thread نباشه چی ؟! هیچی بازم :) هر برنامه ای که دارید متونی فقط یک کار انجام بده ولی نمی تونه چندین کار رو با هم تا بعد از تموم شدن یا وظیفه توی یک برنامه انجام بدید!

و در آخر فکر کنم من محمد هستم و انستاگرامم :

https://www.instagram.com/mohammadm.oghadasi/

اگر نظری و انتقادی یا سوالی دارید بپرسید ، خوشحال میشم !

منبع : ramtinmi.ir


Threadسیستم عامل
raminmi.ir وب سایت شخصی من
شاید از این پست‌ها خوشتان بیاید