操作系统chapter2:进程与线程
2021-07-21 18:54:50 15 举报
AI智能生成
操作系统第二章,关于进程与线程的知识点
作者其他创作
大纲/内容
操作系统
二、进程与线程
计算机中的活动计算单元
进程
概念
并发执行的程序在一个数据集合上的执行过程
分配资源的基本单位
可看作是执行着的程序,需要占有一定的资源
多道程序环境中
并发活动的单位
系统由一组进程组成
操作系统进程
执行系统代码
用户进程
执行用户代码
可并发执行
基本属性
可以拥有资源的独立单位
可以独立调度、分派的基本单位
才使得进程成为一个能独立运行的基本单位
引入
单道程序的顺序执行
程序的顺序执行
P43
特征
顺序性
封闭性
系统内资源的状态只有该程序能改变它,与外界环境无关
可再现性
程序重复执行时,只要初始条件相同,执行结果必相同
缺点
资源浪费
效率低下
多道程序的并发执行
在内存中放多道程序,它们在操作系统的控制下在cpu上交替运行
在执行时间上重叠
程序的并发执行
P44
间断性
相互制约导致并发执行的程序具有“执行—暂停—执行”这种间断性的活动规律
失去封闭性
如当处理机资源被某程序占有时,其他程序必须等待
span style=\
失去可再现性
虽然初始条件相同,但执行结果不同
条件
读集
要参考的所有变量
写集
要改变的所有变量
R、W相交为空
优点
提高系统资源利用率
增加系统吞吐量
引入进程的目的
使多个程序并发执行,改善资源的利用率,提高系统的吞吐量
性质
活动性(动态性)
进程是动态变化的
总有一个从创建到消亡的过程
并发性
多道程序中每个进程的执行过程,总与其他执行过程并发执行
独立性
异步性
进程与程序的关系
进程是程序的执行过程
区别
本质区别
动态性
由创建而产生,由调度而执行,因得不到资源而暂停执行,因撤销而消亡
有一定的生命期
程序
静态性
一组有序指令的集合
能独立调度、能和其他进程并行执行的单位
能确切描述并发活动
不能作为独立调度执行的单位
只代表一组语句的集合,并通常是顺序执行的
暂时性
程序执行完毕,进程也就撤销了
永久性
作为一个实体而存在
结构特征
结构上看
进程 = 程序+数据+PCB(控制块)
进程控制块PCB
描述
进程本身的特性
进程的状态
进程的调度信息
对资源的占有情况
……
操作系统中最重要的数据结构
组成(进程映象)
描述了进程本身要完成的功能
数据段
程序操作的一组存储单元
程序操作的对象
包括
程序相关联的全程变量、局部变量
定义的常量
栈
一段系统存储单元
保存程序调用时的参数、过程调用地址、系统调用地址
作用
让一个在多道程序环境下不能独立运行的程序称为一个能独立运行的基本单位
操作系统对进程的管理和控制主要是通过PCB实现的,使用原语
特点
系统创建进程时,就建立了进程控制块。进程撤销时,也随之撤销
进程控制块是进程存在的唯一标识
常驻内存
内容
进程描述情况
标识进程的信息
进程名
创建者提供,由字母、数字组成
是对应可执行程序的名字
进程标识符
唯一的整数
是一个进程的序号
进程所属的用户名
创建该进程的用户的名字
处理机状态信息
主要由处理机各种寄存器的内容组成
P52
通用寄存器
指令计数器
程序状态字寄存器
栈指针
进程调度信息
进程控制和资源占用信息
组织方式
链接方式
把具有相同状态的进程控制块链接在一起,形成1个运行队列、1个就绪队列、若干个阻塞队列、1个空闲队列
分为
单处理机的系统
处于运行状态的进程只有一个
多处理机的系统
进程有多个,就形成了运行队列
就绪队列的进程
优先级从高到低排队
阻塞状态的进程
按阻塞原因排成若干队列
空闲队列
系统中空闲的进程块结构组织起来,以便创建新进程时,为之分配控制块
进程与程序密切相关
1个进程可涉及1/多个程序的执行
1个程序可以对应多个进程
不同进程所执行的程序必然不同。
程序、进程不是一一对应关系
进程状态
3种基本状态
运行状态
进程正在处理机上运行的状态
单处理机的系统中
只有一个进程处于运行状态
多处理机的系统中
多个进程……
处于运行状态的进程数<= 处理机的数目
就绪状态
在单处理机中,如果系统中有n个进程,则就绪队列中的进程个数最多是n-1个
一个计算机系统中至少有一个处理机,通常处理机上有一个进程执行,因此就绪队列中进程个数最多为n-1。
进程已获得了除处理机之外的所有必要资源,只要获得处理机就可以运行
一般有多个
通常按进程优先级的大小来排成一个队列
阻塞状态(等待状态)
进程因等待输入输出/某个同步事件而暂停运行时
该状态的进程不能参加竞争处理机
通常按进程等待事件的原因不同,排成多个队列
转换
P48
①→②
规定的时间片用完
①→③
进程请求I/O、等待某事件、请求访问某个临界资源
③→②
I/O完成、事件完成
②→①
进程调度
计算(n个进程时)
max:1
min:0
max:N-1
等待状态
max:N
min:N-1
若没有运行进程,就【一定】没有就绪进程
因为若系统中没有运行进程,那么系统很快会选择一个就绪进程运行。只有就绪队列中无进程时,CPU 才可以处于空闲状态。
若没有运行进程、就绪进程,则【不一定】没有阻塞状态
因为系统中的所有进程可能都处于阻塞状态。
采用优先级调度策略
运行的进程是否一定是系统中优先级最高的进程?
新增2个状态
P49
创建状态
退出状态
挂起状态
基于……的需要
内外存对换的需要
用户调试程序的需要
实时系统中调节负载的需要
状态转换
单挂起状态
内存紧张时
将进程从内存移到外存,即挂起进程
内存宽裕
将进程移回内存,即激活进程
进程挂起后、激活后进入就绪队列没表明该进程在挂起期间,I/O工作、等待的事件已完成
多挂起状态
阻塞 → 阻塞挂起
内存紧张时,将进程从内存移到外存
阻塞挂起 → 阻塞
进程释放了足够的内存空间时,将进程从外移到内存
就绪 → 就绪挂起
挂起一些阻塞的进程仍不能满足内存的需要时
当高优先级阻塞的进程、低优先级就绪的进程时
先挂起低优先级就绪的进程
就绪挂起 → 就绪
系统没有了就绪的进程
当就绪挂起的进程优先级>就绪进程
运行 → 就绪挂起
在抢占式分时操作系统中,当高优先级阻塞挂起的进程因事件出现而进入就绪挂起状态时,如果内存空间不够
进程控制
职能
对系统中的全部进程实行有效的管理
主要表现
对一个进程进行
创建
撤销
在某些进程状态之间的转换控制
操作系统内核
处理机的执行状态
P53
核心态(系统态)
较高的特权
操作系统内核通常运行在这
中断
缺页处理程序
时钟中断
进程调度属于系统调用
用户态
较低特权
用户的程序在这运行
用户程序不能访问操作系统的区域
防止用户程序对操作系统的破坏
命令解释程序属于命令接口
内核
这部分程序放在紧靠硬件的层次上,常驻内存
是在硬件上扩充的第一层软件,操作系统要对这部分软件进行保护
利用原语实现
为系统对进程的控制、对内存的管理提供了有效的机制
不同的OP系统中内核的功能不完全相同
大多包含
P54
时钟管理
中断处理
原语操作
原语
由若干条指令构成,用于完成一定功能的过程
特别点
用原子操作构成的
原子操作
过程中的所有操作要么全做,要么不做
在被执行时,是不可以被中断的
进程家族树
对进程的控制更方便、灵活
进程的创建
引起创建进程的事件
用户登录
新作业进入系统
提供服务
应用请求
创建原语要做的工作
申请空白PCB(进程控制块)
初始化进程描述信息
为进程分配资源、分配存储空间
将新进程插入就绪队列
进程的撤销
引起进程撤销的事件
P55
撤销原语要做的工作
进程的阻塞与唤醒
引起进程的阻塞与唤醒的事件
P56
阻塞原语需要做的工作
唤醒原语需要做的工作
进程的挂起、激活
挂起原语要做的工作
P57
激活原语要做的工作
线程
比进程更小、能独立运行的基本单位
并不等于所占存储空间小
是进程的一个实体
是被独立调度、分派的基本单位
表示进程中的一个控制点,执行一系列指令
目的
提高系统并发执行的程度
从而进一步提高系统的吞吐量
线程之间的【通信】比进程之间的方便得多
同一进程内的【线程切换】也因为线程的轻装而方便得多
线程是被独立调度、分配的【基本单位】
响应度高
资源共享
经济
组成
线程控制块
用于保存自己私有信息
线程标识符
唯一的
描述处理机状态信息的一组寄存器
用户栈
核心栈
一个私有存储区
线程的状态
P59
创建一个进程时,该进程的一个线程(主线程)也被创建
运行、就绪、阻塞状态
线程的控制
线程的创建
线程的撤销
线程等待
线程让权
线程的实现
对于进程,无论是系统进程 / 用户进程,切换时都依赖于内核的进程调度程序
所以,内核是感知进程存在的
在内核支持下进行进程切换
根据线程的切换是否依赖于内核
用户级线程
只存在于用户级
不依赖于内核,内核也不知道这种线程的存在
内核值负责为进程提供服务
P63-64
一个进程内部线程的行为不影响其他进程,内核只是对进程进行适当的调度
优缺点
内核级线程
进程只作为资源的拥有者
线程作为调度的单位
P65
内核本身也可以设计成多线程
用户级线程、内核级线程的主要区别
切换速度
用户级线程切换用机器指令,速度快
内核级线程切换用内核,速度慢
阻塞
用户级线程因等待I/O阻塞时,会将它所在的整个进程阻塞
内核级线程阻塞不会设计它所在的进程
在内核级线程模型中,若一个进程中有多个线程,当进程中的某个线程被阻塞后,该进程的其他线程仍可以继续运行。
组合的方法
P66
进程、线程的比较
进程、线程的区别是
是否拥有资源
进程、线程的关系
【1个】进程至少拥有【1个】线程(主线程)
进程根据需要创建若干个线程
线程自己基本不拥有资源,只拥有少量必不可少的资源
堆栈
进程中所有线程共享该进程的资源
引入线程的重要性
性能比较
时间:在进程中穿件一个新的线程< 创建一个全新的进程
时间:撤销线程 < 撤销进程
时间:线程之间的切换 < 进程之间的
线程提高了不同执行程度之间的通信效率
举例
P60-61
比较
P61
调度
资源分配(拥有资源)的基本单位
调度、分派的基本单位
线程提高文件服务的质量、系统的吞吐量
拥有资源
传统的操作系统
具有线程的操作系统
进程都是拥有资源的独立单位
一个进程里的资源可供同一进程中的所有线程共享
系统开销
0 条评论
回复 删除
下一页