(1)引起进程阻塞与唤醒的事件
进程请求系统为之服务
启动某种操作
需要的数据不能及时到达
本进程无工作可做(如发送进程)
(2)进程的阻塞过程
进程的阻塞通过阻塞原语来实现,阻塞是进程的一种主动行为,过程:
将进程状态由运行变为阻塞
将阻塞进程插入对应的阻塞队列
设调度标志为“真” ,进程调度程序调度新的就绪进程运行。
(3)进程的唤醒过程
进程的唤醒通过唤醒原语实现,唤醒是一种被动行为,过程:
将要唤醒的进程从阻塞队列中移出
将该进程的状态由阻塞变为就绪
将该进程插入就绪队列等待CPU调度
(4)进程的挂起(一个进程只能解挂自己的子孙进程,而不能解挂其他族系的进程。)
进程的挂起通过挂起原语来实现,主要过程:检查将要被挂起的进程的状态
若状态为:执行 停止,设置CPU调度标志为“真”
活动就绪 静止就绪
活动阻塞 静止阻塞
(5)进程的激活
进程的激活过程通过激活原语实现,过程:
检查将要被挂起的进程的状态:静止就绪 活动就绪
静止阻塞 活动阻塞
检查是否要进行重新调度
例如:请判断下列说法哪些的正确的? 答案:(2)、(3)
(1)进程可以由自己创建 (2)进程可以由自己阻塞 (3)进程可以由自己挂起
(4)进程可以由自己激活 (5)进程可以由自己唤醒 (6)进程可以由自己撤消
4.进程通信
进程通信通过发送原语和接受原语方式。