操作系统学习笔记:实时系统
发布日期:2021-06-30 17:24:53
浏览次数:2
分类:技术文章
本文共 1642 字,大约阅读时间需要 5 分钟。
一、概述
实时系统不仅要求计算结果正确,而且要求结果必须在一个特定的截止期限内产生,否则即使正确也没有意义。比如一些嵌入式系统,安全关键系统。 实时计算有两种类型:硬实时系统和软实时系统。硬实时系统有最严格的要求,保证关键实时任务在最后期限内完成。软实时系统限制较少,仅仅指关键实时任务将获得优先于其他任务的权利,并且会保留优先级直到完成。二、系统特性
实时系统的典型特性: 1、目标单一 2、体积小 CPU、内存常常都很小,所以空间占用很小,通常用于家电设备和消费设备中。 3、批量生产成本低 常常是CPU、内存(或缓存)、存储器管理单元、USB都包含在单集成电路中4、特定的时间要求
三、实时内核特性
实时内核的特性就是越简单越好,摒弃许多通用操作系统才有的功能。 就连虚拟内存,也要采用与实时系统不同的途径来实现: 1)CPU直接生成物理地址,优点是快,但需要程序员为程序指定物理位置 2)动态重定位寄存器,优点是可以轻松实现逻辑地址与物理地址的转换,缺点是缺少进程间的内存保护 3)采用通用操作操作系统的方法四、实现实时操作系统
实现实时操作系统必须的特性: 1、基于优先级的抢占式调度算法 2、抢占式内核 非抢占式内核不允许在内核模式下运行的进程被抢占;内核模式的进程将一直运行,直到它退出内核模式,阻塞或自愿放弃对CPU的控制。相反,抢占式内核允许在内核模式下的任务被抢占。有很多方法可以使内核成为可抢占。一种是在长期的系统调用中插入抢占点,到了这个点就检查有无高优先级进程需要运行,有的话就上下文切换。等高优先级进程终止,原先被中断的进程继续运行。
另一种就是内核被抢占后,内核数据有保护机制,免于被修改,则内核即使被抢占也没事。
3、延迟最小化
有两个延迟影响实时系统的性能: 1)中断延迟 2)调度延迟 必须将它们最小化。影响中断延迟的一个关键因素是,当内核的数据结构正在更新时,屏蔽中断的时间。实时操作系统要求中断只能被屏蔽很短的时间。
而应对调度延迟的最佳方法是抢占式内核。
4、网络支持(可选)
五、实时CPU调度
软实时系统调度不能保证一个关键进程被调度,只能保证相对非关键的进程可以获得优先权。硬实时系统有更严格的要求:一项任务必须在期限内处理,否则如同根本没有服务一样。硬实时系统中,进程具有周期性,即以固定的间隔(周期)请求CPU。每个周期性进程有一个固定的处理时间让CPU处理、一个截止期限和一个周期。调度程序要么接纳该进程,保证按时完成,否则拒绝。
其中,0 <= 处理时间 <= 截止期限 <= 请求周期。含义为,在下一个请求周期发起前,一定要处理完(截止期限),而这个过程中,可以有多次CPU处理。
1、单调速率调度
使用静态抢占式优先策略调度周期性任务。 系统中运行的进程被分配一个与周期长短相反的优先级。周期短,优先级高,否则就低。并且该进程每次获得CPU的运行持续时间都相同。高优先级发起周期请求时,可以抢占低优先级。不过,不管高低,它们都保证能在截止期限前被处理完成。单调速率调度理论山是最理想的算法,但要综合考虑截止期限和请求周期,但有时会出现进程无法被调度。
2、最早截止期限优先调度算法(EDF)
根据截止期限动态分配优先级。截止期限越早,优先级越高;否则越低。在这个算法里面,进程的优先级可能会经常被调整。比如说,本来进程A的优先级比进程B高,当它发起周期请求时,进程B正在处理,但由于这时B的截止期限比A的短,于是B的优先级反而更高,B继续处理剩余部分。理论上,EDF算法能让CPU使用率100%,但由于进程间上下文切换和中断处理的占用,不可能达到这个值。
3、按比例分享调度
将所有应用程序分为若干份执行,调度程序只接纳请求份额低于当前可用份额的申请。4、Pthread调度
POSIX(Portable Operating System Interface,可移植操作系统接口) Pthread API。转载地址:https://leftfist.blog.csdn.net/article/details/50609533 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月24日 19时02分09秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python的__future__模块
2019-04-30
计算机视觉中的cost-volume的概念具体指什么(代价体积)
2019-04-30
启发函数heuristic 与 A*
2019-04-30
Image Pyramid(图像金字塔)
2019-04-30
Oracle 作业记录
2019-04-30
putty连接AWS配置(multimedia project)
2019-04-30
Hourglass Network 沙漏网络 (pose estimation姿态估计)
2019-04-30
OpenCV实战(二)——答题卡识别判卷
2019-04-30
目标检测神经网络的发展历程(52 个目标检测模型)
2019-04-30
Boundary loss 损失函数
2019-04-30
tensorflow使用tensorboard进行可视化
2019-04-30
凸优化 convex optimization
2019-04-30
数据库索引 & 为什么要对数据库建立索引 / 数据库建立索引为什么会加快查询速度
2019-04-30
IEEE与APA引用格式
2019-04-30
research gap
2019-04-30
pytorch训练cifar10数据集查看各个种类图片的准确率
2019-04-30