您的位置:首页 > 运维架构 > Linux

关于linux实时抢占补丁

2016-07-24 15:20 232 查看

关于RT-Preempt Patch:

标准的Linux内核只达到了软实时的要求:对用户空间的时间处理提供了基本的POSIX操作,但是对硬时间限制没有保证。通过Ingo Molnar的Realtime Preemption patch(简称为RT-Preempt)和Thomas Gleixner的有着高精度支持的通用时钟事件层,内核就获得了硬实时的能力。

RT-Preempt patch在业界已经获得了广泛的关注,它简洁的设计和向主线整合的目标使得它成为硬实时应用程序的有趣选择,不论是专业调音台还是工业控制。

当这个patch变得越来越有用,重要的组成部分进入了Linux内核,我们觉得很有必要为它写更多文档。本文浓缩概述了RT-Preempt内核及其使用。


RT-Preempt把Linux变成一个完全可抢占的内核,改变有以下几点:

1.通过rtmutexes的重新实现使内核里的锁源语(使用自旋锁)可被抢占

2.以前被如spinlock_t和rwlock_t保护的临界区现在变得可以被抢占了。使用raw_spinlock_t创建不可抢占区域(在内核中)依旧是可能的(类似spinlock_t的相同API)。

3.为内核里的自旋锁和信号量实现优先级继承。更多优先级反转和优先级继承的信息请参考: http://www.embedded.com/story/OEG20020321S0023

4.把中断处理器变为可被抢占的内核线程:RT-Preempt patch在内核线程上下文中处理软中断处理器。

5.把老的Linux计时器API变成分别的几个基本结构,有针对高精度内核计时器的还有一个是针对超时的,这使得用户空间的POSIX计时器具有高精度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: