記憶體管理
#include#includechar *memptr = (char *) malloc(1024);//
分配1k的記憶體
#include#includechar *memptr = (char *) malloc(1024);//
分配1k的記憶體
free(memptr);//
釋放記憶體
linux支援虛擬記憶體,核心會將暫時不用的記憶體塊的內容寫到硬碟上,用作虛擬記憶體的硬碟部分被稱為交換空間(swap space)。
linux將所有的記憶體以頁為單位進行劃分。每當程式試圖訪問記憶體時,就會發生虛擬記憶體到物理記憶體的轉換。
如果乙個記憶體頁面未被使用,則將其從物理記憶體轉移到交換空間(換頁)。
如果程式試圖訪問已經置換到交換空間的記憶體頁的資料,則將記憶體頁從交換空間再次置換到物理記憶體。
多工,多使用者下,程式經常共享檔案資料,建立某種控制檔案的方式非常重要。
兩種應用:(1)以原子操作的方式建立鎖檔案,保證建立的檔案是唯一的,不會被其他程式在同一時間建立。(2)允許程式鎖定檔案的一部分,從而獨享對這部分內容的訪問。
簡單來說就是建立乙個唯一的檔案,並保證同一時間其他程式不會建立相同的檔案。
鎖檔案只是建議鎖,不是強制鎖。即鎖檔案只是指示器的作用,需要程式互相協作使用它們。
//lock1.c
#include#include
#include
#include
#include
intmain()
else
exit(0);
}
執行
wuchao@:~/linux_program/ch07$ ./lock1open success
wuchao@:~/linux_program/ch07$ ./lock1
open failed with error:
17
第一次執行時,檔案不存在,所有呼叫open成功,第二次檔案存在,所有呼叫失敗。open返回-1。
#includeint fcntl(int fildes, int command, struct flock *flock_structure );
command引數有以下選項:
f_getlk
獲取檔案的鎖資訊
f_setlk
加鎖或解鎖
f_setlkw
同f_setcl,在無法獲取鎖時,一直等待,直到獲取到鎖或收到乙個訊號。
flock結構體如下:
short l_type
取值如下:
f_rdlck:共享(或讀)鎖。多個程序可以擁有同一檔案的同一區域的共享鎖。只要任意乙個程序擁有一把共享鎖,就沒有程序可以獲得該區域的獨佔鎖。為了獲取共享鎖,檔案必須以讀或讀寫開啟。
f_unclk:解鎖
f_wrclk:獨佔(或寫)鎖。只有乙個程序可以在檔案的特定區域擁有一把獨佔鎖。只要任意乙個程序有了這把鎖,其他程序無法在該區域獲得任何型別的鎖。為了獲取獨佔鎖,檔案必須以寫或讀寫開啟。
short l_whence
定義了l_start的相對偏移值,l_whence常設為seek_set,此時l_start從檔案的開始計算。
取值如下:
seek_set:檔案頭
seek_cur:當前位置
seek_end:檔案尾
short l_start
該區域的第乙個位元組。
short l_len
該區域的位元組數。
short l_pid
持有鎖的程序識別符號。
鎖狀態下的讀寫操作
當對檔案區域加鎖後,必須使用底層read和write訪問檔案資料。因為fread和fwrite會對讀寫的資料進行快取。
程式a,b需要同時更新同乙個檔案中的位元組1和位元組2,程式a選擇先更新位元組2,程式b選擇先更新位元組1。
兩個程式同時啟動,程式a先鎖定位元組2,程式b先鎖定位元組1。程式a嘗試鎖定位元組1,但位元組1被b鎖定,a在那裡等待。接著b嘗試鎖定2,但被a鎖定,b也在等待。
此時,兩個程式都無法繼續下去。
第七章 資料管理技術的發展
1.資料模型是資料庫系統的核心和基礎。以資料模型的發展為主線,資料庫技術可分為第一代的網狀,層次結構資料庫系統,第二代的關聯式資料庫和第三代的物件導向資料庫 2.支援關係資料模型的資料庫是第二代資料庫 3.第三代資料庫的基本特徵 1 應支援資料管理,物件管理和知識管理 2 必須保持或繼承第二代資料庫...
第七章檔案管理
為了能對乙個檔案進行正確的訪問,必須為檔案設定用於描述和控制檔案的資料結構,稱之為 檔案控制塊 fcb 檔案與檔案控制塊一一對應。把檔案控制塊的有序集合稱為檔案目錄,即乙個檔案控制塊就是乙個目錄項。通常乙個檔案目錄也被看作是乙個檔案,稱為目錄檔案。檔案管理的操作 基本資訊記錄 fcb,目錄項 方便檢...
第七章 檔案管理
檔案管理 把所管理的程式和資料組織成一系列的檔案,並能進行合理的儲存 使用等操作。1.基本概念 資料項 描述物件某種屬性的字符集 是資料組織中可以命名的最小邏輯資料單位。記錄 一組相關資料項集合,描述物件某方面的屬性 關鍵字 乙個記錄中的乙個或幾個資料項的集合,用於唯一的標識乙個記錄。檔案 由建立者...