標頭檔案
#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.作業系統的特徵 併發 共享 虛擬 非同步 其中最基...