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

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

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


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

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

创建态

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

就绪态

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

运行态

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

阻塞态

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

终止态

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

如何切换

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

原语有哪些呢?

1.创建原语

创建一个新的进程

2.撤消原语

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

3.阻塞原语

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

4.唤醒原语

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

5。切换原语

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

注意:

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

相关文章

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

    进程的状态有哪些?如何切换状态?有什么细节? 首先,进程的状态有三个:创建状态、就绪状态、运行状态、阻塞状态、终...

  • java语言基础三(JavaGuide-20181212)

    简述线程,程序、进程的基本概念。以及他们之间关系是什么 线程有哪些基本状态?这些状态是如何定义的?31 关于 fi...

  • (一)Linux有哪些进程状态?

    进程,通常被说成执行中的程序。其实我觉得也可以理解成程序的一个实例化对象,所以它除了拥有代码段,还有堆栈段...

  • 进程调度

    需要调度的四种情况:1.进程从运行状态切换到等待状态2.进程从运行状态切换到就绪状态3.从等待状态切换到就绪状态4...

  • 进程控制

    关于进程切换描述正确的是() 进程切换会暂停当前运行进程,使其从运行状态变成就绪等其他状态 进程切换要保存当前进程...

  • python多线程

    进程 进程就是一段程序执行的过程。切换不同的进程实际上是进行上下文切换。 进程有三种状态:就绪、运行和阻塞。 就绪...

  • 网络进程常见的tcp状态有哪些

    lsof -i:3306 查看mariadb端口netstat -anpt | grep 53 观察是否启动dn...

  • 19 进程状态的切换

    进程状态转换,同样可用于线程的状态转移 一、进程状态[http://gityuan.com/2015/12/12/...

  • Day 20 进程管理

    1.什么是进程? 2.程序与进程之间有什么区别? 3.进程的生命周期? 4.进程运行的状态指标? 进程状态包括以下...

  • 面试题 Linux中进程有哪几种状态

    在Linux中进程有哪几种状态,每种状态代表的含义是什么?

网友评论

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

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