BVT是一种CPU时间调度算法

基本原理

BVT是一种公平性优先的调度算法,该算法将时间分为实际时间和虚拟时间,其中实际时间为硬件计时器记录的时间,虚拟时间为对实际时间经过某种规则计算后得到的时间值。

该算法用虚拟时间来监控进程的执行时间,每次总是调度具有最早的有效虚拟时间的VCPU。这这种调度算法考虑到了运行实时和交互件的应用程序的一些Guest操作系统,允许这些操作系统“借”一些时间片,就是说:在一定范围内将未来分配给它运行的时间片先“借”过来用一段时间。这种“借”过来的虚拟时间片只能是当前真实的时间片中的某个虚拟时间片,不能借下一个真实时间 片中的虚拟时问片。在系统初始化时,每个VCPU将分配一个权值来代表该VCPU能获得的处理器份额。

VCPU根据其权值来实现处理器的公平共享。系统用实际虚拟时间和有效虚 拟时间来记录VCPU运行状态。其计算方式如下:

Ai =At + t/wi

Ei <— Ai - (warp?wi:0)

其中,t表示VCPU实际运行时长(由真实时间计算);wi表示该VCPU的权值大小;Ei表示有效虚拟时间;Ai表示实际虚拟时间;warp为时间偏移标记,表示VCPU能否提前运行;即为VCPU能提前运行的虚拟时间长度。

VT算法是一种抢占式的working-conserving模式算法。该算法通过warp值来调整EVT使VCPU获得处理器的时间提前,即VCPU从预定的有效虚拟时间中借用了一定的虚拟时间以获得更高的调度优 先级。

BVT的优缺点

BVT调度算法的优点在于可以将物理时间片公平、均匀地分配给各个Guest操作系统,每个Guest操作系统两次被调度的时间间隔不会超过一个真实的时间片;能够满足I/O密集型和实时应用的低时延要求,能较好地调度某些实时性要求比较高的操作系统;在单CPU和多CPU环境下的调度开销都比较小。

BVT调度算法的缺点有以下几点:首先,BVT不支持non-working-conserving。也就是说,每当当前domain被加载运行时,它将获得整个CPU。用户不能把某个将某个domain对CPU的使用限制在某个比例以下。其次,每个Guest OS只能借用分给它的时间片部分,而不会剥夺其他Guest OS的时间片。即当确定了各个domain的时间片分配比例后,这个比例在下次分配之前不会改变。

Linux内核中的cgroup中的cpu组件部分就可通过cpu.bvt_warp_ns设置warp时间。

BVT(Borrowed Virtual Time )调度算法相关推荐

  1. Xen和虚拟化技术学习指南

    1. 引言 现代计算机具有足够强大的能力来利用技术支持多个虚拟机(VM: virtual machines),并且在每个虚拟机上各自运行单独的操作系统实例.这直接导致了虚拟机技术发展的又一个春天.在本 ...

  2. 【阅读总结】Xen and the Art of Virtualization

    文章目录 0. 本文关键名词解释 1. Prequisites知识.概念总结 2. 现有的虚拟化技术特点,Xen的不同 3. x86架构下的半虚拟化接口设计 3.0 概述 3.1 内存管理 3.2 C ...

  3. 天猫双11凭什么达到1682亿?这些支撑技术或许可以告诉你

    历年「双 11」都会掀起一股买买买的购物热潮 阿里巴巴将这个原本普通的日子赋予了非凡的意义 今年,天猫以 1682 亿的成交额再破记录 而在这一系列疯狂"秒杀"动作的背后 有一个叫 ...

  4. LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍

    LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍 LVS (Linux Virtual Server) LVS(Linux Virtual Server)其实就是 ...

  5. LVS原理详解(3种工作方式8种调度算法)--老男孩

    一.LVS原理详解(4种工作方式8种调度算法) 集群简介 集群就是一组独立的计算机,协同工作,对外提供服务.对客户端来说像是一台服务器提供服务. LVS在企业架构中的位置: 以上的架构只是众多企业里面 ...

  6. 使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务

    使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务 一.基于于NAT的LVS的安装与配置. 1. 硬件需求和网络拓扑                       ...

  7. LVS三种工作模式介绍对比和十种调度算法介绍

    2019独角兽企业重金招聘Python工程师标准>>> 工作模式介绍: 1.Virtual server via NAT(VS-NAT) 优点:集群中的物理服务器可以使用任何支持TC ...

  8. 【Linux 内核】CFS 调度器 ① ( CFS 完全公平调度器概念 | CFS 调度器虚拟时钟 Virtual Runtime 概念 | 四种进程优先级 | 五种调度类 )

    文章目录 一.CFS 调度器概念 ( 完全公平调度器 ) 二.CFS 调度器虚拟时钟概念 ( Virtual Runtime ) 三.进程优先级 ( 调度优先级 | 静态优先级 | 正常优先级 | 实 ...

  9. lvs的调度算法有几种_LVS:三种负载均衡方式比较

    1.什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很 ...

最新文章

  1. MongoDB数据库(二:高级操作)
  2. python第三方库有哪些常用的、请列举15个-python基础面试常见题
  3. oracle 11g 从rman全备中恢复控制文件,拥有RMAN全备(缺少后增文件),丢失全部数据文件,控制文件的恢复...
  4. Qt Creator添加Qt Designer插件
  5. php fopen 图片下载,php curl与fopen下载远程服务器图片实例
  6. 【模板】第二类斯特林数Stirling
  7. SAP CRM 中间件对物料batch ID的处理
  8. 数据库连接池的选择及其开发配置
  9. C++编写Windows服务程序
  10. git的一些简单使用
  11. Ant Design UI 框架的的安装及使用
  12. 信息系统项目管理师---第八章 项目质量管理
  13. 如何查看局域网络计算机资料,怎么查看局域网内所有电脑的信息
  14. 【DSP】【第二篇】了解C6678和创建工程
  15. linux filesystem not open,LVM 'Can’t open /dev/sdb1 exclusively. Mounted filesystem?' Problem
  16. 快恢复二极管工作原理及使用
  17. Windows10系统 定时开/关机设置
  18. 公交查询系统Android源代码,公交查询源码
  19. 黎曼的zeta函数(1)
  20. mw320r虚拟服务器,新版水星MW320R路由器设置教程 | 192路由网

热门文章

  1. 爬虫-代理和selenium
  2. Verilog inout端口使用详解
  3. 数学与计算机科学学院教授,南京师范大学数学与计算机科学学院
  4. 2021-11-30 股票交易日志(7)
  5. Liquibase学习1 - 安装、简单使用
  6. 计算机中阶符,阶码,数符,尾数是什么?
  7. 2023年天津高考数学压轴题:Stirling‘s approximation
  8. ccf中学生程序设计(入门篇)个人小结
  9. 软件生命周期的基本任务
  10. 一文带你了解动态NAT以及NAPT实验配置