实时系统和非实时系统的区别

2023-05-16

嵌入式操作系统分为实时系统和非实时系统两类,常见的实时系统有: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,都缺乏有效的实时任务的调度机制和调度算法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实时系统和非实时系统的区别 的相关文章

随机推荐

  • 自动驾驶之去光晕调研

    中文版综述github 一 光晕类型 常见去光晕算法的光晕 去光晕算法的光晕之二 汇总 样式包括有 halos 色圈 streaks 条纹 bright lines 亮线 saturated blobs 深污点 color bleeding
  • 自动驾驶之3D点云聚类算法调研

    1 方法 总共分为4类 基于欧式距离的聚类Supervoxel 聚类深度 Depth 聚类Scanline Run 聚类 1 1 基于欧氏距离的聚类 思路 在点云上构造kd tree 然后在某个半径阈值 例如0 5m 则分割为一个实例 相似
  • 自动驾驶之夜间检测调研

    1 ExDark 第一个 公开 特定的提供 natural low light images for object的数据集 7363张 low light images 12 classes Low light image enhancem
  • 自动驾驶之行人轨迹预测数据集

    一 Real Data ETH Univ 43 Hotel 750 pedestrians exhibiting complex interactions UCY Zara01 Zara02 and Uni 780 pedestrians
  • 自动驾驶之单目3D目标检测TensorRT调研

    目前在github上只能找到2个项目 TensorRT CenterNet 3D tkDNN 两者都是使用CenterNet xff0c 但第1个基于TensorRT5 无法与当前最新的TensorRT6和TensorRT7兼容 经测试 x
  • 秋招之字节面试智力题

    1 倒水 只有两个无刻度的水桶 xff0c 一个可以装6L水 xff0c 一个可以装5L水 xff0c 如何在桶里装入3L的水 6L装满倒入5L xff0c 剩1L5L倒出 1L倒入5L6L装满倒入5L剩2L5L倒出 xff0c 2L倒入5
  • 数学专业外语之一: 基本概念与术语

    一 四则运算 加法 plus xff0c 1 43 2 one plus two减法 minus 3 2 three minus two乘法 times or multiplied by xff0c 3x2 three times two
  • 数学专业外语之二: 阅读理解与翻译初步

    一 比 率与比例 number xff1a 数 xff1b number axis xff1a number theory xff1a 数论 xff1b the number of xff1a 的数量quantity xff1a 量 xff
  • 从iphone一代看产品创新

    第一代iPhone2007年6月29日正式发售 xff0c 可能大多数人接触Iphone是从iphone4开始 xff0c 先展示一下iphone一代 xff0c 提醒一下这是2007年的一款手机 xff0c 当时市面所有手机都是键盘机 x
  • 自动驾驶之3D目标检测的SMOKE算法

    SMOKE Single Stage Monocular 3D Object Detection via Keypoint Estimation 论文github知乎 一 数据集 KITTI 1 1 输入 单张图像 xff1a 1242x3
  • 自动驾驶之车道线检测调研与实测

    一 LaneNet 论文代码 xff1a github python tensorflow 1 15 1 1 主要过程 inference xff0c 分上下两个分支 xff0c 如图 Enocder decoder stage 图像空间编
  • 推荐系统之AUC指标的一些理解

    以下是在一些整理的和自己的关于AUC的理解 1 AUC和GAUC的区别 auc反映的是整体样本间的一个排序能力 在计算广告领域 实际要衡量的是不同用户对不同广告之间的排序能力 因此实际应该更关注的是同一个用户对不同广告间的排序能力 GAUC
  • 逻辑回归相关问题整理

    1 写逻辑回归的logloss损失函数 对于样本 x x x xff0c 输出为 p x i
  • 如何防止softmax函数overflow和underflow?

    上溢出 xff1a c极其大的时候 xff0c 计算 e c e c e c 下溢出 xff1a 当c趋于负无穷的时候 xff0c 分母是一个极小的数 xff0c 导致下溢出 解决方法 令
  • 使用matplotlib绘图库的pyplot快速绘图

    使用matplotlib绘图库的pyplot快速绘图 matplotlib是Python最常用的绘图库 xff0c 在结果或数据可视化中常用pyplot实现快速绘图 xff0c 下面参考张若愚主编的Python科学计算 xff08 第2版
  • 经典的机器学习二分类算法——Logistic回归

    问题描述 对于维度为 m 43 1 m 43 1 特征为 x x 样本的二分类问题 有负类 Negative Class 记为 0 0 xff0c 正类 xff08 Positive Class xff09 记为 1
  • Python调用face++API完成本地图片的人脸检测

    Python调用face 43 43 API完成本地图片的人脸检测 简单调用face 43 43 API对本地图片进行人脸检测 xff0c 输出基本信息到csv文件 注册face 43 43 账号 face 43 43 网址 https w
  • Libsvm在windows下使用细节汇总

    0 下载Libsvm Libsvm官网 https www csie ntu edu tw cjlin libsvm 下载后将其解压到本地 xff0c 这里 xff0c 我的本地路径为 xff1a C Anaconda3 Lib sit p
  • 表情识别数据集汇总

    参考文献 xff1a Deep Facial Expression Recognition A Survey 网址 https arxiv org pdf 1804 08348 pdf CK 43 http www pitt edu emo
  • 实时系统和非实时系统的区别

    嵌入式操作系统分为实时系统和非实时系统两类 xff0c 常见的实时系统有 xff1a ThreadX FreeRTOS ucOS 常见的非实时系统有 xff1a windows linux Android 两类操作系统的主要区别在于任务调度