使用事件通道

原创 2015年07月06日 21:38:11
  1. 事件和中断

    事件是从Hypervisor到客户机,或者客户机之间传递消息的标准机制。从概念上类似于Unix的信号,每一个事件传递一位信息:也就是对应事件已经发生。信号传递标准方式是通过一个来自Hypervisor的向上调用(upcall),像信号一样,当另一个事件正在被处理时,消息任然能够被传递。因此在一个事件处理过程中国通常禁用事件传递。与UNIX不同的是,在传递被禁止时所发生的事件并不会发生丢失,在对应出过程被重新使用后,他们不会被传输,但是通过查询共享信息页面中的相关虚拟VCPU结构体可以检查到现有的尚未处理的事件。在很多情况下,Xen事件替代了硬件中断。中断是一种异步通信的事件,标识与机器硬件相关的一些事情发生。事件时一种异步传输的事件,标识和虚拟机相关的事件发生。一个实际的网卡在每次数据包到达的时候会发生一个信号,而虚拟接口会发送一个事件。

  2. 处理陷阱(Trap)

    除了事件之外,Xen还提供了一种异步通知的更底层形式-陷阱。和事件能够动态创建和绑定不同,Trap具有静态意义,直接对应于硬件中断。在IA32规范中将中断分为3大类:被使用的,未被是应该的,以及被保留的。最前面20个中断都是被使用的,接下来的11个中断是被保留的,剩余的则是未被是使用的。在未被使用的中断中,80h通常被用于系统调用。传递一个trap所需要的代码路径比传递时间所需的代码路径更加简单。当客户机运行在一个特定CPU上,Hypervisor为 guest Domain设置中断描述表(IDT),这意味着所有的中断都被客户机直接处理,从而中断处理路径将不再涉及Hypervisor。
    Xen guest Domain不能使用SYSCALL或SYSENTER来完成快速系统调用,应为他们将直接跳转到Hypervisor常驻的特权级0,接着必须返回guest OS kernel,而更多传统80h中断的方法被使用是通过该80h建立陷阱向量,使得guest Domain能够处理系统调用,而不需Hypervisor参与。与半虚拟化不通过,HVM guest kernel运行在ring0,而Hypervisor运行在一个新的模式中,对特权级0影藏,这意味着提供快速跳转到Ring 0功能的SYSCALL和SYSETER能够用于系统调用该。

  3. 事件类型
    事件分为3大类:域间事件(interdomain events)、物理IRQ、虚拟IRQ。
    物理IRQ:他们是实际的IRQ到事件通道的映射,与trap不同,即使Domain没有被调度运行时,事件也会别写入队列中,在Domain被调度运行时事件被传递,它们应该被用于与硬件设备通信中。
    虚拟IRQ:它们类似于物理IRQ,但是与虚拟设备相关。
    Domain间事件:它的定义更加模糊,它们由两个阶段过程创建出来,一个Domain分配一个新的未绑定通道,并允许其他Domain绑定到该通道。第二Domain分配一个新的未绑定通道到远端Domain端口处。

  4. 请求事件
    请求事件时一个相当简单的过程,所有需做的绑定一个事件通道到一个事件源。–实际的IRQ或者远端Domain的事件通道。
    一、绑定通道到一个事件源;
    二、为该事件分配一个处理程序。

  5. 绑定事件通道到VCPU上
    对于但处理器的guest Domain,事件被传递给唯一一个VCPU。对于SMP的guest Domain,可能给定事件对应的处理程序希望被绑定到特定VCPU。在非虚拟化客户机这更有用,应为这样可以更好的利用该处理器的缓冲;在虚拟化系统中同样有用,这样允许实现更加廉价的加锁操作,以及更加灵敏的调度决策。

版权声明:本文为博主原创文章,未经博主允许不得转载。

【物联网】施密特辞任谷歌母公司董事长!他非常直接地说,互联网将消失!

一代传奇科技领袖退休了。施密特辞任Alphabet执行董事长:他用了17年成就谷歌  美国时间 12 月 21 日,Google 的控股母公司 Alphabet 宣布,埃里克·施密特 (Eric Sc...
  • np4rHI455vg29y2
  • np4rHI455vg29y2
  • 2018年01月02日 00:00
  • 1293

WiFi-ESP8266入门开发(十五)-HTTP客户端

介绍 HTTP(超文本传输​​协议)是标准的应用协议,用作客户端和服务器之间的请求 - 响应协议。 HTTP客户端有助于发送HTTP请求并从HTTP服务器接收HTTP响应。 广泛应用于家庭自动化...
  • solar_Lan
  • solar_Lan
  • 2018年02月03日 20:39
  • 50

xen事件通道机制及其实例

事件通道机制是xen用于Domain和Xen之间,或者Domain和Domain之间的异步事件通知机制。事件通道在xen中应用非常广泛,像物理中断,虚拟中断以及域间通信等均是通过事件通道实现的。 根据...
  • ajfgurjfmvvlsfkjglkh
  • ajfgurjfmvvlsfkjglkh
  • 2016年01月26日 19:45
  • 1282

CORBA的事件机制以及对象适配器简介

 1.对象管理组事件服务(Event Service):CORBA通过使用事件服务实现异步调用。事件模型中事件提供者生成事件,事件使用者接收事件,事件提供者和事件使用者都连接在一个事件通道上。事件通道...
  • chjttony
  • chjttony
  • 2011年06月14日 11:04
  • 3184

【物联网】施密特辞任谷歌母公司董事长!他非常直接地说,互联网将消失!

一代传奇科技领袖退休了。施密特辞任Alphabet执行董事长:他用了17年成就谷歌  美国时间 12 月 21 日,Google 的控股母公司 Alphabet 宣布,埃里克·施密特 (Eric Sc...
  • np4rHI455vg29y2
  • np4rHI455vg29y2
  • 2018年01月02日 00:00
  • 1293

物联网的核心究竟是什么?

物联网的核心究竟是什么? 从智能化到社会化、互联网+到物联网X、大数据到大事件     编者按       2015年5月20日,一个中国人值得骄傲的日子,刘海涛团队代表中国,在与美日等...
  • leekwen
  • leekwen
  • 2015年08月26日 12:50
  • 657

Xen事件通道详细介绍(四)

4、事件通道的使用 在GOS内部,除了位于特权级1的GOS内核需要使用事件通道外,位于特权级3的应用程序也可能需要使用事件通道。为此,Xen采用了类似于特权级3使用超级调用的方式(privcmd内核...
  • lkn910907
  • lkn910907
  • 2015年03月02日 14:57
  • 735

kernel 3.10代码分析--KVM相关--虚拟机创建

1、基本原理 如之前分析,kvm虚拟机通过对/dev/kvm字符设备的ioctl的System指令KVM_CREATE_VM进行创建。 对虚拟机(VM)来说,kvm结构体是关键,一个虚拟机对应一个...
  • wyh991131
  • wyh991131
  • 2015年11月19日 17:13
  • 710

【机器视觉】计算机视觉必读:图像分类、定位、检测,语义分割和实例分割方法梳理

文章来源:新智元作者:张皓【导读】本文作者来自南京大学计算机系机器学习与数据挖掘所(LAMDA),本文直观系统地梳理了深度学习在计算机视觉领域四大基本任务中的应用,包括图像分类、定位、检测、语义分割和...
  • np4rHI455vg29y2
  • np4rHI455vg29y2
  • 2018年02月04日 00:00
  • 136

linux下C编程详解

 linux下C编程详解 linux操作系统下 c语言编程 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序...
  • JoysonQin
  • JoysonQin
  • 2017年03月22日 14:39
  • 558
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用事件通道
举报原因:
原因补充:

(最多只允许输入30个字)