機器級程序將存儲器視為一個非常大的字節(jié)數(shù)組,稱為虛擬存儲器。
存儲器的每個字節(jié)都由一個唯一的數(shù)字來標識泻轰,稱為它的地址,所有可能地址的集合稱為虛擬地址空間
異或:相同為0且轨,不同為1
磁盤是廣為應用的保存大量數(shù)據(jù)的存儲設備浮声,存儲數(shù)據(jù)的數(shù)量級可以達到幾百或者幾千千兆字節(jié),從磁盤上讀信息的時間為毫秒級別旋奢。
固態(tài)硬盤SSD是一種基于閃存的存儲技術阿蝶。
各類緩存(CPU寄存器/L1/L2/L3等)
異常可以分為四類:中斷黄绩、陷阱羡洁、故障、終止
進程的經(jīng)典定義就是一個執(zhí)行中的程序的實例爽丹。系統(tǒng)中的每個程序都是運行在某個進程的上下文中筑煮。進程為每個程序提供一種假象,好像它獨占地使用系統(tǒng)地址空間粤蝎。在一臺n位地址的機器真仲,地址空間是2的n次方可能地址的集合,一個進程為每個程序提供它自己的私有地址空間初澎。
上下文切換:
1秸应、保存當前進程的上下文
2虑凛、恢復某個先前被搶占的進程被保存的上下文
3、將控制傳遞給這個新恢復的進程
fork函數(shù)
當一個進程由于某種原因終止時软啼,內(nèi)核并不是立即把它從系統(tǒng)中清除桑谍,相反,進程被保持在一個已終止的狀態(tài)中祸挪,直到被他的父進程回收锣披。當父進程回收已終止的子進程時,內(nèi)核將子進程的退出狀態(tài)產(chǎn)地給父進程贿条,然后拋棄已終止的進程雹仿,從此刻開始,該進程就不存在了整以。一個終止但未被回收的進程稱為僵尸進程胧辽。
一個信號就是一條小消息,它通知進程系統(tǒng)中發(fā)生了一個某種類型的事件公黑。
使用虛擬尋址時票顾,CPU通過生成一個虛擬地址來訪問主存,這個虛擬地址在被送到存儲器之前先轉換成適當?shù)奈锢淼刂贩鳌PU芯片上叫做存儲器管理單元的專用硬件奠骄,利用存放在主存中的查詢表來動態(tài)翻譯虛擬地址,該表內(nèi)容由操作系統(tǒng)管理番刊。
動態(tài)存儲分配器維護著一個進程的虛擬存儲器區(qū)域含鳞,稱為堆。程序使用動態(tài)存儲器分配的最重要的原因是經(jīng)常到程序實際運行時芹务,它們才知道某些數(shù)據(jù)結構的大小蝉绷。造成堆利用率很低的主要原因是一種稱為碎片的現(xiàn)象,當雖然有未使用的存儲器但不能用來滿足分配請求時枣抱,就會發(fā)生這種現(xiàn)象熔吗。有兩種形式的碎片:內(nèi)部碎片和外部碎片。內(nèi)部碎片是在一個已分配塊比有效載荷大時發(fā)生的佳晶。外部碎片是當空閑存儲器合計起來足夠滿足一個分配請求桅狠,但是沒有一個單獨的空閑塊足夠大可以來處理這個請求時發(fā)生的。