程序是作業系統對乙個正在執行的程式的一種抽象。在乙個系統上可以同時執行多個程序,而每個程序都好像在獨佔地使用硬體(實際上作業系統在不斷進行程序切換),併發執行是指乙個程序的指令與另乙個程序的指令交錯執行。作業系統實現這種交錯執行的機制成為上下文切換。
上下文(作業系統保持程序執行所需要的全部資訊,可理解為環境),例如pc和暫存器檔案的當前值,或者主存的內容。在任何時刻,作業系統只能執行乙個程序的**。 當作業系統決定把控制權由當前程序轉移到某個程序時,就會進行上下文切換(儲存當前程序的上下文,恢復新程序的上下文),然後將控制權傳遞到新程序。具體切換過程如圖1.1所示:
乙個程序可由多個成為執行緒的執行單元組成,其執行在程序的上下文並且共享同樣的**和資料。
虛擬記憶體是乙個抽象概念,它為每個程序提供了乙個假象,即每個程序都在獨佔地使用主存。每個程序所看到的的記憶體都是一致的,成為虛擬位址空間(彙編檔案中的記憶體位址為虛擬位址,其還需經過記憶體對映為物理記憶體)。linux系統的虛擬位址空間如圖3.1所示:
圖3.1 程序的虛擬位址空間
深入理解計算機系統第一章
即每個程式中的每個字元都在ascii標準中被乙個具體的數值來標明。這些字元稱之為ascii字元,由ascii字元構成的檔案叫做文字檔案,其他都是二進位制檔案 從原始檔到目標檔案需要4個階段,預處理,編譯,彙編,鏈結。系統的硬體組成 匯流排 貫穿系統的是一組電子管道,稱為匯流排,它攜帶資訊位元組並負責...
《深入理解計算機系統》第一章 計算機系統漫遊
計算機系統是由硬體和系統軟體組成的,他們共同工作來執行應用程式。深入理解底層計算機系統以及它對應用程式的影響有助於提高程式的效能。1.1 資訊就是位 上下文 源程式實際上就是乙個由值0和1組成的位序列。程式是由文字字元表示的,8個位被組織成一組,成為位元組,每個位元組表示為程式中的文字字元。文字字元...
深入理解計算機系統 第一章 計算機系統漫遊
本著對計算機執行原理的好奇以及個人職業發展的需要,開始閱讀這本書。以下分節記錄讀書筆記 1.1 資訊就是位 上下文 計算機系統中存放的所有資訊都是由一串位元 bit 表示的,但值得注意的是,同樣的位元資訊在不同的上下文中所代表的意思是不同的。在這裡,我們可以將 上下文 理解為對位元資訊的解讀方式。每...