01計算機系統漫遊

2021-08-15 10:42:51 字數 1888 閱讀 9744

系統中所有的資訊——包括磁碟檔案、儲存器中的程式、儲存器中存放的使用者資料以及網路上傳送的資料,都是由一串表示的

區分不同資料物件的唯一方法是我們都到這些資料物件時的上下文

資訊就是位加上下文

unix> gcc -o hello hello.c
從上至下,裝置變得訪問速度越來越慢、容量越來越大,每位元組的造價也越來越便宜

一層上的儲存器作為低一層儲存器的快取記憶體。因此,暫存器檔案就是l1的快取記憶體,l1是l2的快取記憶體,l2是l3的快取記憶體,l3是主存的快取記憶體,主存是磁碟的快取記憶體

作業系統通過抽象概念(程序、虛擬儲存器、檔案)來實現這兩個功能 進

程⎧⎩⎨

⎪⎪處理

器虛擬存

儲器{主

存檔案{

i/o設

備 程序{

處理器虛

擬儲存器

{主存文

件{i/o裝置

在乙個系統上可以同時執行多個程序,而每個程序都好像在獨佔地使用硬體

併發執行是說乙個程序的指令和另乙個的指令是交錯之行的

大多數系統中,需要執行的程序數是多於可以執行它們的cpu個數的

無論是單核還是多核系統中,乙個cpu看上去都像是在併發地之行多個程序,這是通過處理器在程序間切換來實現的,作業系統實現這種交錯執行的機制稱為上下文切換

作業系統保持跟蹤程序執行所需的所有狀態資訊,叫做上下文,包括許多資訊,例如pc和暫存器檔案的當前值,以及主存的內容。

當作業系統決定要把控制權從當前程序轉移到某個新的程序時,就會進行上下文切換,即儲存當前程序的上下文、恢復新程序的上下文,然後將控制權傳遞到新的程序,新程序就會從上次停止的地方開始

實現程序這個抽象的概念需要低階硬體和作業系統軟體之間的緊密合作

乙個程序實際上可以由多個稱為執行緒的執行單元組成,每個執行緒都執行在程序的上下文中,貢獻同樣的**和全域性資料

虛擬儲存器為每個程序提供了乙個假象,即每個程序都在獨佔地使用主存。每個程序看到的是一致的儲存器,稱為虛擬位址空間

檔案就是位元組序列

每個i/o裝置都可以視為檔案,系統中所有輸入輸出都是通過使用一小組稱為unix i/o的系統函式呼叫讀寫檔案實現的

單處理器系統

→ →

多處理器系統

超執行緒是一項允許乙個cpu執行多個控制流得技術。涉及cpu某些硬體有多個備份,比如pc和暫存器檔案,而其它硬體部分只有乙份。超執行緒處理器可以在單個週期的基礎上決定要執行哪乙個執行緒

多處理器可以從兩方面提高系統效能

首先減少了執行多個任務時模擬併發的需要

其次可以使應用程式執行的更快,這必須要求程式是以多執行緒的方式來書寫的

在較低的抽象層次上,現代處理器可以同時執行多條指令的屬性稱為指令級並行

使用流水線超標量來實現

在最低層次上,許多現代處理器有特殊的硬體,允許一跳指令產生多個可以並行執行的操作,稱為單指令、多資料(simd)並行

計算機系統漫遊

經過昨天的游泳,雖然早上起來有些疲憊,但還是看了 深入了解計算機系統 的書的第一章,在今天的學習中,我對快取的概念有了重新的認識 暫存器是l1快取的快取,l1快取是l2快取的快取,l2快取是主存的快取,主存是本地磁碟的快取,本地磁碟是網路上遠端伺服器硬碟的快取。雖然以前對快取的概念很清楚,但從沒想的...

計算機系統漫遊

個人部落格,想要搭建個人部落格的可以進來看看 hello.c includeint mian 這個源程式實際上由0和1組成的序列,每8位為一組,稱為位元組 每個位元組表示程式中的某個文字字元,現在用ascii碼來表示文字字元,就是用乙個唯一的單位元組大小整數值來表示1個字元 有ascii字元組成的字...

計算機系統漫遊

深入理解計算機系統 第三版 第一章讀書筆記 計算機中的資訊 對於程式設計師來說,helloworld 程式再熟悉不過了,下面是 c 語言寫的 helloworld 程式。include intmain 這段程式很簡單,僅僅是在螢幕上輸出hello world,對於程式設計師很容易閱讀,但是從計算機的...