wordpress面包屑文字大小如何调整,黑帽seo工具,中信国际建设公司网站,全国卫生机构建设管理系统网站一#xff0c;命名管道
管道的限制就是他只能在有血缘关系#xff08;父子进程#xff09;的进程中#xff0c;允许互相访问#xff0c;这是有局限性的#xff0c;所以我们想在毫无关系的进程中允许他们相互访问#xff0c;这就是命名管道的定义。 总结#xff1a;命名…一命名管道
管道的限制就是他只能在有血缘关系父子进程的进程中允许互相访问这是有局限性的所以我们想在毫无关系的进程中允许他们相互访问这就是命名管道的定义。 总结命名管道就是让不同进程可以通信让不同的进程看到同一份资源 就比如这个图通过管道让两个进程看到同一个资源然后执行不同的任务进程A就进行向文件中读取数据而进程B就是向文件中写入数据。
两个不同的进程打开同一份文件时他们需要自己独立的文件描述符但是只需要相同的一份缓冲区这也是管道。
创建命名管道 二共享内存
共享内存也是让毫无关系的进程进行通信不同的进程看到同一份资源
1.创建共享内存 对于OS来说可能有很多的程序需要内存共享所以要先描述在组织shm结构体包含了共享内存的属性。
系统中有很多的共享内存如何保证两个进程看到的是同一个内存呢 给共享内存提供唯一性的标识共享内存的属性中有key_t值。
shmget的第三个参数shmflg两个重要的宏
IPC_CREAT:如果共享内存不存在就创建如果已经存在就获取他:不能单独使用IPC_CREAT|IPC_EXCL:不存在就创建存在就出错返回
key的作用就用来标识贡献内存的唯一性
1.1生成key 使用共享内存通信只需要一个进程创建新得shm另一个直接通信即可。 贡献内存进程结束我们没有主动关闭他就会一直存在他的生命周期随内核所以我们要手动的去关闭它
补充系统指令删除共享内存 ipcs -m 查看系统中指定用户创建得共享内存 ipcrm -m [shmid] 删除共享内存
2.删除共享内存 另外shmctl不仅仅可以删除共享内存它还可以获取共享内存的属性。
3.挂接共享内存 shmaddr用户指明讲共享内存挂接到哪里 挂接成功表示我们可以用addr返回值直接访问共享内存。
4.去关联 三共享内存的缺点
我们在测试的时候就会发现一个问题当client都没有在向共享内存中写入数据server就一直在读取了共享内存不提供任何进程间协同的机制。这是共享内存的缺点会导致数据不一致。所以加入管道就可以避免这一缺点。