1.1进程的定义(操作系统71页)
- 一个正在执行的程序
- 一个正在计算机执行的程序实例
- 能分配给处理器并由处理器执行的实体
- 由一组执行指令、一个当前状态和一组相关的系统资源表征的活动单元
1.2进程的元素
- 标识符
- 状态
- 优先级
- 程序计数器
- 内存指针
- 上下文数据
- I/o状态信息
1.3两状态进程模型(操作系统74页)
操作系统时刻跟踪记录进程在内存空间运行轨迹,新的进程状态是未运行状态,当进程状态被中断,分派器会选择一个新进程运行,前进程由运行态转为未运行态。等待执行的进程会放在等待队列中。
1.4进程创建和终止(操作系统74页)
进程创建时,操作系统需要创建管理进程数据结构,并且分配给它对应的内存地址空间。
进程引发创建另一个进程叫派生进程。父进程派生子进程。
进程中止:多种终止原因。
1.5五状态模型(操作系统75页)
- 运行态:当只有一个处理器,最多只有一个进程处于当前状态
- 就绪态:已在内存中并可以执行
- 阻塞:已在内存中等待一个事件
- 新建态:新创建进程,操作系统未把它加入可执行进程组,通常已经创建未加载到内存中
- 退出态:操作系统从可执行进程组中释放的进程、自身停止、某种原因被取消
- 阻塞\挂起态:进程已在外存中等待一个事件
- 就绪\挂起态:进程已在外存,只要载入内存可执行
新建态的进程操作系统只会把进程的信息保存到进程表,进程的执行代码不在内存中,程序保留在外存。
状态转换事件(操作系统76页)
1.6操作系统控制结构(操作系统82页)
内存表:跟踪内存和外存,包含:
- 分配给进程的内存
- 分配进程外存
- 内存块虚存块任何保护属性、如那些进程可以访问某些共享内存区域
- 管理虚存需要信息
IO表: - IO设备和通道
- IO状态(可用、已分配进程)
- IO传送源和目标内存单元
文件表 - 文件是否存在
- 文件外存位置
- 状态和属性信息
- 进程表
- 进程位置
- 进程映像:程序、数据、栈、属性的集合。
进程控制块信息分三类(操作系统83页)
- 进程标识信息
- 进程状态信息
- 进程控制信息
1.7进程执行模式(操作系统87页)
- 用户模式
用户进程一般在该模式下运行 - 内核模式
完全控制操作系统重要功能: - 进程管理:进程创建或终止
- 内存管理:进程分配内存空间
- IO管理:缓冲区管理
- 支持功能:中断管理
1.8进程切换(操作系统88页)
什么时候切换进程:
- 系统中断
- 时钟中断
- IO中断
- 内存失效
出现中断,处理器会做如下工作
-
将程序计数器置为中断处理程序的开始地址
-
从用户模式切换到内核模式,以便处理代码包含特权指令
-
处理器继续取指阶段,并取中断处理进程的第一条指令来服务该中断,将已中断进程上下文保存到中断进程的进程控制块。
上下文:中断处理程序所有可能改变的信息,以及恢复被中断程序需要所有信息,必须保存进程控制块部分。
完整进程切换步骤:
- 保存处理器上下文
- 更新当前处于运行态进程的进程控制块
- 把该进程的进程控制块移到相应队列
- 选择另外一个进程执行
- 更新所选进程的进程控制块,把进程状态改为运行态
- 更新内存管理数据结构
- 载入程序计数器和其他寄存器,将处理的上下文恢复为所选进程上次退出运行的上下文
2.1UNIX进程管理(操作系统91页)
UNIX有9种进程状态:
- 用户运行
- 内核运行
- 就绪,并驻留在内存中
- 休眠,并驻留在内存中
- 就绪,被交换
- 休眠,被交换
- 被抢占
- 创建
- 僵死
UNIX进程映像 - 用户级上下文
- 寄存器上下文
- 系统级上下文
2.2进程控制(操作系统94页)
UNIX创建进程由内核系统使用fork实现
- 在进程表为新进程分配一个空项
- 为子进程分配一个唯一进程标识符
- 复制父进程的进程映像,共享内存外
- 增加父进程拥有文件的计数器
- 将子进程处就绪态
- 将子进程ID返回给父进程,将0返回给子进程
所有这些工作在父进程内核模式执行,完成后继续分派器例程工作一部分如下三种之一
- 停留在父进程中,控制权返回用户模式下父进程调用fork位置
- 处理器控制权交给子进程,子进程执行代码,执行点与父进程相同
- 控制权交给另外一个进程,父进程和子进程就绪态
网友评论