操作系统的基本操作(操作系统的基本操作过程)

操作系统的基本操作(操作系统的基本操作过程)本文梳理进程的概念 状态和状态转换等知识 进程的定义 程序段 数据段 PCB 三部分组成了进程实体 进程映像 一般而言 我们把进程实体就简称为进程 创建进程实际上是创建进程实体中的 PCB 撤销进程实际上是撤销进程实体中的 PCB PCB 进程控制块 用来描述进程的各种信息 如程序代码存放位置 它是进程存在的唯一标志 进程是进程实体的运行过程 是系统进行资源分配的一个独立单位

大家好,我是讯享网,很高兴认识大家。



本文梳理进程的概念、状态和状态转换等知识。

image.png
讯享网

进程的定义

程序段、数据段、PCB三部分组成了进程实体(进程映像)。一般而言,我们把进程实体就简称为进程。
创建进程实际上是创建进程实体中的PCB;
撤销进程实际上是撤销进程实体中的PCB;
PCB:进程控制块,用来描述进程的各种信息(如程序代码存放位置),它是进程存在的唯一标志。


进程是进程实体的运行过程,是系统进行资源分配的一个独立单位,进程内运行的线程是CPU调度的基本单位。

进程的组成

  • 程序段
    存放要执行的程序代码
  • 数据段
    存放程序运行过程中处理的各种数据,如全局变量、局部变量、宏定义的常量等
  • PCB(操作系统操作进程时的对象)
    • 进程描述信息:进程标识符PID、用户标识符UID
    • 进程控制和管理信息:进程当前状态、进程优先级
    • 资源分配清单:程序段指针、数据段指针、键盘、鼠标
    • 处理机相关信息:各种寄存器值(当进程切换时需要把进程当前的运算情况记录下来保存在PCB中,如程序计数器的值(表示当前程序执行到哪一句了))

进程的组织

进程的组织分为链接方式和索引方式。

  • 链接方式:按照进程状态将PCB分为多个队列,操作系统持有指向各个队列的指针。
    image.png
  • 索引方式:根据进程状态的不同,建立几张索引表,操作系统持有指向各个索引表的指针。
    image.png

进程的特征

  • 动态性:
    进程是程序的一次执行过程,是动态的产生、变化和消亡的
  • 并发性:
    内存中有多个进程实体,各进程可并发执行
  • 独立性:
    进程是能独立运行、独立获得资源、建立接受调度的基本单位
    进程是资源分配、接受CPU调度的基本单位



  • 异步性:
    各进程按各自独立的、不可预知的速度向前推进,操作系统要提供进程同步机制来解决异步问题
  • 结构性:
    每个进程都会分配一个PCB。结构上看,进程由程序段、数据段、PCB组成

image.png

进程的状态

  • 创建态New
    进程正在被创建,操作系统为进程分配资源、创建PCB
  • 就绪态Ready
    已经具备运行条件,但由于没有获取到CPU时间片,而暂时不能运行;
  • 运行态Running
    占有CPU,并在CPU上运行;单核CPU每一时刻最多只有一个进程处于运行态,多核CPU可以有多个进程处于运行态。
  • 阻塞态Waiting/Blocked
    因等待某一时间而暂时不能运行;
  • 终止态Terminated
    进程正在从系统中撤销,操作系统会回收进程拥有的资源、撤销PCB

进程状态的转换

image.png

引入挂起态

挂起态的引入将进程状态模型由五状态模型到七状态模型。
在这里插入图片描述

引入虚拟存储技术后,暂时调到外存等待的进程状态为挂起状态(挂起态,suspend)。

  • 就绪态 <–> 挂起态
    一个处于就绪态的进程因为内存不足可以被系统调出到外存上,即进入挂起态;
    一直到内存空间空闲,且它又具备了运行条件,就会被激活,调入内存中,进入就绪态。

  • 阻塞态 <–> 挂起态
    相应的,阻塞状态的进程和挂起态也能互相转换;


  • 运行态 -> 挂起态
    处于运行态的进程也可以被调度到挂起态,但挂起态的进行不能直接转化为运行态。
  • 创建态 -> 挂起态
  • 进程被创建,也有可能因为资源不足而被调入到外存上挂起。
  • 阻塞挂起 -> 就绪挂起
    被阻塞挂起的进程,因为被阻塞状态的恢复,可以直接到就绪挂起的状态。
  • 就绪挂起和阻塞挂起的区别
    这两种状态都是不能获得CPU时间片的,但就绪挂起是将进程映像调到外存去了;而阻塞挂起时进程映像还在内存中。

image.png

基本概念

  • 进程控制就是要实现进程状态的转换。
  • 如何实现进程控制,进程控制用原语来实现。
    原语执行具有原子性,原语采用关中断指令和开中断指令实现。
    原语是在操作系统内核中实现,运行在核心态。
    image.png


  • 开/关中断指令,它们都是特权指令
    image.png

进程控制相关原语

  • 进程控制原语基本功能:
  1. 更新PCB中的信息:修改进程状态标志、将运行环境保存到PCB、从PCB中恢复运行环境
  2. 将PCB插入合适的队列
  3. 分配/回收资源
  • 创建原语:无-> 创建态 -> 就绪态
    引起进程创建的条件:用户登录、作业调度、提供服务、应用请求
    1. 申请空白PCB
    2. 为进程分配所需资源
    3. 初始化PCB
    4. 将PCB插入就绪队列。

  • 撤销原语:就绪态/阻塞态/运行态 -> 终止态 -> 无
    引起进程终止的条件:正常结束、异常结束、外界干预
    1. 从PCB集合中找到终止进程的PCB
    2. 若进程正在运行,立即剥夺CPU使用权,将CPU分配给其他进程
    3. 终止其所有子进程
    4. 将该进程拥有的所有资源归还给父进程或操作系统
    5. 删除PCB

  • 阻塞原语:运行态->阻塞态
    引起进程阻塞的条件:需要等待系统分配某种资源、需要等待相互合作的其它进程完成工作
    1. 找到要阻塞的进程对应的PCB
    2. 保护进程运行现场,将PCB状态信息设置为阻塞态,暂时停止进程运行
    3. 将PCB插入相应事件的等待队列

  • 唤醒原语:阻塞态->就绪态
    引起进程唤醒的事件:等待的事件发生
    1. 在事件等待队列中找到PCB
    2. 将PCB从等待队列移除,设置进程为就绪态
    3. 将PCB插入就绪队列,等待被调度

  • 阻塞原语和唤醒原语必须成对使用,Monitor机制,因何事阻塞,必须由何事唤醒
  • 切换原语:运行态->阻塞态/就绪态、就绪态->运行态
    引起进程切换的事件:当前进程时间片到、有更高优先级的进程到达、当前进程主动阻塞、当前进程终止
    1. 将运行环境信息存入PCB
    2. PCB移入相应队列
    3. 选择另一个进程执行,并更新其PCB
    4. 根据PCB恢复新进程所需的运行环境

小讯
上一篇 2025-05-17 10:44
下一篇 2025-04-25 18:28

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/144130.html