首先,在Xen分离设备驱动模型中,前端驱动通过事件通道、环缓冲区和授权表来和后端进行交互;
“事件通道”是类似于中断的一种机制,用于通知虚拟机对事件进行处理。当有请求等待处理,或者请求已经完成需要查收时,前端或者后端使用事件通道来通知对方。
“环缓冲区”,环状缓冲区,按页分配,里面放置请求和应答。环缓冲区采用生产者消费者模式,甲方首先放置请求,乙方获取并处理完请求后,将处理结果再次防置回环缓冲区中,甲方最后获取处理结果。甲乙方一次可以放置和处理多个请求,只要环状缓冲区还有空间。
“授权表”是一种页面访问授权机制。DomainA通过授权表操作,授权DomainB可以读写A的指定页面,授权表主要作用于前端与后端的大块数据传输。
“Xenstore”本质上是一个小的树状数据库,类似于windows中的注册表,主要用于存放各个虚拟机的配置数据。数据库存放在Domain0中,由一个守护进程负责对它操作(读、写、事件触发等等),前后端通信连接建立的过程中,使用Xenstore来传递授权