電腦系統架構介紹

來源:互聯網
上載者:User

標籤:

1 介紹

電腦科學領域的任何問題都可以通過增加一個間接的中介層來解決。

電腦系統u燃機系統結構的階層設計如下:

 

每個層次之間都需要相互連信,既然需要通訊就必須有一個通訊的協議,也就是介面。一般介面的下面那層就是介面的提供者,介面由它定義;介面的上層就是介面的使用者,它使用該介面來實現需要的功能。

例如,從整個階層來看,開發工具與應用程式屬於同一層次,它們都是要運行庫提供的介面,也就是API。應用程式介面的提供者就是運行庫,什麼樣的運行庫提供什麼樣的API。而對於作業系統,運行庫是作業系統提供的系統調用介面的使用者,作業系統是提供者。而作業系統核心層對於硬體層來說是硬體介面的使用者,而硬體是介面的定義者,硬體的介面定義決定了作業系統核心,具體來說就是驅動程式如何使用操作硬體,如何與硬體通訊。

2 作業系統做什麼

作業系統的一個功能是提供抽象的介面,另一個主要功能是管理硬體資源。

一個電腦的資源主要分CPU、儲存空間(包括記憶體和磁碟)和I/O裝置。

2.1 記憶體不夠怎麼辦

在早期的電腦,程式是直接運行在實體記憶體上的,也就是說,程式在運行時所訪問的地址是物理地址。當然,如果一個電腦同時只運行一個程式,那麼只要程式要求的記憶體空間不要超過實體記憶體的大小,就不會有問題。這樣明顯的一個問題是當有多個程式要運行?

缺點:

  • 地址空間不隔離,所有程式都直接存取實體記憶體,程式鎖使用的記憶體空間不是相互隔離的。
  • 記憶體使用量效率低,由於沒有有效管理,通常一個程式需要執行時,需要將整個程式都調入記憶體。
  • 程式啟動並執行地址不確定。因此程式每次都需要裝入運行,我們從記憶體中給它分配記憶體,但是分配的地址是不確定的。

解決這些問題的辦法是,增加中介層,即使用一種間接訪問地址的方法。我們把程式的地址看做是一種虛擬位址,然後通過某些映射的方法,將虛擬位址轉換為物理地址。這樣保證任意一個程式訪問的地址空間與另一個程式相互不重疊,以達到地址空間隔離。

2.1.2 關於隔離

虛擬位址空間是虛擬、人們想象出來的地址空間,其實它並不存在,每個進程都有自己獨立的虛擬位址空間,而且每個進程都只能訪問自己的地址空間,這樣就有效地做到了進程的隔離。

2.1.3 分段

最開始人們使用的是一種叫做分段的方法,基本思路是把一段程式所需要的記憶體空間大小的虛擬空間映射到某個地址空間。但是這樣做只能解決第一個和第三個問題,並沒有解決第二個問題,即記憶體效率的問題。分段對記憶體地區的映射還是按照程式為單位,如果記憶體不足,被換入換出到磁碟的都是整個程式,這樣勢必會造成大量的磁碟訪問操作,主要是分段的粒度比較大。因為根據程式的局部性原理,在某個時間,它只會訪問到一個小部分資料,也就是說,程式的很多資料都不會用的,於是想到粒度更小的分頁。

2.1.4 分頁

分頁的基本方法是把地址空間分成固定大小的頁,每一頁的大小由硬體決定,或硬體支援多種大小的頁,由作業系統選擇決定頁的大小。

例如,如所示,每個虛擬空間有8個頁,每頁大小為1KB,那麼虛擬位址空間就是8KB。假設有6KB的記憶體,那麼物理空間其實真正有效只是前6KB。

那麼,我們把進程的虛擬位址空間按頁分割,把常用的資料和字碼頁裝載到記憶體中,把不常用的代碼和資料儲存在磁碟裡,當需要用到的時候再把它從磁碟取出來即可。我們假設有兩個進程process1和process2,它們進程中的部分虛擬頁面被映射到了物理頁面,比如VP0、VP1和VP7映射到PP0、PP2、和PP3;而有部分頁面卻在磁碟中,比如VP2和VP3在磁碟DP0和DP1中;另外還有一個頁面如VP4、VP5和VP6可能尚未被用或訪問到,它們暫時處於未使用的狀態。在這裡,我們把虛擬空間的頁稱為虛擬頁(VP),把實體記憶體中的頁叫做物理頁(PP),把磁碟中的頁叫做磁碟頁(DP)。

 

process1的VP2和VP3不在記憶體中,但是當訪問這兩頁的時候,硬體會捕獲到這個訊息,就是所謂的頁錯誤,然後作業系統接管進程,負責將VP2和VP3從磁碟中讀出來並裝入記憶體,然後將記憶體中的這兩頁與VP2和VP3之間建立映射關係,更新頁表。

但是如果訪問process1的VP5和VP6,則會出現段錯誤(由於這兩頁還沒有映射)。

保護也是也映射的目的之一,簡單地說就是每個頁可以設定許可權屬性,誰可以修改,誰可以訪問等。

虛擬儲存的實現需要硬體的支援,對於不同的CPU來說是不同的,但是幾乎所有的硬體都採用一個叫做MMU的組件來進行也映射。:

 

在頁模式下,CPU發出的是virtual Address,即我們看到的是虛擬位址。經過MMU轉換為physical Address。

 

電腦系統架構介紹

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.