本章的重要性在于你將開始學(xué)習(xí)應(yīng)用是如何與操作系統(tǒng)交互的。從異常開始,異常位于操作系統(tǒng)和硬件交界的部分。繼續(xù)討論系統(tǒng)調(diào)用,它們是為應(yīng)用程序提供到操作系統(tǒng)的統(tǒng)一入口點(diǎn)的異常。然后提升抽象的層次,描述進(jìn)程和信號(hào),最后討論非本地跳轉(zhuǎn)。
異常:異常是異常控制流的一種形式,一部分硬件,一部分操作系統(tǒng)。表現(xiàn)形式為控制流中的突變,用來(lái)響應(yīng)處理器狀態(tài)中的某些變化。當(dāng)處理器發(fā)生一個(gè)重要變化時(shí),狀態(tài)碼會(huì)被編碼為不同的位和信號(hào)。狀態(tài)變化為事件,任何情況下,當(dāng)檢測(cè)器檢測(cè)到事件發(fā)生時(shí),會(huì)通過(guò)一張異常表進(jìn)行一個(gè)間接過(guò)程調(diào)用,通過(guò)專門的異常處理程序進(jìn)行處理。
進(jìn)程:現(xiàn)代系統(tǒng)運(yùn)行的假象,就好像我們程序是系統(tǒng)當(dāng)前運(yùn)行的唯一程序一樣,獨(dú)占內(nèi)存和處理器。這種假象是通過(guò)進(jìn)程概念提供給我們的。
進(jìn)程的經(jīng)典定義一個(gè)執(zhí)行中程序的實(shí)例。系統(tǒng)中的每個(gè)程序都運(yùn)行在某個(gè)進(jìn)程的上下文中。上下文由程序正確運(yùn)行所需的狀態(tài)組成。
進(jìn)程給程序提供的關(guān)鍵抽象:一個(gè)獨(dú)立的邏輯控制流,它提供一個(gè)假象,好像是我們的程序獨(dú)占使用處理器。一個(gè)私有的地址空間,它提供一個(gè)假象,好像我們的程序獨(dú)占使用內(nèi)存。
異常也是代碼中重要的一環(huán),也屬于代碼,自然也有屬于異常的控制方式。程序中良好的異常編碼能提供足夠的信息幫助程序員定位錯(cuò)誤。