رشته یا Thread چیست و چه تفاوتی با هسته پردازنده دارد؟
اگر از علاقهمندان دنیای فناوری باشید، به احتمال زیاد درباره رایانه و قطعات آن اطلاعات پایهای دارید. برای مثال میدانید که پردازنده چه کارهایی انجام میدهد و نحوه عملکرد آن چگونه است. یا احتمالا میدانید که وجود رشتههای (تردها) بیشتر به معنای عملکرد بهتر است.
اما آیا اطلاعات بیشتری از این بخش در رایانه دارید؟ آیا میدانید تردها دقیقا چه هستند و اصلا چرا یکی از مهمترین فاکتورها محسوب میشوند. در این مقاله قرار است نگاهی دقیقتر به رشتهها داشته باشیم و درباره این موضوع به تفصیل صحبت کنیم. همچنین بهطور دقیق توضیح خواهیم داد که آنها دقیقا چه کاری انجام میدهند. پس اگر به افزودن اطلاعات خود در این زمینه علاقهمند هستید با زومیت همراه شده و این مطلب را تا انتها مطالعه کنید.
رشته یا Thread چیست
همه واحدهای پردازش مرکزی دارای ترد یا رشته هستند، اما این مسئله دقیقاً به چه معنا است؟ به زبان ساده، رشتهها بخشی هستند که به پردازنده دستگاه شما اجازه میدهند چندین کار را همزمان انجام دهد. بنابراین اگر میخواهید چندین فرایند بسیار فشرده را اجرا کنید، به یک پردازنده با تعداد زیادی رشته نیاز دارید.
تعداد رشتههای دستگاه شما، ارتباط مستقیمی به تعداد هستههای پردازنده دارد. هر هسته پردازنده میتواند دو رشته داشته باشد. بنابراین پردازندهای با ۲ هسته ۸ چهار رشته و پردازندهای با ۸ هسته دارای ۱۶ رشته خواهد بود. همچنین پردازندهای با ۲۴ هسته (بله، چنین پردازندهای موجود است)، ۴۸ رشته خواهد داشت.تردها به بالاترین سطح کد اجرا شده توسط پردازنده اشاره دارند، بنابراین پردازنده شما میتواند با تعداد زیادی رشته چندین کار را همزمان انجام دهد. همه CPU ها دارای رشتههای فعال هستند و هر فرآیندی که در رایانه شما انجام میشود حداقل به یک رشته نیاز دارد.
تردها برای عملکرد رایانه مهم هستند زیرا تعداد کارهایی که این دستگاه میتواند در هر زمان انجام دهد را تعیین میکنند. در ادامه به جزئیات مهمتری درباره رشتهها خواهیم پرداخت و میگوییم چرا یکی از مهمترین بخشهای رایانه هستند.
قبل از اینکه بتوانید شیوه عملکرد رشتهها را دقیقا متوجه شوید، باید درک اولیهای از پردازنده داشته باشید. نمیتوان عملکرد یکی را بدون درک قابلیتهای دیگری فهمید.
واحد پردازش مرکزی یا CPU هسته اصلی هر تلفن هوشمند، تبلت و رایانه است. این یک جزء مهم است که نحوه عملکرد رایانه شما را تعیین میکند. پردازنده هسته اصلی کامپیوتر است و دستگاه شما بدون آن نمیتواند کار کند. گاهی به پردازنده، مغز رایانه نیز میگویند. CPU روی مادربرد قرار دارد (که به آن مدار اصلی نیز گفته میشود) و جزء جداگانهای از قطعه حافظه است.
پردازنده روی بخش حافظه که تمام دادهها و اطلاعات را در سیستم شما ذخیره میکند، کار خود را انجام میدهد. حافظه و CPU از کارت گرافیک دستگاه جدا هستند. تنها کارکرد کارت گرافیک این است که دادهها را گرفته و آنها را به تصاویری که در مانیتور خود میبینید تبدیل کند.
با پیشرفت سالیانه فناوری، شاهد کوچکتر شدن پردازندهها هستیم. همچنین آنها سریعتر از همیشه وظایف خود را انجام میدهند. اگر کمی درباره قانون مور (Moore’s Law) اطلاعات داشته باشید، این عملکرد سریعتر را درک خواهید کرد.
قانون مور نام خود را از بنیانگذار اینتل گوردون مور گرفته است. این ایده مور است که تعداد ترانزیستورها در یک مدار مجتمع هر دو سال دو برابر شود. اگر به داشتن اطلاعات بیشتر درباره قانون مور علاقهمند هستید میتوانید مقاله جامع قانون مور را در زومیت مطالعه کنید.
کاربرد Thread
تردها به بخش مهمی از محاسبات بدل شدهاند زیرا به پردازنده اجازه میدهند همزمان چندین کار را انجام دهد تا کارها سریعتر انجام شود. همچنین این بخش باعث میشود رایانه توانایی انجام چندین کار بهصورت همزمان را داشته باشد. درواقع به دلیل وجود رشتهها در سیستم است که شما میتوانید همزمان با مرور در اینترنت به موسیقی گوش دهید.
تفاوت رشته های نرمافزاری و سختافزاری
واژه ترد یا رشته به دو مورد اشاره دارد که از لحاظ عملکردی تقریبا با یکدیگر مشابه هستند.
رایجترین کاربرد این اصطلاح به تردهای نرمافزاری اشاره میکند. در این جا ترد به توالی دستورالعملهایی گفته میشود که نرمافزار برای کارهای مختلف به آنها نیاز دارد. درست است که این مسئله نیز مهم است اما باید در مقاله دیگری به تفصیل درباره آن صحبت کرد.
اما در این میان، واژه ترد میان مشخصات پردازندهها در سایتهایی مانند اینتل و ایامدی دیده میشود که به رشتههای سختافزاری اشاره دارد. در این مقاله رشتههای سختافزاری مورد بررسی قرار میگیرند.
تفاوت Thread و Core در CPU
سوالی که در نهایت قصد پاسخ دادن آن را داریم تفاوت میان رشته یا ترد و هسته (Core) است. در این بخش با استفاده از یک جدول تفاوتهای این دو را مشخص میکنیم.
پارامترها | هسته | رشته |
---|---|---|
مفهوم | هسته CPU یک جزء سختافزاری فیزیکی است. | ترد یک جزء مجازی است که برای مدیریت وظایف استفاده میشود. |
فرایند | CPU فقط زمانی به رشته دوم دسترسی پیدا میکند که اطلاعات ارسال شده توسط رشته اول قابل اطمینان نباشند. | روشهای مختلفی برای تعامل میان CPU و چندین رشته وجود دارد. |
گسترش | میتوان از طریق عملیات ترکیبی به آن دسترسی پیدا کرد. | با استفاده از چندین پردازنده CPU انجام میشود. |
مزیت | CPU میزان کار انجام شده به صورت همزمان را افزایش میدهند. | تردها هزینه استقرار را به حداقل رسانده و پاسخ گرافیکی را افزایش میدهند. |
واحدهای پردازش | برای کارکرد صحیح به یک واحد پردازش واحد نیاز دارد. | برای انجام هر وظیفه نیاز به چندین واحد پردازش دارد. |
محدودیتها | با افزایش کار، انرژی بیشتری مصرف میکند. | هنگام انجام چندین فرایند بهطور همزمان، میتوان هماهنگی بین سیستمعامل، هسته و رشتهها را تجربه کرد. |
کار پردازنده یا CPU چیست
همانطور که قبلاً گفتیم، پردازنده مغز کامپیوتر شما است. این قطعه دادهها را از یک برنامه یا اپلیکیشن خاص میگیرد، یک سری محاسبات را روی آنها انجام میدهد و در نهایت فرمان را اجرا میکند. پردازنده یک چرخه سه قسمتی را انجام میدهد که به آن حلقه تکراری واکشی، رمزگشایی و اجرا میگویند.
در مرحله اول، CPU دستورالعملها را از حافظه سیستم شما دریافت میکند. هنگامی که این بخش دستورالعملهای مربوط به حافظه را دریافت کرد، وارد مرحله دوم میشود. در مرحله دوم است که دستورالعملها را رمزگشایی میکند. هنگامی که دستگاه دستورالعملها را رمزگشایی کرد، به مرحله سوم یعنی اجرا میرود.
اطلاعات رمزگشایی شده از CPU عبور میکنند تا به واحدهایی که باید عملکرد مورد نیاز را انجام دهند، برسند. پردازنده در فرایند رمزگشایی، معادلات ریاضی خاصی را انجام میدهد تا سیگنال مورد نیاز را به سیستم شما ارسال کند.
این چرخه بارها و بارها برای هر عمل و فرمان انجام میشود. در فناوری CPU پیشرفته، اجزای پردازنده شما دیگر همه کارها را خودشان انجام نمیدهند، اما هنوز یکی از قطعههای مورد نیاز هر سیستم هستند.
CPU بخش مهمی از هر سیستم را تشکیل میدهد و دوش به دوش رشتهها کار میکند. پردازندههای مختلف بنا به عملکردشان دارای تعداد رشتههای متفاوتی هستند که میتوانند عملکرد رایانه شما را محدود کرده یا گسترش دهند.
نقش رشته یا Thread در CPU
برای درک بهتر موضوع اصلی این مقاله، دانستن نحوه همکاری تردها و پردازندهها مفید است.
فرض کنید که دستوری را به سیستم دادهاید. پردازنده شما فرایند واکشی، رمزگشایی و اجرا را برای دستیابی به آن فرمان آغاز میکند. ترد دنبالهای از دستورالعملها است که به رایانه شما میگوید برای انجام آن فرمان باید چه کار کند. پردازندهها نیز دستورالعملهایی که برای اجرای فرمانهایی خاص به فرانت اند ارسال شدهاند را اجرا میکنند. سپس پردازندهها و رشتهها برای رسیدن به هدف اصلی سیستم تلاش میکنند.
آنها برای باز کردن برنامه، استفاده از اپلیکیشن، پخش فیلم و انجام هر کاری که از رایانه خود میخواهید با یکدیگر کار میکنند. وقتی صحبت از CPUها و رشتههایی میشود که در کنار هم کار میکنند، مهم نیست که دستورالعملها از کجا صادر میشوند؛ پردازنده شما است که تعیین میکند کدام پردازش توسط CPU و کدام یک توسط ترد انجام شود.
هر بار که پردازنده شما یک رشته جدید بارگذاری میکند، ترد اصلی در حافظه ذخیره میشود. هنگامی که دستورالعملهای آن از چرخه حذف میشوند، یک رشته جدید شروع و اولین مرحله از مراحل واکشی، رمزگشایی و اجرا آغاز میشود.
کلام آخر
کاربران متوسط عموما اطلاعات زیادی درباره تردها ندارند و اهمیتی نیز به آنها نمیدهند. اگر بهطور عمومی با رایانه سروکار دارید، مشکلی ندارد که درباره این موضوعات اطلاعاتی نداشته باشید. اما اگر میخواهید نحوه عملکرد رایانه خود را بدانید و بفهمید، درک رشتهها و ارتباط آنها با پردازندهها مهم است.
برای درک تردها، ابتدا باید بدانید CPU چیست و چه کار میکند. همچنین به درک چرخه واکشی، رمزگشایی و اجرا نیاز دارید. اما مهمترین چیزی که باید بدانید این است که رشتهها بر سرعت و کارآیی رایانه شما در اجرای همزمان چندین دستورالعمل تأثیر میگذارند.
در ویندوز، همه رشتهها بهطور فعال کار میکنند. برخی از پردازندهها دارای رشتههای متعدد با فناوری فراریسمانی هستند، به همین دلیل عملکردی مشابه دو برابر تعداد پردازندهها را شبیهسازی میکنند. با داشتن تعداد زیادی رشته، حتی یک پردازنده تکی نیز میتواند کارهای مختلفی را همزمان انجام دهد.
برای داشتن یک سیستم کاربردی، به CPU و تعداد رشتههای مناسب نیاز دارید. این دو، عناصر مهمی هستند که به رایانه اجازه کار میدهند. شما برای پردازش سایر قطعات و ارسال دستورالعمل به قطعههای دیگر رایانه خود به CPU احتیاج دارید. همچنین به تردها نیاز است تا عملکردهای زیادی را همزمان انجام دهند و بدین شکل سیستم با سرعت بیشتری کار کند. بدون این دو فاکتور، هیچ عملکردی در سیستم خود مشاهده نخواهید کرد.