Linux的中断实时性如何?和vxworks比如何?

sherlock_lai 2008-06-05 05:17:56
就是响应中断的时间,谁有这方面的文章?
...全文
363 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sherlock_lai 2008-06-07
  • 打赏
  • 举报
回复
好的揭贴咯 呵呵 楼上几位真NB..
hefuhua 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fierygnu 的回复:]
老兵好啊:) 是太久不见了

[/Quote]

嗯,现在得加倍努力,向大侠学习,看来csdn linux版块更有希望了,哈哈
fierygnu 2008-06-06
  • 打赏
  • 举报
回复
老兵好啊:) 是太久不见了
hefuhua 2008-06-06
  • 打赏
  • 举报
回复
楼上的大侠回来了?太久不见
fierygnu 2008-06-06
  • 打赏
  • 举报
回复
通用Linux是soft-real-time,vxWorks是hard-real-time。经过改良的Linux是可以做到hard-real-time的。风河自己现在就在向Linux平台切换。
yangb2014# 2008-06-06
  • 打赏
  • 举报
回复
一般的vxWorks系统应该能达到几百纳秒,Linux也不会太慢,
但是vxWorks是实时系统,通用Linux不是,
建议楼主了解下RTOS的概念。。。
Erorr 2008-06-05
  • 打赏
  • 举报
回复
VxWorks任务切换和中断响应的时间是纳秒级
通用操作系统如Linux,响应时间一般是秒级
文章不需要吧,VxWorks就是靠这个吃饭的
hefuhua 2008-06-05
  • 打赏
  • 举报
回复
linux不是实时系统
vxworks是实时系统
pottichu 2008-06-05
  • 打赏
  • 举报
回复
原来问题不同的, 呵呵.

这个没有深入的研究, 等待其他人的答案.
pottichu 2008-06-05
  • 打赏
  • 举报
回复
接分, 呵呵.另外一个帖子里已经解答了。 
1.嵌入式实时操作系统的特点与常用的几种嵌入式操作系统。 实时性,可裁剪性。 ucos-Ⅱ RTLinux ARM-Linux KURT TimeSys Linux Mach 商业常见 VxWorks QNX pSOS Windows CE 2.掌握uC/OS-Ⅱ操作系统中的任务的存储结构与任务控制块主要成员变量的作用、任务的程序结构、任务的调度过程、任务状态的转换过程、任务的创建过程。任务级的切换与中断级的切换。 一.任务的存储结构P74 前一个任务控制块的Ptr 后一个任务控制块的Ptr 指向任务的Ptr 指向堆栈的Ptr 任务的优先级别 ............................ 任务的代码: void mytask(void * ) {......... For( ; ; ) {......} } 任务的堆栈: ....................... 系统在运行一个任务是,先按优先级找到任务控制块,在任务堆栈中找到任务代码的指针。 任务控制块是系统管理任务的依据。 任务控制块-------保存任务的属性 任务的代码-------任务的执行部分 任务的堆栈-------保存任务的工作环境 二.任务控制块主要成员变量的作用P78 不同任务 TCB成员变量个数不是固定的。 其中 OSTCBStat 用来存放任务当前状态。 其中 OSTCBDly 用来存放任务等待时限(节拍数)。 其中 OSTCBPrio 用来存放任务的优先级。 所有任务控制块分为2条链表:空闲任务块链表和任务块链表。 空闲任务块是uC/OS-Ⅱ的全局数据结构 OSInit()创建空闲任务控制块链表的步骤:1先在RAM中建立一个OS_TCB结构类型的OSTCBTb1[]使数组每个元素都是一个任务控制块,然后利用OS_TCB结构中的OSTCBTNext和OSTCBPrev连起来构成一个链表。 为了加快对任务控制块的访问速度:除了任务控制块链表创建成双向链表外在uC/OS-Ⅱ的uCOS-Ⅱ.H中还定义了一个OS_TCB*类型的数组OSTCBTb1[]专门用来存放指向各任务控制块的指针。 删除一个任务的实质:把任务的控制块从任务控制块链表中删除,并把它归还给任务控制块链表。但是任务的代码还在内存中没被删除。 任务的程序结构 任务的调度过程 在就绪任务表中寻找优先级最高的就绪任务置为运行态,然后中止当前正在运行的任务,从而运行刚刚那个置为运行态的任务 若 OSLockNesting当前的值不为0则 禁止调度 任务状态的转换过程 任务的创建过程 先检测任务的优先级是否合法 然后检测该优先级是否被占用 然后保留该优先级 然后初始化任务堆栈 然后获得任务控制块并初始化 然后任务计数器+1 最后调度 否则放弃任务 任务级的切换与中断级的切换 OSIntCtxSw() -- 中断级任务切换函数与OSCtxSw() -- 任务级切换函数的区别: OSIntCtxSw()与OSCtxSw()的后半部分相同,而OSIntCtxSw()缺少的断点保护,则在中断子程序中完成。但是两者都完成两任务的切换: OSCtxSw() 完成两个不同任务间的切换; OSIntCtxSw()则是在一定条件下,在中断结束后,原被中断的程序与更高优先级的任务之间的切换。 掌握五种任务的通信与同步的方法。对应的事件控制块与信号量集标志组的结构。并比较这五种任务的通信与同步的方法在请求、发送过程中的各自特点。 C/OS-Ⅱ操作系统初始化所须完成的的五件事:初始化几个重要的全局变量、数组OSTCBPrioTbl[ ]、就绪表、五个链表(空任务控制块、空事件控制块、空队列控制块、空信号量集标志组、空内存控制块)、创建空闲任务。或有条件创建统计任务。 中断中断服务程序。定时中断服务及时钟节拍服务函数OSTimTick()的作用 CPU相应中断的条件:1至少有一个中断源向CPU 发出信号 2系统允许信号且未对此信号屏蔽。 钟节拍服务函数OSTimTick()的作用:1把用来记录时间进程的计数器OSTime+1 2遍历任务控制块链表中所有任务控制块,吧各个任务控制块中用来存放任务延时的OSTCBDly-1,并使该项为0,同时又不是被挂起的任务进入就绪状态。 6.掌握创建、请求与发送一个信号量与消息邮箱的程序流程。 7.熟练应用信号量与消息邮箱实现任务的通信与同步的程序设计。一个应用程序的基本框架。 8.了解C/OS-Ⅱ移植的一般原则。 C/OS-Ⅱ移植的条件:1在程序中可以开关中断2处理器支持中断并能产生定时中断3处理器支持中断且容纳一定数据的硬件堆栈4处理器有将堆栈指针和其他CPU存储器存储读取到堆栈的指令。 9.了解一个完整的基于C/OS-Ⅱ内核的操作系统的组成。

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧