核心實驗一程序管理

2021-09-11 15:38:18 字數 1313 閱讀 1672

實驗1 程序管理

一、實驗目的

(1)加深對程序概念的理解,明確程序和程式的區別。

(2)進一步認識併發執行的實質。

(3)分析程序爭用資源的現象,學習解決程序互斥的方法。

(4)了解linux系統中程序通訊的基本原理。

二、實驗預備知識

(1)閱讀linux的sched.h原始碼檔案,加深對程序管理概念的理解。

(2)閱讀linux的fork.c原始碼檔案,分析程序的建立過程。

三、實驗內容

(1)程序的建立

編寫一段程式,使用系統呼叫fork()建立兩個子程序。當此程式執行時,在系統中有乙個父程序和兩個子程序活動。讓每乙個程序在螢幕上顯示乙個字元;父程序顯示字元「a」;子程序分別顯示字元「b」和字元「c」。

試觀察記錄螢幕上的顯示結果,並分析原因。

(2)程序的控制

修改已編寫的程式,將每個程序輸出乙個字元改為每個程序輸出一句話,在觀察程式執行時螢幕上出現的現象,並分析原因。

如果在程式中使用系統呼叫lockf()來給每乙個程序加鎖,可以實現程序之間的互斥,觀察並分析出現的現象。

(3)① 編制一段程式。使其實現程序的軟中斷通訊。

要求:使用系統呼叫fork()建立兩個子程序,再用系統呼叫signal()讓父程序捕捉鍵盤上來的中斷訊號(即按del鍵);當捕捉到中斷訊號後,父程序用系統呼叫ki11()向兩個子程序發出訊號,子程序捕捉到a號後分別輸出下列資訊後終

止:child process 1 is killed by parent!

child process 2 is killed by parent!

父程序等待兩個子程序終止後,輸出如下的資訊後終止:

parent process is killed!

② 在上面的程式中增加語句signal (sigint,sig_ign)和signal (sigquit,sig_ign),觀察執行結果,並分析原因。

(4)程序的管道通訊

編制一段程式,實現程序的管道通訊。

使用系統呼叫pipe( )建立一條管道線;兩個子程序p1和p2分別向管道各寫一句話:

child 1 is sending a message!

child 2 is sending a message!

而父程序則從管道中讀出來自於兩個子程序的資訊,顯示在螢幕上。

要求父程序先接收子程序p1發來的訊息,然後再接收子程序pz發來的訊息。

四、思考

(1)系統是怎樣建立流程的?

(2)可執行檔案載入時進行了哪些處理?

(3)當首次呼叫新建立程序時,其入口在**?

(4)程序通訊有什麼特點?

實驗一程序排程實驗報告

專業 嵌入式 軟體 學號 541013090210 姓名 郝春玲 實驗日期 2012年12月27日 一 實驗目的 通過對程序排程演算法的模擬加深對程序概念和程序排程演算法的理解。二 實驗要求 編寫程式實現對5個程序的排程模擬,採用優先權的排程演算法分別進行模擬排程。三 實驗方法內容 1.演算法設計思...

作業系統實驗報告實驗一程序管理

程序排程是處理機管理的核心內容。本實驗要求編寫和除錯乙個簡單的程序排程程式。通過本實驗加深理解有關程序控制塊 程序佇列的概念,並體會和了解程序排程演算法的具體實施辦法。1 設計程序控制塊pcb的結構 pcb結構通常包括以下資訊 程序名 程序id 程序優先數 輪轉時間片 程序所占用的cpu時間 程序的...

危險源識別與風險評價程序 三合一程序

1.0 目的 識別及評價公司範圍內的職業安全衛生危險源,評價其風險程度,判定出重大危險源,從而進行有效控制。2.0 適用範圍 本程式適用於公司範圍內危險源識別和風險評價。3.0 職責 3.1 行政部負責組織危險源的識別 登記 彙總,並主持風險評價活動。3.2 各相關部門配合,參與危險源的識別 評價活...