<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦 > 學習電腦 > 電腦硬件知識 > 內存知識 > 電腦共享內存在哪里?

        電腦共享內存在哪里?

        時間: 本達868 分享

        電腦共享內存在哪里?

          電腦共享內存在哪里?共享內存指在多處理器的計算機系統中,可以被不同中央處理器(CPU)訪問的大容量內存。下面學習啦小編給大家介紹下電腦共享的相關知識,希望對大家有幫助!

          電腦共享內存在哪里?

          共享內存指 (shared memory)在多處理器的計算機系統中,可以被不同中央處理器(CPU)訪問的大容量內存。由于多個CPU需要快速訪問存儲器,這樣就要對存儲器進行緩存(Cache)。任何一個緩存的數據被更新后,由于其他處理器也可能要存取,共享內存就需要立即更新,否則不同的處理器可能用到不同的數據。共享內存是 Unix下的多進程之間的通信方法 ,這種方法通常用于一個程序的多進程間通信,實際上多個程序間也可以通過共享內存來傳遞信息。

          工作原理

          由于多個CPU需要快速訪問存儲器,這樣就要對存儲器進行緩存(Cache)。任何一個緩存的數據被更新后,由于其他處理器也可能要存取,共享內存就需要立即更新,否則不同的處理器可能用到不同的數據。

          下面實例演示了使用shmget函數創建一塊共享內存。程序中在調用shmget函數時指定key參數值為IPC_PRIVATE,這個參數的意義是創建一個新的共享內存區,創建成功后使用shell命令ipcs來顯示系統下共享內存的狀態。命令參數-m為只顯示共享內存的狀態。

          (1)在vi編輯器中編輯該程序如下:程序清單14-8 create_shm.c 使用shmget函數創建共享內存#include <sys/types.h>#include <sys/ipc.h>#include <sys/shm.h>#include <stdlib.h>#include <stdio.h>#define BUFSZ 4096int main ( void ){int shm_id; /*共享內存標識符*/shm_id=shmget(IPC_PRIVATE, BUFSZ, 0666 ) ;//shm_id=shmget(999,BUFSZ,0666|O_CREAT);if (shm_id < 0 ) { /*創建共享內存*/perror( "shmget" ) ;exit ( 1 );}printf ( "successfully created segment : %d \n", shm_id ) ;system( "ipcs -m"); /*調用ipcs命令查看IPC*/exit( 0 );}

          (2)在shell中編譯該程序如下:$gcc create_shm.c -o create_shm

          (3)在shell中運行該程序如下:$./ create_shmsuccessfully created segment : 2752516------ Shared Memory Segments --------key shmid owner perms bytes nattch status0x0000000 66root 600 393216 2 dest0x00000 5209root 666 4096 00x0056a4d5 2686978 root 600 488 10x0056a4d6 2719747 root 600 131072 1root 666 4096 0

          上述程序中使用shmget函數來創建一段共享內存,并在結束前調用了系統shell命令ipcs –m來查看當前系統IPC狀態。

          注意事項

          共享內存相比其他幾種方式有著更方便的數據控制能力,數據在讀寫過程中會更透明。當成功導入一塊共享內存后,它只是相當于一個字符串指針來指向一塊內存,在當前進程下用戶可以隨意的訪問。缺點是,數據寫入進程或數據讀出進程中,需要附加的數據結構控制。

          如何創建編輯

          共享內存是存在于內核級別的一種資源,在shell中可以使用ipcs命令來查看當前系統IPC中的狀態,在文件系統/proc目錄下有對其描述的相應文件。函數shmget可以創建或打開一塊共享內存區。

          函數原型如下:#include <sys/shm.h>int shmget( key_t key, size_t size, int flag );

          函數中參數key用來變換成一個標識符,而且每一個IPC對象與一個key相對應。當新建一個共享內存段時,size參數為要請求的內存長度(以字節為單位)。

          注意:內核是以頁為單位分配內存,當size參數的值不是系統內存頁長的整數倍時,系統會分配給進程最小的可以滿足size長的頁數,但是最后一頁的剩余部分內存是不可用的。

          當打開一個內存段時,參數size的值為0。參數flag中的相應權限位初始化ipc_perm結構體中的mode域。同時參數flag是函數行為參數,它指定一些當函數遇到阻塞或其他情況時應做出的反應。

        1343448 主站蜘蛛池模板: 国产二区三区不卡免费| 在线观看潮喷失禁大喷水无码| 韩国无码av片在线观看网站| 日韩高清亚洲日韩精品一区二区| 强奷漂亮少妇高潮伦理| 久久夜色精品国产噜噜亚洲sv| 成人久久18免费网站入口| 亚洲天堂网色图伦理经典| 午夜欧美日韩在线视频播放| 中文字幕在线日韩| 亚洲东京色一区二区三区| 国产SUV精品一区二区88L| AV无码免费不卡在线观看 | 国产精品一区二区久久毛片| 亚洲熟妇中文字幕五十路| 69精品丰满人妻无码视频a片| 久久se精品一区二区三区| 国产性三级高清在线观看 | 9l久久午夜精品一区二区| 国产熟女精品一区二区三区| 国产美女午夜福利视频| 免费国产va在线观看| 别揉我奶头~嗯~啊~的视频 | 少妇无码吹潮| 人妻少妇偷人一区二区| 国产精品无码不卡一区二区三区| 亚洲熟女乱一区二区三区| 九九精品无码专区免费| 亚洲一区二区av偷偷| 国产95在线 | 欧美| 日本伊人色综合网| 久久香蕉国产线看观看亚洲片| 亚洲自拍偷拍激情视频| 久久91精品牛牛| 99久久精品久久久久久婷婷| 亚洲AV高清一区二区三区尤物 | 亚洲av日韩av中文高清性色| 色偷偷av一区二区三区 | 国产不卡一区不卡二区| 亚洲国产精品乱码一区二区| 不卡乱辈伦在线看中文字幕|