操作系统之进程--基础知识

来源:互联网 发布:华为人工智能芯片手机 编辑:程序博客网 时间:2024/06/09 17:04

1.进程和进程控制块

可以把进程当成由一组元素组成的实体 。进程的两个基本的元素是程序代码 和代码相关联的数据集
在进程执行时,任意给定一个时间,进程都可以唯一地被表征为以下元素:

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

前述的列表信息存放在一个叫做进程控制块的数据结构中,该控制块由操作系统创建和管理。

2.进程状态

2.1 两状态进程模型

2.2 五状态模型

  • 运行态
  • 就绪态
  • 阻塞/等待态
  • 新建态
  • 退出态


加入挂起态后:

  • 运行态
  • 就绪态
  • 阻塞态
  • 阻塞/挂起态
  • 就绪/挂起态
  • 新建态
  • 退出态


定义挂起进程:

  • 进程不能立即执行。
  • 进程可能是或不是正在等待一个事件。如果是,阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即被执行。
  • 为阻止进程执行,可以通过代理把这个进程置于挂起状态,代理可以是进程自己,也可以是父进程或操作系统。
  • 除非代理显式地命令系统进行状态转换,否则进程无法从这个状态中转移。


3.进程描述

3.1 操作系统的控制结构
操作系统维护着4种不同类型的表:内存、I/O、文件和进程。
内存表 用于跟踪内(实)存和外存(虚拟内存)。
内存表必须包括以下信息:

  • 分配给进程的内存
  • 分配给进程的外存
  • 内存块或虚拟内存块的任何保护属性
  • 管理虚拟内存所需要的任何信息

I/O表 管理计算机系统中的I/O设备和通道。
文件表 提供关于文件是否存在、文件在外存中的位置、当前状态和其他属性的信息。
进程表 中对内存、I/O和文件的直接或间接引用。

3.2 进程控制结构

进程位置
属性的集合称作进程控制块。程序、数据、栈和属性的集合称作进程映像。
操作系统维护的进程表必须表明每个进程映像中每页的位置。

进程属性
可以把进程控制块分成三类:

  • 进程标志信息
  • 处理器状态信息
  • 进程控制信息


4.进程控制

4.1执行模式

非特权态称作用户态,特权态可称作系统态、控制态或内核态。

4.2 进程创建

  1. 给新进程分配一个唯一的进程标识符
  2. 给进程分配空间
  3. 初始化进程控制块
  4. 设置正确的连接
  5. 创建或扩充其他数据结构


4.3 进程切换

何时切换进程
中断:与当前正在运行的进程无关的某种类型的外部事件相关,如完成一次I/O操作。
陷阱:与当前正在运行的进程所产生的错误或异常条件相关,如非法的文件访问。

模式切换
如果存在一个未处理的中断,处理器需要做以下工作:

  1. 把程序计数器置成中断处理程序的开始地址。
  2. 从用户态切换到内核态,使得中断处理代码可以包含有特权的指令。


进程状态的变化
发生模式切换可以不改变正处于运行态的进程状态,在这种情况下,保存上下文和以后恢复上下文环境只需要很少的开销。