今天下午楼主大学尼古拉斯教授来工大介绍RTlinux,坚持听了一个下午,什么也没有听懂。看来英语是白学这么多年了。听不懂,但是咱会百度啊。百度了一下,放大连接和资料,呵呵。。。 。。。
1.他们的实验室,RTlinnux就在中国,呵呵!
2.
Nicholas Mc Guire简介。members/hofrat/
3.chinaunix博客上的一篇RTlinux介绍。http://blog.chinaunix.net/u1/48817/showart_421479.html
4.RTlinux百度知道。
听说他还要来我们实验室看看。这次一定要好好和他对上两句,嘿嘿。。。。。。。
RTlinux是源代码开放的具有硬实时特性的多任务操作系统,它是通过底层对Linux实施改造的产物。通过在L
inux内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的Linux内核作为实时内核的一个进程与用户进程一起调度,标准的L
inux内核的优先级最低,可以被实时进程抢断。正常的Linux进程仍可以在Linux内核上运行,这样既可以使用标准分时操作系统即Linux的各种
服务, 又能提供低延时的实时环境 。
RTLinux是美国新墨西哥州大学计算机科学系VictorYodaiken和Micae
Brannanov开发的。它在Linux内核的下层实现了一个简单的实时内核,而Linux本身作为这个实时内核的优先级最低的任务,所有的实时任务的
优先级都高于Linux系统本身的以及Linux系统下的一般任务。RTLinux的体系结构如图1所示。
RTLinux的设计思想是:应用硬件的实时约束将实时程序分割成短小简单的部分,较大部分承担较复杂的任务。根据这一原则,将应用程序分为硬实时和程序
2个部分。硬件实时部分被作为实时任务来执行,并从外部设备拷贝数据到一个叫做实时有名管道(RTFIFO)的特殊I/O端口;程序主要部分作为标准
Linux进程来执行。它将从RTFIFO中读取数据,然后显示并存储到文件中,实时部分将被写入内核。设计实时有名管道是为了使实时任务在读和写数据时
不被阻塞。图2所示的是实时有名管道结构图。
RTLinux通过对标准Linux内核进行改造,将Linux内核工作环境作了一些变化。如图2所示,在Linux进程和硬件中断之间,本来由
Linux内核完全控制,现在在Linux内核和硬件中断的地方加上了一个RTLinux内核的控制。Linux的控制信号都要先交给RTLinux内核
进行处理。在RTLinux内核中实现了一个虚拟中断机制,Linux本身永远不能屏蔽中断,它发出的中断屏蔽信号和打开中断信号都修改成向
RTLinux发送一个信号。如在Linux里面使用“SI”和“CLI”宏指令,让RTLinux里面的某些标记做了修改。也就是说将所有的中断分成
Linux中断和实时中断两类。如果RTLinux内核接收到的中断信号是普通Linux中断,那就设置一个标志位;如果是实时中断,就继续向硬件发出中
断。在RTLinux中执行STI将中断打开之后,那些设置了标志位表示的Linux中断就继续执行,因此,CLI并不能禁止RTLinux内核的运行,
却可以用来中断Linux。Linux不能中断自己,而RTLinux可以。
这里体现了RTLinux设计过程中的原则:在实时模块中的工作量尽量少,如果能在Linux中完成而不影响实时性能的话,就尽量在Linux中完成,因
此,RTLinux内核可以尽量做得简单。在RTLinux内核中,不应该等待资源,也不需要使用共享旋转锁。实时任务和Linux进程之间的通信也是非
阻塞的,从来不用等待进队列和出队列的数据。RTLinux将系统和设备的初始化交给了Linux 完成,对动态资源的申请和分配也交给了Linux。
RTLinux使用静态分配的内存来完成硬件实时任务,因为在没有内存资源的时候,被阻塞的线程是不可能具有实时能力的。
阅读(1507) | 评论(0) | 转发(1) |