1. 程式人生 > >現代作業系統-基礎概念

現代作業系統-基礎概念

系統呼叫:system  call,為了從作業系統中獲得服務。使用者程式必須使用系統呼叫以陷入核心並呼叫作業系統,TRAP指令把使用者態切換成核心態,並啟用作業系統。

常見的系統呼叫:fork,execve,open,close,read,write,mkdir,link, mount, chdir, chmod

多執行緒CPU(也稱為超執行緒CPU):允許CPU保持兩個不同的執行緒狀態,然後在納秒級的時間尺度內來回切換。比如某個程序需要從記憶體讀一個字,可能花費多個時鐘週期,CPU可以切換至另一個執行緒,要注意的是,多執行緒不提供真正的並行處理,只是一個偽並行。

多核CPU能夠保證進行真正的並行處理,而GPU是擁有核心最多的處理器,由上萬個微核組成,擅長處理大量並行的簡單計算,比如在影象應用中渲染多邊形,但是很難對其進行程式設計。

儲存器:在理想情況下,儲存器應該極為迅速,充分大,且便宜,但無法同時滿足。因此採用分層次的結構:


頂層的是CPU中的暫存器,它們用和CPU一樣的材料製成,所以和CPU一樣快。

快取記憶體:主要由硬體控制,主存被分割為快取記憶體行,當程式需要讀一個儲存字時,快取記憶體硬體檢查所需要的內容是否在快取記憶體中,如果是,則稱為快取記憶體命中,滿足了請求。若未滿足,則必須訪問記憶體,會付出大量的時間代價。

在任何快取系統中,都有若干需要考慮的問題:

1.何時將新內容放入快取

2.新內容放在快取的哪一行上

3.在需要時,把哪個內容移走

4。應該把新移走的內容放在較大儲存器的何處。

主存:RAM,或者EEPROM還有快閃記憶體。

地址空間:通常,每個程序有一些可以使用的地址集合,在最簡單的情況下,一個程序擁有的最大地址空間小於主存,這樣,程序可以用滿其地址空間。

但是在需要32位或者64位地址的計算機中,分別有2^32和2^64位元組的地址空間,如果一個程序要比主存還大的地址空間,那麼可以使用虛擬記憶體,作業系統將部分地址空間裝入記憶體,部分留在磁碟,並且在需要時來回交換它們。也就是說,作業系統建立了一個地址空間的抽象,作為程序可以引用地址的集合,地址空間與機器的實體記憶體解耦,可能大於也可能小於物理空間。