什么是cpu的调度

  • 所谓 CPU 调度,就是确定把哪个处于淮备就绪状态的进程移入运行状态。也就是说,CPU调度算法将决定把 CPU 给予哪个进程,以便它能够运行。

两种调度方式

  • CPU 调度可以是在一个进程从运行状态切换到等待状态或程序终止时发生的。这种类型的 CPU 调度叫作非抢先调度 (nonpreemptive scheduling),

    schedulig),因为对新的 CPU 进程的需要是当前执行进程的活动的结果。
  • CPU 调度还可以是在一个进程从运行状态转移到准备就绪状态或一个进程从等待状态转移到准备就绪状态时发生的。它们属于抢先调度 (preemptive scheduling),因为当前运行的进程被操作系统抢占了。
非抢先调度 (nonpreemptive scheduling ):当当前执行的进程自愿放弃了 CPU 时发生的 CPU调度。
抢先调度 ( preemptive scheduing):当操作系统决定照顾另一个进程而抢占当前执行进程的CPU 资源时发生的 CPU 调度。

周期

通常用特殊的标准(如进程的周转周期)水评佑调度算法。所谓周转周期(turnaround time),是从进程进入准备就绪状态到它退出运行狀态的时间间隔。进程的平均周转周期越短越好。

书中介绍的三种调度方法

先到先服务

按照进程就绪的先后顺序来使用CPU,处理器被分配给最先进入就绪队列的进程,进程一单分到CPU的使用权,就一直执行到进程结束或阻塞时才结束。



平均周转周期:(120+180+300+360+410)/5=214

最短作业优先

先给每个进程都设置一个优先级,根据比较优先级来确定下一个执行的进程;



平均周转周期:(50+110+230+410)/5=160

轮询法

分配给调度上CPU的进程,确定了允许该进程运行的时间长度。每个进程会被分配一个时间片,在这个时间片的时间段内,允许进程运行;如果在时间片结束时该进程还在运行,就会剥夺该进程得而CPU并分配给另一个进程;如果该进程在时间片结束前终止或者阻塞,则CPU会立即完成任务并进行切换。这种算法有利于交互式计算,响应的速度快,但是由于进程的切换,时间片轮转法要花费较多的内存开销,而且对于彼此进程间相差较大的有利,而对于进程大小相似或相同的则不利。





平均周转周期:((200+110)+(50+200)+(100+160+70+50)+(150)+(200+110+70+30))/5=300

cpu的调度的更多相关文章

  1. ARM CPU自动调度神经网络

    ARM CPU自动调度神经网络 对特定设备和工作负载进行自动调度,对于获得最佳性能至关重要.通过RPC使用自动调度器为ARM CPU调度整个神经网络. 为了自动调度神经网络,将网络划分为小的子图,进行 ...

  2. 为x86 CPU自动调度神经网络

    为x86 CPU自动调度神经网络 对特定设备和工作负载进行自动调试对于获得最佳性能至关重要.这是有关如何使用自动调度器为x86 CPU调试整个神经网络的文档. 为了自动调试神经网络,将网络划分为小的子 ...

  3. [OS] CPU调度

    调度准则 为了比较CPU调度算法,分析员提供了许多准则,用于比较的特征对确定最佳算法有很大影响.这些准则包括: ·CPU使用率:需要使CPU尽可能忙. ·吞吐量:一个时间单元内完成进程的数量. ·周转 ...

  4. 操作系统学习笔记:CPU调度

    CPU调度的目的在于提高CPU利用率,不让CPU闲着.CPU是宝贵的资源,如果有一个进程,本来在CPU中运行,忽然因为要使用IO资源,于是转而请求IO,这边CPU挂起,造成就绪队列中的其他进程等待,这 ...

  5. CPU 和内存虚拟化原理 - 每天5分钟玩转 OpenStack(6)

    前面我们成功地把 KVM 跑起来了,有了些感性认识,这个对于初学者非常重要.不过还不够,我们多少得了解一些 KVM 的实现机制,这对以后的工作会有帮助. CPU 虚拟化 KVM 的虚拟化是需要 CPU ...

  6. MySQL 调优基础(一) CPU与进程

    一般而言,MySQL 的调优可以分为两个层面,一个是在MySQL层面上进行的调优,比如SQL改写,索引的添加,MySQL各种参数的配置:另一个层面是从操作系统的层面和硬件的层面来进行调优.操作系统的层 ...

  7. CPU绑定操作

    使用virsh vcpuinfp命令查看虚拟机VCPU和物理CPU的对应关系 [root@svn ~]# virsh vcpuinfo 16 VCPU: 0 CPU: 3 状态: running CP ...

  8. SQLServer 维护脚本分享(06)CPU

    --CPU相关视图 SELECT * FROM sys.dm_os_sys_info SELECT * FROM sys.dm_exec_sessions SELECT * FROM sys.sysp ...

  9. Linux 2.4调度系统分析--转

    http://www.ibm.com/developerworks/cn/linux/kernel/l-k24sch/index.html 杨沙洲 (pubb@163.net)国防科技大学计算机学院 ...

  10. 简单OS(ucos超级精简版)——裸调度器【worldsing笔记】

    简单原则少ROM,少RAM,任务完成就让出CPU,调度器描述: 1.按最大任务数轮番调度: 2.任务调用延时接口将让出CPU使用权,进入下一个任务调度: 3.用户任务都处于延时或是不使用CPU运行Id ...

随机推荐

  1. 为什么要有jvm,jvm的作用?

    jvm的两个作用:第一.运行并管理java源码文件所生成的Class文件.第二.在不同的操作系统上安装不同的jvm,从而去实现跨平台的一个保障. 一般情况下,即使不熟悉jvm的运行机制,也不影响业务代 ...

  2. 《Python 3网络爬虫实战》示例源码免费下载

    #好书推荐##好书奇遇季#<Python 3网络爬虫实战>京东当当天猫都有发售. https://item.jd.com/12936936.html 本书配套示例源码,文后提供了下载二维码 ...

  3. Vulnhub 靶场 LOOZ: 1

    Vulnhub 靶场 LOOZ: 1 前期准备: 靶机地址:https://www.vulnhub.com/entry/looz-1,732/ kali攻击机ip:192.168.147.190 靶机 ...

  4. git如何把master合并到自己分支

    1.切换到主分支 git checkout master 2.使用git pull把master代码拉到本地 git pull 3.切换到自己的分支-->(XXX) git checkout X ...

  5. 原创:USB HID读卡器数据解析(R321-13.56MHZ读卡器)

    1.工具准备 USB 监视软件:Device Monitoring Studio7.25 PC端软件:单片机多功能调试助手 2.发送数据包 接收数据包 3.数据分析 usb hid(pc软件)发送帧( ...

  6. plsql和instantclient版本都对,依然不能初始化oci.dll解决办法

    这里写到 "初始化错误,不能初始化 oci.dll, 请确认你安装的是64位的Oracle客户端 " ,这个描述还是非常的到位啊,我一检查,果然下载的客户端是32位的,在确保自己的 ...

  7. 用Python把PDF文件转换成Word文档

    首先,下载所需要的库 1 :pdfminer   安装库命令: pip install pdfminer3k 2:  docx     安装库命令: pip install python_docx 开 ...

  8. mysql 创建表 datetime NOT NULL DEFAULT '0000-00-00 00:00:00' 默认值失败

    set global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREAT ...

  9. 处理code中代码格式化与eslint冲突

    在结尾去掉分号 让字符串格式化之后用单引号表示 去掉格式化后自动给末尾加的逗号 在根目录下新建一个文件prettierrc 输入如下 函数名与()之间取消空格 打开eslintrc.js 输入如下代码 ...

  10. [node]把静态html挂到node接口下

    主要适用于同网段下不同设备查看同一html. 来自知乎. 需要先安装一个node,安装过程不表. 新建文件:nodeServer.js var express = require('express') ...