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


تفاوت User Mode و Kernel Mode در سیستم عامل

تفاوت User Mode و Kernel Mode در سیستم عامل
دو حالت یا Mode عملکرد در سیستم عامل وجود دارد که در ای مطلب کوتاه به بررسی آنها می پردازیم. user mode و kernel mode در واقع Mode هایی هستند که سیستم عامل آنها را داراست ولی اینکه اینها چه تعاریفی دارند، در ادامه به آنها می پردازیم.

سیستم یکپارچۀ سازمانی راهکار
یک کامپیوتر در دو حالت حالت کاربر و حالت هسته کار می کند. زمانی که سیستم یک اپلیکیشن یا نرم افزار را اجرا کند، در حقیقت این حالت، User Mode است. وقتی نرم افزار، درخواست دستری به سخت افزار را دارد، کامپیوتر وارد حالت کرنل می شود. Kernel هسته اصلی سیستم کامپیوتری است. پس از آن، کامپیوتر اغلب بین حالت User و حالت Core تغییر می کند. اکثر وظایف مهم سيستم عامل در حالت کرنل انجام می شود. تفاوت اصلی بین حالت کاربر و حالت کرنل این است که حالت کاربر، Mode ای است که برنامه ها و اپلیکیشن ها در آن حالت اجرا می شوند و حالت کرنل حالت خاصی است که کامپیوتر هنگام دسترسی به منابع سخت افزاری وارد آن می شود.



User Mode چیست؟

هنگامی که یک برنامه کامپیوتری در حال اجرا است، در حالت User Mode است. این برنامه ها می توانند Excel، Word، Powerpoint، Notepad، نرم افزارهای PDF و بسیاری نرم افزارهای دیگر باشند. همه اینها نرم افزار و اپلیکیشن هستند پس سیستم در حالت User Mode قرار دارد. هنگامی که پردزاشی در حالت کاربر است و نیاز به منابع سخت افزاری دارد، آن درخواست به هسته ارسال می شود. از آنجا که در این حالت دسترسی محدودی به سخت افزار وجود دارد، این حالت با اصطلاحات دیگری مانند less privileged mode، restricted mode و یا slave mode شناخته می شود.
در حالت کاربر، پردازش ها فضای آدرس مخصوص به خود را دارند و نمی توانند به فضای آدرس متعلق به هسته دسترسی داشته باشند. بنابراین اگر پردازشی در حالت User، با مشکل مواجه شود و fail بشود، تاثیری بر عملکرد کلی سیستم عامل نخواهد داشت و فقط متوجه همان برنامه یا پردازش می شود.

تفاوت User Mode و Kernel Mode در سیستم عامل

Kernel Mode چیست؟

کرنل یک برنامه نرم افزار است که برای دسترسی به کامپوننت های سخت افزاری یک سیستم کامپیوتری استفاده می شود. Kernel به عنوان یک نرم افزار میان افزار یا middleware software برای سخت افزار و نرم افزارها و برنامه کار می کند. هنگامی که پردازشی در حالت کاربر اجرا می شود و اگر این پردازش به منابع سخت افزاری مانند RAM، پرینتر و غیره نیاز دارد، این فرآیند باید درخواستی را به Kernel ارسال کند. این درخواست ها از طریق system calls فراخوانی سیستمی ارسال می شوند. سپس کامپیوتر از حالت کاربر وارد حالت کرنل می شود. پس از اتمام کار، حالت از حالت کرنل به حالت کاربر تغییر می کند. این سوئیچینگ بین Mode، با نام context switching هم شناخته می شود. حالت کرنل با اصطلاحات دیگری مانند privileged mode یا system mode نیز شناخته می شود. امکان اجرای همه فرایندها در حالت کرنل وجود ندارد زیرا در صورت خرابی یک فرایند ممکن است کل سیستم عامل Crash شود.

تفاوت User Mode و Kernel Mode در سیستم عامل
چندین نوع system calls وجود دارد. Process control system calls باعث ایجاد و خاتمه پردازش ها می شود. File management system calls، خواندن، نوشتن، ایجاد، حذف، باز کردن و بستن فایل را انجام می دهد. Communication system calls می تواند ارتباطات را ایجاد و حذف کند، اطلاعات وضعیت را ارسال و دریافت کند. منابع مورد نیاز در یک فرایند ممکن است در فرآیند دیگری نگهداری شود. بنابراین ، فرآیندها باید با استفاده از communication system calls ارتباط برقرار کنند. این موارد برخی از system calls ها بود.

پس به طور خلاصه تفاوت های حالت User Mode و Kernel را بررسی می کنیم:
در حالت user mode، در حقیقت یک حالت محدود است که در این حالت برنامه ها در حال اجرا و یا واقعا اجرا هستند. در user mode، یک فرایند فضای آدرس مخصوص به خود را دارد. در user mode هر وقفه یا مشکل برای یک پردازش، متوجه کل سیستم نمی شود و فقط همان برنامه یا پردزاش را تحت تاثیر قرار می دهد. در user mode محدودیت هایی برای دسترسی به برنامه های کرنل وجود دارد. دسترسی مستقیم به آنها امکان پذیر نیست.
Kernel Mode حالت خاص و privileged mode ای است که کامپیوتر هنگام دسترسی به منابع سخت افزاری وارد آن می شود. در حالت کرنل، فرآیندها دارای فضای آدرس واحدی هستند. بروز مشکل در حالت Kernel می تواند کل سیستم را تحت تاثیر قرار می دهد.

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

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

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


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