1、系統的硬體組成
Figure1 Hardware organization of a typical system. CPU: Central Processing Unit, ALU: Arithmetic/Logic Unit, PC: Program counter, USB: Universal Serial Bus.
1)匯流排
貫穿整個系統的一組電子管道,它攜帶資訊位元組並負責在各個組件間傳遞。通常匯流排被設計成傳送定長的位元組塊,也就是字(word)。各個系統中字長不盡相同,intel pentium系統的字長為4位元組。
2)I/O裝置
I/O裝置是系統與外界的聯絡通道。
控制器是I/O裝置本身中或是系統的主印刷電路板(主板)上的晶片集,而適配器則是一塊插在主板插槽上的卡。
3)主存
臨時存放裝置,在處理器執行程式時,用來存放程式和程式處理的資料。物理上來說,主存是由一組DRAM晶片集成的;邏輯上來說,儲存空間由一個線性位元組資料群組成,每個位元組都有自己惟一的地址(數組索引),這些地址以0開始的。一般來說,組成程式的每條機器指令都由不定量的位元組構成。
4)處理器
CPU,是解釋(或執行)儲存在主存中指令的引擎。處理器的核心是一個被稱為程式計數器(PC)的字長大小的存放裝置(或寄存器)。在任何一個時間點上,PC都指向主存中的某條機器語言指令。
從系統加電,到斷電,CPU一直不加思索的重複執行相同的基本任務:從程式計數器(PC)指向的儲存空間讀取指令,解釋指令中的位,執行指令指示的簡單操作,然後更新程式計數器指向下一條指令(不一定與剛剛執行的指令相鄰)。
2、階層的存放裝置
Figure 2: The memory hierarchy
儲存空間分層結構的主要思想是:一個層次上的儲存空間作為下一層次上的儲存空間的高速緩衝。
3、作業系統提供的抽象表示
Figure 3: Abstractions provided by an operating system
作業系統核心是應用程式和硬體之間的媒介。它提供三個基本的抽象概念:檔案是對I/O裝置的抽象概念;虛擬儲存空間是對主存和磁碟的抽象概念;進程是處理器、主存和I/O裝置的抽象概念。
1)進程是作業系統對運行程式的一種抽象。在一個系統上可以同時運行多個進程,而每個進程都好像獨佔地使用硬體,我們稱之為並發運行。實際上,是一個進程的指令和另一個進程的指令交錯執行的,作業系統實現這種交錯執行的機制稱為環境切換(context switching)。作業系統儲存進程運行所需的所有狀態資訊,這些狀態稱為上下文(context )。
2)一個進程可由多個線程組成。每個線程都運行在進程的上下文中,並共用同樣的代碼和全域資料。
3)虛擬儲存空間
虛擬儲存空間是抽象概念,它為每個進程提供一個假象,好像每個進程都在獨佔地使用主存。每個進程看到的儲存空間都是一致的,稱之為虛擬位址空間。
Figure 4: Linux process virtual address space.
虛擬儲存空間,基本思想是把一個進程虛擬儲存空間的內容儲存在磁碟上,然後用主存作為磁碟的高速緩衝。
4)檔案
是位元組序列。每個I/O裝置,包括磁碟,鍵盤,顯示器,網路,等可以看成是檔案。
4、系統,是相互交織的硬體和系統軟體的集合體。
<深入理解電腦系統(Computer Systems:A Programmer's Perspective)>