عکس پیش‌فرض نوشته

در این جلسه از سری جلسات “سیستم های عامل” قصد داریم تا عناوینی را در مورد نخ ها مورد بررسی و بحث قرار دهیم.
همچنین به بررسی فرآیندهای تک نخی و چند نخی خواهیم پرداخت.

سیستم های عامل - نخ ها

فرآیندها و نخ ها :
فرآیند دو خصوصیت زیر را دارد :
1- تملک منبع (فرآیند یا وظیفه) :
به هر فرآیند یک آدرس مجازی برای نگهداری تصویر فرآیند می دهد.
2- توزیع وقت فرآیند (نخ یا فرآیند سبک وزن) :
فرآیند مسیر اجرای یک یا چند برنامه است و توسط سیستم عامل مورد زمان بندی و توزیع قرار می گیرد.

 

چند نخی : به قابلیتی از سیستم که امکان اجرای چند نخ را حمایت می کند.
تک نخی : به رویکرد سنتی یک نخ اجرا در هر فرآیند می گویند.
برای مثال MS-DOS از فرآیند تک کاربره و از یک نخ حمایت می کند.
UNIX از چند کاربر ولی تنها از یک نخ حمایت می کند.

موتور زمان اجرای java ،نمونه سیستمی از یک فرآیند چند نخی است.
در سیستم عامل های زیرازسیستم چند نخی استفاده شده است :
Windows NT و solaris و Mach و os/2

 

موارد همراه فرآیند :
– فضای آدرس مجازی که تصویر فرآیند را در بر دارد.
– دسترسی حفاظت شده به فرآیند
– حالت اجرای نخ
– متن ذخیره شده
– پشته اجرا
– مقداری حافظه ایستا برای متغییرهای محلی هر نخ
– دسترسی به منابع و حافظه فرآیند

 

مقاسیه فرآیند تک نخی و چند نخی :

فرآیند چند نخی :
– یک بلوک کنترل فرآیند ،فضای آدرس فرآیند ،برای هر نخ پسته جدا گانه و بلوک کنترل جدا گانه و … وجود دارد.
– تمام نخ های فرآیند ،در حالت و منابع آن فرآیند شریک هستند.
– در یک فضای آدرس هستند و به داده های یکسانی دسترسی دارند.

فرآیند تک نخی :
– شامل بلوک کنترل ،فضای آدرس فرآیند ،فضای آدرس فرآیند ،پشته کاربر ،هسته یرای مدیریت و … است.
حالات نخ :
– ایجاد (زایش) : با ایجاد یک فرآیند ،نخ هم ایجاد می شود.
– مسدود شدن : تا بروز حادثه ،نخ مسدود می شود.
– رفع مسدود بودن : اتّفاق حادثه لازم
– پایان : با تکمیل یک نخ ،متن ثبات و پشته های آن آزاد می شود.

همگام سازی نخ ها :
تمام نخ های یک فرآیند در فضای آدرس و در منابع دیگر شریک هستند ؛بر اساس این تغییر در هر یک از منابع توسط یک نخ در محیط سایرین تغییر ایجاد می کند ،لذا همگام سازی فرآیندها ضروری است.

به دو دلیل از نخ جداگانه برای رسم مجدد صفحه نمایش استفاده می شود :
1- page maker تعدادشیء هایی که در روی یک صفحه است را محدود نکند.
2- استفاده از نخ جداگانه ،امکان قطع کردن رسم را در اختیار می گذارد.

 

نخ های سطح کاربر :
– کار مدیریت توسط کاربر انجام می شود.
– هسته از وجود این نخ ها بی اطّلاع است.
– از کتابخانه ها برای مدیریت نخ ها استفاده می کنند.
– هر کاربردی با یک نخ شروع می شود و شروع اجرای آن از همان نخ است.
– هرگاه این نخ در حال اجرا باشد می توان نخ جدیدی را ایجاد کرد که به احضار کتابخانه منجر می شود.
– الگوریتم زمانبندی آن ایجاد می شود تا آماده اجرا می شود.

 

نخ های سطح هسته :
– تمام کار مدیریت نخ ،توسط هسته انجام می شود.
– کد مدیریت در ناحیه کاربرد وجود ندارد.
– یک نخ واسط برنامه سازی کاربردی ،به نخ هسته وجود دارد.

امتیاز نخ سطح کاربر به سطح هسته :
– تعویض نخ به حالت ممتاز نیاز ندارد.
– کاربرد می تواند زمان بندی خاص داشته باشد.
– نخ های سطح کاربر می توانند روی هر سیستم عامل اجرا گردند.

اشکال نخ های سطح کاربر به سطح هسته :
– اکثر فراخوانی های سیستم ،مسدود کننده هستند.
– کاربرد چند نخی نمی تواند از امتیازات چند پردازشی استفاده کند.

رفع اشکال نخ های سطح کاربر به سطح هسته :
– نوشتن کاربردها به صورت فرآیندهای متعدد به جای نخ های متعدد که امتیاز اصلی نخ ها را از بین می برد.
– راه حل غلبه بر نخ های مسدود کننده : استفاده از روشی به نام جلد کردن ،که هدف آن تبدیل فراخوانی سیستم از مسدود کننده به غیر مسدود کننده است.

امتیاز نخ های سطح هسته : (تمام کارمدیریت نخ توسط هسته انجام می شود.)
– هسته می تواند به صورت هم زمان ،نخ های چند گانه یک فرآند واحد را روی پردازنده های متعدد زمان بندی کند.
– اگر نخی در یک فرآیند مسدود شد ،هسته می تواند نخ دیگری از آن فرآیند را بار گذاری کند.
– خود روال های هسته نیز می تواند چند نخی باشد.

عیب اصلی نخ های سطح هسته :
– انتقال کنترل از یک نخ به نخ دیگر در داخل یک فرآیند واحد نیز نیازمند تغییر به حالت هسته است.

 

در بخش بعدی در مورد چند پردازشی متقارن و ریز سیستم ها بحث خواهیم نمود …

این آموزش بیش از ۳ سال قبل ارسال شده و اکنون در لیست به‌روزرسانی‌های سایت قرار دارد. اگر پیشنهاد یا انتقادی برای بهبود آموزش دارید، خوشحال می‌شیم به ما اطلاع بدهید.