第三章考点
3.1什么是进程
- 进程:程序在一个数据集上的一次执行过程
- 与程序的联系与区别:
程序:静态,一个程序可对应一到多个进程
进程:动态,可以创建其他进程
可再入(重入)程序:一个程序可同时被多个进程执行
3.一个进程的组成(进程映像):
程序代码
数据集、栈
进程控制块PCB:进程存在的唯一标识
4.引入进程
实现了并发执行和资源共享,可提高资源利用率和吞吐率,但同时增加系统的时间空间开销
3.2进程状态
- 五状态模型
新建,就绪,运行,阻塞,退出
2.进程队列
处于同一状态的进程PCB组成一个进程队列
阻塞队列根据阻塞原因有不同的阻塞队列
3.挂起
挂起的根本原因:内存不足
两种挂起态:就绪挂起态,阻塞挂起态(进程换出到外存(磁盘)上,但PCB仍然在内存中)
4.进程的创建和终止
进程创建:OS为该进程建立PCB(分配进程表中的一个空闲PCB),分配内存空间
创建的原因:
-
新的批处理作业
-
交互登陆
-
OS提供服务
-
父进程派生子进程
进程终止:回收内存,释放资源,销毁PCB
3.3进程描述
- 操作系统控制结构
os构造维护所管理的每个实体的信息表:内存表,I/O表,文件表,进程表
2.进程控制结构
PCB:进程属性的集合
数量有限
进程的唯一标识
相同状态PCB构成一个链表(阻塞队列不止一条)
识别进程根据PID(进程标识符)
3.4进程控制
- 执行模式:系统态,用户态
- 陷入Trap(模式切换):从用户态切换到系统态执行特权指令代码。
- 何时从用户态到系统态:
执行系统调用(内核代码,os提供服务时)
发生中断或异常,执行中断处理程序
4.如何从系统态到用户态
执行IRET恢复原进程的PSW
中断返回不一定就是回用户态,系统态运行时也可以响应中断
5.进程切换(一定在系统态)
何时进行:中断发生时
陷阱发生时
当前进程执行系统调用被阻塞时
(本质上都是在让出CPU时)
进程切换步骤:
保存,保持当前进程CPU上下文(主要是寄存
器现场)
选择,选择一个就绪进程
更新,更新新替换的进程的PCB,恢复新进程
的上下文
6.UNIX中,父进程通过系统调用fork()创建子进程
父子进程并发执行,共享父进程的所有资源
子进程复制父进程的地址空间,有相同的正文段和PC值