为什么linux不是实时操作系统?

一觉醒来写程序 2011-12-08 09:00:31
1、linux也有任务优先级,为什么不是实时操作系统?
2、linux的时间片,是针对同优先级的任务才有时间片吗?不同级别任务间呢?
3、linux的任务是同时进行,还是每次只运行一个任务?
...全文
498 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldlight 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ly61baby 的回复:]
引用 1 楼 jackyjkchen 的回复:

Windows会只调度高优先级,对于多个同样优先级的线程,Windows采用公平调度,基本做到平分时间片


那比如说我运行着qq,比如qq优先级大于影音播放器。单cpu下,qq一直开着,为什么电影还能播放呢?Windows只调度高优先级不是吗?
[/Quote]
调度之间的短暂时间片段,用户一般是感觉不到的。即使是同一优先级,也不至于一直就执行播放器吧,照样看电影也不会卡。
向良玉 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 ly61baby 的回复:]
1、linux也有任务优先级,为什么不是实时操作系统?
2、linux的时间片,是针对同优先级的任务才有时间片吗?不同级别任务间呢?
3、linux的任务是同时进行,还是每次只运行一个任务?
[/Quote]
Linux会把资源调度给最需要的那个进程
如何排序,我就不懂了
reactiveF 2011-12-09
  • 打赏
  • 举报
回复
1)原始的linux通过修改内核和定制参数可以成为实时操作系统,可以看看实时操作系统的定义
2)内核调度对任何已经在就绪队列里的进程都分配时间片,可以看看内核任务调度机制;
3)对称多CPU下多个进程同时在多个CPU上运行.单CPU下内核轮流执行各个进程,某时刻只有一个进程在运行;

目前的实时LINUX系统做得较好的是商业化的几个,网上搜搜看看吧.
ljc007 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiangliangyu2008 的回复:]
Linux会把资源调度给最需要的那个进程
如何排序,我就不懂了
[/Quote]
根据优先级
jackyjkchen 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ly61baby 的回复:]

引用 1 楼 jackyjkchen 的回复:

Windows会只调度高优先级,对于多个同样优先级的线程,Windows采用公平调度,基本做到平分时间片


那比如说我运行着qq,比如qq优先级大于影音播放器。单cpu下,qq一直开着,为什么电影还能播放呢?Windows只调度高优先级不是吗?
[/Quote]

QQ不是死循环,内部有休眠中断的时候,这时候低优先级就可调度

你写一个死循环,用windows的“real time”优先级(进程和线程都要设置),我保证你系统都动不了!
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jackyjkchen 的回复:]

Windows会只调度高优先级,对于多个同样优先级的线程,Windows采用公平调度,基本做到平分时间片
[/Quote]

那比如说我运行着qq,比如qq优先级大于影音播放器。单cpu下,qq一直开着,为什么电影还能播放呢?Windows只调度高优先级不是吗?
jackyjkchen 2011-12-08
  • 打赏
  • 举报
回复
1.任务优先级和实时操作系统不是等同的,你有任务优先级,但你能在极短的时间内中断其他任务完成切换么?Windows同样也有任务优先级是不是?Linux的任务调度算法不唯一,时间复杂度也不一样,如果有实时性高的任务,Linux可以勉强实现软实时调度,硬实时做不了

2.以前看的一本书说Linux不是时间片轮转了,具体怎样忘了;Windows的情况记得比较清楚——时间片本身没有什么区别,区别在于调度方式,如果有高优先级的线程,Windows会只调度高优先级,对于多个同样优先级的线程,Windows采用公平调度,基本做到平分时间片

3.看你是多核还是单核CPU,多核能做到同时进行不多于内核数的任务

2,161

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 UNIX文化
社区管理员
  • UNIX文化社区
  • 文天大人
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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