社区
Linux/Unix社区
帖子详情
Linux下不相关的进程怎么实现同步?
问世间情为何物
2018-10-23 04:12:46
网上都是相关进程或线程实现互斥同步,如fork出来子进程或与pthread_create创建子线程,然后共享互斥量,信号灯,条件变量这些来实现。我现在是两个不相关的进程A和B或两个独立的A程序怎么实现同步呢?没办法共享那些锁之类的东西。windows下可以通过锁的名称来共享一个锁从而实现同步,但linux下不行,请高手指教!!!
...全文
192
6
打赏
收藏
Linux下不相关的进程怎么实现同步?
网上都是相关进程或线程实现互斥同步,如fork出来子进程或与pthread_create创建子线程,然后共享互斥量,信号灯,条件变量这些来实现。我现在是两个不相关的进程A和B或两个独立的A程序怎么实现同步呢?没办法共享那些锁之类的东西。windows下可以通过锁的名称来共享一个锁从而实现同步,但linux下不行,请高手指教!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
风影-取名字真烦
2018-10-31
打赏
举报
回复
其实操作系统实现的这些内容也是文件锁,比如apt会加文件锁,yum也是通过文件锁,至于你说的超时问题,如果A不放锁,那么在什么情况下都是无限等待的啊
txthunder
2018-10-30
打赏
举报
回复
两个不相关的进程 ,如果纯粹没有任何,共享资源用应用的角度来说,根本没必要同步。 我理解你想用的同步,仅仅是运行时间上的控制,不知是不是这样
mx_try
2018-10-24
打赏
举报
回复
apue 的第十五章进程间通信就有讲一些你可能想要好的东西,linux_unix系统编程的第45章到55章,比较详细一些。
用IPC进程间通信就能解决你的问题了,再去选择哪项技术实现。
问世间情为何物
2018-10-24
打赏
举报
回复
没有大神回复。。。
目前我想到的是用文件锁来实现,但是用文件锁只能无限等待,不能设置超时
loe
2018-10-24
打赏
举报
回复
共享内存,信号量,有名管道,消息队列,socket,文件,很多方法呀
liufeng_06
2021-08-05
举报
回复
@loe
除了socket能实现他说的情况,,,,其他的都不可以。。你仔细理解他想要的
深入分析
Linux
内核源码.chm
第一章 走进
linux
1.1 GNU与
Linux
的成长 1.2
Linux
的开发模式和运作机制 1.3走进
Linux
内核 1.4 分析
Linux
内核的意义 1.5
Linux
内核结构 1.6
Linux
内核源代码 1.7
Linux
内核源代码分析工具 第二章
Linux
运行的硬件基础 2.1 i386的寄存器 2.2 内存地址 2.3 段机制和描述符 2.4 分页机制 2.5
Linux
中的分页机制 2.6
Linux
中的汇编语言 第三章中断机制 3.1 中断基本知识 3.2中断描述符表的初始化 3.3异常处理 3.4 中断处理 3.5中断的后半部分处理机制 第四章
进程
描述 4.1
进程
和程序(Process and Program) 4.2
Linux
中的
进程
概述 4.3 task_struct结构描述 4.4 task_struct结构在内存中的存放 4.5
进程
组织的方式 4.6 内核线程 4.7
进程
的权能 4.8 内核
同步
第五章
进程
调度 5.1
Linux
时间系统 5.2 时钟中断 5.3
Linux
的调度程序-Schedule( ) 5.4
进程
切换 第六章
Linux
内存管理 6.1
Linux
的内存管理概述 6.2
Linux
内存管理的初始化 6.3 内存的分配和回收 6.4 地址映射机制 6.5 请页机制 6.6 交换机制 6.7 缓存和刷新机制 6.8
进程
的创建和执行 第七章
进程
间通信 7.1 管道 7.2 信号(signal) 7.3 System V 的IPC机制 第八章 虚拟文件系统 8.1 概述 8.2 VFS中的数据结构 8.3 高速缓存 8.4 文件系统的注册、安装与拆卸 8.5 限额机制 8.6 具体文件系统举例 8.7 文件系统的系统调用 8 .8
Linux
2.4文件系统的移植问题 第九章 Ext2文件系统 9.1 基本概念 9.2 Ext2的磁盘布局和数据结构 9.3 文件的访问权限和安全 9.4 链接文件 9.5 分配策略 第十章 模块机制 10.1 概述 10.2
实现
机制 10.3 模块的装入和卸载 10.4 内核版本 10.5 编写内核模块 第十一章 设备驱动程序 11.1 概述 11.2 设备驱动基础 11.3 块设备驱动程序 11.4 字符设备驱动程序 第十二章 网络 12.1 概述 12.2 网络协议 12.3 套接字(socket) 12.4 套接字缓冲区(sk_buff) 12.5 网络设备接口 第十三章 启动系统 13.1 初始化流程 13.2 初始化的任务 13.3
Linux
的Boot Loarder 13.4 进入操作系统 13.5 main.c中的初始化 13.6 建立init
进程
附录: 1
Linux
2.4内核API 2.1 驱动程序的基本函数 2.2 双向循环链表的操作 2.3 基本C库函数 2.4
Linux
内存管理中Slab缓冲区 2.5
Linux
中的VFS 2.6
Linux
的连网 2.7 网络设备支持 2.8 模块支持 2.9 硬件接口 2.10 块设备 2.11 USB 设备
Linux
编程基础 3.3:
进程
同步
Linux
系统中提供了 wait() 函数和 waitpid() 函数来获取
进程
状态,
实现
进程
同步
。 wait() 函数 wait() 函数存在于系统库函数 sys/wait.h 中,形式如下: #include <sys/wait.h> pid_t wait(int *status); 调用 wait() 的
进程
会被挂起,进入阻塞状态,直到子
进程
变为僵尸态,如果捕获到子
进程
的退出信息就会转为运行态,然后回收子
进程
资源并返回;若没有变为僵尸态的子
进程
,wait 函数就会让
进程
一直阻
Linux
内核:
进程
管理——
进程
间
同步
与互斥
进程
的并发性带来了异步性(各个并发的
进程
独立的以不可预知的速度向前推进),而有的
进程
则需要有次序的相互配合来完成作业,所以有了
进程
同步
。
进程
同步
:在多道程序环境下,
进程
是并发执行的,不同
进程
之间存在着不同的相互制约关系,。为了协调
进程
之间的相互制约关系,引入了
进程
同步
的概念。临界资源虽然多个
进程
可以共享系统中的各种资源,但其中许多资源一段时间内只能为一个
进程
所使用,我们把一次仅允许一个
进程
使用的资源称为临界资源。许多物理设备都属于临界资源,如打印机等。
Linux
系统编程—
进程
间
同步
我们知道,线程间
同步
有多种方式,比如:信号量、互斥量、读写锁,等等。那
进程
间如何
实现
同步
呢?本文介绍两种方式:互斥量和文件锁。 ##互斥量mutex 我们已经知道了互斥量可以用于在线程间
同步
,但实际上,互斥量也可以用于
进程
间的
同步
。为了达到这一目的,可以在pthread_mutex_init初始化之前,修改其属性为
进程
间共享。mutex的属性修改函数主要有以下几个: 主要应用函数: pthread_mutexattr_t mattr 类型: 用于定义互斥量的属性 pthread_mutexattr_i
Linux
下
进程
、线程
同步
几种方法
在多道程序环境下,
进程
是并发执行的,不同
进程
之间存在着不同的相互制约关系。所谓
进程
同步
(线程
同步
同理),主要是解决临界资源互斥访问的问题。如多个
进程
访问同一片共享内存,这片共享内存必须互斥使用。 一.
进程
同步
在
Linux
下,
进程
同步
的解决方式主要有四种: 1. 信号量 2. 文件锁 3. 无锁CAS 4. 校验方式(CRC32校验) 1. 信号量 可以借助
Linux
的信号量的PV操作来
实现
对临界资源的互斥访问。 详情可看博文:http://blog.csdn.net/okiwilldoit/art
Linux/Unix社区
23,114
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章