1.裸机开发:n个人拉屎,先进去一个拉完,下一个再来;
2.看门狗:如果有人拉完屎还占着茅坑刷视频,把他拖出去
3.中断系统:n个人拉屎,先进去的拉完,下一个再来。如果有拉肚子的,当前在拉的人无条件让出茅坑,让拉肚子的先拉;
4.RTOS(实时操作系统):n个人拉屎,每个人拉10秒钟,憋住。下一个人拉,在轮询。拉肚子的可以先拉完不打断;
5.双核:两个茅坑,两个人可以同时拉屎(并行处理);
6.DMA(直接内存访问):拉屎的时候不用大脑操控阔约肌,由脊髓自动操控,使得大脑可以刷抖音;
7.系统栈:就是每个人的肠胃,保存了每个人拉屎中断时剩余的屎量(当前状态的变量);
8.中断向量表:记录了每个人是否拉肚子和拉肚子的缓急情况,以此调度毛孔;
9.RTOS邮箱:正在拉屎的人告诉厕所管理员的信息;
10.局部变量:每个人肚子里剩余的屎,故拉完屎后,局部变量不再占用RAM;
11.全局变量:每个人往厕所门上贴的纸条,故全局变量地址不变且永远占据内存空间;
12.RAM:公共厕所,临时拉屎时用的资源,拉完之后清理干净,可以重新利用;
13.阻塞式:如果一个人便秘,就一直占据茅坑,直到拉出来;
14.非阻塞:便秘的时候在茅坑外等待,想拉了再冲进去;
15.Flash:每个人初始的屎量,排队顺序;
16.LD文件(链接描述文件):每个人家的地址和公厕的地址,决定了谁要去哪个厕所拉屎,并且规划好路径;
17.定时器:就像厕所的计时器,每次你进去拉屎时,计时器开始倒数。时间一到,无论你是否完成,都得出来,这样下一个人可以进来。
18.死锁(Deadlock):想象两个厕所,一个人需要厕纸,但厕纸在另一个厕所里,而另一个厕所里的人想要用肥皂,但肥皂在第一个厕所里。结果,两个人都在各自的厕所里等着对方把东西递过来,谁也不动,最后谁也拉不了。
19.优先级反转(Priority Inversion):厕所里有三个排队的人,A、B、C,A的优先级最高,但B先进了厕所。C有一卷厕纸,B需要它才能完成,但C的优先级低于A。C不得不等A让B用完厕所,所以A得等C和B处理完后才能用厕所,这反而让A等得更久。
20.中断屏蔽(Interrupt Masking):如同你在厕所里挂了一个“不要打扰”的牌子,这样即使外面有紧急情况(比如有人急需厕所),你也不会让位,直到你完成。
21.上下文切换(Context Switch):就像你正在拉屎,突然有急事要离开厕所,你的“状态”(拉屎的进度)会被记录下来,然后你让位给别人。等你回来时,可以继续从之前的进度接着拉。
22.任务调度(Task Scheduling):厕所管理员根据每个人的紧急程度和先来后到的顺序,安排谁先上厕所,谁后上。如果有人特别急(高优先级),管理员会打破常规,优先让他进去。
23.临界区(Critical Section):想象一个厕所只有一个茅坑,当前人进去的时候,需要挂上“正在使用”的牌子,这样别人就不能进来打扰,直到这个人出来。
24.死循环(Infinite Loop):有个人进了厕所,一直坐在茅坑上,不管有没有屎,反复做同一个动作,比如按冲水按钮,但一直不出来,永远占着茅坑。
25.硬件抽象层(HAL):就像厕所的标准操作指南,无论你用的是什么品牌的厕纸、冲水器或者马桶,只要按照这个指南操作,你都能顺利完成上厕所的任务。
26.栈溢出(Stack Overflow):就像你的肠胃装满了屎,再也容纳不下更多的东西,结果多余的屎只能溢出来,导致“意外”发生。
……
这些比喻希望能让你更形象地理解嵌入式行业的各种专业术语,若读者还有更好的想法可在评论区留言,欢迎一起交流。
-------------------end
读者若感兴趣可关注个人微信公众号,将持续为您分享有用的工科知识。