LWPها و کاربرد نخها در سیستمهای توزیعشده
توضیحات
در جلسه پانزدهم درس سیستمعامل پیشرفته دکتر حقیقت که از مهمترین دروس تخصصی آزمون دکترای مهندسی کامپیوتر در گرایش نرمافزار و گرایش شبکه و رایانش است، ادامه فصل سوم این درس با عنوان «فرایندها» تدریس میشود. در جلسه قبل، نخها (Threads) و فرايند چندنخی (Multithread) شرح داده شد. در مورد چیستی و چرایی نخ صحبت شد و اهداف و کاربردهای چندنخی به طور کامل شرح داده شد. همچنین پیادهسازی نخ مورد مطالعه قرار گرفت و دو مدل نخهای سطح کاربر و نخهای سطح هسته شرح داده شد. در این جلسه مدل ترکیبی و LWPها شرح داده میشوند و پس از آن کاربرد نخها در سیستمهای توزیعشده مورد بحث و بررسی قرار میگیرند. ابتدا دلایل ایجاد فرایندهای سبک وزن (LWP: Light Weight Processes) شرح داده میشود. در این مدل چند به چند (Many to Many) چندین نخ سطح کاربر به تعداد کمتر یا مساوی از نخهای سطح هسته (LWPها) نگاشت میشوند. تعداد نخهای سطح هسته هر فرایند به دو چيز بستگی دارد: 1) نوع کاربرد (ميزان I/O Limited یا CPU Limited بودن آنها) 2) تعداد پردازندهها یا هستههای موجود. سپس در مورد مسدود شدن نخهای سطح کاربر، مسدود شدن LWP ها و مسدود شدن کل فرایند صحبت میشود. نخها به دو صورت ممكن است مسدود شوند. یكی با فراخوان سيستمی و توسط هسته و دیگری بافراخوان تابعی از کتابخانه سطح کاربر برای خوابيدن. سپس در مورد Upcall مفهوم مهم Scheduler Activation (فعالسازی زمانبند) صحبت میشود. بعد از آن چندنخی همگام (Synchronous Multithreading) و چندنخی ناهمگام (Asynchronous Multithreading) توضیح داده میشود. سپس کاربرد نخها در سیستمهای توزيعشده تشریح میشود. ابتدا کاربرد نخها در مشتریهای چندنخی و بعد از آن کاربرد نخها در سرورهای چندنخی مورد بررسی قرار میگیرند. سه نوع پیادهسازی سرورها در سیستمهای توزیع شده شرح داده میشود: 1) تک نخی تکرار شونده 2) همروند چندنخی 3) ماشین حالت متناهی (FSM: Finite State Machine).