26、嵌入式系统设计中的计算模型与早期设计阶段

嵌入式系统设计中的计算模型与早期设计阶段

在嵌入式系统设计中,软件的复杂性和并发问题常常给开发者带来挑战。其中,死锁问题是一个不容忽视的难题。使用线程、信号量和互斥锁编写的非平凡软件,对人类来说理解起来十分困难,即使经过非常严格的代码检查,也可能存在疏忽的风险。有观点认为,“使用线程、信号量和互斥锁编写的非平凡软件对人类来说是难以理解的”,并且“线程作为一种并发模型并不适合嵌入式系统,它们仅在尽力而为的调度策略足够的情况下才能良好工作”。

死锁的发生需要在运行时满足四个条件:互斥、资源不可抢占、持有资源并等待更多资源,以及线程之间存在循环依赖。在一些实际例子中,这四个条件很容易同时满足。对于个人电脑来说,罕见的死锁可能是可以接受的,但对于安全关键系统而言,死锁显然是不可接受的。

为了避免关心可能的死锁问题,研究非冯·诺依曼计算模型(MoCs)是很有意义的。而且,从需求列表来看,不存在单一的形式语言能够满足所有需求。在实践中,我们必须做出妥协,可能还需要混合使用多种语言,每种语言适合描述特定类型的问题。实际设计中语言的选择将取决于应用领域和设计环境。

1. 计算模型(MoCs)

计算模型描述了执行计算所假定的机制。一般来说,我们需要考虑由组件组成的系统,并且要严格区分组件内的计算和组件间的通信。MoCs主要定义以下两个方面:
- 组件及组件内计算的组织 :可能的组件包括过程、进程、函数、有限状态机等。
- 通信协议 :描述组件之间的通信方法,例如异步消息传递和基于会合的通信。

组件之间的关系可以用图来表示,在这些图中,计算也可称为进程或任务,它们之

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值