-
顺序执行:早期没有配置OS和单道批处理系统中程序的执行方式,一次只能运行一条用户程序
-
严格先后顺序,只有当前程序运行运行完成之后才能运行下一个程序
-
顺序执行的特征:
-
顺序性
-
封闭性:程序运行时独占全部资源,执行结果不受外界影响
-
可再现性:只要程序执行的初始环境和条件相同,多次执行的结果也相同
-
-
-
并发执行
-
程序并发执行特征:
-
间断性
-
失去封闭性:系统中资源由多个程序共享
-
不可再现性:程序执行的初始环境和条件相同,多次执行的结果不一定相同
-
-
-
前趋图:有向无循环图,描述进程之间的执行顺序
-
前趋图中,没有前趋的结点称为初始结点,没有后继的结点称为终止结点,每个结点包含的程序量或者程序执行的时间称为重量
进程
-
进程实体由程序段、相关的数据段和进程控制块(PCB)组成
-
创建进程的实质是创建进程实体中的PCB,撤销进程的实质是撤销进程的PCB
-
进程的特征:
-
并发性:并发执行
-
独立性:进程是能够独立地获得资源、运行和接受调度的基本单位
-
异步性:各进程按照独立的不可预知的速度向前推进
-
动态性:动态地产生、变化和消亡
-
-
进程的基本状态:
-
就绪状态:处于准备好执行的状态,但由于没有CPU,不能执行
-
执行状态:获得CPU,正在执行
-
阻塞状态:由于某事件暂时无法继续执行(处于没有CPU的状态)
-
创建状态:创建进程
-
终止状态:终止进程
-
-
挂起操作
-
引入挂起操作的原因:
-
终端用户的需要
-
父进程请求
-
负荷调节的·需要
-
操作系统的需要
-
-
引入挂起和激活原语操作后进程状态转换:
-
活动就绪→静止就绪
-
活动阻塞→静止阻塞
-
静止就绪→活动就绪
-
静止阻塞→活动阻塞
-
原语:由若干条指令组成、用于完成一定功能的一个过程
-
引入挂起操作后进程状态的转换:
-
NULL→创建
-
创建→活动就绪
-
创建→静止就绪
-
执行→终止
-
-
-
进程表又被称为进程控制块(PCB),主要作用:
-
作为独立运行基本单位的标志
-
实现间接性运行方式
-
提供进程管理所需要的信息
-
提供进程调度所需要的信息
-
实现与其他进程的调度与通信
-
-
进程控制块中的信息
-
进程标识符(PID):唯一标识一个进程
-
外部标识符:用户创建
-
内部标识符:OS创建
-
-
处理机状态(处理机上下文)
-
通用寄存器:用户程序可访问,用于暂存信息
-
指令寄存器PC:存放下一条指令的地址
-
程序状态字PSW:含有状态信息
-
用户栈指针:存放过程、用户调用参数以及调用地址,栈指针指向该栈栈顶
-
-
进程调度信息
-
进程状态
-
进程优先级
-
进程调度所需要的其他信息
-
事件(进程阻塞原因)
-
-
-
程序和数据的地址
-
进程同步和通信机制
-
资源清单:列出本进程运行期间所需要的全部资源
-
链接指针:给出本进程下一个进程的首地址
-
-
PCB主要内容总结:
进程描述信息 进程控制和管理信息 资源分配清单 处理机相关信息 进程标识符(PID) 进程当前状态 代码段指针 通用寄存器值 用户标识符(UID) 进程优先级 数据段指针 地址寄存器值 代码运行入口地址 堆栈段指针 控制寄存器值 程序的外存地址 文件描述符 标志寄存器值 进入内存时间 键盘 状态字 处理机占用时间 鼠标 信号量使用 -
-
进程控制块的组织方式:
-
线性方式:将系统中所有的PCB存放在一张线性表中,将表的首地址放在内存的一个专用区域
-
优点:简单,开销小
-
缺点:查找需扫描整张表,适合进程不多的系统
-
-
链接方式:把具有相同状态的进程的PCB通过PCB中的链接字链接成一个队列,形成就绪队列,若干个阻塞队列和空闲队列
-
-