进程的同步与通信
来源:互联网 发布:淘宝网店代理 编辑:程序博客网 时间:2024/06/06 02:28
写给自己的话
隔了好久没写博客了。
自从换了后端研发的工作后,每天都挺忙的。忙着做需求,跟进线上bug,忙着跟前端/客户端联调。夜深人静,细细想来,自己并没有多少可以沉淀的东西。特别是跟朋友聊起未来3年的规划,觉得未免有些漫无目标,虚度光阴了。
所以,决定给自己定一些细化的小目标,比如写篇博客,权当一个新的开始。
正文
本文由来
翻看计算机操作系统(汤子瀛版),10.3节讲述了进程的同步与通信机制。最近在看UNIX环境高级编程和UNIX网络编程,此节于我理解甚有帮助,特以博客记之。
sleep与wakeup同步机制
进程等待任务完成时,可调用sleep使自己进入睡眠状态;待任务处理完,中断处理程序中的wakeup将其唤醒。
信号机制
信号:1~19中的某个整数,代表某一种事先约定好的简单消息。
每个进程在执行时,都要通过信号机制来检查是否有信号到达。
若有信号到达,表示某进程已发生了某种异常事件,便立即中断正在执行的进程,转向由该信号所指示的处理程序。处理完毕,再返回到此前的断点处继续执行。
类似硬中断,故又称为软中断。
两者相似处:
1. 异步通信
2. 两者对信号/中断都可加以屏蔽
两者不同:
1. 中断有优先级,而信号机制则没有,所有的信号都是平等的。
2. 信号处理程序在用户态下运行,中断处理程序在核心态下运行。
3. 中断响应是及时的,而对信号的响应通常都有较长的时间延迟。
管道机制
匿名管道
匿名管道是一个临时文件,是利用系统调用pipe()建立的无名文件(无路径名)。
只用pipe()返回的文件描述符来标识匿名管道。
因此,只有调用pipe的进程及其子孙进程,才能识别,从而才能利用匿名管道进行通信。
命名管道FIFO
命名管道,调用mknod建立,可以在系统中长期存在,而且具有路径名,因而其他进程可以感知它的存在,并能访问命名管道。
消息机制
消息机制允许进程发送一个消息给任何其他进程。
补充:协同进程
补充:网络IPC(socket)
参考文献
[1] 汤子瀛等. 计算机操作系统. 西安:西安电子科技大学出版社,2006
- 进程的同步与通信
- 进程的同步与通信
- 进程的同步与通信
- 进程同步与通信
- 第三章 进程的同步与通信
- 进程与线程的通信与进程同步
- 进程,线程通信与同步
- 进程、线程通信与同步
- 进程线程同步与通信
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 线程同步与进程间通信的方式和机制
- 进程与线程通信与同步机制
- 进程同步与通信 归类备忘
- c语言编程 把十进制转换为十六进制
- Canvas与图层layer
- 文章标题
- css实现多个盒子在一行显示的方法
- 基本的排序算法
- 进程的同步与通信
- Python数据分析基础(八)——时间序列
- java基础—— Collections.sort的两种用法,简单明了 。
- WebView的优化--处理WebView的容易忽略的漏洞
- 子串和
- java中Collections.sort排序详解
- BZOJ 翻硬币-(异或和)
- Kotlin的Spring之旅(一):使用IDEA搭建Gradle+Kotlin+Spring项目
- SQL中查找当天、本月、本年的数据