操作系统第四章第一节:进程与线程
概念辨析:并发与并行
并发Concurrent:设有两个活动a1和a2,如果在某一指定的时间t,无论a1和a2是在同一处理机上还是在不同的处理机上执行,只要a1和a2都处在各自的起点和终点之间的某一处,则称a1和a2是并发执行的。
并行Parallel:如果考虑两个程序,它们在同一时间度量下同时运行在不同的处理机上,则称这两个程序是并行执行的。
- 对每个程序而言,其输入、计算和输出这三个操作必须顺序执行
并发相关的一些概念
竞争:多个进程在读写一个共享数据时结果依赖于它们执行的相对时间,这种情形叫做竞争。
竞争条件:多个进程并发访问和操作同一数据且执行结果与访问的特定顺序有关,称为竞争(发生)条件。
满足Bernstein条件进程方可并发
进程相关概念
进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
进程具有如下特征:
进程控制块(PCB)应该包括如下内容:
由操作系统内核来实现进程的状态转换
原语:由若干条指令所组成的指令序列,来实现某个特定的操作功能
• 指令序列执行是连续的,不可分割
• 是操作系统核心组成部分
• 必须在管态(内核态)下执行,且常驻内存
与进程相关的原语:
创建原语:fork,exec
撤销原语:kill
进程的三种运行状态
转换关系如下:
- 值得注意的是就绪状态可以跟执行状态互相转化
辨析:进程上下文切换 vs 陷入内核
基于进程的不足,开始考虑引入线程概念
线程:将资源与计算分离,提高并发效率。
引入线程的目的及线程的优势
减小进程切换的开销
提高进程内的并发程度
共享资源
进程与线程的对比
进程拥有虚空间、进程映像、处理机保护、文件、I/O空间。
线程额外的资源:运行状态、保存上下文(程序计数器)、执行栈、资源共享机制。
-
用户级线程的优缺点
-
内核级线程的优缺点