进程

应用程序的执行对应于存在的一个或多个进程

进程可以视为由一组元素组成的实体

目标

  • 资源对多个应用程序是可用的
  • 物理处理器在多个应用程序间切换以保障所有程序都在执行中
  • 处理器和 I/O 设备能得到充分利用

定义

四个例子:

  • 正在执行的程序
  • 正在计算机上执行的程序实例
  • 能分配给处理器并由处理器执行的实体
  • 具有以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集

进程的两个基本元素是程序代码和与代码相关联的数据集

进程控制块

  • 标识符
  • 状态
  • 优先级
  • 程序计数器 PC
  • 内存指针
  • 上下文数据
  • I/O状态信息
  • 记账信息

控制块由操作系统创建和管理 实现中断+恢复

是操作系统能够支持多进程和提供多重处理技术的关键工具

进程状态

轨迹 trace:进程执行的指令序列

进程的创建

操作系统建立用于管理该进程的数据结构 并在内存中给它分配地址空间

进程派生:前一个称为父进程 被派生的进程称为子进程

fork()

进程终止

终止请求 故障 错误 父进程终止时终止…

五状态模型

Untitled
  1. 运行态:进程正在执行
  2. 就绪态:进程做好了准备,只要有机会就开始执行
  3. 阻塞/等待态:进程在某些事件发生前不能执行,如IO操作完成
  4. 新建态:刚刚创建的进程,操作系统还未把它加入可执行进程组,它通常是进程控制块已经创建但还未加载到内存中的新进程
  5. 退出态:操作系统从可执行进程组中释放出的进程,要么它自身已停止,要么它因某种原因被取消

进程切换

  1. NULL→新建态:执行一个程序,创建一个子进程。
  2. 新建态→就绪态:当操作系统完成了进程创建的必要操作,并且当前系统的性能和虚拟内存的容量均允许。
  3. 就绪→运行:需要选择一个新进程运行时,操作系统选择一个处于就绪态的进程,这是调度器或分派器的工作。
  4. 运行态→终止态:当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结。
  5. 运行态→就绪态:运行时间片到;出现有更高优先权进程。
  6. 运行态→等待态:等待使用资源;如等待外设传输;等待人工干预。
  7. 就绪态→终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。
  8. 等待态→终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。
  9. 终止态→NULL:完成善后操作。

进程与一般程序的区别

  • 进程是程序的执⾏实例,由程序创建
  • 执⾏环境不同(进程独⽴,程序需要进程的context)
  • 进程有⾃⼰的资源(内存、⽂件、设备),程序需要依赖进程
  • 进程可以通过IPC进行数据交换和同步,程序没有直接的机制

进程创建的流程

操作系统需要建立用于管理进程的数据结构,并在内存中给他分配地址空间,这些行为构成了一个新进程的创建过程

https://cdn.jsdelivr.net/gh/XFishalways/ImageHosting@master/2023/07/22/CleanShot%202023-07-22%20at%2017.58.10@2x.jpg
https://cdn.jsdelivr.net/gh/XFishalways/ImageHosting@master/2023/07/22/CleanShot%202023-07-22%20at%2017.58.24@2x.jpg
https://cdn.jsdelivr.net/gh/XFishalways/ImageHosting@master/2023/07/22/CleanShot%202023-07-22%20at%2017.58.51@2x.jpg

五状态模型

https://cdn.jsdelivr.net/gh/XFishalways/ImageHosting@master/2023/07/22/CleanShot%202023-07-22%20at%2017.59.16@2x.jpg
https://cdn.jsdelivr.net/gh/XFishalways/ImageHosting@master/2023/07/22/CleanShot%202023-07-22%20at%2017.59.49@2x.jpg
https://cdn.jsdelivr.net/gh/XFishalways/ImageHosting@master/2023/07/22/CleanShot%202023-07-22%20at%2018.00.14@2x.jpg

进程切换&态的切换

进程切换:在某个时刻,操作系统中断一个正在运行的进程,将另一个进程置于 运行模式,并把控制权交给后者

态的切换:处理器在与用户程序相关联的模式(用户模式)和与操作系统相关联 的处理器模式(内核模式)之间的切换

进程控制相关的系统调用

进程创建 fork exec

进程加载 exec

进程等待与退出 wait exit

PCB进程控制块

包括标识符、状态、优先级、程序计数器、内存指针、上下文数据、I/O状态信息、记账信息

进程控制块包含了充分的信息可以中断+恢复进程的执行

控制块由操作系统创建和管理 实现中断+恢复

About the Author

XFishalways

Fisher不钓鱼 川大21级在读 网络空间安全专业 7年前的围棋业余5段 素描彩铅水粉国画书法童子功拥有者 Hala Madrid Letsgo Pat Self-Commentator Analyzer ing 七年前的业余5段 AI Skipper nparadigm申工智能yyds 飞禽岛少年Lee Sedol

View All Articles