SylixOS事件集实现原理-创新互联

1 事件集简介

创新互联建站是一家专注于网站设计、成都网站制作与策划设计,沙河口网站建设哪家好?创新互联建站做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:沙河口等地区。沙河口做网站价格咨询:028-86922220

      事件集是一种线程间通讯方式,可有效处理线程与线程之间的资源生产与消费的同步问题。在SylixOS中事件集被定义为ULONG类型,每一位代表一个事件,即一个事件集可以处理32个不同的事件。事件集提供了发送和等待事件的API,资源生产者在资源准备好后发送事件,资源消费者则等待接收事件,如图 1.1所示。

SylixOS事件集实现原理

图 1.1 事件集

2 事件集数据结构

     SylixOS中事件集相关的数据结构主要有两个,即事件集对象资源管理块与事件集缓冲区。系统事先准备好固定数量的事件集缓冲区,当应用申请事件集时则从缓冲区中选取未使用的节点。事件集缓冲区由事件集对象资源管理块管理,如图 2.1所示。

SylixOS事件集实现原理

图 2.1 事件集结构

3 事件集创建流程

     事件集的创建流程本质上就是准备事件集控制节点的过程。首先检查事件集缓冲区中是否有空余位置,若已满则返回错误。若还存在空余位置则获取此位置并按照接口参数要求配置此控制节点以备后用,如图 3.1所示。

SylixOS事件集实现原理

图 3.1 事件集创建流程

4 事件集发送流程

      事件集发送流程首先需要在缓冲区中找到对应的事件集控制节点,然后按照接口参数的要求设置或清空对应的事件状态位。当对应的事件状态被修改后还需要检查当前此事件集中是否有正在等待的线程。若有则判断当前的修改是否满足此线程的唤醒条件,满足则唤醒此线程,即将线程加入就绪队列中,如图 4.1所示

SylixOS事件集实现原理

图 4.1 事件集发送流程

5 事件集接收流程

     在接收事件集时首先会判断当前是否满足激活条件,即是否有线程发送满足条件的事件集。若没有则线程会被阻塞,等待条件被满足。线程阻塞可以设置超时时间,若此时间内没有接收到满足条件的事件集则返回超时标志,如图 5.1所示。

SylixOS事件集实现原理

图 5.1 事件集接收流程

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:SylixOS事件集实现原理-创新互联
本文URL:http://scyanting.com/article/dhpcjd.html