امروزه پردازندههای چند هستهای که دارای واحدهای پردازشی متعددی بر روی یک تراشهی سختافزاری میباشند، به طور گستردهای به عنوان راهی برای رسیدن به افزایش کارایی و موازی سازی درون پردازنده مورد استفاده قرار میگیرند. استفادهی مناسب از منابع پردازشی در این پردازندههای میتواند در افزایش کارایی برنامهها بسیار موثر باشد و در نقطهی مقابل، عدم استفادهی بهینه و شایسته از آنها نه تنها باعث عدم افزایش کارایی بلکه در مواردی باعث افت شدید کارایی در برنامهها خواهد شد.
در این پردازندهها برخی منابع به صورت اشتراکی بین هستههای مختلف مورد استفاده قرار میگیرند. مسئلهی رقابت بر سر منابع اشتراکی در پردازندههای چند هستهای به عنوان یک چالش بزرگ اخیرا مورد توجه بسیاری از محققین در این زمینه قرار گرفته است. زمانبند سیستمعامل میتواند به عنوان یکی از ابزارهای بسیار مهم و کارا به منظور رفع این مشکل مورد استفاده قرار گیرد. در بسیاری از کارهای انجام شده در این زمینه، زمانبند صرفا به یک معیار در تصمیمگیری توجه مینماید: معیار میزان رقابت بر سر حافظهی نهان. حال اینکه در یک محیط واقعی عوامل تأثیرگذاری دیگری نیز در تصمیمگیری زمانبند دخیل خواهند بود از جمله اولویت نخها. چرا که اولویت یکی از ابزار اعمال سیاستهای مختلف محیطی بر روی پردازشها میباشد.
در مدل معماری سادهی فن نیومن یک برنامه، دنبالهای از دستورالعملها است که در حافظهی کامپیوتر ذخیره شده و یکی پس از دیگری به شکل خطی اجرا میشوند.
با گذر زمان، پیشرفتهای زیادی در تکنولوژی کامپیوترهای بزرگ که معماری فن نیومن را استفاده مینمودند، رخ داد. در دههی 60 میلادی شاهد ظهور سیستمعاملهای اشتراک زمانی بودیم. با اجرای این سیستمعاملها بر روی کامپیوترهای بزرگ، برای اولین بار مفاهیم اجرای همروند برنامهها معرفی شد. کاربران متعدد میتوانستند به صورت همزمان به یک کامپیوتر دسترسی داشته باشند و کارهایشان را برای اجرا بر روی آن ارسال نمایند. از دید هر برنامه، آن برنامه تنها پردازشی است که در حال اجرا بر روی آن کامپیوتر میباشد. سیستمعامل مسئول انتساب پردازنده به هر یک از برنامهها است. در این حالت، همروندی در سطح پردازش است و عمل تغییر وظایف به عهدهی برنامهنویس سیستمی باقی میماند.
به منظور دستیابی به اجرای موازی برنامهها، سختافزارها بایستی بستری را فراهم نمایند که از اجرای همزمان چندین وظیفه پشتیبانی کند. به طور کلی، معماریهای کامپیوتری میتوانند از دو بُعد دستهبندی شوند. اولین بُعد تعداد جریان دستورالعملها است که در یک معماری کامپیوتر خاص میتوانند در یک لحظه در حال اجرا باشند. دومین بُعد تعداد جریان دادهایی است که میتوانند در یک لحظه از زمان مورد پردازش قرار گیرند.
فهرست مطالب
1- مقدمه 1
1-1- معرفی پردازندههای چند هستهای 2
1-1-1- بسترهای محاسبات موازی 3
1-1-2- محاسبات موازی در پردازندهها 5
1-1-3- مقایسهی چندنخی بر روی بسترهای تک هستهای و بسترهای چند هستهای 9
1-2- مسئلهی رقابت بر سر منابع اشتراکی در پردازندههای چند هستهای و اهمیت آن 12
1-2-1- چالشها و اهمیت زمانبندی در پردازندههای چند هستهای 13
2- بررسی کارهای پیشین 20
2-1- نحوهی محاسبهی معیار Pain 27
2-2- شبیهسازهای مورد استفاده در کارهای مشابه 39
3- مراجع 41