系统规格、建模与早期设计阶段解析
1. 死锁问题与非冯·诺依曼计算模型
在系统设计中,死锁是一个棘手的问题,其产生需要满足四个条件:互斥、资源不可抢占、持有资源等待更多资源以及线程间的循环依赖。在某些情况下,这四个条件可能同时满足,而操作系统理论目前并没有通用的解决办法。对于个人电脑而言,罕见的死锁或许可以接受,但对于安全关键系统则绝对不可容忍。
为了避免考虑可能的死锁问题,研究非冯·诺依曼计算模型(MoCs)是很有意义的。而且,观察者模式在其他MoCs中也能轻松实现。由于没有一种单一的形式语言能满足所有需求,在实际设计中,我们往往需要做出妥协,可能会混合使用多种语言,具体语言的选择取决于应用领域和设计环境。
2. 计算模型的定义与分类
2.1 计算模型的定义
计算模型(MoCs)描述了执行计算的机制。通常,我们会考虑由组件构成的系统,并严格区分组件内的计算和组件间的通信,这样有助于组件在不同环境中复用,实现系统组件的即插即用。具体来说,MoCs定义了以下两个方面:
- 组件及组件内计算的组织:可能的组件包括程序、进程、函数和有限状态机等。
- 通信协议:描述组件间的通信方法,例如异步消息传递和基于会合的通信。
2.2 组件关系的图形表示
组件间的关系可以用图来表示,其中节点代表执行计算的组件,计算将输入数据流映射到输出数据流,有时会用高级编程语言实现,通常包含(可能非终止的)迭代,在每次迭代中消耗输入数据、处理数据并生成输出数据。边则表示组件间的关系。
最明显的关系是因果依赖,即许多计算只有在其他计算终止后才能执行,这种依赖通常用依赖图来表示。依赖
超级会员免费看
订阅专栏 解锁全文
1444

被折叠的 条评论
为什么被折叠?



