1 前趋图和程序执行
1.1 前趋图
前趋图(DAG):用于描述进程之间执行的先后顺序
- 初始结点:没有前趋的结点
1.2 程序执行
1.2.1 顺序执行
顺序执行的特点:
① 顺序性
② 封闭性
③ 可再现性
④ 资源利用低
1.2.2 并发执行
不存在前趋关系的即可并发执行
并发执行的特点:
① 间断性
② 失去封闭性
③ 不可再现性
2 进程的描述
2.1 进程的定义
进程实体:包括程序段、相关数据段、PCB(进程控制块)
- 进程定义
① 进程是程序的一次执行
② 进程是一个程序及其数据在处理机上顺序执行时发生的活动
③ 进程是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位 - 进程特征
① 动态性:进程实体的执行过程,具有一定的生命周期;程序是指令的集合静态的
② 并发性:有PCB,可以并发执行,程序没有
③ 独立性:能够独立运行
④ 异步性 :各自按照自己的独立的、不可预知的速度前行 - 进程的三种基本状态
① 就绪状态:除去CPU以外,已经分配到其他所必须的资源
② 执行状态:获得CPU,正在执行
③ 阻塞状态
进程另外两个状态
① 创建状态:先由进程申请一个空白PCB,并向其中填入用于控制和管理进程的信息;然后为其分配运行时需要的资源;最后将进程转化为就绪状态,插入就绪队列中。
② 终止状态
3 进程控制
原语:若干条指令组成,用于完成一定功能的一个过程;(原子操作:一个操作中的动作要么全做,要么不做)
3.1 操作系统内核
简介:将一些与硬件紧密相关的模块(中断处理程序等)、各种常用设备的驱动程序、运行频率较高的模块(时钟管理、进程调度和许多模块所公用的一些基本操作)常驻内存,从而组成OS内核。
3.2 进程创建
① 申请空白PCB
② 为新进程分配其运行所需的资源,包括所需的逻辑和物理资源
③ 初始化进程控制块(PCB)
④ 进程就绪队列能够接纳新进程,将新进程插入就绪队列
4 进程同步
- 进程同步:是对多个相关的进程在执行次序上进行协调,使并发执行的就绪进程之间能够按照一定的规则(或者时许)共享系统资源,并能很好的合作,从而使程序的执行具有可再现性。
4.1 硬件同步机制
4.2 信号量机制
4.3 管程机制
- 管程:代表共享资源的数据结构以及由对该共享数据结构实施操作的一组过程所组成的资源管理程序共同构成的一个操作系统的资源管理模块。
组成:① 管程名称;② 局部于管程的共享数据结构说明;③ 对该数据结构进行操作的一组过程;④ 对局部于管程的共享数据设置初始值的语句。
5 进程通讯
5.1 进程通讯类型
5.1.1 共享存储器系统
- 基于共享数据结构的通讯方式
- 基于共享存储区的通讯方式
5.1.2 管道通信系统
- 管道(pipe文件):
5.1.3 消息传递系统
5.1.4 客户-服务器系统
- 套接字
6 线程
引入进程的目的为了使多个程序能够并发执行,以提高系统的资源利用率;
引入线程的目的是减少了程序执行时所付出的时空开销
6.1 进程两个属性
① 进程是一个可拥有资源的独立单位
② 进程同时又是一个可独立调度和分派的基本单位
6.2 线程和进程的比较
- OS中线程是调度和分派的基本单位
- 线程仅有一点必不可少的、能保证独立运行的资源
- 每个线程都可以访问他们所属进程地址空间中的所有地址
6.2.1 线程的三个状态
① 执行状态
② 就绪状态
③ 阻塞状态
进程为线程分配资源
6.2.2 线程的创建和终止
- 线程创建:
① 进程为线程分配一个TCB
② 将有关信息填入该TCB中,并为之分配相关资源
7 线程的实现
7.1 线程的实现
① 内核支持线程
② 用户级线程
③ 组合方式