خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


کرنل سیستم عامل و انواع آن چیست

کرنل سیستم عامل و انواع آن چیست
Kernel یک برنامه کامپیوتری است که قلب و هسته اصلی یک سیستم عامل است. از آنجا که سیستم عامل بر سیستم کنترل دارد، کرنل نیز بر همه چیز در سیستم کنترل دارد. کرنل در حقیقت مهمترین بخش یک سیستم عامل است. هر بار که سیستمی شروع به کار می کند یا به اصطلاح روشن می شود، Kernel اولین برنامه ای است که پس از بوت لودر، Load می شود. زیرا کرنل باید بقیه موارد سیستم را برای سیستم عامل مدیریت کند. کرنل خاموش شدن سیستم عامل، در RAM باقی می ماند.

نرم افزار سامانه مودیان راهکار



کرنل سیستم عامل و انواع آن چیست
Kernel وظایف سطح پایین یا low-level مانند مدیریت دیسک، مدیریت حافظه، مدیریت task ها، و غیره را بر عهده دارد و رابط بین کاربر و اجزای سخت افزاری سیستم را فراهم می کند. وقتی یک پردازش درخواستی را از کرنل می کند، این درخواست System Call است.

کرنل سیستم عامل و انواع آن چیست
لطفا در خصوص System Call به مقاله زیر هم مراجعه کنید.


کرنل دارای یک فضای و منطقه خاص و محافظت شده مخصوص به خود در مموری سیستم است که این منطقه توسط سایر اپلیکیشن ها قابل دسترسی نمی باشد. نابراین، کد هسته در این فضای محافظت شده کرنل Load می شود. جدای از این، حافظه مورد استفاده سایر برنامه ها را فضای کاربر یا User Space می نامند. از آنجا که این دو فضای مختلف در حافظه هستند، بنابراین ارتباط بین آنها کمی کند است.

کارهایی که توسط کرنل سیستم عامل انجام می شود:

Access Computer resource: هسته سیستم عامل می تواند به منابع سخت افزاری مختلفی از جمله مانند CPU، سخت افزارهای I/O، و سایر منابع دسترسی داشته باشد. در واقع پل ارتباطی بین کاربر و منابع سیستم است(همانطور که در تصویر فوق نشان داده شده است).
Resource Management: وظیفه کرنل است که منابع را بین فرایندها و پردازش های مختلف به گونه ای تقسیم کند که در هر یک دسترسی متناسبی به منابع موجود داشته باشند.
Memory Management: هر فرآیند به مقداری فضای حافظه نیاز دارد. بنابراین، حافظه باید برای اجرای آن اختصاص شود. پس مدیریت حافظه هم توسط کرنل سیستم عامل صورت می گیرد.
Device Management: دستگاههای جانبی متصل به سیستم توسط پردازش ها مورد استفاده قرار می گیرند. بنابراین ، تخصیص این دستگاه ها توسط Kernel سیستم عامل مدیریت می شود.

Kernel Mode و User Mode

دستورالعمل های خاصی وجود دارد که فقط باید توسط Kernel اجرا شوند. بنابراین، CPU این دستورالعمل ها را فقط در حالت کرنل اجرا می کند. به عنوان مثال، مدیریت حافظه باید فقط در حالت کرنل انجام شود. در حالتUser Mode ، CPU فرآیندهایی را که توسط کاربر در User Space قرار گرفته را اجرا می کند.

انواع هسته یا کرنل

به طور کلی ، پنج نوع کرنل وجود دارد:

Monolithic Kernels: کرنل های یکپارچه یا Monolithic Kernel ها، هسته هایی هستند که سرویس های کاربر و هسته در فضای یکسانی از حافظه اجرا می شوند. یعنی حافظه های متفاوتی برای سرویس های کاربر و سرویس های هسته در این مورد استفاده نمی شود. بدین ترتیب، حجم کرنل افزایش می یابد و این به نوبه خود، حجم سیستم عامل را افزایش می دهد. از آنجا که هیچ فضای کاربر و فضای کرنل جداگانه یا ایزوله از هم وجود ندارد، بنابراین اجرای این فرآیند در Monolithic Kernels ها سریعتر خواهد بود.

کرنل سیستم عامل و انواع آن چیست
مزایا:
زمان بندی پردازنده یا CPU scheduling، زمان بندی حافظه، مدیریت فایل را فقط از طریق System calls ها ارائه می دهد.
اجرای فرآیند در این حالت از کرنل به سرعت انجام می شود زیرا فضای حافظه جداگانه ای برای کاربر و کرنل وجود ندارد.

معایب:
خرابی هر سرویسی منجر به Down و Crash شدن کل سیستم می شود.
اگر قرار باشد سرویسی جدیدی اضافه شود کل سیستم عامل باید ویرایش شود.

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

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

معایب:
از آنجا که ما از User Space و Kernel Space به طور جداگانه استفاده می کنیم بنابراین ارتباط بین آنها می تواند زمان اجرا را کاهش دهد.

Hybrid Kernel: یک کرنل ترکیبی یا Hybrid Kernel از هر دو هسته Monolithic و Microkernel تشکیل شده است. این نوع کرنل از سرعت Monolithic و ماژول های Microkernel استفاده می کند.
هسته های ترکیبی کرنل های خرد و کوچکی هستند که دارای کد "غیر ضروری یا non-essential" در فضای کرنل هستند تا کد سریعتر از آنچه در فضای کاربر اجرا می شود اجرا شود. بنابراین، برخی از سرویس ها مانند پشته شبکه یا network stack و یا فایل سیستم ها در فضای Kernel اجرا می شوند تا overhead یا سربار را کاهش دهند اما، کد هسته را به عنوان سرویس دهنده در فضای کاربر اجرا می کند.

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

Exokernel: معماری exokernel به گونه ای طراحی شده است که حفاظت از منابع را از مدیریت جدا کرده تا سفارشی سازی ویژه اپلیکیشن ها تسهیل شود. Exokernel ها دلیل عملکرد محدود ، معمولاً از نظر حجم کوچک هستند و ضمن اینکه طراحی Exokernel بسیار پیچیده است.

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز