freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

10-6linux操作系統(tǒng)-sysv進程間通信-資料下載頁

2025-02-28 00:59本頁面
  

【正文】 以把消息片鏈接在一起 共享內(nèi)存?共享內(nèi)存是多個進程共享的一塊內(nèi)存區(qū)域。不同的進程可把共享內(nèi)存映射到自己的一塊地址空間 ,不同的進程進行映射的地址空間不一定相同。?共享內(nèi)存區(qū)的進程對該區(qū)域的操作是互見的?共享內(nèi)存沒有提供進程同步與互斥的機制, 往往需要和信號量配合使用。?相比起其它進程通信方式,共享內(nèi)存在進行數(shù)據(jù)交換方面是效率比較高的。無須用戶態(tài)切、核心態(tài)切換開銷?shmget()函數(shù)有一個參數(shù)指定共享內(nèi)存區(qū)域的大小,該函數(shù)建立的共享內(nèi)存區(qū)在內(nèi)核中用shmid_kernel結(jié)構(gòu)表示struct shmid_kernel{ struct kern_ipc_perm shm_perm。 struct file * shm_file。 int id。 unsigned long shm_nattch。/*已建立映射的數(shù)目 */ unsigned long shm_segsz。/*共享內(nèi)存區(qū)的大小 */ time_t shm_atim。 time_t shm_dtim。 time_t shm_ctim。 pid_t shm_cprid。 pid_t shm_lprid。}。?shmget()創(chuàng)建的共享內(nèi)存區(qū)域并沒有立即分配物理內(nèi)存,而是創(chuàng)建一個文件對象 shm_file來描述該區(qū)域,而該文件屬于 shm文件系統(tǒng)。 shm文件系統(tǒng)是一個內(nèi)存文件系統(tǒng),它不依賴于磁盤文件的內(nèi)容?進程調(diào)用 shmat()函數(shù)建立進程地址空間與共享內(nèi)存區(qū)的映射。選取進程地址空間的哪一段區(qū)間進行映射可由用戶指定也可委托內(nèi)核進行選擇。 shmat函數(shù)找到區(qū)間后進程分配一個vm_area_struct結(jié)構(gòu)描述該區(qū)間,vm_area_struct結(jié)構(gòu)的各項被初始化,其中 file成員被初始化為 shm_file,而 vm_ops成員被初始化為 shm_vm_opsstatic struct vm_operations_struct shm_vm_ops = {open: shm_open, close: shm_close, nopage:shmem_nopage,}。?當(dāng)進程第一次訪問該映射共享內(nèi)存區(qū)的區(qū)間地址時,將觸發(fā)頁面異常,最終將調(diào)用 shmem_nopage()函數(shù)。該函數(shù)處理的大致過程如下 :(1)先根據(jù)文件和文件位置查找 page cache,因為別的進程可能已經(jīng)為映射的共享內(nèi)存區(qū)頁面已經(jīng)申請了一個物理頁幀。如果找到,修改本進程頁表即可。否則繼續(xù)下一步。(2)檢查被是否映射的共享內(nèi)存區(qū)頁面被訪問過,但已被換出到交換分區(qū)。如果是,則調(diào)入該頁面,修改進程頁表。否則繼續(xù)下一步。(3)被映射的共享內(nèi)存區(qū)頁面從未被訪問過,這種情況向內(nèi)存子系統(tǒng)申請一個物理頁幀,修改進程頁表。? 進程可以調(diào)用 shmdt()函數(shù)解除地址空間與共享內(nèi)存區(qū)的映射關(guān)系,主要是修改頁表及釋放vm_area_struct結(jié)構(gòu)。謝謝觀看 /歡迎下載BY FAITH I MEAN A VISION OF GOOD ONE CHERISHES AND THE ENTHUSIASM THAT PUSHES ONE TO SEEK ITS FULFILLMENT REGARDLESS OF OBSTACLES. BY FAITH I BY FAITH
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1