作業系統實驗二 程序 執行緒之間的同步

2021-05-10 03:06:01 字數 502 閱讀 6505

二、程序、執行緒之間的同步

1。生產者消費者問題(訊號量+mutex)

參考教材中的生產者消費者演算法,建立5個程序,其中兩個程序為生產者程序,3個程序為消費者程序。乙個生產者程序試圖不斷地在乙個緩衝中寫入大寫字母,另乙個生產者程序試圖不斷地在緩衝中寫入小寫字母。3個消費者不斷地從緩衝中讀取乙個字元並輸出。為了使得程式的輸出易於看到結果,仿照閱讀材料中的例項程式,分別在生產者和消費者程序的合適的位置加入一些隨機睡眠時間。

可選的實驗:在上面實驗的基礎上實現部分消費者有選擇地消費某些產品。例如乙個消費者只消費小寫字元,乙個消費者只消費大寫字母,而另乙個消費者則無選擇地消費任何產品。消費者要消費的產品沒有時,消費者程序被阻塞。注意緩衝的管理。

2。用訊號量和mutex方式實現睡覺的理髮師問題

3。讀者寫者問題

教材和相關的閱讀材料中對讀者寫者問題演算法均有描述,但這個演算法在不斷地有讀者流的情況下,寫者會被阻塞。編寫乙個寫者優先解決讀者寫者問題的程式,其中讀者和寫者均是多個程序,用訊號量作為同步互斥機制。

作業系統實驗二(程序排程之先來先服務)

一.實驗目的 理解程序執行的併發性 理解程序各種狀態及其之間的轉換 理解程序管理中pcb的結構 掌握fcfs程序排程演算法 二.實驗內容 要求 根據相關資料結構和演算法流程,按 fcfs非搶占式排程演算法實現程序排程 原理 多道環境中程序數一般多於處理機數目,系統需按照某種演算法動態地把處理機分配給...

《計算機作業系統》總結(二) 程序與執行緒

程序是程式的一次執行過程 程序是乙個程式及其資料在處理機上順序執行時所發生的活動 程序是具有獨立功能的程式在乙個資料集合上執行的過程。程序是作業系統的資源分配的基本單位。程序是系統進行資源分配和排程的乙個獨立單位 動態性 程序是程式的一次執行,它有著建立 活動 暫停 終止等過程,具有一定的生命週期,...

Linux 系統程序 執行緒之間的愛恨糾葛

當乙個程式開始執行後,在開始執行到執行完畢退出這段時間內,它在記憶體中的部分就叫稱作乙個程序。linux 是乙個多工的作業系統,也就是說,在同一時間內,可以有多個程序同時執行。我們大家常用的單cpu計算機實際上在乙個時間片段內只能執行一條指令。那麼linux是如何實現多程序的同時執行的呢?原來lin...