首页 教程 详解Linux共享内存的分析

详解Linux共享内存的分析

在进程通信应用中会用到共享内存,这就涉及到了IPC,与IPC相关的命令包括:ipcs、ipcrm(释放IPC)。IPCS命令是Linux下显示进程间通信设施状态的工具。我们知道,系统进行进程间通信(IPC)的时候,可用的方式包括信号量、共享内存、消息队列、管道、信号(signal)、套接字等形式[2]。使用IPCS可以查看共享内存、信号量、消息队列的状态。
 
ASP站长网当下系统是Ubuntu Linux 18.04,执行ipcs命令查看
 
linuxidc@linuxidc:~/linuxidc.com$ ipcs
 
——— 消息队列 ———–
键        msqid      拥有者  权限    已用字节数 消息     
 
———— 共享内存段 ————–
键        shmid      拥有者  权限    字节    连接数  状态     
0x00000000 393217    linuxidc  600        524288    2          目标     
0x00000000 425986    linuxidc  600        524288    2          目标     
0x00000000 458755    linuxidc  600        524288    2          目标     
0x00000000 1867780    linuxidc  600        16777216  2          目标     
0x00000000 4456453    linuxidc  600        16777216  2          目标     
0x00000000 557062    linuxidc  600        524288    2          目标     
0x00000000 4554759    linuxidc  600        4194304    2          目标     
0x00000000 1048591    linuxidc  600        67108864  2          目标     
 
——— 信号量数组 ———–
键        semid      拥有者  权限    nsems
 
详解Linux共享内存的管理
 
说明:
 
第一列就是共享内存的key;
第二列是共享内存的编号shmid;
第三列就是创建的用户owner;
第四列就是权限perms;
第五列为创建的大小bytes;
第六列为连接到共享内存的进程数nattach;
第七列是共享内存的状态status。其中显示“dest”表示共享内存段已经被删除,但是还有用户在使用它,当该段内存的mode字段设置为 SHM_DEST时就会显示“dest”。当用户调用shmctl的IPC_RMID时,内存先查看多少个进程与这个内存关联着,如果关联数为0,就会销 毁这段共享内存,否者设置这段内存的mod的mode位为SHM_DEST,如果所有进程都不用则删除这段共享内存。
具体的用法总结如下:
1、显示所有的IPC设施
 
linuxidc@linuxidc:~/linuxidc.com$ ipcs -a
 
——— 消息队列 ———–
键        msqid      拥有者  权限    已用字节数 消息     
 
———— 共享内存段 ————–
键        shmid      拥有者  权限    字节    连接数  状态     
0x00000000 4784128    linuxidc  600        524288    2          目标     
0x00000000 393217    linuxidc  600        524288    2          目标     
0x00000000 425986    linuxidc  600        524288    2          目标     
0x00000000 458755    linuxidc  600        524288    2          目标     
0x00000000 1867780    linuxidc  600        16777216  2          目标     
0x00000000 4816901    linuxidc  600        16777216  2          目标     
0x00000000 557062    linuxidc  600        524288    2          目标     
0x00000000 4554759    linuxidc  600        4194304    2          目标     
0x00000000 1048591    linuxidc  600        67108864  2          目标     

关于作者: dawei

【声明】:九江站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

热门文章