Operating System Lecture 4: Threads PDF

Summary

This document is a lecture on threads in operating systems. It covers various aspects of threads, including their creation, management, and use in multitasking environments. The presentation includes diagrams and details about various operating system models relating to threads.

Full Transcript

‫سیستم عامل‬ Operating system Click to edit Master subtitle style Lecture 4 Thread ‫نخ‬ ‫‪2‬‬ ‫‪[email protected]‬‬ ‫نخ ‪Thread‬‬...

‫سیستم عامل‬ Operating system Click to edit Master subtitle style Lecture 4 Thread ‫نخ‬ ‫‪2‬‬ ‫‪[email protected]‬‬ ‫نخ ‪Thread‬‬ ‫‪ ‬نخها دو یا چند کار را همزمان با هم انجام میدهند‪.‬‬ ‫‪ ‬نخها همانند برنامه نویسی ترتیبی دارای موارد زیرند‪.‬‬ ‫‪ ‬نقطه شروع‬ ‫‪ ‬ترتیب اجرا‬ ‫‪ ‬نقطه پایانی‬ ‫در حین اجرای نخها در هر لحظه از زمان یک نقطه اجرای یکتا وجود دارد‪.‬‬ ‫‪‬‬ ‫یک نخ به خودی خود یک برنامه نیست و نمی تواند اجرا شود‪.‬بلکه در داخل برنامه اجرا‬ ‫‪‬‬ ‫میشود‪.‬‬ ‫بعضی از متون به جای واژه نخ از واژه فرایند سبک وزن استفاده میکنند‪.‬‬ ‫‪‬‬ ‫یک نخ همانند یک فرایند واقعی است و در هر دو یک کنترل ترتیبی ساده وجود دارد‪.‬با این‬ ‫‪‬‬ ‫حال نخ یک فرایند سبک وزن است‪ ،‬چرا که در متن یک برنامه کامل اجرا میشود و از منابع‬ ‫تخصیص یافته به برنامه و محیط برنامه استفاده میکند‪.‬‬ ‫گاهی به نخ رد دستورالعمل نیز می گویند‪.‬‬ ‫‪‬‬ ‫به دلیل کنترل جریان ترتیبی نخها‪ ،‬هر نخ باید منابع مخصوص به خود را در حین اجرای‬ ‫‪‬‬ ‫برنامه داشته باشد‪.‬‬ ‫‪3‬‬ ‫‪[email protected]‬‬ ‫نخ ‪Thread‬‬ ‫‪ ‬شکل زیر روابط بین نخ و فرایند را نشان میدهد‪.‬‬ ‫‪4‬‬ ‫‪[email protected]‬‬ ‫نخهای چندگانه‬ ‫‪ ‬ممکن است در یک زمان چندین نخ در یک برنامه در حال اجرا باشند و کارهای‬ ‫متفاوتی را انجام دهند‪.‬شکل زیر این مطلب را نشان میدهد‪.‬‬ ‫‪5‬‬ ‫‪[email protected]‬‬ ‫چندنخی‬ ‫‪ ‬چند نخی به قابلیتی از سیستم عامل گفته میشود که از وجود چند نخ اجرا در‬ ‫یک فرایند واحد حمایت میکند‪.‬‬ ‫‪ MS-DOS ‬از فرایند تک کاربره و از نخ واحد حمایت میکند‪.‬‬ ‫‪ ‬محیط زمان اجرای جاوا نمونه سیستمی از یک فرایند و چند نخ می باشد‪.‬‬ ‫‪ ‬یونیکس از فرایند های کاربران متعدد ولی فقط با یک نخ در هر فرایند حمایت‬ ‫میکند‪.‬‬ ‫‪ ‬ویندوز‪ ،2000‬لینوکس‪.. ،‬از فرایندهای چندنخی حمایت میکنند‪.‬‬ ‫‪6‬‬ ‫‪[email protected]‬‬ ‫چندنخی و چند فرایندی‬ ‫‪7‬‬ ‫‪[email protected]‬‬ ‫بخشهای اطالعاتی فرایند و نخ‬ ‫‪ ‬در محیط چند نخی موارد زیر همراه هر فرایند هستند‪:‬‬ ‫‪ ‬فضای آدرس مجازی که تصویر فرایند را در بر دارد‬ ‫‪ ‬دسترسی حفاظت شده به پردازنده ها‪ ،‬فرایندهای دیگر‪،‬پرونده ها و منابع ورودی‬ ‫‪/‬خروجی‬ ‫‪ ‬در داخل هر فرایند یک یا چند نخ هر یک با موارد زیر ممکن است وجود داشته باشد‪:‬‬ ‫‪ ‬حالت اجرای نخ (اجرا‪ ،‬آماده‪ ،‬غیره)‬ ‫‪ ‬متن نخ ذخیره شده (که در حال اجرا نیست)‬ ‫‪ ‬پشته اجرا‬ ‫‪ ‬مقداری حافظه ایستا برای متغیرهای محلی هر نخ‬ ‫‪ ‬دسترسی به حافظه و منابع فرایند که مورد اشتراک تمام نخهای فرایند هستند‪.‬‬ 8 [email protected] ‫مدل تک نخی و چند نخی‬ ‫‪9‬‬ ‫‪[email protected]‬‬ ‫مزایای نخها‬ ‫‪ ‬ایجاد یک نخ جدید در یک فرایند موجود از ایجاد یک وظیفه جدید بسیار کمتر‬ ‫وقت می برد‪.‬‬ ‫‪ ‬پایان دادن به یشک نخ سریعتر است‪.‬‬ ‫‪ ‬تعویض دو نخ داخل یک فرایند کمتر وقت میگیرد‪.‬‬ ‫‪ ‬مورد دیگری که نخها موجب بهبود کارایی میشوند در ارتباط بین برنامه های‬ ‫در حال اجرای مختلف است‪.‬نظر به اینکه نخهای داخل یک فرایند در حافظه‬ ‫و پرونده ها شریک هستند‪ ،‬میتوانند بدون دخالت هسته با یکدیگر ارتباط برقرار‬ ‫کنند‪.‬‬ ‫‪10‬‬ ‫‪[email protected]‬‬ ‫نخها‬ ‫‪ ‬تعلیق مستلزم مبادله فضای آدرسها‪ ،‬به خارج از حافظه اصلی است‪.‬از آنجا که‬ ‫تمام نخهای یک فرایند از فضای آدرسهای مشترک استفاده میکنند‪ ،‬باید در‬ ‫همان زمان تمام نخها به حالت معلق وارد شوند‪.‬‬ ‫‪ ‬پایان یافتن فرایند موجب پایان یافتن تمام نخهای آن فرایند میشود‪.‬‬ ‫‪11‬‬ ‫‪[email protected]‬‬ ‫حاالت و اعمال نخها‬ ‫‪ ‬نخها نیز مانند فرایندها دارای حاالت اصلی اجرا‪ ،‬آماده‪ ،‬مسدود هستند‪.‬بیان‬ ‫حالت معلق برای نخ بی معناست‪ ،‬چرا تعلیق در سطح فرایند انجام می شود‪.‬‬ ‫‪ ‬چهار عمل نخها با تغییر حالت همراه است‪:‬‬ ‫‪ ‬ایجاد زایش‬ ‫‪ ‬مسدود شدن‬ ‫‪ ‬رفع مسدود بودن‬ ‫‪ ‬پایان ‪ :‬آزاد کردن ثبات متن و پشته اجرای نخ‬ ‫‪12‬‬ ‫‪[email protected]‬‬ ‫فراخوانی رویه از راه دور با استفاده ازنخها‬ ‫‪13‬‬ ‫‪[email protected]‬‬ ‫فراخوانی رویه از راه دور با استفاده ازنخها‪:‬‬ ‫‪14‬‬ ‫‪[email protected]‬‬ ‫نخهای سطح کاربر‬ ‫‪ ‬تمام کار مدیریت نخها توسط کاربر انجام میگیرد‪.‬‬ ‫‪ ‬هسته از وجود نخها بی اطالع است‪.‬‬ ‫‪ ‬با استفاده از کتابخانه نخها که مجموعه ای از روالها برای مدیریت نخهای سطح‬ ‫کاربر است‪،‬میتوان کاربرد ها را به صورت چندنخی برنامه سازی کرد‪.‬‬ ‫‪ ‬کتابخانه نخها شامل کد ایجاد و تخریب نخها‪ ،‬کد انتقال پیام ها و داده ها بین‬ ‫نخها‪ ،‬کد زمانبندی اجرای نخها‪ ،‬و کد ذخیره و بار کردن متن نخهاست‪.‬‬ ‫‪15‬‬ ‫‪[email protected]‬‬ ‫نخهای سطح هسته‬ ‫‪ ‬لینوکس‪ OS/2 ،‬و‪ W2K‬نمونه هایی از این رویکرد اند‪.‬‬ ‫‪ ‬هسته متن اطالعات را برای فرایندها و نخها نگهداری میکند‪.‬‬ ‫‪ ‬زمانبندی توسط هسته و بر مبنای نخ صورت میگیرد‪.‬‬ ‫‪16‬‬ ‫‪[email protected]‬‬ ‫عیب نخهای سطح کاربر‬ ‫‪ ‬در یک سیستم عامل متداول‪ ،‬اکثر فراخوانی های سیستم مسدود کننده هستند‪.‬‬ ‫بنابراین وقتی نخی یک فراخوانی سیستم را اجرا میکند نه تنها آن نخ بلکه تمام‬ ‫نخهای آن فرایند مسدود کننده اند‪.‬‬ ‫‪ ‬در یک راهبرد نخ سطح کاربر محض‪ ،‬کاربرد چند نخی نمیتواند از از امتیازات‬ ‫چند پردازشی استفاده نماید‪.‬هسته در هر زمان یک فرایند را فقط به یک‬ ‫پردازنده نسبت میدهد‪.‬بنابراین در هر لحظه فقط یک نخ داخل فرایند‬ ‫میتواند اجرا شود‪.‬‬ ‫‪17‬‬ ‫‪[email protected]‬‬ ‫مزیت نخهای سطح کاربرنسبت به نخ های سطح هسته‬ ‫‪ ‬تعویض نخ به حالت ممتاز هسته نیاز ندارد‪ ،‬زیرا تمام ساختمان داده های مدیریت‬ ‫نخ در داخل فضای آدرس کاربر یک فرایند واحد قرار دارند‪.‬بنابراین برای مدیریت نخ‬ ‫نیازی به تعویض فرایند به حالت ممتاز هسته نیست‪.‬این‪ ،‬امکان صرفه جویی دو‬ ‫تعویض حالت(از کاربر به هسته و بالعکس) را میدهد‪.‬‬ ‫‪ ‬کاربرد میتواند زمانبندی خاص داشته باشد‪.‬ممکن است کاربردی از یک الگوریتم‬ ‫زمانبندی نوبت گردشی ساده سود ببرد‪ ،‬در حالی که برای کاربرد دیگری یک الگوریتم‬ ‫زمانبندی مبتنی بر اولویت مفید تر باشد‪.‬میتوان الگوریتم زمانبندی را متناسب با‬ ‫کاربرد در نظر گرفت‪ ،‬بدون اینکه باری برای سیستم عامل داشته باشد‪.‬‬ ‫‪ ‬نخ های سطح کاربر میتوانند بر روی هر سیستم عاملی اجرا شوند‪.‬هیچ تغییری در‬ ‫هسته برای حمایت از نخهای سطح کاربر الزم نیست‪.‬کتابخانه نخها‪ ،‬مجموعه ای از‬ ‫برنامه های سودمند در سطح کاربرد و مورد اشتراک تمام کاربرد هاست‬ ‫‪18‬‬ ‫‪[email protected]‬‬ ‫عیب نخهای سطح هسته در مقابل نخهای سطح کاربر‬ ‫‪: ‬انتقال کنترل از یک نخ به نخ دیگر در داخل یک فرایند نیز نیازمند تغییر به‬ ‫حالت هسته است و این امر زمانبر است‪.‬‬ ‫‪19‬‬ ‫‪[email protected]‬‬ ‫مزیت نخهای سطح هسته‬ ‫‪ ‬این رویکرد هر دو اشکال نخهای سطح کاربر را رفع میکند‪.‬‬ ‫‪ ‬اوال هسته میتواند به طور همزمان نخهای چندگانه یک فرایند واحد را روی‬ ‫پردازنده های متعدد زمانبندی نماید‪.‬‬ ‫‪ ‬ثانیا اگر نخی از یک فرایند مسدود است‪ ،‬هسته میتواند نخ دیگری از همان‬ ‫فرایند را زمانبدی نماید‪.‬‬ ‫‪ ‬امتیاز دیگر‪ :‬خود روال های هسته نیز می توانند چند نخی باشند‪.‬‬ ‫‪20‬‬ ‫‪[email protected]‬‬ ‫راهبرد ترکیبی‬ ‫‪ ‬بعضی از سیستم های عامل ترکیبی از نخهای سطح کاربر و نخهای سطح هسته‬ ‫را ارائه میدهند‪.‬‬ ‫‪ Solaris ‬نمونه ای از این نوع سیستم عامل است‪.‬‬ ‫‪ ‬تولید نخ به طور کامل در فضای کاربر در داخل یک کاربرد صورت میگیرد‪.‬‬ ‫‪ ‬قسمت عمده زمانبندی و همگام سازی نخها در فضای کاربر صورت میگیرد‪.‬‬ ‫‪21‬‬ ‫‪[email protected]‬‬ ‫نمایی از نخهای سطح کاربر و هسته‬ ‫‪22‬‬ ‫‪[email protected]‬‬ ‫روابط بین نخها و فرایندها‬ ‫‪ ‬یک به یک‪ :‬هر نخ اجرا‪ ،‬یک فرایند یکتا با فضای آدرس ها و منابع خویش‬ ‫است‪.‬‬ ‫‪ ‬چند به یک‪ :‬یک فرایند‪ ،‬یک فضای آدرس و مالکیت پویای منابع را تعریف‬ ‫میکند و ممکن است نخهای متعدد داخل آن فرایند ایجاد گردد‪.‬‬ ‫‪ ‬یک به چند‪ :‬ممکن است یک نخ از محیط یک فرایند به محیط فرایند دیگر‬ ‫مهاجرت کند‪(.‬حرکت نخ بین سیستم های مجزا)‬ ‫‪ ‬چند به چند‪ :‬ترکیب خصوصیات موارد چند به یک و یک به چند‬ 23 [email protected] ‫اقالم یک سیستم کامپیوتری‬ :‫ جریان دستورالعمل واحد داده های واحد‬  Single Instruction Single Data (SISD) :‫ جریان دستورالعمل واحد داده های چندگانه‬  Single Instruction Multiple Data (SIMD) :‫ جریان دستورالعمل چندگانه داده های واحد‬  Multiple Instruction Single Data (MISD) : ‫ جریان دستورالعمل چندگانه داده های چندگانه‬  Multiple Instruction Multiple Data (MIMD) ‫‪24‬‬ ‫‪[email protected]‬‬ ‫‪ ‬جریان دستورالعمل واحد داده های واحد‪:‬‬ ‫‪ ‬یک پردازنده جریان واحدی از دستورالعمل را برای عمل روی داده هایی که در یک حافظه قرار دارند اجرا‬ ‫میکند‪.‬‬ ‫‪ ‬جریان دستورالعمل واحد داده های چندگانه‪:‬‬ ‫‪ ‬دستورالعمل واحدی از پردازنده اجرای همزمان تعدادی از عناصر پردازشی را‪ ،‬بر اساس پیشروی یکسان‬ ‫کنترل میکند‪.‬هر یک از عناصر پردازشی‪ ،‬حافظه مربوط به خود را (برای داده هایش) دارد‪.‬بنابراین هر‬ ‫دستورالعمل توسط پردازنده های مختلف روی مجموعه های متفاوتی از داده ها اجرا میشود‪.‬‬ ‫‪ ‬جریان دستورالعمل چندگانه داده های واحد‪:‬‬ ‫‪ ‬دنباله ای از داده ها به مجموعه ای از پردازنده ها که هر یک دنباله متفاوتی از دستورالعمل ها را اجرا‬ ‫میکنند‪ ،‬فرستاده میشود‪.‬‬ ‫‪ ‬این ساختار هیچگاه پیاده سازی نشده است‪.‬‬ ‫‪ ‬جریان دستورالعمل چندگانه داده های چندگانه ‪:‬‬ ‫‪ ‬مجموعه ای از پردازنده ها به طور همزمان‪ ،‬دنباله های متفاوتی از دستورالعمل ها را روی مجموعه های‬ ‫متفاوتی از داده ها اجرا می کنند‪.‬‬ ‫‪25‬‬ ‫‪[email protected]‬‬ ‫استفاده از نخها در یک سیستم تک کاربره چند پردازشی‬ ‫‪ ‬چهار مثال مختلف ازبه کارگیری از نخها در یک سیستم تک کاربره چند‬ ‫پردازشی‪:‬‬ ‫‪ ‬کار پیش زمینه و پس زمینه‬ ‫‪ ‬پردازش محاسبات آسنکرون( ناهمگام)‬ ‫‪ ‬اجرای سریع‬ ‫‪ ‬ساختار مؤلفه ای و ماژوالر برنامه‬ ‫‪26‬‬ ‫‪[email protected]‬‬ ‫معماری پردازنده های موازی‬ ‫‪27‬‬ ‫‪[email protected]‬‬ ‫چند پردازشی متقارن‬ ‫‪ ‬هسته میتواند بر روی هر پردازنده ای اجرا شود‪.‬‬ ‫‪ ‬نوعا هر پردازنده از نخها و فرایندهای موجود برای خود زمانبندی میکند‪.‬‬ ‫‪ ‬هسته میتواند به صورت فرایند های چندگانه با نخهای چندگانه ساخته شود‪.‬‬ ‫‪ ‬طراحی ‪ SMP‬مشکل است و موضوعات سازمان فیزیکی‪ ،‬ساختارهای اتصال‬ ‫داخلی‪ ،‬ارتباط بین پردازنده ها و ‪...‬را در بر دارد‪.‬‬ 28 [email protected] ‫چند پردازشی متقارن‬ 29 [email protected] ‫‪30‬‬ ‫‪[email protected]‬‬ ‫مالحظات طراحی سیستم عامل های چندپردازنده ای‬ ‫‪ ‬نکات اصلی طراحی عبارتند از‪:‬‬ ‫‪ ‬همزمانی نخها یا فرایندها‬ ‫‪ ‬زمانبندی‬ ‫‪ ‬همگام سازی‬ ‫‪ ‬مدیریت حافظه‬ ‫‪ ‬قابلیت اطمینان وتحمل خرابی‬ 31 [email protected]

Use Quizgecko on...
Browser
Browser