請(qǐng)問(wèn)下計(jì)算機(jī)中的實(shí)模式和保護(hù)模式有啥區(qū)別?還有他們就是在平時(shí)電腦運(yùn)用時(shí)有啥用處?

請(qǐng)問(wèn)下計(jì)算機(jī)中的實(shí)模式和保護(hù)模式有啥區(qū)別?還有他們就是在平時(shí)電腦運(yùn)用時(shí)有啥用處?

803

CPU實(shí)模式和保護(hù)模式有什么區(qū)別

80x

實(shí)模式、保護(hù)模式和虛86模式有何不同?

百科

這三種都是8086系列CPU的工作模式。實(shí)模式是最早的8086系列的CPU的工作模式,當(dāng)時(shí)CPU只有20根地址線,**能訪問(wèn)的內(nèi)存只有1M,段寄存器為16位,段的長(zhǎng)度不能超過(guò)64KB。

保護(hù)模式是80286之后出現(xiàn)的CPU工作模式,當(dāng)時(shí)的80286CPU地址線增加到24根,CPU的尋址能力增加了很多,之后又出現(xiàn)了32根地址線的CPU,尋址范圍大大加強(qiáng),而且引入了段頁(yè)的內(nèi)存管理機(jī)制,使得內(nèi)存的利用率和管理,保護(hù)等得到加強(qiáng)。

現(xiàn)代的操作系統(tǒng)都是工作在保護(hù)模式下。虛擬8086是指在windows下,模擬8086的工作模式,在該模式下,只能訪問(wèn)1M的內(nèi)存,跟8086模式是一樣的。

操作系統(tǒng)實(shí)模式和保護(hù)模式

實(shí)模式下用戶(hù)程序可以直至訪問(wèn)任意內(nèi)存,存在風(fēng)險(xiǎn) 除段寄存器外,從16位寄存器,擴(kuò)展為32位 全局描述符表中,每一個(gè)表項(xiàng)是段描述符,大小為64字節(jié)。全局描述符表保存在內(nèi)存中,由GDTR寄存器指向它。

使用lgdt 指令初始化gtdr。

在保護(hù)模式中,段寄存器CS、DS、ES、FS、GS、SS不在存放段基址,而是存放一個(gè)選擇子,通過(guò)選擇子在GDT中找到對(duì)應(yīng)的段描述符,獲取段相關(guān)信息。 選擇子結(jié)構(gòu): 廠商為在硬件一級(jí)原生支持多任務(wù)而創(chuàng)造的表,一個(gè)任務(wù)對(duì)應(yīng)一個(gè)LDT,保存任務(wù)的私有內(nèi)存段。 每個(gè)任務(wù)都有自己的LDT,隨著任務(wù)的切換,也要切換相應(yīng)的LDT。 現(xiàn)代操作系統(tǒng)很少有用到LDT的。

在實(shí)模式下,通過(guò) 段基址 * 16 + 段內(nèi)偏移地址 尋址,實(shí)模式下寄存器都是16位,所以**尋址地址為: 0xffff:ffff 即 0xffff0 + 0xffff = 0x10ffef ,由于8086/8088的地址線是20位 (A0 ~ A19) ,**尋址空間為1MB,即 0x00000~0xfffff 。 由于沒(méi)有 A20 地址線,當(dāng) 段基址 * 16 + 段內(nèi)偏移地址 超過(guò)**尋址空間時(shí),相當(dāng)于丟掉進(jìn)位,回到低地址范圍。為兼容與8086/8088,在實(shí)模式下,后續(xù)的CPU都關(guān)閉A20地址線,實(shí)現(xiàn)地址回繞。