假設有輸入、加工和輸出3個併發程序共享乙個緩衝區b,輸入程序負責從輸入裝置讀入一條記錄,每讀一條記錄後把它存放在緩衝區b中,加工程序在緩衝區b中加工輸入程序存入的記錄。輸出程序負責把加工後的記錄列印輸出。緩衝區b中每次只能存放一條記錄,當記錄被加工輸出後,緩衝區b中才可存放下—條新記錄。請用p、v操作來描述它們併發執行時能正確工作的程式。
解:
設4個變數。
mutex 代表是否有程序在使用b empty代表b是否為空,
full代表b是否有記錄, handle代表記錄是否被處理
semaphore mutex = 1, empty = 1, full = 0, handle = 0;
//讀入程序
void input () while( true )
}// 加工程序
void process () while( true )
}// 輸出程序
void process () while( true )
}
作業系統 緩衝區問題
資料處理的總體過程 磁碟將資料輸入到緩衝區 t 緩衝區將資料傳送到使用者區 m cpu對資料進行處理 c 雙緩衝 在雙緩衝結構中,系統處理一塊資料的時間可以粗略地認為是 max c,t 如果考慮m,則處理一塊資料的時間為 max c m,t 更準確的 max c,t m m 1.檔案佔34個磁碟塊,...
python 作業系統(練習)
京東二面筆試題 1 生成乙個大檔案ips.txt,要求1200行,每行隨機為172.25.254.0 24段的ip 2.讀取ips.txt檔案統計這個檔案中ip出現頻率排前10的ip import random def create ip file filename ip 172.25.254.st...
UNIX作業系統系統呼叫和緩衝區
unix作業系統也是一種程式。由作業系統核心管理著作業系統的各種資源,如cpu 記憶體,網路 裝置 定時器 程序管理 程序間通訊等 socket也是一種系統資源,提供了多系統之間程序的通訊機制 作業系統和核心執行在系統空間,每個普通的使用者會單獨的給其分配對應的使用者空間,但使用者沒有許可權去直接呼...