1. 进程

(Process)进程是一组元素的实体:

  • 基本元素:程序代码,相关数据集
  • 其余元素:存放在进程控制块,结构如下 | image.png | 标识符:进程唯一ID | | :—-: | —- | | | 状态:运行/阻塞/挂起… | | | 优先级:相对执行优先顺序 | | | 程序计数器:程序要执行的下一条指令的地址 | | | 内存指针:程序代码和进程相关数据的指针,以及其他进程共享内存的指针 | | | 上下文:执行时处理器寄存器中数据 | | | IO状态信息:与IO有关信息 | | | 记账信息:处理器时间总和,使用时钟数总和,时间限制,记帐号等 | | 总结: 进程=程序代码+相关数据+进程控制块 | |

2. 进程状态

2.1 两状态模型

image.png

2.2 五状态模型

  • 无挂起态 | image.png阻塞态必须先变为就绪态(👇就绪队列的限制)才能运行 | 转换:
    - 空->新建
    - 新建->就绪
    - 就绪->运行
    - 运行->退出
    - 运行->就绪
    - 运行->阻塞
    - 阻塞->就绪
    - 就绪->退出
    | | :—-: | —- | | image.png | |

  • 有挂起态: 可产生“交换”:内存中进程移动到磁盘 | image.png | 转换: 除了内存中的就绪和阻塞,还产生了就绪/挂起和阻塞/挂起 | | —- | —- |


3. 进程描述

3.1 操作系统控制结构

image.png
操作系统维护4种表:

  • 内存表:跟踪实存虚存
  • IO表:管理系统的IO设备和通道
  • 文件表:提供文件相关信息
  • 进程表—>进程映像

    3.2 进程映像

    进程**映像=程序+数据++属性**(属性即为控制块) 即slp中的栈帧(活动记录)
用户数据 用户可修改区域 image.png
用户程序 待执行程序
每个进程有一个LIFO栈,保存参数,过程调用地址和系统调用地址
进程控制块 进程表示 标识符
处理器状态 用户可见寄存器
控制和状态寄存器:程序计数器、条件码、状态信息
栈指针
进程控制信息 调度和状态信息、数据结构、进程间通信、进程特权、存储、资源所有权和使用情况

4. 进程控制

执行模式 大多处理器至少支持两种执行模式,某些指令只能在特权模式下执行,且某些区域仅能在特权模式下访问
非特权模式
- 用户模式: 通常用户程序在该模式下运行
特权模式
- 系统模式
- 控制模式
- 内核模式(kernel mode)

5. 操作系统运行

两个事实:

  • 操作系统同软件一样运行,就是一个程序
  • 操作系统也会频繁释放控制权,依赖处理器恢复控制权

操作系统的3种运行模式

| 无进程内核(a) | 传统,古老
在所有进程外执行系统内核,当进程中断或产生系统调用,保存其上下文,把控制权交给OS内核执行系统相关功能后,再恢复进程上下文 | image.png | | :—-: | —- | :—-: | | 用户进程内运行(b) | 小型PC,工作站中
在用户进程的上下文中执行操作系统软件 | | | 基于进程的OS(c) | 把OS当作一组系统进程实现 | |