صفحه 1:
ريسه ها Threads اسلايدهاي فصل چهارم کتاب سیلبرشاتز دانشکده مهندسي کامپیوتر دانشگاه شریف

صفحه 2:
۸ ) مروري بر عناوین مطالب XR مفاهيم كلي مدل هاي جند ريسه اي (كد كدج دان (01) استفاده از ريسه ها bb Ptkrecd زیسه هاي سولاریس 2 ریسه هاي سیستم عامل ویندوز 66 ريسه هاي مزر lava (cle any,

صفحه 3:
9 گاهی اوقات با نام پردازه سبک وزن 06 ز 9 از یک شناسه ریسه, یک شمارنده برنامه, یک مجموعه ثبات و یک پشته شده است. تقریبا همه چیز را با سایر ریسه هاي همان پردازه به اشتراک می گذارد. * بخش کد بخش داده * _منابع در اختیار گذاشته شده توسط سیستم عامل مانند پرونده هاي باز, " یک پردازه تک ریسه اي تنها یک ریسه کنترلي دارد. ۴ استفاده از ز چندین ریسه كنترلي به پردازه اجازه مي دهد چندین کار را به صورت همزمان انجام دهد.

صفحه 4:
9 بردازه هاي تك ريسه اي و جند يسه اي ‎Raa‏ code code data files registers registers |) registers |} registers stack stack stack single-threaded multithreaded

صفحه 5:
۴ پاسخ دهي 7 از آنجا که اجراي برنامه حتي در صورت متوقف شدن بخشي از آن باز هم اذامه.مى يابدء ياسخ ذهى برنامة بهبود می یابد. ۱ * اشتراک منابع Q به صورت ييش فرضء ریسه ها حافظه و منابع پردازه را به اشتراک میگذارند. © صرفه جويي در منابع سيستمي ‎F‏ ایجاد یک ریسه به مراتب ارزانتر از ایجاد یک پردازه است. ‏* بهره برداری از معماری هاي چندپردازنده ‏1" اجراي هر ریسه روي یک پردازنده > افزايش درجه توازي و کارايی ‎ ‎ ‎

صفحه 6:
3 مدي ریسه ها توسط کتابخانه ریسه اي در سطح کاربر انجام مي ش ل نمونه ها: کتابخانه طعام در سیستم عامل هاي 0/6 کتابخانه لس( در مکینتاش و کتابخانه ط۲۱() در سولاریس. © ریسه هاي هسته ‎a‏ هسته مستقیما از ریسه ها حمایت مي کند. ۳ نمونه ها: ویندوز ۰95 98 ‎DAE. Saige «ee Vow +2000 4 OT‏ 68 و لینوکس

صفحه 7:
مروري بر عناوین مطالب مفاهیمکلي مدل هاي چند ربسه اي مس نان0)) استفاده از ریسه ها b Ptkrecd ریسه هاي سولاریس 2 ریسه هاي سیستم عامل ویندوز 2۴6 ریسه هاي مرا ریسه ‎cle‏ ول

صفحه 8:
* مدل هاي جند ريسه اي 3 مدل جند به یک «سمسسوم) 7" مدل یک به یک ‎Ovrw-Ow)‏ ‏7" مدل چند به چند . ربوجسووه)

صفحه 9:
مدل چند به یک ۱ 9 در این مدل تعداد زیادی ریسه سطح كاربر به يك ريسه سطح " اين مدل در سيستم هابي كه در آنها هسته مستقيما از ريسه ها حمايت نمى كند استفاده مي شود. — kernel thread

صفحه 10:
يع مدل يك به يك "" دراين مدل هر ريسه سطح كاربر به يك ريسه سطح هسته نكاشت مي شود. ۳ نمونه ها: ویندوز 95 98 0 و 2000 006/6 user thread SPE © © O O--—

صفحه 11:
۱ ‏مدل جند به جدد‎ Gaps . اين مدل اجازه مي دهد جندين ريسه سطح كاربر به جنديز ريسه سطح هسته نكاشت ‎Ng‏ مضع | سيستم عامل اجازه دارد به تعداد كافي ريسه سطح هسته ايجاد کند. نمونه ها: سولاریس 2 ویندوز ۲ و 2000 که کتابخانه ۳ تس روي آنها نصب شده باشد.

صفحه 12:
9 مانند چند به چند؛ با این تفاوت كه اجازه مي دهد يك | سه ; و ريسه سطح كاربر به يك ريسه سطح هسته اختصاص يابد. ARK, WP-OX, MOF ‏مثال:‎ "" Ocix, Soke ©

صفحه 13:
APL گم ‎aie‏ مروري بر عناوین مطالب 9 4 معا مفاهيم كلي مدل هاي چند ریسه اي ( ‎Dutt‏ ‏مسائل مربوط به ربسه ها bs Pihread ويسه هاي سولاریس 2 * ریسه هاي سیستم عامل ویندوز 26۳ Dien (gle ‏ریسه‎ ریسه های سحل

صفحه 14:
0 exec 4 () fork ‏روال های‎ ۴ وقتي یک ریسه ۴ را فراخواني مي کند. آیا پردازه جدید از تمام ریسه هاي پردازه قبلي نسخه برداري مي کند يا فقط از ریسه فراخواننده یک نسخه ایجاد مي کند؟ 1 برخي نكارش هاي یونیکس دو روال ۳۸ ارایه مي کنند: ‎a‏ يك نسخه از تمام ريسه ها نسخه برداري مي كند. يك نسخه فقط از ریسه فراخواننده نسخه برداري می کند. با فراخواني عم برنامه مشخص شده در پا ارامترهاي فراخواني جایگزین پردازه فراخواننده و تمامي ریسه هاي آن مي شود.

صفحه 15:
۴ به فرایند پایان دهي یک ریسه پیش از پایان کار آن «ابطال ریسه» مي كوييم. " ابطال ريسه ممكن است به دو صورت متفاوت رخ دهد: 1. ابطال ناهمكام: 7 يك ريسه ديكر بلافاصله به اجراي ريسه هدف يايان مي دهد. 2. ابطال به تعويق افتاده: ا ريسه هدف به صورت دوره اي جك مي كند كه آيا بايد به اجراي خود خاتمه دهد يا خير؟

صفحه 16:
6 رسيدگي به سیگنال ‎ae‏ ‎SS‏ 7 تن يراي ب ده ها در مور وقایع سل مي شود. * یک رسيدگي کننده سیگنال (۲۱,۲0۳۲ ۸۳۳۷()) براي پردازش سیگنالها مورد استفاده قرار مي گیرد. 8 سیگنال توسط یک رخداد خاص ایجاد مي شود. 3 سیگنال به پردازه تحویل داده مي شود ۵ سیکنال مورد رسيدگي قرار مي گیرد ۴ گزینه ها: 2 سیکنال را به ریسه ي مربوطه تحویل دهیم سیگنال را به همه ریسه هاي موجود در پردازه تحویل دهیم. سیگنال را به ریسه هايي معین در پردازه تحویل دهیم یک ریسه خاص را مسئول دریافت همه سینگالها قرار دهیم. a a a

صفحه 17:
مخزن ریسه (200[1 121620) = ايده کلی: 9 هنگام راه اندازي پردازه تعدادي ریسه نیز ایجاد کن. 2" اين ريسه ها را در یک مخزن قرار بده و منتظر بمان تا پردازه اعلام نیاز به یک ریسه کند. 9 معمولا پاسخ به یک درخواست خدمات با استفاده از یک ریسه موجود سريع تراز حالتى است كه بايد يك ريسه نيز ايجاد شود.

صفحه 18:
(aols!) (Thread Pool) aus 555 = استفاده از مخزن ریسه ها تعداد ریسه ها در هر یک از نقاط کاري سیستم را محدود مي کند. 7 اگر هنگام دریافت درخواست. درون مخزن هیچ ریسه اي موجود نباشد (به عبارت دیگر. پردازه. همه ریسه هاي اختصاص افته را قبلا فعال کرده باشد و هنوز هم فعال باشند) پردازه باید صبر کند تا يكي از ریسه هاي قبلى آزاد شوند. 7 ۱

صفحه 19:
* واسط برنامه نویسی استاندارد (009.0 16006 6*00 براي ایجاد و همگامی ر یسه ها. * واسط برنامه نوبسي تنها رفتار کتابخانه ریسه اي را مشخص مي کند. و پیاده سازی روال ها به عهده توسعه دهنده کتابخانه است. 9 معمولا در سیستم عامل هاي یونیکس از اين کتابخانه استفاده مي شود.

صفحه 20:
© پایان فصل 4

صفحه 21:
۴ پردازه هاي سبک وزن 4/00 بين ريسه هاي سطح كاربر و ریسه هاي سطح هسته قرار گرفته اند. * هر پردازه حداقل یک ۸6۳ دارد. * تنها ریسه هاي سطح کاربري که به یک ۱۸06۳ متصل باشند اجرا مي شوند. ساير ريسه ها يا متوقف شده اند و يا منتظر اختصاص یک ‎LOP‏ هستند.

صفحه 22:
user-level thread ‎lightweight process‏ سر ‎ ‎ ‎

صفحه 23:
6 یک پردازه در سولاریس 2 وی process id memory map list of open files

صفحه 24:
2617 ‏ريسه ها در ويندوز‎ aig’ vu * ویندوز 26۳ از نگاشت یک به یک استفاده می کند. * هر ریسه شامل اطلاعات زیر است: ل یک شناسه ریسه ۲ یک مجموعه ثبات 7 پشته هاي مجزا براي سطح کاربر و هسته 2 مقداري حافظه اختصاصي * مجموعه ثباتها. پشته هاء و حافظه اختصاصی به عنوان زمينه ريسه شناخته مي شوند.

صفحه 25:
" در لينوكس به ريسه ها به عنوان وظيفه ©" ارجاع مي شود. = ايجاد ريسه ها با استفاده از فراخواني روال سيستمي عه () انجام مي شود. = پس از اجراي عاه( فضاي حافظه وظيفه (يا يردازه) يدر بين يدر و فرزند به اشتراک گذاشته می شود.

صفحه 26:
‎Cais’‏ ريسه هاي جاوا ‎Ran ‏* به دو صورت مي توان در جاوا ریسه ایجاد کرد: ارث بري کلاس امس و پیاده سازی واسط ‎Rrrnnble‏ ‏0 ريسه هاي جاوا توسط ۱620 مدیریت مي شوند. ‎sleep() ‎suspend() ‎vO ‎ ‎

ريسه ها ‏Threads اساليدهاي فصل چهارم کتاب سيلبرشاتز دانشکده مهندسي کامپيوتر دانشگاه شريف مروري بر عناوين مطالب ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ مفاهيم کلي مدل هاي چند ريسه اي ()Multithreading استفاده از ريسه ها Pthreadها ريسه هاي سوالريس 2 ريسه هاي سيستم عامل ويندوز XP ريسه هاي Linux ريسه هاي Java مفاهيم کلي ‏ يک ريسه ... ‏ ‏ ‏ گاهي اوقات با نام پردازه سبک وزن ( )LWPنيز شناخته مي شود. از يک شناسه ريسه ،يک شمارنده برنامه ،يک مجموعه ثبات و يک پشته تشکيل شده است. تقريبا همه چيز را با ساير ريسه هاي همان پردازه به اشتراک مي گذارد. ‏ ‏ ‏ ‏ ‏ بخش کد بخش داده منابع در اختيار گذاشته شده توسط سيستم عامل مانند پرونده هاي باز. يک پردازه تک ريسه اي تنها يک ريسه کنترلي دارد. استفاده از چندين ريسه کنترلي به پردازه اجازه مي دهد چندين کار را به صورت همزمان انجام دهد. پردازه هاي تک ريسه اي و چند ريسه اي مزاياي ريسه ها ‏ پاسخ دهي ‏ ‏ اشتراک منابع ‏ ‏ به صورت پيش فرض ،ريسه ها حافظه و منابع پردازه را به اشتراک ميگذارند. صرفه جويي در منابع سيستمي ‏ ‏ از آنجا که اجراي برنامه حتي در صورت متوقف شدن بخشي از آن باز هم ادامه مي يابد ،پاسخ دهي برنامه بهبود مي يابد. ايجاد يک ريسه به مراتب ارزانتر از ايجاد يک پردازه است. بهره برداري از معماري هاي چندپردازنده ‏ اجراي هر ريسه روي يک پردازنده ‏ افزايش درجه توازي و کارايي ريسه هاي کاربر و هسته ‏ ريسه هاي کاربر ‏ ‏ ‏ مديريت ريسه ها توسط کتابخانه ريسه اي در سطح کاربر انجام مي شود. نمونه ها :کتابخانه pthreadsدر سيستم عامل هاي ،POSIXکتابخانه C-threadsدر مکينتاش و کتابخانه UI-threadsدر سوالريس. ريسه هاي هسته ‏ ‏ هسته مستقيما از ريسه ها حمايت مي کند. نمونه ها :ويندوز NT ،98 ،95و ،2000سوالريس ،يونيکس Tru64، BeOSو لينوکس مروري بر عناوين مطالب ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ مفاهيم کلي مدل هاي چند ريسه اي ()Multithreading استفاده از ريسه ها Pthreadها ريسه هاي سوالريس 2 ريسه هاي سيستم عامل ويندوز XP ريسه هاي Linux ريسه هاي Java مدل هاي چند ريسه اي ‏ مدل هاي چند ريسه اي ‏ ‏ ‏ مدل چند به يک مدل يک به يک مدل چند به چند ()Many-to-One ()One-to-One ()Many-to-Many مدل چند به يک ‏ در اين مدل تعداد زيادي ريسه سطح کاربر به يک ريسه سطح هسته نگاشت مي شوند. ‏ اين مدل در سيستم هايي که در آنها هسته مستقيما از ريسه ها حمايت نمي کند استفاده مي شود. مدل يک به يک ‏ در اين مدل هر ريسه سطح کاربر به يک ريسه سطح هسته نگاشت مي شود. ‏ نمونه ها :ويندوز NT ،98 ،95و ،2000 .OS/2 مدل چند به چند ‏ ‏ ‏ اين مدل اجازه مي دهد چندين ريسه سطح کاربر به چندين ريسه سطح هسته نگاشت شوند. سيستم عامل اجازه دارد به تعداد کافي ريسه سطح هسته ايجاد کند. نمونه ها :سوالريس ،2ويندوز NTو 2000که کتابخانه Fiber روي آنها نصب شده باشد. مدل دو سطحي ‏ ‏ مانند چند به چند؛ با اين تفاوت كه اجازه مي دهد يك ريسه سطح كاربر به يك ريسه سطح هسته اختصاص يابد. مثالIRIX, HP-UX, Tru64 : ‏Unix, Solaris 8 مروري بر عناوين مطالب ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ مفاهيم کلي مدل هاي چند ريسه اي ()Multithreading مسائل مربوط به ريسه ها Pthreadها ريسه هاي سوالريس 2 ريسه هاي سيستم عامل ويندوز XP ريسه هاي Linux ريسه هاي Java روال هاي )( forkو )( exec ‏ وقتي يک ريسه forkرا فراخواني مي کند ،آيا پردازه جديد از تمام ريسه هاي پردازه قبلي نسخه برداري مي کند يا فقط از ريسه فراخواننده يک نسخه ايجاد مي کند؟ ‏ برخي نگارش هاي يونيکس دو روال forkارايه مي کنند: ‏ ‏ ‏ يک نسخه از تمام ريسه ها نسخه برداري مي کند. يک نسخه فقط از ريسه فراخواننده نسخه برداري مي کند. با فراخواني execبرنامه مشخص شده در پارامترهاي فراخواني جايگزين پردازه فراخواننده و تمامي ريسه هاي آن مي شود. ابطال ريسه (Thread )Cancellation ‏ به فرايند پايان دهي يک ريسه پيش از پايان کار آن «ابطال ريسه» مي گوييم. ‏ ابطال ريسه ممکن است به دو صورت متفاوت رخ دهد: .1ابطال ناهمگام: يک ريسه ديگر بالفاصله به اجراي ريسه هدف پايان مي دهد. .2ابطال به تعويق افتاده: ريسه هدف به صورت دوره اي چک مي کند که آيا بايد به اجراي خود خاتمه دهد يا خير؟  ‏ رسيدگي به سيگنال (Signal )Handling سيگنال براي اطالع رساني به پردازه ها در مورد در سيستم هاي يونيکس از وقايع استفاده مي شود. يک رسيدگي کننده سيگنال ( )Signal Handlerبراي پردازش سيگنالها مورد استفاده قرار مي گيرد. ‏ سيگنال توسط يک رخداد خاص ايجاد مي شود. سيگنال به پردازه تحويل داده مي شود سيگنال مورد رسيدگي قرار مي گيرد. ‏ سيگنال را به ريسه ي مربوطه تحويل دهيم. سيگنال را به همه ريسه هاي موجود در پردازه تحويل دهيم. سيگنال را به ريسه هايي معين در پردازه تحويل دهيم. يک ريسه خاص را مسئول دريافت همه سينگالها قرار دهيم. ‏ ‏ ‏ گزينه ها: ‏ ‏ ‏ مخزن ريسه ()Thread Pool ‏ ايده کلي: ‏ ‏ ‏ هنگام راه اندازي پردازه تعدادي ريسه نيز ايجاد کن. اين ريسه ها را در يک مخزن قرار بده و منتظر بمان تا پردازه اعالم نياز به يک ريسه کند. معموال پاسخ به يک درخواست خدمات با استفاده از يک ريسه موجود سريع تر از حالتي است که بايد يک ريسه نيز ايجاد شود. مخزن ريسه (( )Thread Poolادامه) ‏ استفاده از مخزن ريسه ها تعداد ريسه ها در هر يک از نقاط کاري سيستم را محدود مي کند. ‏ اگر هنگام دريافت درخواست ،درون مخزن هيچ ريسه اي موجود نباشد (به عبارت ديگر ،پردازه ،همه ريسه هاي اختصاص يافته را قبال فعال کرده باشد و هنوز هم فعال باشند) پردازه بايد صبر کند تا يکي از ريسه هاي قبلي آزاد شوند. Pthreads ‏ واسط برنامه نويسي استاندارد ) POSIX (IEEE 1003.1cبراي ايجاد و همگامي ريسه ها. ‏ واسط برنامه نويسي تنها رفتار کتابخانه ريسه اي را مشخص مي کند ،و پياده سازي روال ها به عهده توسعه دهنده کتابخانه است. ‏ معموال در سيستم عامل هاي يونيکس از اين کتابخانه استفاده مي شود. پايان فصل 4 ريسه هاي سوالريس 2 ‏ سوالريس 2عالوه بر Pthreadsبا فراهم کردن UI-threadsاز ريسه هاي سطح کاربر نيز پشتيباني مي کند. ‏ پردازه هاي سبک وزن ( )LWPبين ريسه هاي سطح کاربر و ريسه هاي سطح هسته قرار گرفته اند. ‏ هر پردازه حداقل يک LWPدارد. ‏ تنها ريسه هاي سطح کاربري که به يک LWPمتصل باشند اجرا مي شوند. ساير ريسه ها يا متوقف شده اند و يا منتظر اختصاص يک LWPهستند. ريسه هاي سوالريس 2 يک پردازه در سوالريس 2 ريسه ها در ويندوز XP ‏ ‏ ويندوز XPاز نگاشت يک به يک استفاده مي کند. هر ريسه شامل اطالعات زير است: ‏ ‏ ‏ ‏ يک شناسه ريسه يک مجموعه ثبات پشته هاي مجزا براي سطح کاربر و هسته مقداري حافظه اختصاصي مجموعه ثباتها ،پشته ها ،و حافظه اختصاصي به عنوان زمينه ريسه شناخته مي شوند. ريسه هاي لينوکس ‏ در لينوکس به ريسه ها به عنوان وظيفه ( )taskارجاع مي شود. ‏ ايجاد ريسه ها با استفاده از فراخواني روال سيستمي )( cloneانجام مي شود. ‏ پس از اجراي )( cloneفضاي حافظه وظيفه (يا پردازه) پدر بين پدر و فرزند به اشتراک گذاشته مي شود. ريسه هاي جاوا ‏ ‏ به دو صورت مي توان در جاوا ريسه ايجاد کرد :ارث بري کالس Threadو پياده سازي واسط .Runnable ريسه هاي جاوا توسط JVMمديريت مي شوند.

51,000 تومان