فرق بین real mode و protected mode - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

فرق بین real mode و protected mode

+3 امتیاز
دوستان فرق بین این دو تا چیه ؟
سوال شده فروردین 31, 1393  بوسیله ی MsM (امتیاز 108)   3 4 13
دوباره تگ گذاری شد اردیبهشت 2, 1393 بوسیله ی BlueBlade

1 پاسخ

+6 امتیاز
 
بهترین پاسخ

 

خلاصش اینه که 

Real Mode نوعی از حالت CPU است که برنامه ای که در اون اجرا میشه مستقیم به حافظه ی اصلی و BIOS دسترسی داره  و بازه ی آدرس کمتری رو پشتیبانی میکنه .

Protected Mode نوعی از حالت CPU است که باعث میشه برنامه ای که در اون اجرا میشه توسط Virtual Memory و قسمت MMU به حافظه ی اصلی دسترسی داشته باشه . که باعث میشه یه برنامه از حدی که براش مشخص شده تجاوز نکنه و مدیریت بشه .

مثلا شما برنامه هایی رو که مینویسید همشون در Protected Mode هستند . یعنی اینکه همشون دارای Virtual Address Space هستند .

هر اشاره گری که شما توی برنامه باهاش کار میکنید به حافظه ی مجازی اشاره میکنه نه حافظه ی اصلی RAM . و برنامه توسط OS مدیریت و زمان بندی میشه .

اگر اشاره گری داشته باشید که مثلا به این آدرس 0x12345678 اشاره کنه . درواقعا داره به یک آدرس مجازی اشاره میکنه . حالا برفرض اگر میخواهید چیزی که در این آدرس وجود داره رو بخونید این آدرس به Page Table هایی که OS اونها رو درست کرده اشاره میکنه ( در واقع سیستم عامل RAM رو به بخش هایی به نام Page تبدیل میکنه و جدولی از این Page ها رو نگهداری میکنه) و MMU اون رو میگیره و طبق Virtual Address Space برنامه شما اون را به آدرس اصلی تبدیل میکنه . اگر تو جدول Virtual Address Space همچین آدرسی به هیچ Page Tableی اشاره نکنه برنامه شما Crash میکنه . یا اگه اون حافظه به جایی اشاره کنه که توی محدوده ی برنامه شما نیست یا خطای Acess Violation روبرو میشید .

Kernel ها و Driver ها در Real Mode اجرا میشن بدلیل اینکه لازمه مستفیم به BIOS و حافظه ی اصلی دسترسی داشته باشن .

Application ها .و برنامه های دیگه هم در Protected Mode اجرا میشن بدلیل اینکه باید مدیریت بشن.

آموزش, assembly, real mode, protected mode, x86, os

 

 

 

پاسخ داده شده اردیبهشت 1, 1393 بوسیله ی Ali Rahbar (امتیاز 4,240)   6 16 46
ویرایش شده بهمن 1, 1393 بوسیله ی haniye sarbazi
...