我想解决的问题是:
哪个状态更改是由于非抢先操作而发生的
- 从等待到就绪
- 从准备到跑步
- 从跑步到准备
- 从RUNNING到WAIT
根据我的理解,这是一种非先发制人的行动。所以它不可能是3,1但不确定有什么建议或意见?
一般经验法则是,如果一个进程可以从RUNNING转换到READY,而不是因为它的操作,那么系统是先发制人的。因此,(3(只能发生在抢先系统中。其余选项可以出现在非抢占式系统中。以下是示例:
- WAIT to READY(等待就绪(可能发生在进程的IO请求已经得到服务,并且现在已经就绪时
- 当选择执行运行队列中的进程时,可能会发生READY to RUNNING
- RUNNING to READY只发生在抢先系统中
- 当进程请求IO时,可能会出现RUNNING to WAIT,现在必须等待IO请求得到处理
因此,选项1、2和4可能由于非先发制人的行动而出现。