操作系统CPU调度知识点

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、内核支持线程与用户线程

     内核态:进程执行的是内核代码

     用户态:进程执行的用户自己的代码

根据操作系统内核是否对线程可感知,可以把线程分为内核线程和用户线程。

      内核线程建立和销毁都是由操作系统负责、通过系统调用完成的,操作系统在调度时,参考各进程内的线程运行情况做出调度决定,如果一个进程中没有就绪态的线程,那么这个进程也不会被调度占用CPU。

      和内核线程相对应的是用户线程,用户线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,用户进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。用户线程多见于一些历史悠久的操作系统,例如Unix操作系统,不需要用户态/核心态切换,速度快,操作系统内核不知道多线程的存在,因此一个线程阻塞将使得整个进程(包括它的所有线程)阻塞。由于这里的处理器时间片分配是以进程为基本单位,所以每个线程执行的时间相对减少为了在操作系统中加入线程支持,采用了在用户空间增加运行库来实现线程,这些运行库被称为“线程包”,用户线程是不能被操作系统所感知的。

引入用户线程,具体而言,有以下四个方面的优势:

(1)可以在不支持线程的操作系统中实现。
(2)创建和销毁线程、线程切换代价等线程管理的代价比内核线程少得多。
(3)允许每个进程定制自己的调度算法,线程管理比较灵活。
(4)线程能够利用的表空间和堆栈空间比内核级线程多。

用户线程的缺点主要有以下两点:
(1)同一进程中只能同时有一个线程在运行,如果有一个线程使用了系统调用而阻塞,那么整个进程都会被挂起。
(2)页面失效也会产生类似的问题。

内核线程的优缺点刚好跟用户线程相反。实际上,操作系统可以使用混合的方式来实现线程。



18、处理机三级调度:作业调度(高级调度)、进程调度(低级调度)、中程调度;

19、作业调度:把外存上处于后备队列中的作业调入内存。

      作业调度主要用于批处理系统,分时系统或实时系统中,由于对响应速度要求较高,输入命令会直接送入内存。

      作业选择:先来先服务、短作业优先、优先级调度

20、进程调度

      主要功能:1)保存处理机的现场信息,2)选取进程,3)将处理机分配给进程;

      调度方式:1)非抢占方式:直至当前进程完成,自愿释放处理机;

                        2)抢占方式:优先权原则、短作业优先原则、时间片原则;

21、中程调度实际上就是存储器管理的对换功能,将暂时不能运行的进程暂时调制外存。

21、调度算法:

      原则:1)面向用户,时间短、响应快;2)面向系统,系统吞吐量高、处理机利用率高、资源平衡使用;

     主要调度算法:

      1)先来先服务原则:对短作业不公平,长作业耗时太长;

      2)短作业优先原则:对长作业不公平,等待时间过长;

      3)优先权调度算法:抢占式优先权(只要有优先权高的出现,立即切换进程)和非抢占式优先权

      优先权类型:静态优先权、动态优先权(优先权随时间推进而改变)

      4)时间片轮转调度算法:按先来先服务原则排列,每次调度时执行一个时间片,然后将处理机让给下一进程;

      5)多级反馈调度算法:实质是时间片轮转和优先权的结合;设置多个队列,每个队列的优先级不同且时间片长度也不同,优先级越低,时间片越长;进程刚进来时优先级最高,执行完一个时间片后优先级降一级,只有当前一优先级没有任务时才会执行下一优先级。

22、实时调度基本条件:提供必要的信息(就绪时间、截止时间)、系统处理能力强、采用抢占式方式(大部分)、切换效率高。

     调度方法:最早截止时间优先权调度算法、最低松弛度优先算法(根据任务紧急程度设置相应优先级)。

23、死锁:多个进程运行过程中因争夺资源而形成的僵局;

       产生原因:1)资源竞争;2)程序运行推进顺序非法;

      产生死锁必要条件:1)互斥条件,2)请求与保持,3)不剥夺条件,4)环路等待条件

     预防死锁:破坏产生死锁四条件中的一个,但互斥条件是无法破坏的;

     1)摒弃“请求与保持”:进程运行前必须一次申请其在运行过程中所需要的所有资源;

     2)摒弃“不剥夺条件”:但进程已经保持某一资源,又提出新的请求,但无法被满足时,应该放弃所保持的资源,待需要时再重新申请;

     3)摒弃“环路等待条件”:资源申请必须按资源序号顺序提出,要申请序号低的资源必须要首先拥有序号高的资源。

    检测死锁:当且仅当S状态的资源分配图是不可完全简化时,S为死锁状态;

    死锁解除:1)剥夺足够的资源给死锁进程,以解除死锁状态 ,2)撤销所有死锁进程或按顺序撤销,直至死锁被解除;



    

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值