当前位置: 技术问答>linux和unix
linux内核是怎么调度实时进程的
来源: 互联网 发布时间:2017-04-01
本文导语: 刚刚开始学习这方面的知识,被这个问题困扰了很久了。 linux的内核源码(3.4.4)里面有调度实时进程的调度算法,即sched_FIFO和sched_RR,而且实时进程可以抢占,那就是说明它可以对实时进程作出响应,但是为什么linu...
刚刚开始学习这方面的知识,被这个问题困扰了很久了。
linux的内核源码(3.4.4)里面有调度实时进程的调度算法,即sched_FIFO和sched_RR,而且实时进程可以抢占,那就是说明它可以对实时进程作出响应,但是为什么linux又不是一个实时系统。
从别的帖子上看到说,因为是抢占式内核和抢占式系统的区别。linux系统现在支持硬件中断吗?
如果有一个实时进程,要如何标注它的优先级让系统知道呢?
请大家帮忙解答一下,头都大了。
linux的内核源码(3.4.4)里面有调度实时进程的调度算法,即sched_FIFO和sched_RR,而且实时进程可以抢占,那就是说明它可以对实时进程作出响应,但是为什么linux又不是一个实时系统。
从别的帖子上看到说,因为是抢占式内核和抢占式系统的区别。linux系统现在支持硬件中断吗?
如果有一个实时进程,要如何标注它的优先级让系统知道呢?
请大家帮忙解答一下,头都大了。
|
实时跟抢不抢占有什么关系?哪个贴子说的啊
linux要是连硬件中断都不支持,还玩个毛啊。单片机裸奔都能有硬件中断的。
一个实时进程,自然在它的进程描述符里有标记。
实时操作系统要求在确定的时间内给出处理结果或者保证在确定的时间内开始处理
linux没有办法保证任务处理的时间是确定的,所以不是实时操作系统
linux要是连硬件中断都不支持,还玩个毛啊。单片机裸奔都能有硬件中断的。
一个实时进程,自然在它的进程描述符里有标记。
实时操作系统要求在确定的时间内给出处理结果或者保证在确定的时间内开始处理
linux没有办法保证任务处理的时间是确定的,所以不是实时操作系统
|
不扯淡了,我来回答下楼主的问题,说的通俗点。
1. 为啥linux不是实时系统。
Linux不是实时系统而最多只能算伪实时。因为Linux的时钟滴答最小只能到10ms,对于实时性要求非常高的应用环境,比如导弹,火箭等等,10ms的反应速度达不到要求。而对于一般应用,比如车载音响系统什么的10ms足够用了。这就是为啥linux不能算标准的实时系统。实时要高的还是要用VxWorks,或者将Linux挂在VxWorks上做成一个伪操作系统来用。
2.Linux创建进程的时候可以指定优先级。一个是Pri值,一个是nice值,nice从-20-19 pri从0-99 。 实时进程的优先级为0-99 ,非实时进程的优先级从100-139 。也就是优先级=pri+nice .实时进程永远优先于非实时进程。你用ps -l 命令看一下进程列表就明白了,里头PRI和NI就是我说的pri和nice。
赶紧结贴给分 哈哈。
1. 为啥linux不是实时系统。
Linux不是实时系统而最多只能算伪实时。因为Linux的时钟滴答最小只能到10ms,对于实时性要求非常高的应用环境,比如导弹,火箭等等,10ms的反应速度达不到要求。而对于一般应用,比如车载音响系统什么的10ms足够用了。这就是为啥linux不能算标准的实时系统。实时要高的还是要用VxWorks,或者将Linux挂在VxWorks上做成一个伪操作系统来用。
2.Linux创建进程的时候可以指定优先级。一个是Pri值,一个是nice值,nice从-20-19 pri从0-99 。 实时进程的优先级为0-99 ,非实时进程的优先级从100-139 。也就是优先级=pri+nice .实时进程永远优先于非实时进程。你用ps -l 命令看一下进程列表就明白了,里头PRI和NI就是我说的pri和nice。
赶紧结贴给分 哈哈。