一. 进程控制
- def: 实现进程状态转换
如何实现进程控制
- 主要就是 PCB、阻塞\就绪队列以及系统资源之间的改变
- 某两个状态之间,转换的过程需要清楚
- 用原语实现进程控制:
- 关中断指令 && 开中断指令(核心态下的特权指令)
- 三要素:PCB、队列、资源
创建
终止
阻塞 & 唤醒
切换
总结
二. 进程间的通信
定义
- 由于进程间相互独立,因此一进程不能直接访问其他进程。
- 但是进程间信息交换又是必须的,因此需要其他方法实现。
1)共享存储
- 另外开出一个共享的存储空间。
- 进程对于共享空间的访问必须互斥
- 相对于基于数据结构的共享,这种方法速度更快
2)管道通信
- 半双工通信;需要通过两个管道来实现全双工通信。
- 进程需要互斥地访问管道
- 写满才能读,读空才能写。
- 写满则write()阻塞,读空则read()阻塞
- 随读随扔(感觉类似Java里容器类的 remove())
3)信息传递
- 原语:发送信息 & 接受信息
- 发送的信息要经过格式化,类似计算机网络中的各种报文
- 传递方式:
- 直接:挂进程的消息缓冲队列上
- 间接:发到中间实体中,类似电子邮箱