ریسه ها Threads
اسلاید 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 ()وقتي يک ريسه fork را فراخواني مي کند، آيا پردازه جديد از تمام ريسه هاي پردازه قبلي نسخه برداري مي کند يا فقط از ريسه فراخواننده يک نسخه ايجاد مي کند؟برخي نگارش هاي يونيکس دو روال fork ارايه مي کنند:يک نسخه از تمام ريسه ها نسخه برداري مي کند.يک نسخه فقط از ريسه فراخواننده نسخه برداري مي کند.با فراخواني exec برنامه مشخص شده در پارامترهاي فراخواني جايگزين پردازه فراخواننده و تمامي ريسه هاي آن مي شود.
اسلاید 15: ابطال ريسه (Thread Cancellation)به فرايند پايان دهي يک ريسه پيش از پايان کار آن «ابطال ريسه» مي گوييم.ابطال ريسه ممکن است به دو صورت متفاوت رخ دهد:1. ابطال ناهمگام:يک ريسه ديگر بلافاصله به اجراي ريسه هدف پايان مي دهد.2. ابطال به تعويق افتاده:ريسه هدف به صورت دوره اي چک مي کند که آيا بايد به اجراي خود خاتمه دهد يا خير؟
اسلاید 16: رسيدگي به سيگنال (Signal Handling)در سيستم هاي يونيکس از سيگنال براي اطلاع رساني به پردازه ها در مورد وقايع استفاده مي شود.يک رسيدگي کننده سيگنال (Signal Handler) براي پردازش سيگنالها مورد استفاده قرار مي گيرد.سيگنال توسط يک رخداد خاص ايجاد مي شود.سيگنال به پردازه تحويل داده مي شودسيگنال مورد رسيدگي قرار مي گيرد.گزينه ها:سيگنال را به ريسه ي مربوطه تحويل دهيم.سيگنال را به همه ريسه هاي موجود در پردازه تحويل دهيم.سيگنال را به ريسه هايي معين در پردازه تحويل دهيم.يک ريسه خاص را مسئول دريافت همه سينگالها قرار دهيم.
اسلاید 17: مخزن ريسه (Thread Pool)ايده کلي:هنگام راه اندازي پردازه تعدادي ريسه نيز ايجاد کن.اين ريسه ها را در يک مخزن قرار بده و منتظر بمان تا پردازه اعلام نياز به يک ريسه کند.معمولا پاسخ به يک درخواست خدمات با استفاده از يک ريسه موجود سريع تر از حالتي است که بايد يک ريسه نيز ايجاد شود.
اسلاید 18: مخزن ريسه (Thread Pool) (ادامه)استفاده از مخزن ريسه ها تعداد ريسه ها در هر يک از نقاط کاري سيستم را محدود مي کند.اگر هنگام دريافت درخواست، درون مخزن هيچ ريسه اي موجود نباشد (به عبارت ديگر، پردازه، همه ريسه هاي اختصاص يافته را قبلا فعال کرده باشد و هنوز هم فعال باشند) پردازه بايد صبر کند تا يکي از ريسه هاي قبلي آزاد شوند.
اسلاید 19: Pthreadsواسط برنامه نويسي استاندارد POSIX (IEEE 1003.1c) براي ايجاد و همگامي ريسه ها.واسط برنامه نويسي تنها رفتار کتابخانه ريسه اي را مشخص مي کند، و پياده سازي روال ها به عهده توسعه دهنده کتابخانه است.معمولا در سيستم عامل هاي يونيکس از اين کتابخانه استفاده مي شود.
اسلاید 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 مديريت مي شوند.
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.