為什麼把「完全執行於保護模式」「充分利用了CPU效能」寫到一

時間 2022-02-07 00:40:12

1樓:匿名使用者

這個兩者沒有關係,不完全保護模式也能行,但是為了安全和使用更多的記憶體和周邊裝置需要保護模式

2樓:匿名使用者

因為cpu每次觸發使用之前都會"聯絡"上保護模式,效率最大

3樓:匿名使用者

你是剛開始學linux麼?

首先你得了解,linux是一個具有保護模式的作業系統(也就是你上邊寫的:完全執行魚保護模式。如需詳解,給我發資訊。

但是分得先給我,哈哈)。而linux是以高效性和靈活性著稱的(通俗說就是具有多工、多使用者的能力)。

這兩者的關係:

因為linux系統把記憶體分為:核心區域和使用者區域。

核心區域存放並執行著核心**,當然,使用者區域也存放並執行使用者程式。

由於它的核心的關係,所以這個系統可以充分的呼叫了cpu的效能。所以並不是你自己理解的 不是「完全執行於保護模式」就不能做到「充分利用了cpu效能」?

因為它這個系統本身就是執行在 保護模式下的。

不知道你能聽懂不。不好給你講,額···

ps 我靠,真鄙視上邊複製的人。打這麼長時間沒他複製的快。鬱悶

4樓:匿名使用者

因為真實模式是為了早期的8088這類cpu準備的,地址線只有20線,也就是對記憶體地址的讀寫在1m以內。而保護模式才能充分利用現在巨大的記憶體

什麼是linux?linux有什麼優點?

5樓:老男孩教育

linux是一套免費使用和自由傳播的類unix作業系統,是一個基於posix和unix的多使用者、多工、支援多執行緒和多cpu的作業系統。

說到linux的優點,最大 的優點就是完全免費。linux是一個免費的作業系統,使用者可以通過網路或者其他途徑獲得,並且可以隨意修改**,是其他作業系統做不到的。另外linux支援多使用者,各個使用者對於自己的檔案裝置有自己特殊的權利,避免了使用者之間影響的情況;而且linux同時具有字元介面和圖形介面,linux還可以執行在多種硬體平臺上。

6樓:匿名使用者

linux是個作業系統,有點呢,就是開源的,免費的。如果你要學習這個的話,建議可以去老男孩看下。

cpu保護模式工作原理

7樓:匿名使用者

第一:真實模式下程式的執行回顧.

程式執行的實質是什麼?其實很簡單,就是指令的執行,顯然cpu

是指令得以執行的硬體保障,那麼cpu如何知道指令在什麼地方呢?

對了,80x86系列是使用cs暫存器配合ip暫存器來通知cpu指令在記憶體

中的位置.

程式指令在執行過程中一般還需要有各種資料,80x86系列有ds、

es、fs、gs、ss等用於指示不同用途的資料段在記憶體中的位置。

程式可能需要呼叫系統的服務子程式,80x86系列使用中斷機制

來實現系統服務。

總的來說,這些就是真實模式下一個程式執行所需的主要內容

(其它如跳轉、返回、埠操作等相對來說比較次要。)

第二:保護模式---從程式執行說起

無論真實模式還是保護模式,根本的問題還是程式如何在其中執行。

因此我們在學習保護模式時應該時刻圍繞這個問題來思考。

和真實模式下一樣,保護模式下程式執行的實質仍是「cpu執行指令,

操作相關資料」,因此真實模式下的各種**段、資料段、堆疊段、中

斷服務程式仍然存在,且功能、作用不變。

那麼保護模式下最大的變化是什麼呢?答案可能因人而異,我的

答案是「地址轉換方式」變化最大。

第三:地址轉換方式比較

先看一下真實模式下的地址轉換方式,假設我們在es中存入0x1000,

di中存入0xffff,那麼es:di=0x1000*0x10+0xffff=0x1ffff,這就是眾

所周知的「左移4位加偏移」。

那麼如果在保護模式下呢?假設上面的資料不變es=0x1000,

di=0xffff,現在es:di等於什麼呢?

公式如下:(注:0x1000=1000000000000b= 10 0000 0000 0 00)

es:di=全域性描述符表中第0x200項描述符給出的段基址+0xffff

現在比較一下,好象是不一樣。再仔細看看,又好象沒什麼區別!

為什麼說沒什麼區別,因為我的想法是,既然es中的內容都不是

真正的段地址,憑什麼真實模式下稱es為「段暫存器」,而到了保護模式

就說是「選擇子」?

其實它們都是一種對映,只是對映規則不同而已:在真實模式下這

個「地址轉換方式」是「左移4位」;在保護模式下是「查全域性/區域性描述表」

。前者是系統定義的對映方式,後者是使用者自定義的轉換方式。而它

影響的都是「shadow register」

從函式的觀點來看,前者是表示式函式,後者是列舉式函式:

真實模式: f(es-->segment)=

保護模式:f(es-->segment)=

其中gdt、ldt分別表示全域性描述符表和區域性描述符表。

第四:保護模式基本組成

保護模式最基本的組成部分是圍繞著「地址轉換方式」的變化增設了

相應的機構。

1、資料段

前面說過,真實模式下的各種**段、資料段、堆疊段、中斷服務程

序仍然存在,我將它們統稱為「資料段」,本文從此向下凡提到資料段都

是使用這個定義。

2、描述符

保護模式下引入描述符來描述各種資料段,所有的描述符均為8個字

節(0-7),由第5個位元組說明描述符的型別,型別不同,描述符的結構也

有所不同。

若干個描述符集中在一起組成描述符表,而描述符表本身也是一種

資料段,也使用描述符進行描述。

從現在起,「地址轉換」由描述符表來完成,從這個意義上說,描述符

表是一張地址轉換函式表。

3、選擇子

選擇子是一個2位元組的數,其16位,最低2位表示rpl,第3位表示查表

是利用gdt(全域性描述符表)還是ldt(區域性描述符表)進行,最高13位給

出了所需的描述符在描述符表中的地址。(注:13位正好足夠定址8k項)

有了以上三個概念之後可以進一步工作了,現在程式的執行與真實模式

下完全一樣!!!各段暫存器仍然給出一個「段值」,只是這個「假段值」

到真正的段地址的轉換不再是「左移4位」,而是利用描述符表來完成。但

現在出現一個新的問題是:

系統如何知道gdt/ldt在記憶體中的位置呢?

為了解決這個問題,顯然需要引入新的暫存器用於指示gdt/ldt在內

存中的位置。在80x86系列中引入了兩個新暫存器gdr和ldr,其中gdr用於

表示gdt在記憶體中的段地址和段限(就是表的大小),因此gdr是一個48

位的暫存器,其中32位表示段地址,16位表示段限(最大64k,每個描述

符8位元組,故最多有64k/8=8k個描述符)。ldr用於表示ldt在記憶體中的位

置,但是因為ldt本身也是一種資料段,它必須有一個描述符,且該描述

符必須放在gdt中,因此ldr使用了與ds、es、cs等相同的機制,其中只

存放一個「選擇子」,通過查gdt表獲得ldt的真正記憶體地址。

對了,還有中斷要考慮,在80x86系列中為中斷服務提供中斷/陷阱描

述符,這些描述符構成中斷描述符表(idt),並引入一個48位的全地址

暫存器存放idt的記憶體地址。理論上idt表同樣可以有8k項,可是因為80x86

只支援256箇中斷,因此idt實際上最大只能有256項(2k大小)。

第五:新要求---任務篇

前面介紹了保護模式的基本問題,也是核心問題,解決了上面的問題,

程式就可以在保護模式下執行了。

但眾所周知80286以後在保護模式下實現了對多工的硬體支援。我

的第一反應是:為什麼不在真實模式下支援多工,是不能還是不願?

思考之後,我的答案是:真實模式下能實現多工(也許我錯了:))。

因為多工的關鍵是有了描述符,可以給出關於資料段的額外描述,如權

限等,進而在這些附加資訊的基礎上進行相應的控制,而真實模式下缺乏描

述符,但假設我們規定各段的前2個位元組或若干位元組用於描述段的附加屬性,

我覺得和使用描述符這樣的機制沒有本質區別,如果再附加其他機制...

基於上述考慮,我更傾向於認為任務是獨立於保護模式之外的功能。

下面我們來分析一下任務。任務的實質是什麼呢?很簡單,就是程式嘛!!

所謂任務的切換其實就是程式的切換!!

現在問題明朗了。真實模式下程式一個接一個執行,因此程式執行的

「環境」不必儲存;保護模式下可能一個程式在執行過程中被暫停,轉而執行

下一個程式,我們要做什麼?很容易想到儲存程式執行的環境就行了(想

想遊戲程式的儲存進度功能),比如各暫存器的值等。

顯然這些「環境」資料構成了一類新的資料段(即tss)。延用前面的思路,

給這類資料段設定描述符(tss描述符),將該類描述符放在gdt中(不能

放在ldt中,因為80x86不允許:)),最後再加一個tr暫存器用於查表。

tr是一個起「選擇子」作用的暫存器,16位。

好了,任務切換的基本工作就是將原任務的「環境」存入tss資料段,更

新tr暫存器,系統將自動查gdt表獲得並裝載新任務的「環境」,然後轉到新

任務執行。

8樓:匿名使用者

分實際情況,600個同時不限連線數上網的話,怎麼都會比較慢。

如果只是使用者數600,這些使用者都隨機上網或不上的話,那麼3845是應該夠了的,

我是說在一個實際的企業環境中,3845足夠帶600使用者,如果p2p應用比較多,那麼得看你的外網頻寬了,一般來說3845夠了。

剛剛在一個企業實施過3845帶600個計算機,速度很快。

如果不放心,可以增加記憶體會強點

9樓:生活中的專家

保護模式

作業系統接管cpu後.

會使cpu進入保護模式.

這時候可以發揮80x86的所有威力..

包括許可權分級.記憶體分頁.等等等等各種功能

電腦cpu作用是什麼?

10樓:ok小

**處理器(cpu,central processing unit)是一塊超大規模的積體電路,是一臺計算機的運算核心(core)和控制核心( control unit)。

它的功能主要是解釋計算機指令以及處理計算機軟體中的資料,具體如下:處理指令,執行操作,控制時間,處理資料。計算機的可程式設計性主要是指對**處理器的程式設計。

2023年代以前,**處理器由多個獨立單元構成,後來發展出由積體電路製造的**處理器,這些高度收縮的元件就是所謂的微處理器,其中分出的**處理器最為複雜的電路可以做成單一微小功能強大的單元。

**處理器主要包括運算器(算術邏輯運算單元,alu,arithmetic logic unit)、控制器和高速緩衝儲存器(cache)及實現它們之間聯絡的資料(data)、控制及狀態的匯流排(bus)。它與內部儲存器(memory)和輸入/輸出(i/o)裝置合稱為電子計算機三大核心部件。

繼電保護中的距離保護為什麼不受執行方式的影響?

距離保護是測量阻抗的,當測量阻抗值小於整定值時,保護動作。整定值的設定,是保護安裝處到整定點的阻抗值,跟系統的執行方式無關,接地距離是測量接地故障的,相間距離是測量短路故障的。一段保護保護全長的80 85 距離保護是通過電壓和電流之間關係求得阻抗值,這個阻抗值就是保護安裝處到線路故障點之間的阻抗值,...

為什麼牧場沒有健康模式,牧場有沒有 健康保護模式

因為是先有農場再有牧場的,而且以前想要開通牧場還要黃鑽,所以導致玩牧場的人比農場的少很多。如果牧場也有健康模式了,那樣能偷的就更少了,娛樂性少了很多。至於說為什麼牧場沒有狗嘛,我想是因為狗會和其他動物打架吧,哈 不過根本原因還是因為牧場玩家人數比較少 我也很希望手機能有牧場版 這樣我就不用老玩電腦了...

為什麼我們把成功的經驗和失敗的教訓歸結於努力

因為你所說的經驗,教訓,是以成功為目的的,就像你的目標是飛起來,但是你去學炒菜,你炒菜的經驗不能讓你飛起來就沒有意義叻 成功的人之所以成功,是大概率選擇了正確的方向,並堅持了下來。選擇大於努力,可是怎麼知道自己選擇的對不對?這需要去觀察和學習!學習別人是怎麼選擇的,別人是如何成功的。學習別人,不代表...