kelikelikelikeli 2021-03-15 17:03 采纳率: 0%
浏览 80

计算机操作系统中 进程处于静态阻塞态如何变成静态就绪态?

如果进程的除了PCB以外的内容都被移动进磁盘里了,那阻塞态进入到就绪态所等待的事件(比如input一段数据到程序中)不是无法完成了吗?这样还能变成静态就绪态吗?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-24 01:56
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在操作系统中,进程从阻塞状态(Block state)转换为就绪状态(Ready state)有以下几种可能:

    1. 输入事件:例如一个输入设备(如键盘、鼠标等)被触发,或者用户按下某个键。
    2. 程序执行:程序执行时遇到了一个可以立即处理的异常或错误,并且它能够自我恢复。
    3. I/O操作完成:当一个I/O操作完成后,系统会通知进程。

    对于你的第二个问题,如果进程的所有内容都保存到了磁盘上,那么确实可能导致进程不能及时响应外部事件。在这种情况下,进程可能会停留在阻塞状态很长时间,直到外部事件发生后才会重新进入就绪状态。然而,这并不意味着进程将永远停留在这个状态。因为操作系统通常会在适当的时候释放这些阻塞的进程,以便它们能够响应新的外部事件。

    例如,在Unix/Linux操作系统中,可以通过调用kill -CONT命令来强制中断一个阻塞的进程。这将会导致该进程从阻塞状态变为就绪状态。此外,一些操作系统还提供了定时器和信号机制来控制进程的状态变化。

    请注意,以上信息基于常见的Linux和Unix操作系统的实现方式。不同操作系统和编程语言的具体实现可能有所不同。

    评论

报告相同问题?