【操作系统③】 您所在的位置:网站首页 进程处于运行状态表示 【操作系统③】

【操作系统③】

2024-07-14 20:33| 来源: 网络整理| 查看: 265

🍺

文章目录 一、知识框架总览:二、进程的定义三、进程的类型和特性1、进程的分类2、进程的属性3、程序与进程之间的区别 四、进程的状态和转换1、最基本的三种进程状态2、三种进程状态的切换3、五种进程状态(新增两个状态)4、七种进程状态(再新增两个状态) 五、进程控制块(非常重要的一小节)1、定义2、构成内容3、组织形式 六、进程要素1、构成内容2、进程上下文3、进程上下文切换的主要内容 七、小结(整体的思维导图)八、参考附录:

Status ☁️

同样的,每一个新产生的东西的优点,都是为了优化上一个整体的缺点。

上一篇文章地址链接:【操作系统②】——操作系统的发展与分类、操作系统的结构设计【分时操作系统 整体式 层次式 】. 下一篇文章地址链接:【操作系统④】——进程控制【原语 Linux进程创建 阻塞和唤醒 撤销 挂起和激活】.

一、知识框架总览:

在这里插入图片描述

二、进程的定义

  ◆ 进程是为了描述程序在并发执行时对系统资源的共享,所需的一个 描述程序执行时动态特征 的概念。   ◆ 进程是具有独立功能的程序关于某个数据集合上的一次运动活动,是系统进行资源分配、调度和保护的独立单位。

三、进程的类型和特性 1、进程的分类

  ◆ 系统进程:操作系统的模块在操作系统执行的时候,它所演化出来的一种进程。常常是一些操作系统的服务进程。

  ◆ 用户进程:在用户的应用程序运行的时候,系统为这个应用程序创建的进程。

2、进程的属性

  ◆ 结构性:进程是由进程控制块、程序、数据和栈这几个部件构成,它有一个结构性的特征,有几个部分组合而成。

  ◆ 共享性:对系统中资源的共享性。即在一个系统中,进程可以共享系统中的种种资源。包括内存、其他的IO设备等。共享有 分时、分空间 共享这两种特征。

  ◆ 动态性:进程可以从无到有地创建出来、再运行、然后结束,它即有这样一个动态特征。

  ◆ 独立性:多个进程在系统中并发地运行,他们之间不仅在时间上,也在空间上是相互独立的,大家轮流使用CPU。

  ◆ 制约性:有一些进程彼此之间有制约关系,比如有些进程在竞争资源的时候。

  ◆ 并发性:在多道程序的环境下面,多个进程在系统中并发地运行。(体现了一种宏观上并行,微观上串行的特征)

3、程序与进程之间的区别

  ① 进程能真实地描述并发,而程序不能。(因为程序本质上是由代码构成的,代码无所谓并发还是不并发)

  ② 进程是由程序、数据和控制块组成。

  ③ 程序是静态的,进程是动态的。(因为程序本质上是由代码构成的)

  ④ 进程有生命周期,程序是相对长久的。(因为程序是保存在硬盘上的)

  ⑤ 一个程序可对应多个进程,一个进程也可以由多个程序构成。(前者比如登录多个QQ,后者比如开启直播软件)

  ⑥ 进程具有创建其他进程的功能,但程序没有。

四、进程的状态和转换 1、最基本的三种进程状态

  ◆ 运行态(Runing):进程当前占有CPU,并在在CPU上运行。

  ◆ 就绪态(Ready):① 一个进程已经具备运行条件,但没有分配CPU,暂时不能运行。②当调度给该进程CPU时,立即可以运行。

  ◆ 等待态(Blocked):① 有时也叫作 “阻塞态、封锁态、睡眠态” 。② 当前进程因等待某事件的发生而暂时不能运行的状态。③ 即使这时CPU空闲,该进程也不能运行。

2、三种进程状态的切换

在这里插入图片描述

  ◆ 就绪 一一> 运行:在调度程序时,一旦调度到这个进程的时候,就发生这件事(这个进程就由就绪态切换到了运行态)。

  ◆ 运行 一一> 就绪:运行进程用完了CPU分给它的时间片时发生。

  ◆ 运行 一一> 等待:发生情况有: ① 操作系统尚未完成某项服务。② 这个进程对某项资源的访问不能得到满足。③ 初始化I/O且须等待结果。④ 等待某一进程提供输入。

  ◆ 等待 一一> 就绪:等待的事件得到满足时发生。

3、五种进程状态(新增两个状态)

  为什么需要新建态呢?   因为就绪态也是需要一个过程,才能达到这样的状态。比如当用户启动一个应用程序,系统为它创建了一个进程。在进程创建的过程中,该进程所需要资源并没有得到满足的时候,这时候就有一个类似于过渡的状态。我们一般就把这种状态叫做新建态。

  为什么需要终止态呢?   只有增加了这种状态,才能最终对进程整个生命周期进行一个收尾。

在这里插入图片描述

  ◆ 无 一一> 新建态:创建子进程

  ◆ 新建态 一一> 就绪态:系统完成进程创建操作,且当前系统的性能和内存的容量均允许。

  ◆ 运行态 一一> 终止态:进程到达自然结束后自动终结,或出现了无法克服的错误所猝s,或被操作系统所终结,或被其他有终止权的进程所终结。

  ◆ 终止态 一一> NULL:完成善后操作

  ◆ 就绪态 一一> 终止态:父进程/操作系统 强行地终结 处于就绪态的子进程

  ◆ 等待态 一一> 终止态:父进程/操作系统 强行地终结 处于终止态的子进程

4、七种进程状态(再新增两个状态)

  ◆ 新增的两个状态为:就绪挂起态、等待挂起态。

  为什么需要挂起态呢?理由如下:   ① 进程在不断创建时,系统资源已不再能满足进程所运行的要求。   ② 某些进程挂起,会对换到磁盘镜像区中,暂时不参与进程调度,这样可以平滑操作系统的负荷。   (关键原因:内存空间有限,若现在系统不得不腾出一部分空间来给当前需要的进程使用,而系统中一部分进程就得先“挂起”,让出资源。)

在这里插入图片描述

五、进程控制块(非常重要的一小节) 1、定义

  ◆ 进程控制块 (Process Control Block,PCB) 是系统为了管理进程而设置的专门的数据结构,用来记录进程的外部特征,描述进程的变化过程。

  ◆ 系统利用 PCB 来控制和管理里面的所有进程,PCB是系统感知进程存在的唯一标志。

  ◆ 进程与 PCB 一 一 对应。即一个进程只有一个PCB,一个PCB也只对应一个进程。

  打个比方:如果把一个操作系统比作“人类社会”,那进程和PCB就像 “人” 和 “身份证” 一样。我们每个人都有一张身份证,身份证上面就有我们个人的基本描述信息(姓名、出生日期、身份证号码等等)。只不过 “人” 的生命周期比系统中的进程长一点,人可以活几十岁。在一个操作系统中,进程只有唯一的标志即PCB,那在 “人类社会”,我们被公安叔叔所认可的在狭义上也只有身份证。

2、构成内容

  ① 进程的描述信息:     [1] 进程标识符 (process ID):具有唯一性,通常是一串整数。(就像我们身份证上面的身份证号码,是唯一的)。     [2] 进程名:通常是执行的文件名,不唯一(就像身份证上的姓名)。     [3] 用户标识符 (user ID):记录下这个进程是由哪一个用户所创建的。     [4] 进程的组关系:它有多种表现形式,比如说记录同一个用户创建的进程可以算成一组,记录的就是这样一组关系。

在这里插入图片描述   如上图所示,打开任务管理器,右击“内存”那一栏,可以看到这些 “进程的描述信息”。其中 PID 就是 进程标识符 (process ID)、“发布者”就是用户标识符 (user ID)。

  ② 进程的控制信息:     [1] 当前状态:进程当前所处的状态。     [2] 优先级:进程会定一些优先级,比如说系统进程的优先级一般要高于用户进程。(就像军人优先、有项目实战经验优先考虑等)     [3] 代码执行的入口地址     [4] 程序的外存地址     [5] 运行统计信息     [6] 进程同步和通信的信息     [7] 阻塞的原因     [8] 进程的队列指针信息     [9] 进程的消息队列指针信息

  ③ 所拥有的资源和使用情况:     [1] 虚拟地址空间的现状(即这个进程所在逻辑空间的一个状况)     [2] 打开的文件列表

  ④ CPU现场保护信息:     [1] 寄存器值(通用、程序计数器PC、状态PSW,地址包括栈指针)     [2] 指向赋予该进程的 段表/页表 的指针 (会在后面操作系统存储的部分内容具体来讲)

3、组织形式

  ◆ 系统把PCB组织在一起,放在内存中,构成PCB表。

  ◆ PCB表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度。

  ◆ 组织方式:①就绪队列。②等待队列(也叫作阻塞队列)。如下图所示

在这里插入图片描述   注:图中的创建态即新建态。

六、进程要素 1、构成内容

在这里插入图片描述   ◆ 进程由进程控制块、进程程序、进程数据和栈这几个部分有机地构成在一起。

  ◆ 进程控制块PCB(进程属性)在内存中处于核心段(一般由系统内核直接控制)。用户进程不能直接访问、修改自身的PCB。

2、进程上下文

  ◆ 进程上下文 = 进程本身 + 运行环境 。它是对进程执行活动全过程的静态描述。具体而言,它由进程的用户地址空间内容、硬件寄存器内容及该进程相关的核心数据所构成。

  ◆ 进程上下文还可以分成三个部分:     ① 寄存器级上下文(主要是进程和CPU相关的内容):PSW寄存器、处理器状态寄存器、栈指针、通用寄存器的值。     ② 系统级上下文(操作系统内核所直接管理的内存内容):静态部分——PCB和资源表格、动态部分——核心栈(核心过程的栈结构,不同进程在调用相同核心过程时有不同核心栈)     ③ 用户级上下文:进程的用户地址空间,包括用户正文段、用户数据段和用户栈。

3、进程上下文切换的主要内容

  ① 先保存被中断进程的处理器现场信息。

  ② 再修改被中断进程的进程控制块的有关信息,如进程状态等。

  ③ 然后把被中断进程的进程控制块加入到有关队列中。

  ④ 接着选择下一个占有处理器运行的进程。

  ⑤ 再修改被选中进程的进程控制块的有关信息。

  ⑥ 然后根据被选中进程,来设置操作系统用到的地址转换和存储保护信息。

  ⑦ 最后根据被选中的进程恢复处理器现场。

七、小结(整体的思维导图)

在这里插入图片描述

八、参考附录:

[1] 《王道计算机考研 操作系统》 看视频可能快一些,但深刻理解还是需要文字和沉淀 链接: https://www.bilibili.com/video/BV1YE411D7nH?p=2.

[2] 《操作系统A》 我们上课用的慕课 链接: https://www.icourse163.org/course/NJUPT-1003219004?from=searchPage.

[3] 《操作系统教程》 我们上课用的教材

上一篇文章地址链接:【操作系统②】——操作系统的发展与分类、操作系统的结构设计【分时操作系统 整体式 层次式 】.

下一篇文章地址链接:【操作系统④】——进程控制【原语 Linux进程创建 阻塞和唤醒 撤销 挂起和激活】.

未完待续… ⭐️ ⭐️



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有