美文网首页
进程的状态有哪些?如何切换状态?有什么细节?

进程的状态有哪些?如何切换状态?有什么细节?

作者: 不ji的石头 | 来源:发表于2021-11-04 20:28 被阅读0次


                                      进程的状态有哪些?如何切换状态?有什么细节?

    首先,进程的状态有三个:创建状态、就绪状态、运行状态、阻塞状态、终止状态。但是主要还是就绪状态、运行状态、阻塞状态。

    创建态

    在创建状态完成之后,进程已经准备好所有的资源,但是还未获得处理器资源,无法运行,然后进入就绪状态。

    就绪态

    在就绪态的进程都获得了除了处理机以外的其他所有资源,只等待处理机的调度了。

    运行态

    就绪态的进程获得处理机调度进入运行态,但是如果进程的时间片用完了就会再次进入就绪状态。或者需要某个资源但是获取不到或者I/O就会进入阻塞态,等到需要资源之后再进入就绪态。

    阻塞态

    在运行状态期间,如果进行了阻塞的操作,如耗时的I/O操作,或者等待需要的资源时进程暂时无法操作就进入到了阻塞状态,在这些操作完成后或者等到资源就进入就绪状态。

    终止态

    进程结束或者被系统终止,进入终止状态

    如何切换

    进程切换就是进程控制,简单说就是我们要怎么才能让进程进行进程的转换。首先,需要注意是进程控制都是通过原语来实现的,原语是原子的,不可中断的,也就是说进程在状态转换的时候是不可以被打断的。为什么要用原语来实现进程控制呢?因为进程之间转换并不是那么简单的,是一个比较复杂的过程,比如,进程A要从运行态转换到阻塞态,需要先保存进程A在运行态的上下文,也就是当前的运行环境,还要修该自己的PCB(每个进程的唯一标识,而且还存储了对应进程的很信息)相应的内容,再把进程A从运行态队列放到阻塞队列。试想一下,如果这几步前面的步骤都走完了,但是在进入阻塞队列的时候中断了,那不就乱套了嘛。

    原语有哪些呢?

    1.创建原语

    创建一个新的进程

    2.撤消原语

    从PCB集合找到需要终止进程的PCB,剥夺该进程的一切资源,并且终止其所有的子进程,删除PCB。

    3.阻塞原语

    将进程从运行态转到阻塞态。

    4.唤醒原语

    将进程从就绪态转到运行态。

    5。切换原语

    时间片到将进程从运行态转到就绪态。

    注意:

    进程不能从就绪态到阻塞态,因为阻塞态是进程自己主动切换到的,而就绪态的进程根本就没有处理机调度,不可能”主动“。

    相关文章

      网友评论

          本文标题:进程的状态有哪些?如何切换状态?有什么细节?

          本文链接:https://www.haomeiwen.com/subject/spgkzltx.html