機器級程序將存儲器視為一個非常大的字節數組,稱為虛擬存儲器。
存儲器的每個字節都由一個唯一的數字來標識,稱為它的地址,所有可能地址的集合稱為虛擬地址空間
異或:相同為0,不同為1
磁盤是廣為應用的保存大量數據的存儲設備,存儲數據的數量級可以達到幾百或者幾千千兆字節,從磁盤上讀信息的時間為毫秒級別。
固態硬盤SSD是一種基于閃存的存儲技術。
各類緩存(CPU寄存器/L1/L2/L3等)
異常可以分為四類:中斷、陷阱、故障、終止
進程的經典定義就是一個執行中的程序的實例。系統中的每個程序都是運行在某個進程的上下文中。進程為每個程序提供一種假象,好像它獨占地使用系統地址空間。在一臺n位地址的機器,地址空間是2的n次方可能地址的集合,一個進程為每個程序提供它自己的私有地址空間。
上下文切換:
1、保存當前進程的上下文
2、恢復某個先前被搶占的進程被保存的上下文
3、將控制傳遞給這個新恢復的進程
fork函數
當一個進程由于某種原因終止時,內核并不是立即把它從系統中清除,相反,進程被保持在一個已終止的狀態中,直到被他的父進程回收。當父進程回收已終止的子進程時,內核將子進程的退出狀態產地給父進程,然后拋棄已終止的進程,從此刻開始,該進程就不存在了。一個終止但未被回收的進程稱為僵尸進程。
一個信號就是一條小消息,它通知進程系統中發生了一個某種類型的事件。
使用虛擬尋址時,CPU通過生成一個虛擬地址來訪問主存,這個虛擬地址在被送到存儲器之前先轉換成適當的物理地址。CPU芯片上叫做存儲器管理單元的專用硬件,利用存放在主存中的查詢表來動態翻譯虛擬地址,該表內容由操作系統管理。
動態存儲分配器維護著一個進程的虛擬存儲器區域,稱為堆。程序使用動態存儲器分配的最重要的原因是經常到程序實際運行時,它們才知道某些數據結構的大小。造成堆利用率很低的主要原因是一種稱為碎片的現象,當雖然有未使用的存儲器但不能用來滿足分配請求時,就會發生這種現象。有兩種形式的碎片:內部碎片和外部碎片。內部碎片是在一個已分配塊比有效載荷大時發生的。外部碎片是當空閑存儲器合計起來足夠滿足一個分配請求,但是沒有一個單獨的空閑塊足夠大可以來處理這個請求時發生的。