?資料&文章更新?
GitHub地址:https://github.com/tyronczt/system_architect
文章目錄
- 操作系統知識
- 操作系統概述
- 進程組成和狀態
- 💯考試真題
- 前趨圖
- 進程資源圖
- 💯考試真題
- 問題1
- 問題2
- ?【重點】進程同步與互斥?
- 💯考試真題
- 問題1
- 問題2
- 問題3
操作系統知識
重點:
- 分頁存儲管理
- I/O 軟件
操作系統概述
操作系統的4個特征是并發性、共享性、虛擬性和不確定性(異步性)。
嵌入式系統初始化過程按照自底向上、從硬件到軟件的次序依次為:片級初始化→板級初始化→系統初始化。
進程組成和狀態
運行、阻塞、就緒三態圖會考,五態圖不考,了解
💯考試真題
選項分析
- 選項 A(時間片到) 是唯一與狀態選項 C(就緒、運行、等待和等待)匹配的組合。雖然 FCFS 傳統上無時間片,但題目提供此選項,可能是假設某種搶占式變體。
- 選項 B 和 C 需要假設 P1 持有特定資源,但題目未說明,且結果狀態無匹配。
- 選項 D 因 P1 終止后狀態定義問題,無法直接匹配。
因此,最合理的解釋是:P1 的時間片到期,被搶占,進入就緒隊列;P2 開始運行;P3 和 P4 狀態不變。
若 P1 時間片到,則 P1、P2、P3 和 P4 的狀態應分別為 就緒、運行、等待和等待。即選擇 A 和 C。
前趨圖
進程資源圖
阻塞節點:某進程所請求的資源已經全部分配完畢。無法獲取所需資源,該進程被阻塞了無法繼續。
非阻塞節點:某進程所請求的資源還有剩余可以分配給該進程繼續運行。
當一個進程資源圖中所有進程都是阻塞節點時,即陷入死鎖狀態。
💯考試真題
問題1
判斷進程的阻塞狀態
P1 申請了R1和R2資源。若R1或R2已被其他進程占用(例如P3可能持有R1,或R2被其他未提及的進程占用),則P1會被阻塞。
P2 申請了R3資源。若R3不可用,則P2會被阻塞。
P3 申請了R1資源。若R1未被占用(假設當前R1空閑),則P3可以立即運行,是非阻塞節點。
結論:
C. P1、P2是阻塞節點,P3是非阻塞節點
問題2
判斷進程資源圖是否可以化簡及化簡順序
化簡可行性分析
P3是非阻塞節點,可以立即執行,執行后會釋放R1資源。
P1因等待R1和R2被阻塞,但P3釋放R1后,若R2可用(假設初始狀態R2空閑),則P1可以運行。
P1運行后釋放R2,使P2可以申請R3并執行。
因此,系統可以通過逐步釋放資源完成所有進程,不存在死鎖,可以化簡。
化簡順序
根據資源釋放的依賴關系:
P3(釋放R1)→ P1(釋放R2)→ P2(釋放R3)
結論:
B. 可以化簡的,其化簡順序為P3→P1→P2
最終答案
阻塞狀態判斷:C
化簡順序判斷:B
注: 假設初始資源分配中R1未被占用(允許P3直接運行),且R2/R3初始可用。若資源初始狀態不同,結論可能變化,需結合圖中具體資源持有關系確認。
?【重點】進程同步與互斥?
臨界資源:各進程間需要以互斥方式對其進行訪問的資源。
臨界區:指進程中對臨界資源實施操作的那段程序。本質是一段程序代碼。
互斥:某資源(即臨界資源)在同一時間內只能由一個任務單獨使用,使用時需要加鎖,使用完后解鎖才能被其他任務使用:如打印機。
同步:多個任務可以并發執行,只不過有速度上的差異,在一定情況下停下等待,不存在資源是否單獨或共享的問題;如自行車和汽車。
互斥信號量:對臨界資源采用互斥訪問,使用互斥信號量后其他進程無法訪問,初值為1。
同步信號量:對共享資源的訪問控制,初值一般是共享資源的數量。
P操作:申請資源,S=S-1,若S>=0,則執行P操作的進程繼續執行;若S<0,則置該進程為阻塞狀態因為無可用資源),并將其插入阻塞隊列。
V操作:釋放資源,S=S+1,若S>0,則執行V操作的進程繼續執行;若S<=0,則從阻塞狀態喚醒一個進程,并將其插入就緒隊列(此時因為缺少資源被P操作阻塞的進程可以繼續執行),然后執行V操作的進程繼續。
💯考試真題
問題1
a和b處的操作(P1和P2)
P1 是起始進程,執行后需觸發 P2 和 P3,因此需要釋放兩個信號量:
- V(S1):通知P2可以運行。
- V(S2):通知P3可以運行。
a處應填寫 V(S1)V(S2)。
P2 結束后需觸發 P4,因此釋放信號量:V(S3):通知P4可以運行。
b處應填寫 V(S3)。
答案:C. V(S1)V(S2) 和 V(S3)
問題2
c和d處的操作(P3)
P3 需要等待 P1 的信號量 S2(通過 P(S2)),執行后釋放 S4 以觸發 P5:
c處應填寫 P(S2)。
P3 結束后需觸發 P4,因此釋放信號量:V(S4):通知P5可以運行。
根據選項設計,P3的操作對應 P(S2) 和 V(S4)。
答案:B. P(S2) 和 V(S4)
問題3
e和f處的操作(P4和P5)
P4 執行后需觸發 P5,因此需要釋放信號量:V(S5)
e處應填寫 V(S5);
P5 需要等待 P3和P4都完成,即需兩個信號量操作:
P(S4):等待P3完成。
P(S5):等待P4完成。
f處應填寫 P(S4)P(S5)。
答案:B. V(S5) 和 P(S4)P(S5)
答案:C B D,如下圖