Presentation is loading. Please wait.

Presentation is loading. Please wait.

ريسه ها Threads اسلايدهاي فصل چهارم کتاب سيلبرشاتز

Similar presentations


Presentation on theme: "ريسه ها Threads اسلايدهاي فصل چهارم کتاب سيلبرشاتز"— Presentation transcript:

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

2 مروري بر عناوين مطالب مفاهيم کلي مدل هاي چند ريسه اي (Multithreading)
استفاده از ريسه ها Pthread ها ريسه هاي سولاريس 2 ريسه هاي سيستم عامل ويندوز XP ريسه هاي Linux ريسه هاي Java

3 مفاهيم کلي يک ريسه ... يک پردازه تک ريسه اي تنها يک ريسه کنترلي دارد.
گاهي اوقات با نام پردازه سبک وزن (LWP) نيز شناخته مي شود. از يک شناسه ريسه، يک شمارنده برنامه، يک مجموعه ثبات و يک پشته تشکيل شده است. تقريبا همه چيز را با ساير ريسه هاي همان پردازه به اشتراک مي گذارد. بخش کد بخش داده منابع در اختيار گذاشته شده توسط سيستم عامل مانند پرونده هاي باز. يک پردازه تک ريسه اي تنها يک ريسه کنترلي دارد. استفاده از چندين ريسه کنترلي به پردازه اجازه مي دهد چندين کار را به صورت همزمان انجام دهد.

4 پردازه هاي تک ريسه اي و چند ريسه اي

5 مزاياي ريسه ها پاسخ دهي اشتراک منابع صرفه جويي در منابع سيستمي
از آنجا که اجراي برنامه حتي در صورت متوقف شدن بخشي از آن باز هم ادامه مي يابد، پاسخ دهي برنامه بهبود مي يابد. اشتراک منابع به صورت پيش فرض، ريسه ها حافظه و منابع پردازه را به اشتراک ميگذارند. صرفه جويي در منابع سيستمي ايجاد يک ريسه به مراتب ارزانتر از ايجاد يک پردازه است. بهره برداري از معماري هاي چندپردازنده اجراي هر ريسه روي يک پردازنده  افزايش درجه توازي و کارايي

6 ريسه هاي کاربر و هسته ريسه هاي کاربر ريسه هاي هسته
مديريت ريسه ها توسط کتابخانه ريسه اي در سطح کاربر انجام مي شود. نمونه ها: کتابخانه pthreads در سيستم عامل هاي POSIX، کتابخانه C-threads در مکينتاش و کتابخانه UI-threads در سولاريس. ريسه هاي هسته هسته مستقيما از ريسه ها حمايت مي کند. نمونه ها: ويندوز 95، 98، NT و 2000، سولاريس، يونيکس Tru64، BeOS و لينوکس

7 مروري بر عناوين مطالب مفاهيم کلي مدل هاي چند ريسه اي (Multithreading)
استفاده از ريسه ها Pthread ها ريسه هاي سولاريس 2 ريسه هاي سيستم عامل ويندوز XP ريسه هاي Linux ريسه هاي Java

8 مدل هاي چند ريسه اي مدل هاي چند ريسه اي مدل چند به يک (Many-to-One)
مدل يک به يک (One-to-One) مدل چند به چند (Many-to-Many)

9 مدل چند به يک در اين مدل تعداد زيادي ريسه سطح کاربر به يک ريسه سطح هسته نگاشت مي شوند. اين مدل در سيستم هايي که در آنها هسته مستقيما از ريسه ها حمايت نمي کند استفاده مي شود.

10 مدل يک به يک در اين مدل هر ريسه سطح کاربر به يک ريسه سطح هسته نگاشت مي شود. نمونه ها: ويندوز 95، 98، NT و 2000، OS/2.

11 مدل چند به چند اين مدل اجازه مي دهد چندين ريسه سطح کاربر به چندين ريسه سطح هسته نگاشت شوند. سيستم عامل اجازه دارد به تعداد کافي ريسه سطح هسته ايجاد کند. نمونه ها: سولاريس 2، ويندوز NT و 2000 که کتابخانه Fiber روي آنها نصب شده باشد.

12 مدل دو سطحي مانند چند به چند؛ با اين تفاوت كه اجازه مي دهد يك ريسه سطح كاربر به يك ريسه سطح هسته اختصاص يابد. مثال: IRIX, HP-UX, Tru64 Unix, Solaris 8

13 مروري بر عناوين مطالب مفاهيم کلي مدل هاي چند ريسه اي (Multithreading)
مسائل مربوط به ريسه ها Pthread ها ريسه هاي سولاريس 2 ريسه هاي سيستم عامل ويندوز XP ريسه هاي Linux ريسه هاي Java

14 روال هاي fork () و exec ()
يک نسخه از تمام ريسه ها نسخه برداري مي کند. يک نسخه فقط از ريسه فراخواننده نسخه برداري مي کند. با فراخواني exec برنامه مشخص شده در پارامترهاي فراخواني جايگزين پردازه فراخواننده و تمامي ريسه هاي آن مي شود.

15 ابطال ريسه (Thread Cancellation)
به فرايند پايان دهي يک ريسه پيش از پايان کار آن «ابطال ريسه» مي گوييم. ابطال ريسه ممکن است به دو صورت متفاوت رخ دهد: 1. ابطال ناهمگام: يک ريسه ديگر بلافاصله به اجراي ريسه هدف پايان مي دهد. 2. ابطال به تعويق افتاده: ريسه هدف به صورت دوره اي چک مي کند که آيا بايد به اجراي خود خاتمه دهد يا خير؟

16 رسيدگي به سيگنال (Signal Handling)
در سيستم هاي يونيکس از سيگنال براي اطلاع رساني به پردازه ها در مورد وقايع استفاده مي شود. يک رسيدگي کننده سيگنال (Signal Handler) براي پردازش سيگنالها مورد استفاده قرار مي گيرد. سيگنال توسط يک رخداد خاص ايجاد مي شود. سيگنال به پردازه تحويل داده مي شود سيگنال مورد رسيدگي قرار مي گيرد. گزينه ها: سيگنال را به ريسه ي مربوطه تحويل دهيم. سيگنال را به همه ريسه هاي موجود در پردازه تحويل دهيم. سيگنال را به ريسه هايي معين در پردازه تحويل دهيم. يک ريسه خاص را مسئول دريافت همه سينگالها قرار دهيم.

17 مخزن ريسه (Thread Pool)
ايده کلي: هنگام راه اندازي پردازه تعدادي ريسه نيز ايجاد کن. اين ريسه ها را در يک مخزن قرار بده و منتظر بمان تا پردازه اعلام نياز به يک ريسه کند. معمولا پاسخ به يک درخواست خدمات با استفاده از يک ريسه موجود سريع تر از حالتي است که بايد يک ريسه نيز ايجاد شود.

18 مخزن ريسه (Thread Pool) (ادامه)
استفاده از مخزن ريسه ها تعداد ريسه ها در هر يک از نقاط کاري سيستم را محدود مي کند. اگر هنگام دريافت درخواست، درون مخزن هيچ ريسه اي موجود نباشد (به عبارت ديگر، پردازه، همه ريسه هاي اختصاص يافته را قبلا فعال کرده باشد و هنوز هم فعال باشند) پردازه بايد صبر کند تا يکي از ريسه هاي قبلي آزاد شوند.

19 Pthreads واسط برنامه نويسي استاندارد POSIX (IEEE c) براي ايجاد و همگامي ريسه ها. واسط برنامه نويسي تنها رفتار کتابخانه ريسه اي را مشخص مي کند، و پياده سازي روال ها به عهده توسعه دهنده کتابخانه است. معمولا در سيستم عامل هاي يونيکس از اين کتابخانه استفاده مي شود.

20 پايان فصل 4

21 ريسه هاي سولاريس 2 سولاريس 2 علاوه بر Pthreads با فراهم کردن UI-threads از ريسه هاي سطح کاربر نيز پشتيباني مي کند. پردازه هاي سبک وزن (LWP) بين ريسه هاي سطح کاربر و ريسه هاي سطح هسته قرار گرفته اند. هر پردازه حداقل يک LWP دارد. تنها ريسه هاي سطح کاربري که به يک LWP متصل باشند اجرا مي شوند. ساير ريسه ها يا متوقف شده اند و يا منتظر اختصاص يک LWP هستند.

22 ريسه هاي سولاريس 2

23 يک پردازه در سولاريس 2

24 ريسه ها در ويندوز XP ويندوز XP از نگاشت يک به يک استفاده مي کند. هر ريسه شامل اطلاعات زير است: يک شناسه ريسه يک مجموعه ثبات پشته هاي مجزا براي سطح کاربر و هسته مقداري حافظه اختصاصي مجموعه ثباتها، پشته ها، و حافظه اختصاصي به عنوان زمينه ريسه شناخته مي شوند.

25 ريسه هاي لينوکس در لينوکس به ريسه ها به عنوان وظيفه (task) ارجاع مي شود. ايجاد ريسه ها با استفاده از فراخواني روال سيستمي clone () انجام مي شود. پس از اجراي clone () فضاي حافظه وظيفه (يا پردازه) پدر بين پدر و فرزند به اشتراک گذاشته مي شود.

26 ريسه هاي جاوا به دو صورت مي توان در جاوا ريسه ايجاد کرد: ارث بري کلاس Thread و پياده سازي واسط Runnable. ريسه هاي جاوا توسط JVM مديريت مي شوند.


Download ppt "ريسه ها Threads اسلايدهاي فصل چهارم کتاب سيلبرشاتز"

Similar presentations


Ads by Google