思维导图
目录
一、进程的定义
由程序段,数据段,PCB三部分组成了进程实体(进程映像),一般情况把进程实体简称为进程
进程控制块(PCB):系统为每个运行的程序配置的一个数据结构,用来描述进程的各种信息(如代码的存放位置和运行状态)。所谓创建进程和撤销进程都是对PCB的操作
注意:PCB是进程存在的唯一标志!
引入进程实体的概念后,可把进程定义为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
二、进程的组成
1、PCB
- 进程描述信息 --> 进程标识符PID,用户标识符UID
- 进程控制和管理信息 -->进程当前状态,进程优先级
- 资源分配清单 -->程序段指针,数据段指针,键盘,鼠标
- CPU相关信息 -->各种寄存器的值
2、程序段 存放要执行的代码
3、数据段 存放程序运行过程需要的处理的数据
三、进程的特征
四、进程的状态
- 新建态:进程正在被创建,操作系统为进程分配资源、初始化PCB
- 运行态:占有CPU,并在CPU上运行(单核,只有一个进程处于运行态,双核可以同时有两个进程)
- 就绪状态:已经具备运行条件,但是没有空闲CPU,而暂时不能执行
- 阻塞状态:是指进程需要其他资源(除了处理机)或等待某一事件
- 终止状态:进程从系统中撤销,操作系统会回收进程拥有的资源,撤销OCB
五、进程的组织
进程的组成讨论的是一个进程由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题
1、链接方式
- 根据进程的状态将PCB分为多个队列
- 操作系统持有指向各个队列的指针
2、索引方式
- 根据进程的状态不同,建立索引表
- 操作系统持由指向各个索引表的指针
六、进程控制
什么是进程控制?主要功能是对系统中所有进程实施有效的管理,具有创建进程,撤销已有进程,实现进程状态转换等功能
简化理解:主要实现进程的状态改变
如何实现进程控制 ?用原语实现进程控制。原语特点是执行期间不允许中断,只能一气呵成(原子操作)
原语采用"关中断指令"和"开中断指令"实现原子操作。关中断指令不理睬外部中断信号,只有开中断指令执行后才可以。
进程控制会导致进程状态的转换。无论哪个原语,无非做以下三件事
- 更新PCB中信息(修改进程状态标志,将运行境保存到PCB,从PCB恢复运行环境)
- 将PCB插入合适的队列
- 分配/回收资源
七、进程通信 --图
八、线程 --图
线程:堆空间共享,栈空间独立,相对于进程消耗资源小,又称为“轻量级进程”。线程是一个基本的CPU执行单元,也是程序执行流的最小单位。引入线程后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得有一个进程内也可以出来各种任务(如QQ视频、文字聊天、传文件)
引入线程后,进程是资源分配的基本单位,线程是调度的基本单位
1、线程的属性
2、线程的实现方式
- 用户级线程:所有的线程管理工作都由应用程序负责(包括线程的切换),线程的切换在用户态下即可完成,无需操作系统干预。"用户级线程" 就是 “从用户视角能看到的程序”,操作系统内核意识不到线程的存在
- 内核级线程:进程管理工作由操作系统内核完成。内核级线程的切换必然需要在核心态下才能完成。"内核级线程" 就是 “从内核视角能看到的程序”
3、多线程模型:
4、进程和线程区别
Ⅰ 拥有资源
进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源。
Ⅱ 调度
线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。
Ⅲ 系统开销
由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O 设备等,所付出的开销远大于创建或撤销线程时的开销。类似地,在进行进程切换时,涉及当前执行进程 CPU 环境的保存及新调度进程 CPU 环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小。
Ⅳ 通信方面
线程间可以通过直接读/写同一进程中的数据进行通信,但是进程通信需要进程同步和互斥手段的辅助
临界区资源: 一个时间段只允许一个进程使用的资源。各进程需要互斥地访问临界资源(物理设备如摄像机,打印机)
临界区:进程中访问临界区资源的代码(在进程同步和互斥有详细解释)