生產者消費者問題node
共享緩衝區中放置一個數字,取值範圍爲[0, 10],初值爲0。生產者將此值加1,消費者將此值減1。算法
場景1 spa
同一進程內啓動一組生產者線程和一組消費者線程線程
緩衝區爲本進程的全局變量索引
場景2進程
啓動一組生產者進程和一組消費者進程資源
同一個數據文件爲緩衝區it
輸入 io
p:生產者數量變量
c:消費者數量
輸出
打印當前共享緩衝區中的數值,或者生產者消費者的狀態。如
Producer 1: 0 -> 1
Consumer 2: 1 -> 0
Consumer 3: waiting
...
Producer 0: 0 -> 1
Consumer 3: (resume) 1 -> 0
...
Producer 1: 9 -> 10
Producer 2: waiting
Consumer 1: 10 -> 9
Producer 2: (resume) 9 -> 10
銀行家算法程序
輸入
p: 進程數量
r:資源數量
各進程的 max, allocation
輸出
若產生死鎖,打印提示:死鎖狀態。
不然,給出一種調度順序。
頁式存儲邏輯地址到物理地址映射
條件:64位地址空間
輸入:
頁記錄大小(如 4Byte)
頁大小(如 4KB)
頁表級數(如,2表示2級頁表,n表示n級頁表)
邏輯地址(十六進制)
輸出:物理地址(物理塊號,塊內偏移)
說明:頁表隨機產生,爲便於驗證可令邏輯頁號 n 的物理塊號爲 n。
混合索引邏輯地址到物理地址映射
條件:自定義混合索引 inode 結構
必須包括一次,二次,和三次間接塊
邏輯塊 n 對應物理塊 n
輸入:文件邏輯地址
輸出
1. 輸出 inode 詳細信息(間接塊不展開)
2. 物理地址(物理塊號,塊內偏移)