1、进程基本概念:进程是程序的一次执行, 是系统进程资源分配和调度的基本单位。
2、进程三态:执行状态、就绪状态、阻塞状态;三态转换规则,就绪状态的进程由于调度进程执行状态,执行状态由于时间片用完而进入就绪状态,由于I/O请求而进入阻塞状态,I/O完成后进入就绪状态。
创建完成直接进入就绪状态,等待处理机调度。
3、挂起状态引入原因:1)终端用户请求,2)父进程请求,3)负荷调节需要,4)操作系统需要。
原三态进一步可以分为:执行状态、活动就绪状态、静止就绪状态、活动阻塞状态、静止阻塞状态;处于活动态的进程由于挂起请求而进行静止状态。
进程创建完成可直接进入活动就绪状态和静止就绪状态,程序执行结束即可进入终止状态。
4、进程控制块(PCB):进程标识符、处理机状态、进程调度信息、进程控制信息(程序、数据、资源清单等)。PCB是进程存在的唯一标志。
5、创建进程
创建进程的可能原因:用户登录、作业调度、提供服务、应用请求等。
创建进程过程:1)申请空白PCB,2)为进程分配资源,3)初始化PCB,4)将新进程插入到就绪队列。
6、终止进程
终止进程原因:正常结束、异常结束、外界干预等。
终止进程过程:1)根据进程标识符,在PCB集合中找到目标进程,2)终止该进程的执行,3)撤销其子进程,4)归还系统资源,5)撤销PCB。
7、进程同步概念:对于多个进程在执行次序上进程协调,使并发进程之间能够相互合作,有效利用系统资源,从而使程序的执行具有可再现性。
8、临界资源与临界区:临界资源是指进程间需要互斥访问的资源,临界区是进程中访问临界资源的代码。
9、进程同步规则:空闲让进、忙则等待、有限等待、让权等待。
10、进程同步方法
1)信号量:维护一代表资源数目的整形变量S,S<0时,资源分配完毕,且目前有进程在等待该资源,S>0时,说明该资源可分配。
包括以下几种:整型信号量(进程一直处于等待过程中,反复申请该资源,违反了让权等待原则)、记录型信号量(除了整型信号的功能外,还维护一个等待进程列表,资源数目小于零时,放弃处理机,等待)、AND型信号量(当进程同时需要多种资源时,当所有资源都可获取到时才将所有资源一次性分配给该进程)。
缺点:将大量wait,Signal分散在各进程当中,不利于管理。
2)管程机制:相当于对某一资源的管理程序,所有进程访问该资源时都需要通过该管理程序。而管程每次只允许一个进程访问该资源。
管程与进程的区别:从功能上说,进程主要目的是实现系统的并发性,而管程为了各进程互斥访问某一资源;从调度角度说,进程可以并发执行,而管程不可以,且管程是供各进程调用,所以也不可能与调用者并发;从结构上说,进程定义的是私的数据结构(PCB),而管程定义的公有数据结构,供其他进程访问。
11、进程间通信:各进程间信息交换;主要通信方式,共享存储器系统(包括共享数据结构和共享存储区)、消息传递机制、管道通信(和Linux下的管理通信属于同一概念)。
12、线程:轻型进程,系统独立调度的基本单位。
13、引入线程原因:进程作为资源拥有者,在创建、撤销、切换过程都会引起较大的时空开销,所以系统中并发进程的数量不能过多,切换也不能太频繁,从而限制了并发程度的提高。
14、进程与线程区别:从调度角度:进程是资源分配的基本单位,线程是系统调度的基本单位;从资源拥有角度看:进程拥有系统资源,而线程只拥有少量系统资源,但它可以共享所属进程的资源;从系统开销上看:线程不独立拥有系统资源,所以线程切换的系统开销远小于进程,除非线程切换会引起进程切换;从并发角度看:线程和进程一样,都可以并发执行,不仅同一个进程的线程可以并发执行,不同进程的线程也同样可以并发执行。
15、线程同样是三态:就绪状态、执行状态、阻塞状态。
16、线程间同步和通信:互斥锁,对临界资源互斥访问;条件变量;信号量。
17、内核支持线程与用户线程,内核态与用户态;
18、处理机三级调度:作业调度(高级调度)、进程调度(低级调度)、中程调度;
19、作业调度:把外存上处于后备队列中的作业调入内存。
作业调度主要用于批处理系统,分时系统或实时系统中,由于对响应速度要求较高,输入命令会直接送入内存。
作业选择:先来先服务、短作业优先、优先级调度
20、进程调度
主要功能:1)保存处理机的现场信息,2)选取进程,3)将处理机分配给进程;
调度方式:1)非抢占方式:直至当前进程完成,自愿释放处理机;
2)抢占方式:优先权原则、短作业优先原则、时间片原则;
21、中程调度实际上就是存储器管理的对换功能,将暂时不能运行的进程暂时调制外存。
21、调度算法:
原则:1)面向用户,时间短、响应快;2)面向系统,系统吞吐量高、处理机利用率高、资源平衡使用;
主要调度算法:
1)先来先服务原则:对短作业不公平,长作业耗时太长;
2)短作业优先原则:对长作业不公平,等待时间过长;
3)优先权调度算法:抢占式优先权(只要有优先权高的出现,立即切换进程)和非抢占式优先权
优先权类型:静态优先权、动态优先权(优先权随时间推进而改变)
4)时间片轮转调度算法:按先来先服务原则排列,每次调度时执行一个时间片,然后将处理机让给下一进程;
5)多级反馈调度算法:实质是时间片轮转和优先权的结合;设置多个队列,每个队列的优先级不同且时间片长度也不同,优先级越低,时间片越长;进程刚进来时优先级最高,执行完一个时间片后优先级降一级,只有当前一优先级没有任务时才会执行下一优先级。
22、实时调度基本条件:提供必要的信息(就绪时间、截止时间)、系统处理能力强、采用抢占式方式(大部分)、切换效率高。
调度方法:最早截止时间优先权调度算法、最低松弛度优先算法(根据任务紧急程度设置相应优先级)。