发明名称 一种先入先出队列调度方法及装置
摘要 本发明公开了一种先入先出队列调度方法和装置,本发明方案未使用自旋锁,以原子操作读取FIFO队列的当前头计数H和尾计数T,在原子比较交换函数中完成判断是否有其它核执行入队或出队操作及实际入队或出队计数的计数操作。本发明中,需要多核互斥操作的保护代码段的范围很小,没有多核加锁和解锁的开销,能够提高多核设备对FIFO队列的调度效率。
申请公布号 CN104168217A 申请公布日期 2014.11.26
申请号 CN201410404736.5 申请日期 2014.08.15
申请人 杭州华三通信技术有限公司 发明人 董君
分类号 H04L12/863(2013.01)I 主分类号 H04L12/863(2013.01)I
代理机构 北京博思佳知识产权代理有限公司 11415 代理人 林祥
主权项 一种先入先出队列调度方法,其特征在于,该方法包括:在报文入队时:以原子读操作获取队列尾计数T赋值给缓存变量Tcur,当判定当前队列未满时,在原子比较交换函数中判断当前的队列尾计数T是否等于所述缓存变量Tcur,若相等,则在所述原子比较交换函数中将当前队列尾计数T指向下一待入队位置,若不相等,则所述原子比较交换函数直接返回当前的队列尾计数T的值;判断函数返回值与所述缓存变量Tcur值是否相等,若相等则以所述缓存变量Tcur对队列总长度S取余所得值作为入队位置执行报文入队操作;若不相等则返回所述以原子读操作获取队列尾计数T赋值给缓存变量Tcur的步骤,再次执行上述入队步骤;在报文出队时:以原子读操作获取队列头计数H赋值给缓存变量Hcur,当判定当前队列不为空时,在原子比较交换函数中判断当前队列头计数H是否等于所述缓存变量Hcur,若相等,则在所述原子比较交换函数中将当前队列头计数H指向下一待出队位置,若不相等,则所述原子比较交换函数直接返回当前队列头计数H的值;判断函数返回值与所述缓存变量Hcur,若相等则以所述缓存变量Hcur对队列总长度S取余所得值作为出队位置执行报文出队操作;若不相等则返回到所述以原子读操作获取队列头计数H赋值给缓存变量Hcur的步骤,再次执行上述出队步骤;其中,所述队列尾计数T和队列头计数H为原子变量。
地址 310052 浙江省杭州市滨江区长河路466号
您可能感兴趣的专利