码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【嵌入式】嵌入式开发为什么要跑操作系统?


    我们知道,在单片机的「裸机系统」中,是用一个while死循环保证程序的运行,偶尔加点中断去执行其他的功能。这种方式的优点就是简单,方便理解,我们初学者刚开始接触的就是这种方式。

    但是这种方式的缺点也很显然:

    「1.实时性不强,不能优先保证重要或者优先级较高的程序的运行」在一些代码较少的程序中还不明显,但是如果程序功能复杂,代码量大,运行时间长,这种方式就显得更加难以运行下去。因为这种裸机while循环的方式相当于走的流水线,你得等CPU运行到了这里才能执行,即使你是个极度紧急的程序,任何之前的延时都可以让这段程序延后运行。33ceec8d221987b0b5d22ed8a731ccd4.png

    「2.程序中如果发生了延时,那么所有的程序都要等这个延时(中断除外)」这个时间相当于CPU没干啥正经事,白白的浪费了强大的算力。868c452ca623905f7876162e7daeee7a.png「3.维护性与可读性较差」大家可以试想,所有处理都在一个while循环中,要在这里头去加代码加功能,是不是很容易就会影响到其他代码呢,可能同时还需要在其他的地方加上各种补丁,麻烦事儿一堆。3ceba3f694626e1f4b885c2b9e99e13b.png

    实际在工作的项目中基本不会去跑裸机,结合之前的两点即效率太低了不合适,无法支撑大型的项目。

    1f3072f15dc05a7a30624e415842773d.png

    因此我们就引入了「操作系统」,将每个小功能模块可以做成一个任务,由调度器统一调度任务,什么时候运行什么任务,这也是每个操作系统最核心的部分。当我们有一个任务因为延时等待不需要继续运行的时候,就可以把CPU的运行权交给其他的任务,把对CPU的利用发挥到极致。当有紧急任务准备好需要处理时,CPU的控制权马上又回到这个任务处理紧急事务。如果有新的功能模块需要添加,适当的可以做成一个任务,这样将对其他任务的影响降到最小。阅读代码或者人员分工就可以根据各个模块的任务进行划分,化整为零,提高工作的效率。

    如此,操作系统便完美的解决了裸机运行的缺点~72729d42da9065f60aded766d3a688c6.png

  • 相关阅读:
    Mac环境下jupyter添加nbextension插件
    杨辉三角c语言程序
    linux用vim编写1到100的求和
    if _name_ == “__main__“:NameError: name ‘_name_‘ is not defined
    【Python毕业设计源码】django三甲妇幼保健院网站
    字节系列「夏日游乐场 周周赚88元」进度与骰子次数R语言回归分析
    Java学习 --- 设计模式的七大原则的迪米特法则(最小知道原则)
    【机器学习 | Python】mlxtend 包的使用指南
    Raw格式的图片理解、读取、转换、显示、对raw10应用和COLOR_BayerBG2RGB理解
    代码随想录阅读笔记-哈希表【两个数组的交集】
  • 原文地址:https://blog.csdn.net/weixin_44155115/article/details/125465997
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号