进程同步与通信
来源:互联网 发布:java中接口的作用 编辑:程序博客网 时间:2024/05/18 07:32
进程通信
信号通信
信号的本质:信号是在软件层次上对中断机制的一种模拟,信号是进程通信间唯一的异步通信机制。
信号的来源:
硬件来源,包括硬件异常,除零,越界访问,这些信号由内核产生,并发送到相关进程;
软件来源,某些软件事件如alarm()函数产生SIGALRM信号,管道通信产生SIGPIPE;进程使用kill() raise()等函数。
信号的相应方式:
忽略信号,但是有两个信号不能忽略,SIGKILL SIGSTOP
捕捉信号,定义信号处理函数
执行默认操作
信号发送的限制
核心和超级用户和可发信号给任何一个进程
普通用户只能向与自己具有相同uid和gid的进程,或者在同意进程组中的进程发送信号
可靠信号和不可靠信号
Linux继承UNIX系统中的信号机制,早期UNIX为了避免信号频繁到达而引起进程堆栈溢出,就将对信号的的相应在每次处理信号后设置为默认动作,因此在信号处理函数里需要每次安装信号处理函数,而由于信号的到来是随机的,如果一个信号到来后,系统调用我们注册的信号处理函数,而此时我们还没有来得及作“安装信号处理函数”(singal())的操作,这时再到达一个信号,系统就会采取默认操作,因此这种信号不可靠。Linux支持UNIX的不可靠信号,并做了修改,也就是在调用完信号处理函数后,系统不会把对该信号的处理恢复为默认动作,用户也不必在信号处理函数里安装信号处理函数。因此,Linux下的不可靠主要是指信号可能丢失。0-31是不可靠信号,32-63是可靠信号,可靠信号支持排队。
现在的Linux的signal函数通过sigaction() 函数实现,在信号处理函数里不必安装信号处理函数,而且由signal()函数安装的信号都支持排队。signal() sigaction()的区别是后者可以传递信息给信号处理函数。
- 进程同步与通信
- 进程,线程通信与同步
- 进程、线程通信与同步
- 进程的同步与通信
- 进程线程同步与通信
- 进程的同步与通信
- 进程的同步与通信
- 进程与线程通信与同步机制
- 第三章 进程的同步与通信
- 进程同步与通信 归类备忘
- 操作系统 第八章 进程同步与通信
- 进程,线程通信与同步及区别
- 进程,线程通信与同步及区别
- Linux进程间通信与同步
- Linux进程间同步与通信
- 【初探】进程通信与线程同步
- 操作系统04进程同步与通信
- 进程与线程的通信与进程同步
- 课程 2: ER/Studio的逻辑和物理模型
- COM组件设计与应用(二)
- [转】批处理中的字符串处理详解
- COM组件设计与应用(三)
- C语言实现的简单的print函数,只支持%c和%d。
- 进程同步与通信
- Javascript实现透明下拉菜单
- Client copy
- Multiplication Puzzle
- perl进行socket编程
- 转:十年总结-开篇:歇一歇,才能走的更远
- 年龄指数
- COM组件设计与应用(四)
- COM 组件设计与应用(五)