基礎知識之作業系統實驗 三 程序互斥

2021-10-12 07:04:14 字數 1855 閱讀 1720

標頭檔案

#include

函式原型

lockf(fd,mode,size)

函式引數

fd:操作的檔名,如果檔案不存在,系統會建立這個檔名,其中0為鎖住鍵盤,1為鎖住顯示器

mode:鎖定方式,1表示加鎖,0表示解鎖

size:fd的指定區域,用0表示從當前位置到檔案結尾

作用

對指定區域(有size指示)進行加鎖或解鎖,以實現程序的同步或互斥。

實驗要求:

建立兩個子程序,父程序和兩個子程序交替向檔案test.txt中寫入資訊。

準備工作:

先在主目錄中建立乙個空白的txt檔案,名字為test.txt

建立乙個c語言的原始碼檔案,名字為lockf.c

lockf.c**:

#include

#include

#include

#include

intmain()

while

((p1=

fork()

)==-1

);//建立乙個程序,直到成功為止

if(p1==0)

//如果是子程序

lockf

(*fp,0,

0);//解鎖

}else

//如果是父程序

lockf

(*fp,0,

0);//解鎖

}else

//父程序

lockf

(*fp,0,

0);wait(0

);wait(0

);fclose

(fp)

;printf

("檔案編輯成功!!\n");

}return0;

}}

執行結果:

開啟test.txt

執行第二次檢視test.txt

要求

對標準輸出裝置(監視器)加鎖,實現互斥訪問。

建立monitor.c原始檔,輸入以下原始碼

#include

#include

#include

#include

#include

intmain()

lockf(1

,0,0

);}else

lockf(1

,0,0

);}else

lockf(1

,0,0

);wait(0

);wait(0

);printf

("互斥使用監視器成功\n");

}}return0;

}

執行結果

再次執行

作業系統之程序的基礎知識

作業系統中最核心的概念是程序 這是乙個對正在執行程式的抽象。作業系統的其他所有內容都是圍繞著程序的概念展開的。程序是作業系統提供的最古老的也是最重要的抽象概念之一。即使只有乙個cpu,它也是支援 偽 併發操作的能力。它們將乙個cpu變成多個虛擬cpu。這裡我同大家一起學習關於程序的基礎知識。在程序模...

作業系統基礎知識

最近複習自考的作業系統資料主要分為六部分介紹作業系統知識,分別為 引論 處理器管理 儲存管理 檔案管理 裝置管理和併發程序。作業系統在計算機系統硬體和軟體中起到乙個承上啟下的作用,類似於三層架構中的業務邏輯層 個人之見 最近的博文將會分章節對作業系統知識總結。引論 有關作業系統的基礎知識 什麼是作業...

作業系統 基礎知識

作業系統的定義 作業系統 operating system,os 是指控制和管理整個計算機系統的硬體與軟體資源,合理地組織 排程計算機地工作與資源地分配,進而為使用者和其他軟體提供方便介面與環境的程式集合。作業系統是計算機系統中最基本的系統軟體。2.作業系統的特徵 併發 共享 虛擬 非同步 其中最基...