zoukankan      html  css  js  c++  java
  • Os学习笔记之处理机调度

         首先搞清楚两个概念:作业(用户提交的任务)和进程(作业在处理过程中分成的活动单位)。作业调度是指选择哪一个作业分配资源建立作业对应的进程。

    进程调度则确定进程何时取得处理机。

         1.作业调度

              1.1 作业状态

                     提交,后备,执行和完成状态。

              1.2 作业调度功能

                    确定数据结构(分配JCB作业控制块)、确定调度算法(由作业调度程序完成)、分配资源(由进程调度程序完成)、善后处理

                   注:作业调度程序只保证被选中的作业具有使用处理机的资格,而具体的分配由进程调度程序完成

              1.3 调度性能的衡量

                     平均周转时间:周转时间的平均值

                     平均带权周转时间:带权周转时间的平均值。周转时间和实际执行时间的平均值

              1.4 作业调度算法

                     1) 先来先调度

                     2)短作业优先调度

                     3)响应比高者优先  (响应比=1+作业等待时间/执行时间)

                     4)优先调度算法 按照优先数

          2.进程调度

                      进程调度可细分为调度和分派两个功能,调度负责将进程插入现有队列并且按一定原则保持队列结构。分派程序是将进程从就绪队列中移除并且

                 建立他的执行的机器状态。

              2.1 进程调度的功能

                    1)记录和保持系统中所有进程的有关情况和状态特征(通过登记PCB控制块的信息)

                        进程进入就绪队列的排序原则体现了调度算法

                    2)决定分配策略

                         由队列排序原则体现

                    3)实施处理机的分配和回收

              2.2 调度方式

                    抢占式和非剥夺

              2.3  CPU受限制的进程和I/O受限制的进程

                     CPU受限制的进程多为计算量较大的进程,I/O消耗性的进程则为和用户互交性比较高的进程

              2.4 进程优先数调度算法

                    Linux实现了基于动态优先级的方法,一开始,每个进程被设置默认的优先级(Nice值)。如果运行过程中在I/O等待上花费的时间多,说明是

                    I/O消耗型的进程,则优先级会被动态提高。

                    时间片是一个轮转调度中一个进程所获得的占用处理机 的时间片段,在一个进程的 时间片变为0时,其处理机的占用权会被抢占。

                    ※下面简单介绍下Linux中优先数和时间片的计算:

                       调度程序中最基本的数据结构是运行队列。可执行队列是给定处理器上的可执行进程的链表,每个处理器一个。每个运行队列有两个优先级数

                       组。

                       一个过期的一个活跃的,在活跃的优先级数组中的进程的时间片全部用尽之后,就被接入过期的优先级数组中,当活跃的优先级数组中已经为空

                       的时候,就直接把活跃的优先级数组和过期的优先级数组交换。这样Linux的调度核心就是O(1)级的

                          在动态计算进程的 优先级的时候,Linux通过一个关于静态优先级和进程交互性的函数关系计算而来。交互性强的 程序会获得较多的优先级

                       奖励,而交互性弱的程序优先级则会比初始优先级低。

                       在Linux中,通过sleep_avg来记录进程的休眠和执行的时间,如果一个进程休眠时间长,sleep_avg↑,执行则↓。所以如果一个进程占用处

                       理 器时间大幅上升,则sleep_avg的值下降,要获得更大的优先级。

              2.5 循环轮转调度

  • 相关阅读:
    【重大更新】Qlik Sense September 2018重磅发布(附下载)
    sharepoint多个NLB的web前段如何进行文件同步?
    通过组策略实现Firefox自动以当前域账号登录MOSS站点---(原创)
    EWS API 2.0读取日历信息-读取内容注意事项
    Dotfuscator混淆加密
    如何:在 SharePoint 中创建外部列表
    java学习笔记—HTTP协议(10)
    java学习笔记—Tomcat(9)
    java学习笔记DOM4J解析(7)
    php中mvc框架总结1(7)
  • 原文地址:https://www.cnblogs.com/ITEagle/p/1729367.html
Copyright © 2011-2022 走看看