共享存储区机制 共享存储区 共享存储区的建立与操纵 ) 共享存储区的建立 当进程要利用共享存储区与另一进程进行通信时须先利用系统调用shmget( )建立一块共享存储区并提供该共享存储区的名字key和共享存储区以字节为单位的长度size等参数若系统中已经建立了指名的共享存储区则该系统调用将返回该共享存储区的描述符shmid若尚未建立便为进程建立一个指定大小的共享存储区 ) 共享存储区的操纵 如同消息机制一样可以用shmctl( )系统调用对共享存储区的状态信息进行查询如其长度所连接的进程数创建者标识符等 也可设置或修改其属性如共享存储区的许可权当前连接的进程计数等还可用来对共享存储区加锁或解锁以及修改共享存储区标识符等 共享存储区的附接与断开 在进程已经建立了共享存储区或已获得了其描述符后 还须利用系统调用shmat( )将该共享存储区附接到用户给定的某个进程的虚地址shmaddr上并指定该存储区的访问属性即指明该区是只读还是可读可写此后此共享存储区便成为该进程虚地址空间的一部分进程可采取与对其它虚地址空间一样的存取方法来访问当进程不再需要该共享存储区时再利用系统调用shmdt( )把该区与进程断开 ——返回教材目录 了解更多计算机相关基础课程视频 |