@王道考研
目录
1)用户级线程(user-level thread,ULT)
2)内核级线程(kernel-supported thread,KST)
1.进程的定义、组成、组织方式和特征
思维导图 :
1.1定义与组成
程序段、数据段、PCB(Process Control Block)三部分组成了进程实体(进程映像)。
一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB。PCB是进程存在的唯一标志。
从不同的角度,进程可以有不同的定义,比较传统典型的定义有:(强调“动态性”)
1)进程是程序的一次执行过程。
2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
3)进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
引入进程实体的概念后,可把进程定义为:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
严格来说,进程实体和进程并不一样,进程实体是静态的,进程则是动态的。不过,除非题目专门考察二者区别,否则可以认为进程实体就是进程。因此我们也可以说“进程由程序段、数据段、PCB三部分组成”。
1.2组织
进程的组成讨论的是一个进程内部由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题。
链接方式(指针指向队列)、索引方式(指针指向索引表)
1.3特征
2.进程的状态与转换
思维导图:
2.1状态
2.2转换
运行态→阻塞态是一种进程自身做出的主动行为。
阻塞态→就绪态是不是进程自身能控制的,是种被动行为。
注意:不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态(因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求)
3.进程控制
进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。
回顾下进程状态转换的过程:
3.1原语
进程控制一般是由OS的内核中的原语(primitive)来实现。
原语的特点:是原子操作(Action Operation一个操作中的所有动作要么全做,要么全不做);执行期间不允许被中断;原语操作在管态下执行,常驻内存;
为什么原语执行期间不允许被中断?——原语采用“开中断指令”和“关中断指令”来实现,“开/关中断指令”是在核心态下执行的特权指令。
原语要实现的三件事情:
1)更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
a.所有的进程控制原语一定都会修改进程状态标志
b.剥夺当前运行进程的CPU使用权必然需要保存其运行环境
c.某进程开始运行前必然要恢复其运行环境
2)将PCB插入合适的队列
3)分配/回收资源
3.2进程的创建(Creation)
3.3进程的终止(Termination)
3.4进程的阻塞与唤醒
唤醒原语:wakeup()