一、进程的概念组成特征
程序的概念:静态的,存放在磁盘内的可执行文件,一系列的指令集合
进程的概念:动态的,程序的执行过程
进程创建时,会被操作系统分配一个唯一的、不重复的编号
进程实体(进程映像)的组成:PCB、程序段、数据段
进程控制块(PCB):
进程存在的唯一标志,进程创建时分配,进程结束时被回收
1、进程标识符(PID)、用户标识符(UID)
2、进程控制管理信息
3、资源分配清单
4、处理机相关信息
进程的特征:动态性(最基本特征)、并发性、独立性、异步性、结构性
二、进程的状态转换
进程的三种基本状态:运行、就绪、阻塞
进程的状态:
创建态:进程正在被创建—资源分配,初始化PCB
就绪态:创建完成具备运行条件,由于没有空闲CPU暂时不能运行(只缺CPU的资源就可以运行)
运行态:在CPU上正在运行的进程
阻塞态:由于某种资源的等待,等待某个事件的发生,进程无法继续向下执行终止态:进程执行结束,或者不可修复的错误
PS:运行态=>阻塞态是进程由于资源不足主动请求等待阻塞态=>就绪态是被动等待资源的获取,阻塞态不能直接进入运行态,就绪态也不能直接转换为阻塞态
进程PCB中会有一个state变量表示进程当前的状态,如1是创建态 2 是就绪态。。。。
三、进程的控制
进程控制:实现进程的状态转换—由原语(一气呵成,不可中断)实现(关中断和开中断实现)
进程的创建:
1、创建原语:申请PCB 、分配所需资源、初始化、将PCB插入就绪队列
2、引起创建的事件:用户登录、作业调度、提供服务、应用请求
进程的撤销:
1、撤销原语:找到进程PCB、若PCB正在运行,立即剥夺CPU,将CPU分配给其他进程、终止所有子进程、将资源归还父进程或者操作系统、删除PCB
2、引起终止的事件:正常结束、异常结束、外界干预
进程的阻塞:
1、阻塞原语:找到PCB、保护运行现场、更改信息为阻塞态、暂停运行、插入道等待队列
2、引起原因:等待某种资源分配,需要等待其他进程合作完成工作
进程的唤醒:
1、唤醒原语:找到PCB 、从等待队列移除、改成就绪态、插入就绪队列等待调度
2、引起原因:等待事件发生(阻塞与唤醒要成对存在)
进程的切换:(更改两个进程的状态)
1、切换原语:将运行环境存入PCB、移入相应队列,选择另一个进程执行,更新其PCB,根据PCB恢复运行环境
2、引起原因:进程时间片到、有更高优先级进程到达、进程主动阻塞,进程终止
四、进程通信
什么是进程通信(IPC):进程之间产生的数据进程的交互需要操作系统的支持,各进程之间内存地址相互独立(出于安全考虑)
共享存储:基于数据结构的共享,基于存储区的共享(为了避免出错,访问共享存储区是互斥访问的)以格式化的消息为单位,通过操作系统提供的原语进行数据交换直接通信方式、间接通信方式
消息头(信箱通信方式):发送进程ID 接受进程ID 消息长度等信息
管道通信:数据流动是单向的 一个进程向另一个进程发送管道大小固定,管道写满后写入将被堵塞,读空后读将被阻塞
五、线程的概念
什么是线程:程序执行的最小单位,基本CPU执行单元。(增加进程的并发性)引入线程后,进程是资源分配的基本单位,线程是调度的基本单位进程并发的同时,线程也可以并发,同时系统开销降低
线程的属性:
1、处理机调度单位,多CPU计算机中,各线程可占有不同CPU
2、同一个进程中,线程共享进程资源
3、线程几乎不拥有系统资源
4、不同进程中线程切换会引起进程切换
5、同一进程中线程切换不会引起进程切换
6、同一进程内线程之间通信无需操作系统干涉
六、线程的实现方式、多线程模型
用户级线程:通过线程库实现线程管理工作,在用户态下完成,无需操作系统干预(操作系统意识不到线程的存在)(就是从用户视角看得到的线程)
优点:线程切换不需要切换到核心态,系统开销小,效率高
缺点:一个用户级线程被阻塞,整个进程被阻塞,并发性不高,多线程不可在多处理机上并行运行
内核级线程:操作系统来管理,切换时需要变态,必须内核态下切换(操作系统内核能看到的线程)(处理机分配的单位)
优点:一个被阻塞后,其他线程仍可运行,并发能力强,可在多处理机上并行执行
缺点:管理成本高,开销大,线程切换需要操作系统内核来完成
一对一模型:一个用户级线程映射到一个内核级线程,一一对应
优点:一个被阻塞,别的可以继续执行,并发能力强,可多处理机并行运行
缺点:一个用户进程程占用多个内核线程,管理成本高,开销大,线程切换需要操作系统内核来完成
多对一模型:多个用户级线程映射到一个内核级线程,一个进程只分配一个内核级线程
优点:用户级线程切换在用户态就可进行,操作系统开销小,效率高
缺点:一个被阻塞后整个进程都被阻塞,并发性不高,多线程不可在多处理机上并行运行
多对多模型:N个用户级线程映射到M个内核级线程,每个进程对应M个内核级线程(N≥M)
优点:克服多对一了并发度
标签:操作系统,阻塞,PCB,线程,内核,进程,第二章 From: https://blog.csdn.net/weixin_56233402/article/details/136665598