作業系統實驗二

2022-05-05 17:12:06 字數 778 閱讀 6649

\1. 分析程序爭用臨界資源的現象,學習解決程序互斥的方法。

\2. 了解fork( )系統呼叫的返回值,掌握用fork()建立程序的方法;

. 3. 熟悉wait、exit等系統呼叫。

修改程式,在父、子程序中分別使用wait、exit等系統呼叫「實現」其同步推進,多次反覆執行改進後的程式,觀察並記錄執行結果。

wait()返回值:若成功則返回子程序id,若出錯返回-1

說明:若呼叫者無子程序,則立即出錯返回;若有,則在乙個子程序終止前,wait使呼叫者阻塞,直到有乙個子程序終止。

程序一旦呼叫了wait,就立即阻塞自己,由wait自動分析是否當前程序的某個子程序已經退出,如果讓它找到了這樣乙個已經變成殭屍的子程序,wait就會收集這個子程序的資訊,並把它徹底銷毀後返回;如果沒有找到這樣乙個子程序,wait就會一直阻塞在這裡,直到有乙個出現為止,當然 如果在呼叫wait()時子程序已經結束,則wait()就會立即返回子程序結束狀態值引數status用來儲存被收集程序退出時的一些狀態,它是乙個指向int型別的指標。

exit()函式

功能:程序結束正常終止,返回結束狀態。返回值:無

說明:status為程序結束狀態。

作業系統實驗二

一 實驗目的 1 熟悉linux系統的基本命令。2 熟悉linux的作業系統。二 實驗環境 一台裝有linux的機器 這裡預設是redhat linux 9 三 實驗內容 1.檔案操作命令的使用 1 用vi編輯器新建乙個test1檔案,並且輸入 thisis test1 2 檢視檔案與目錄,具體步驟...

作業系統實驗

一 實驗目的 理解vi的三種執行模式及其切方法。學會使用vi的各種操作命令進行文字檔案的編輯。用vi編寫linux下c程式,會用gcc編譯。二 實驗環境 一台裝有linux的機器 這裡預設是red hat linux 9 系統裡面有gcc編譯器。三 實驗內容 寫出主要的內容 首先用合法使用者登入系統...

作業系統實驗

分析bootloader進入保護模式的過程。在剛進入bootloader的時候,最先執行的操作分別為關閉中斷 清除eflags的df位以及將ax,ds,es,ss暫存器初始化為0 globl start start code16 cli 關中斷 cld 清除方向標誌 xorw ax,ax ax清0 ...