嵌入式操作系统分为实时系统和非实时系统两类,常见的实时系统有:ThreadX、FreeRTOS、ucOS;常见的非实时系统有:windows、linux、Android。两类操作系统的主要区别在于任务调度处理方式不同,常用的任务调度方式有两种:基于任务优先级的任务调度方式和基于时间片的任务调度方式:

  1. 基于任务优先级的调度方式:一旦内核把资源分配给某进程后,便让该进程一直执行,直到该进程完成或发生某事件而被阻塞(常见的方式主动调用delay),才再把处理机分配给其他进程,否则高优先级的任务会一直运行。所以这种情况下,如果某个高优先级的任务运行时间过长最好有阻塞机制,来让出CPU使其他低优先级的任务也有机会运行。
  2. 基于时间片的调度方式:这种方式下,所有任务的优先级相同,当内核给该进程分配的时间片结束后,内核会停止正在执行的这个进程,下一个时间片分配给其他进程执行,即便这个任务没有执行完也没有主动delay自己

实时非实时任务调度的区别
实时操作系统:一般使用基于优先级的调度方式,所以不同优先级的任务,完全基于优先权原则来运行,一旦高优先的任务就绪他可以无条件的,抢占任何正在执行的,低于自己优先级的进程,无论正在运行的进程是否已经进入内核调度。同时也存在基于时间片调度方式,如Freertos系统也有时间片调度模式,当几个任务的优先级相同时,会按照时间片来管理,在优先级相同的任务间切换运行。
非实时操作系统:一般情况下没有任务优先级的概念(例外情况见补充说明),所有任务默认优先级相同,任务调度采用时间片调度方式。

补充说明
有些非实时系统也有优先级的概念,如果非实时系统也定义了优先级和实时操作系统的任务调度方式也是有区别的具体如下:
 任务调度原则不同:
前提Task2 优先级大于Task1且Task1先准备就绪并且已经开始运行
非实时系统:当Task2准备就绪时,不会马上切换到Task2,要等待Task1的时间片结束或者Task1主动挂起后,Task2才开始运行,然后一直运行,直到结束,系统才会再次给低优先级的Task1分配时间片。
实时系统:当Task2准备就绪的那一刻开始,Task1直接就被内核挂起,Task2开始执行,直到结束,系统才会再次给低优先级的Task1分配时间片。
 任务调度的时间不同:
非实时系统:任务调度不是严格实时的,如linux调度时间的最小单位为10ms,windows系统时间片也只是ms级别。
实时系统:调度时间是us级的,而且一般小于10us。
 任务调度算法不同:
实时系统:包含专有的任务调度算法,而且这也是实时系统的核心所在。
非实时系统:无论是linux还是windows,都缺乏有效的实时任务的调度机制和调度算法。

实时系统和非实时系统的区别相关推荐

  1. 实时系统与非实时系统的区别

    嵌入式操作系统分为实时系统和非实时系统两类,常见的实时系统有:ThreadX.FreeRTOS.ucOS;常见的非实时系统有:windows.linux.Android. 两类操作系统的主要区别在于任 ...

  2. C#中静态方法和非静态方法的区别

    静态方法和非静态方法的区别: 1.静态方法不需要类实例化就可以调用,反之非静态方法需要实例化后才能调用: 2.静态方法只能访问静态成员和方法,非静态方法都可以访问: 3.静态方法不能标记为overri ...

  3. socket阻塞和非阻塞的区别

    socket阻塞和非阻塞的区别 简单点说: 阻塞就是干不完不准回来,    非组赛就是你先干,我现看看有其他事没有,完了告诉我一声 我们拿最常用的send和recv两个函数来说吧... 比如你调用se ...

  4. poe交换机标准与非标准的区别介绍

    POE指的是在现有的以太网Cat.5布线基础架构不作任何改动的情况下,在为一些基于IP的终端(如IP电话机.无线局域网接入点AP.网络摄像机等)传输数据信号的同时,还能为此类设备提供直流电的技术,就是 ...

  5. 聚簇索引与非聚簇索引的区别以及SQL Server查询优化技术

    在<数据库原理>里面,对聚簇索引的解释是:聚簇索引的顺序就是数据的物理存储顺序,而对非聚簇索引的解释是:索引顺序与数据物理排列顺序无关.正式因为如此,所以一个表最多只能有一个聚簇索引. 不 ...

  6. 聚簇索引和非聚簇索引的区别_学习索引的一些总结

    一.什么是索引 索引其实是一种数据结构,其作用类似于书的目录. 好处是 减少数据的扫描数量,提高查询效率. 将随见IO变为顺序IO 缺点是: 随着数据量的变大,索引的存储空间也变大 维护和修改索引,成 ...

  7. java静态方法和非静态方法的区别_史上最全阿里 Java 面试题总结

    关注[ToBeTopJavaer],回复[答案],获取全套面试题答案,为明年的金三银四,做好充分的准备. JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节. String类能被继承吗 ...

  8. 日常小记-pdf扫描版和非扫描版区别

    知识积累在于点点滴滴的记录.今日根据度娘结果,整理一下pdf扫描版版和非扫描版区别之处. 扫描版:一般直接通过扫描仪成位图格式的pdf,文字以图片格式存储,放大后会有失真或者严重的锯齿情况. 非扫描版 ...

  9. java中静态方法与非静态方法的区别及非静态方法的注意事项

    一旦使用static修饰成员方法,那么这就成为了静态方法.静态方法不属于对象,而是属于类的. 如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它. 如果有了static关键字,那 ...

最新文章

  1. 官宣!邢波出任全球首个AI大学校长,MBZUAI明年1月迎来首批新生
  2. linux检查socekt是否断开,如何在C语言中判断socket是否已经断开
  3. JavaScript实现重置表单(reset)的方法
  4. PCM数据格式(转)
  5. python 日历_python中的日历和时间
  6. [转]开发者需要了解的WebKit(mark)
  7. OpenGL在frag着色器中模拟手电筒效果
  8. python mysql 分号_Python中使用MySQL
  9. PHP面试题:在PHP中error_reporting这个函数有什么作用?
  10. sqlserver2008数据库自动备份的sql脚本及使用bat命令执行脚本
  11. 系列(九)—TCP/UDP协议
  12. 资源共享型智能指针实现方式
  13. 刚刚!6月榜单:JS跌惨,Python又霸榜,C++再无翻身可能!
  14. 电脑服务器系统被管理员停用,Win7系统任务管理器已被系统管理员停用怎么办?...
  15. objective-c和java哪个简单_Objective-C和Java的简单对比
  16. ADP530X功能分类汇总找不同
  17. 伦敦国王学院计算机申请要求,伦敦大学国王学院教育中计算机应用文学硕士研究生申请要求及申请材料要求清单...
  18. 基于jQuery实现表单提交验证
  19. 基于JAVA宠物用品交易网站计算机毕业设计源码+系统+lw文档+部署
  20. 头歌Python,7号的,作业,

热门文章

  1. 语音聊天室系统技术方案
  2. 安信可官方esp8266固件写入程序
  3. 全球挑战赛-公开通用语言源代码,再无他人能懂运行原理
  4. docker-compose搭建elasticsearch集群,整合head
  5. 标准粒子群C语言程序
  6. JSP对象,JavaBean,Servlet简易教程
  7. C/C++FPS实战CSGO矩阵方框透视骨骼自瞄实战教程
  8. asp.net webs制作(包括连接数据库)
  9. java实现链表冒泡排序_单链表的冒泡排序
  10. Altium Designer 18 速成实战 第二部分 元件库(原理图库)创建 (一)元件符号的概述