特黄特色三级在线观看免费,看黄色片子免费,色综合久,欧美在线视频看看,高潮胡言乱语对白刺激国产,伊人网成人,中文字幕亚洲一碰就硬老熟妇

學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦硬件知識(shí) > 內(nèi)存知識(shí) > 電腦共享內(nèi)存在哪里?

電腦共享內(nèi)存在哪里?

時(shí)間: 本達(dá)868 分享

電腦共享內(nèi)存在哪里?

  電腦共享內(nèi)存在哪里?共享內(nèi)存指在多處理器的計(jì)算機(jī)系統(tǒng)中,可以被不同中央處理器(CPU)訪問(wèn)的大容量?jī)?nèi)存。下面學(xué)習(xí)啦小編給大家介紹下電腦共享的相關(guān)知識(shí),希望對(duì)大家有幫助!

  電腦共享內(nèi)存在哪里?

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

  工作原理

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

  下面實(shí)例演示了使用shmget函數(shù)創(chuàng)建一塊共享內(nèi)存。程序中在調(diào)用shmget函數(shù)時(shí)指定key參數(shù)值為IPC_PRIVATE,這個(gè)參數(shù)的意義是創(chuàng)建一個(gè)新的共享內(nèi)存區(qū),創(chuàng)建成功后使用shell命令ipcs來(lái)顯示系統(tǒng)下共享內(nèi)存的狀態(tài)。命令參數(shù)-m為只顯示共享內(nèi)存的狀態(tài)。

  (1)在vi編輯器中編輯該程序如下:程序清單14-8 create_shm.c 使用shmget函數(shù)創(chuàng)建共享內(nèi)存#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; /*共享內(nèi)存標(biāo)識(shí)符*/shm_id=shmget(IPC_PRIVATE, BUFSZ, 0666 ) ;//shm_id=shmget(999,BUFSZ,0666|O_CREAT);if (shm_id < 0 ) { /*創(chuàng)建共享內(nèi)存*/perror( "shmget" ) ;exit ( 1 );}printf ( "successfully created segment : %d \n", shm_id ) ;system( "ipcs -m"); /*調(diào)用ipcs命令查看IPC*/exit( 0 );}

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

  (3)在shell中運(yùn)行該程序如下:$./ 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函數(shù)來(lái)創(chuàng)建一段共享內(nèi)存,并在結(jié)束前調(diào)用了系統(tǒng)shell命令ipcs –m來(lái)查看當(dāng)前系統(tǒng)IPC狀態(tài)。

  注意事項(xiàng)

  共享內(nèi)存相比其他幾種方式有著更方便的數(shù)據(jù)控制能力,數(shù)據(jù)在讀寫(xiě)過(guò)程中會(huì)更透明。當(dāng)成功導(dǎo)入一塊共享內(nèi)存后,它只是相當(dāng)于一個(gè)字符串指針來(lái)指向一塊內(nèi)存,在當(dāng)前進(jìn)程下用戶可以隨意的訪問(wèn)。缺點(diǎn)是,數(shù)據(jù)寫(xiě)入進(jìn)程或數(shù)據(jù)讀出進(jìn)程中,需要附加的數(shù)據(jù)結(jié)構(gòu)控制。

  如何創(chuàng)建編輯

  共享內(nèi)存是存在于內(nèi)核級(jí)別的一種資源,在shell中可以使用ipcs命令來(lái)查看當(dāng)前系統(tǒng)IPC中的狀態(tài),在文件系統(tǒng)/proc目錄下有對(duì)其描述的相應(yīng)文件。函數(shù)shmget可以創(chuàng)建或打開(kāi)一塊共享內(nèi)存區(qū)。

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

  函數(shù)中參數(shù)key用來(lái)變換成一個(gè)標(biāo)識(shí)符,而且每一個(gè)IPC對(duì)象與一個(gè)key相對(duì)應(yīng)。當(dāng)新建一個(gè)共享內(nèi)存段時(shí),size參數(shù)為要請(qǐng)求的內(nèi)存長(zhǎng)度(以字節(jié)為單位)。

  注意:內(nèi)核是以頁(yè)為單位分配內(nèi)存,當(dāng)size參數(shù)的值不是系統(tǒng)內(nèi)存頁(yè)長(zhǎng)的整數(shù)倍時(shí),系統(tǒng)會(huì)分配給進(jìn)程最小的可以滿足size長(zhǎng)的頁(yè)數(shù),但是最后一頁(yè)的剩余部分內(nèi)存是不可用的。

  當(dāng)打開(kāi)一個(gè)內(nèi)存段時(shí),參數(shù)size的值為0。參數(shù)flag中的相應(yīng)權(quán)限位初始化ipc_perm結(jié)構(gòu)體中的mode域。同時(shí)參數(shù)flag是函數(shù)行為參數(shù),它指定一些當(dāng)函數(shù)遇到阻塞或其他情況時(shí)應(yīng)做出的反應(yīng)。

1343448