منبع اصلی نوشتار زیر در این لینک قرار دارد

هسته سیستم عامل چیست – بخش دوم

در مطلب “هسته سیستم عامل چیست – بخش نخست” در مورد هسته (یا کرنل) سیستم عامل و نقش آن در سیستم عامل توضیح داده شد. در ادامه مجموعه آموزش های هسته سیستم عامل، در این مطلب انواع معماری موجود برای هسته سیستم عامل گفته می شود. امروزه سیستم عامل یکی از سه معماری ۱) یکپارچه ۲) ریز هسته و ۳) ترکیبی را استفاده می کنند.

سیستم عامل های مختلف از معماری های متفاوت برای هسته خود استفاده می کنند. به طور مثال سیستم عامل های یونیکسی (مانند BSD ها، سیستم عامل DOS، سولاریس) و همچنین سیستم عامل شبه یونیکسی (مانند لینوکس) از معماری یکپارچه (Monolithic Kernel) استفاده می کنند. دسته‌ای از سیستم عامل های شبه یونیکسی دیگر (مانند دبیان هرد (Debian Gnu Hurd)، مینکس(Minix)، کیو ان اکس(QNX) ) و سیستم عامل بلک بری (Blackberry) از معماری ریز هسته(Micro Kernel) استفاده می کنند. معماری رایج دیگر، معماری هسته ترکیبی(Hybrid) است. ویندوز مایکروسافت و سیستم عامل شبه یونیکس DroganFly BSD از دسته سیستم عامل هایی هستند که از این معماری استفاده می کنند.

معماری ۱ – هسته های یکپارچه یا Monolithic Kernels

در معماری هسته یکپارچه تمامی هسته (و سرویس های) آن در فضای هسته قرار می گیرند. سیستم عامل های یونیکسی مانند FreeBSD و سیستم عامل شبه یونیکسی مانند لینوکس نمونه‌هایی از هسته های یکپارچه هستند. آن‌ها شامل سرویس های معمول یک هسته (مانند مدیریت پردازش ها، مدیریت حافظه اصلی، مدیریت دیسک، مدیریت و اداره وقفه ها و غیره )هستندکه همگی درون فضای هسته (مد هسته) قرار می گیرند.

در‌واقع می‌توان هسته یکپارچه را به صورت یک فایل استاتیک دودویی حجیم درون یک فضای آدرس حافظه (فضای هسته) مقیم است، فرض کرد. تمامی سرویس های هسته در زمان راه اندازی سیستم در حافظه بار می‌شوند و تا زمانی که سیستم عامل در حال اجرا باشد، در حافظه مقیم خواهند ماند. روشی که امکان دسترسی به هسته را از فضای کاربر (مانند کدهای نوشته شده توسط یک برنامه نویس) می‌دهد استفاده از فراخوان سیستمی است.

معماری هسته یکپارچه نسبت به دیگر معماری ها (مانند ریز هسته) سریعتر است. اما به دلیل آنکه تمامی (سرویس های) هسته درون فضای هسته وجود دارند، فرض کنید که مشکلی در یک درایور مربوط به سخت افزاری رخ دهد، که باعث کِرش در هسته می شود.

همچنین به دلیل وجود تمامی هسته به صورت یک فایل استاتیک دودویی حجیم درون حافظه، اعمال تغییرات ساده نبوده و همچنین انجام تست زمان بیشتری را صرف می کند. نگهداری یا نگهداشت هسته و همچنین رفع باگ نیز مشکل خواهد بود. به طور کلی می‌توان سه مشکل ۱) افزایش حجم هسته درون حافظه، ۲) نگداشت مشکل‌تر و ۳) پیچیدگی و زمان بر بودن برای اعمال ویژگی‌های جدید به هسته را برای معماری یکپارچه مطرح کرد. شکل زیر (شکل ۱) معماری هسته یکپارچه را نشان می‌دهد که تمامی سرویس های هسته یک‌جا درون هسته مقیم می شوند. برای پوشش دادن و رفع مشکل های معماری یکپارچه، معماری ریز هسته ها معرفی می شوند.

operating_system_kernel2

معماری ۲ – ریز هسته ها یا Micro Kernels

معماری ریز هسته که μ-kernel نیز نامیده می‌شود گونه دیگری از معماری هسته سیستم عامل است که سیستم عامل هایی همچون مکینتاش از آن استفاده می کنند. معماری زیر هسته برخی از سرویس های هسته (مانند شبکه سازی و سیستم فایل) را درون فضای کاربر اجرا کند. اصطلاحاً به این سرویس های هسته که در فضای کاربر اجرا می‌شوند سرور (Server) گویند. این سرویس ها به صورت فرایندهای(نخ های) معمولی در فضای کاربر اجرا می شوند. در برخی منابع به جای واژه سرور از واژه دایمون (Daemon) استفاده شده است.

مفاهیم فضای کاربر و فضای هسته پیشتر توضیح داده شدند، اما همانطور که از شکل ۱ مشخص است تمامی هسته سیستم عامل در فضای هسته مقیم است و به دلیل آنکه فرایندها و برنامه‌های کاربردی که در فضای کاربر در حال اجرا هستند قادر به دسترسی به فضای هسته نیستند، بنابراین توسط فرخوان سیستمی این فرایندها و برنامه‌های کاربردی قادر به دسترسی به هسته هستند.

پس مطابق با شکل زیر (شکل ۲) یک سرور برای مدیر حافظه اصلی، یک سرور برای مدیر پردازش، یک سرور برای مدیریت سیستم فایل و غیره وجود دارد. در معماری ریز هسته به دلیل آنکه فرایندها (دایمون یا سرورها) در فضای کاربر وجود دارند، پس به نوعی عملیات تعویض متن تا حدی حذف خواهد یافت. اما از سوی دیگر به دلیل وجود سرورهای هسته در فضای کاربر و نیاز به دسترسی به فضای هسته، عملاً عملیات تعویض متن بسیار افزایش خواهد یافت. پس می‌توان نتیجه گرفت که ریز هسته ها نسبت به هسته های یکپارچه کندتر هستند.

operating_system_kernel3

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

مزیت معماری ریز هسته شامل :

  • جدا سازی سرویس های هسته به صورت سرورهایی در فضای کاربر مزیت است زیرا در صورتی که یک سرور از کار افتاد، بقیه سرورها به کار خود ادامه می‌دهند پس قابلیت اعتماد یک ویژگی مهم این معماری است.
  • سرویس های مختلف در غالب ماژول های خاص هستند و می‌توانند در مواقع لازم درون هسته بار یا از هسته جدا شوند.
  • طراحی و قابلیت توسعه و گسترش سیستم به سرعت انجام می گیرد.
  • به دلیل آنکه سرویس های هسته در غالب سرور هایی، در حال اجرا در فضای کاربر هستند، از این رو مطمئن تر و امن تر خواهد بود.

و معایب معماری ریز هسته شامل :

  • میزان Memory Footprint افزایش پیدا می کند. Memory Footprint واژه‌ای است که اشاره به میزان مصرف که یک برنامه در زمان اجرا از حافظه اصلی استفاده می کند.
  • مدیریت فرایندها پیچیده‌تر است.
  • کارایی کاهش پیدا می کند. در این معماری فرایندها با یکدیگر از طریق ارتباط میان پردازشی مانند ارسال پیام برای تعامل با یکدیگر استفاده می‌کنند از این رو سربار وجود دارد.
  • میزان تعویض متن زیاد است.
  • به دلیل نیاز به ارتباط میان سرورها توسط ارسال پیام، واسط های نرم افزاری بیشتری لازم است.

معماری ۳ – هسته های ترکیبی یا Hybrid Kernels

معماری هسته ترکیبی گونه‌ای از معماری هسته سیستم عامل ها هستند که سعی در ترکیب دو معماری یکپارچه و ریز هسته دارند تا از مزیت و رویکرد این دو معماری استفاده کنند. به عبارتی با ترکیب رویکردهای دو معماری یکپارچه و ریز هسته از کارایی معماری یکپارچه و امنیت و قابلیت اعتماد معماری ریز هسته بهره برده می شود. ایده هسته ترکیبی مبتنی بر داشتن ساختار مشابه معماری ریز هسته ولی پیاده‌سازی این ساختار به طریق معماری یکپارچه باشد.

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

در این معماری با اجرای برخی از سرویس هسته درون فضای هسته پایین بودن کارایی معماری ریز هسته پوشش داده می‌شود اما همچنان برخی از سرویس های هسته درون فضای کاربر (مانند ریز هسته) در حال اجرا هستند. به طور مثال در یک ایده طراحی هسته ترکیبی ممکن است سیستم فایل مجازی و کنترلر باس در فضای هسته اجرا شوند اما سرویس سیستم فایل در فضای کاربر اجرا شوند.

از نمونه سیستم عامل هایی که از معماری ترکیبی استفاده می‌کنند می‌توان به سیستم عامل های ویندوز (مانند ویندوز 7و ۸و ۱۰و ویندوز سرور ۲۰۰۸) و هسته سیستم عامل مکینتاش به نام Darwin و هسته سیستم عامل iOS به نام XNU اشاره کرد.


هسته سیستم عامل چیست – بخش نخست

هسته سیستم عامل چیست – بخش سوم

هسته سیستم عامل چیست – بخش چهارم



برچسب ها :

به سیاره لینوکس امتیاز دهید

به اين صفحه امتياز دهيد