• 操作系统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)撤销全部死锁进程或按顺序撤销,直至死锁被解除;



        

  • 相关阅读:
    ORMs Under the Hood
    django-spaghetti-and-meatballs 0.2.0 : Python Package Index
    Django
    What is entity relationship diagram?
    Sov5搜索
    Django中国社区
    Django中的Model(字段)
    Django中的Model(操作表)
    Fbric、Ansible、Docker、Chaos Monkey:DevOps工具的年中回顾
    基于ansible role实现LAMP平台批量部署
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6780534.html
Copyright © 2020-2023  润新知