1. 典型硬件系統組成
1. 總線
貫穿整個系統的是一組電子管道,稱作總線,它攜帶信息字節並負責在各個部件間傳遞。
2. I/O設備
I/O(輸入/輸出)設備是系統與外部世界聯系通道。下圖包括四個I/O設備:作為用戶輸入的鍵盤和鼠標,作為用戶輸出的顯示器,以及用於長期存儲數據和程序的磁盤驅動器。
3. 主存
主存是一個臨時存儲設備,在處理器執行程序時,用來存放程序和程序處理的數據。從物理上來說,主存是由一組動態隨機存取存儲器芯片組成的。邏輯上來說,存儲器是一個線性字節數組,每個字節都有其唯一的地址(數組索引)。
4. 處理器
處理器(CPU)是解釋(執行)存儲在主存中指令的引擎。
程序計數器(PC)指向主存中某條機器語言指令(即含有該條指令的地址)。
寄存器文件由一些單個字長的寄存器組成,每個寄存器都有唯一的名字。
ALU(算數/邏輯單元) 計算新的數據和地址值。
下面是CPU在指令的要求下可能會執行的一些簡單操作:
- 加載:從主存復制一個字節或者一個字到寄存器,以覆蓋寄存器原來的內容
- 存儲:從寄存器復制一個字節或者一個字到主存的某個位置,以覆蓋這個位置上原來的內容
- 操作:把兩個寄存器的內容復制到ALU,ALU對這兩個字做算術運算,並將結果存放到一個寄存器中,以覆蓋寄存器中原來的內容
- 跳轉:從指令本身中抽取一個字,並將這個字復制到程序計數器(PC)中,以覆蓋PC中原來的值
2. 存儲器層次結構
3. 計算機系統抽象表示
所有應用程序對硬件的操作嘗試都必須通過操作系統。其有兩個基本功能:(1)防止硬件被失控的應用程序濫用(2)向應用程序提供簡單一致的機制來控制復雜而又通常大不相同的低級硬件設備。
文件是對I/O設備的抽象,虛擬內存是對程序存儲器的抽象,而進程是對一個正在運行的程序的抽象,虛擬機是對整個計算機的抽象。
3.1 進程
在一個操作系統上,可以同時運行多個進程,而每個進程都好像在獨占的使用硬件。而並發運行,則是說一個進程的指令和另一個進程的指令是交錯運行的。操作系統實現這種交錯執行的機制稱為上下文切換。上下文保存很多信息,比如PC和寄存器文件的當前值,以及主存的內容。