程序:
(1)程序的經典概念就是執行中的乙個程式的例項。
(2)系統中的每乙個程式都是執行在程序的上下文中。
(3)上下文:由程式正確執行所需的狀態組成,這個狀態包括:存放在儲存器中的**和資料,它的棧,通用目的暫存器,
程式計數器,環境變數,以及開啟的檔案描述符等等。
程序給程式提供的關鍵抽象:
(1)獨立的邏輯控制流:好像程式在執行時獨佔cpu處理器
邏輯控制流:
程式的執行時會有一系列的程式計數器(pc)的值,這些值唯一的對應著可執行程式的指令。這些值的序列就是邏輯控制流。
(1)併發流:
乙個邏輯流的執行時間上與領乙個流重疊稱為併發流。
如上圖,a和b時間上有重疊,a和c時間上有重疊
而b與c,因為執行c的第一條指令時b的最後一條指令已經執行完了
(2)多工:
乙個程序與其他程序輪流的執行稱為多工。
(3)時間片:
乙個程序執行它的控制流上的乙個片段稱為時間片。
8.2.3 私有位址空間
(1)程序為每個程式提供乙個假象,好像它獨佔的使用整個系統的位址空間。
(2)如32位機,位址是2^32個可能的位址集合。
(3)乙個程序為執行在它上面的程式提供私有的位址空間,這個位址所關聯的儲存位元組是不能被其他程序所訪問的
(4)位址空間的頂部是保留給核心的,底部是保留給使用者程式的
8.2.4 核心模式和使用者模式
(1)乙個執行在核心模式下的程序可以訪問指令集中的任何指令,可以訪問儲存器中的任何儲存位元組
(2)乙個執行在使用者模式下的程序不能訪問特權指令
(3)處理器中的某只控制暫存器的模式位來控制模式。
8.2.5 上下文切換
(1)核心為每個程序維持乙個上下文,上下文就是核心重新啟動乙個被搶占的程序所需的狀態。
上下文切換:(在核心的模式下)
(1)儲存當前程序的上下文。
(2)恢復某個先前被搶占的程序的被儲存的上下文
(3)將控制傳遞給這個新恢復的程序
深入理解計算機作業系統(2 2 4)
在c語言中,對於有符號數和無符號數之間的轉換是從位級的角度來考慮的而不是從數級的角度來考慮的。簡單說就是,對於有符號數和無符號數之間的轉換,我們希望的是在可以表示的範圍內,數值表示不變,但是c語言中,是二進位制位不變,改變解釋二進位制位的方式。舉例 乙個8位的無符號數128,二進位制位是100000...
深入理解計算機作業系統(三)
基本資料型別 大小端模式 整型數範圍與c標準 複合型型別轉換 從short到unsigned 讓我們複習一下c語言中基本資料型別的位元組數 名稱32位 64位char11 short int22 int4 4long int48 long long int88 char 48 float44 dou...
深入理解計算機作業系統(九)
本文將介紹儲存器層次結構以及區域性性對程式效能的影響。什麼是儲存器層次結構?區域性性 這個詞大家也許並不陌生,計算機中的儲存器從暫存器 快取到記憶體 硬碟,形成了乙個層次結構。為什麼不用單一的一種儲存裝置,比如只用硬碟呢?因為每一種儲存裝置都有它的優缺點,硬碟雖然儲存空間大,但傳輸速率太慢,完全跟不...