• 计算机硬件---调度与死锁


    进程调度原因及调度切换时机,进程调度方式与实现及各种调度算法的个人总结:

    1.一般调度概念 1)什么是调度 就是选出待分派的作业或进程。 操作系统管理了系统的有限资源,当有多个进程(或作业)发出请求要使用这些资源时,因为资源的有限性,必须按照一定的原则选择进程(或作业)来占用资源。这就是调度。

    2)调度目的 1.控制资源使用者的数量 2.选取资源使用者 3.许可哪些使用者占用资源 4.让使用者直接占用资源。

    二、调度类型 1、高级调度(长程调度)。 即作业调度,选取输入井中的作业,生成根进程。目的是控制使用系统资源的进程数。

    2、中级调度(中程调度)。 指选取进程占用内存或有资格占用内存,又称进程滚入滚出,中级调度将在存储管理章节中介绍,有页式调度、段式调度、段页式调度等。

    3、低级调度(短程调度) 指选取进程占用处理机,又称进程调度。 4、I/O调度 选取进程占用I/O设备。

    三、调度和状态转换 在许多系统中,调度被分为三种:长程、中程和短程。 1)调度和进程状态转换

    从状态转换的观点: 1、长程调度(作业调度)就是将一个或一批作业从后备状态变为运行状态。一个作业一旦被高级调度选中,便可获得所需要的基本内存和设备资源,并被装入内存,此后就以进程形式参与并发执行,与其它进程竞争CPU。

    从状态转换的观点: 2、中程调度就是将进程从活动态变为静止的挂起态,或者将进程从挂起态变为就绪或阻塞态。 3、短程调度就是将某个进程从就绪态变为(在CPU上运行的)执行态。

    2)调度的层次(调度作用的嵌套关系)

    3)三级调度示意图 调度从根本上讲,是要使队列延迟的时间最小,并优化系统的执行效率

     

    4.1.2作业调度的功能

    ①记录系统中各个作业的情况。 ②按照某种调度算法从后备作业队列中挑选作业,即决定接纳多少个作业进入内存和挑选哪些作业进入内存。

    ③为选中的作业分配内存和外设等资源。 ④为选中的作业建立相应的进程,并把该进程放入就绪队列中。 ⑤作业结束后进行善后处理工作。如输出必要的信息,收回该作业所占用的全部资源,撤消与该作业相关的全部进程和该作业的JCB 。

    4.1.3进程调度的功能与调度时机 一、进程调度的功能 (1)保存现场(2)挑选进程(3)恢复现场

    二、进程调度的时机 一般在下列事件发生后要执行进程调度。 (1)创建进程。 当进程创建时,要决定是运行父进程还是子进程。 (2)进程终止。 (3)等待事件。 (4)中断发生。 (5)运行到时。

    4.1.4进程调度的基本方式 1)非剥夺调度(非抢占) 只有当处理机上的进程主动放弃处理机时,才重新调度。 2)剥夺调度(抢占) 当进程运行时可以被系统以某种原则为由剥夺其处理机。

    例:只有一部电话机,小李正在通电话,此时小张有急事也要打电话,此时小张的调度方式有两种: 一种是非抢占,即等待小李打完电话,自己再打电话。 另一种是抢占,不等小李通完电话,抢过话筒就拨打电话。

    3)进程调度在核心态进行。 ★CPU状态有两种,目态和管态。 管态——也称核心态或系统态,系统程序在CPU上运行的状态。 目态——用户程序在CPU上运行的状态。

    4.2 调度算法 4.2.1 常用的调度算法

    1. FCFS 谁先到就绪队列就将处理机分给谁。 2. 短作业优先 取一个下次所需运行时间最短的作业(该算法能使平均等待时间最短)。

    3. 优先级调度 选优先级最高的进程占用处理机(优先级可动态改变)。 4.轮转调度法 以先来后到的次序+ 时间片轮转。

    5.多队列调度法 按属性将就绪进程分类,不同类进程可有不同的调度算法。 6.多级反馈队列调度法 设置多条就绪队列,进程被调度执行后,在被剥夺或放弃处理机后而在就绪时,可以改变其就绪队列(见下图)。

    又一个多级反馈队列调度算法的例子:使用优先权实现调度。做法如下:

    (1)以优先级设置多队列。 (2)各队列的调度算法采用FCFS+时间片轮转. (3)进程优先级升降原则是:等待过久升,输入/输出完成时升,运行完一个完整时间片降……

    (4)进程最初进入就绪队列以用户初置优先级为参数。 (5)开始调度时,先从最高优先权的就绪队列(RQ0)开始选取一个进程,如果RQ0空,则检查RQ1,如此下去。见下图示:

    4.2.2 调度策略的讨论

    一、调度性能评价准则 1、CPU利用率。 2、吞吐率。即每单位时间所完成的作业数目。 3、周转时间。即从作业提交直至完成这一作业的时间间隔。

    4、等待时间。即作业在就绪队列中等待所花的时间。 5、响应时间。即从作业提交到首次产生回答信息之间的时间。

    二、主要的调度算法 下面以表所示的进程集作为范例讨论不同的调度策略。 到达时间:进程或作业提交时间。 服务时间:进程要求服务的时间,或完成作业所需的时间。

    一、FCFS调度策略(或先进先出)

     

     

    FCFS策略更适合于长进程。例:

    注:周转时间=完成时间—到达时间 tq/ts :带权周转时间=周转时间/服务时间

    (1)进程C的等待标准化时间是不能容忍的。它位于系统的总时间是它所需服务时间的100倍。无论何时,一个长进程到后,一个短进程就会出现较长的等待。 (2)进程D的标准化等待时间尚可容忍,小于2.0。进程D的轮转时间差不多是C的两倍。

    总结: FCFS(First Come First Served)即先来先服务,故它的本质是非抢占的。它简单易行,但调度性能较差,有可能使短的、重要的或紧迫的作业等进程长期等待,其实现过程容易,可采用FIFO队列管理。

  • 相关阅读:
    请朋友做事,须以名誉为限,为朋友做事,亦须以名誉为限
    这世上总有一些人记得你,关注着你,牵挂着你
    杏花春雨已不再,牧童遥指已不再,剑门细雨渭城轻尘也都已不再
    如果要你做鲁滨逊,你会选第三型还是第二型的朋友做“礼拜五”呢
    人类最不能伤害的就是自尊
    单靠理论和教训是无济于事的
    交真朋友已是件比较奢侈的事儿
    他一定是一个懂生活、懂人生,爱自己、爱别人的人
    国子监,就是从前的大学
    只有把理想和现实有机结合起来,才有可能成为一个成功之人
  • 原文地址:https://www.cnblogs.com/mutudou/p/11858946.html
Copyright © 2020-2023  润新知