并行与分布式系统中的模块化、分层与虚拟化
1. 模块化概念
在系统设计中,专业化原则是重要的设计指导原则之一。专业化意味着识别一系列功能,并配置足够数量的系统组件来提供这些功能,例如数据存储是系统的固有功能,存储服务器在大多数系统中普遍存在。这就引出了模块化的概念。
模块化允许我们从一组独立构建和测试的组件构建复杂的软件系统。模块化的一个要求是明确定义模块之间的接口,并使模块能够协同工作。调用者和被调用者之间控制流转移涉及的步骤如下:
1. 调用者将其状态(包括寄存器、参数和返回地址)保存在栈上。
2. 被调用者从栈中加载参数,进行计算,然后将控制权返回给调用者。
3. 调用者调整栈,恢复其寄存器,并继续处理。
2. 软模块化
软模块化是将程序划分为相互调用的模块,这些模块使用共享内存进行通信或遵循过程调用约定。
优点 :
- 隐藏模块实现细节,一旦模块接口定义好,模块可以独立开发。
- 只要模块与其他模块的接口不变,模块可以被更复杂或更高效的模块替换。
- 模块可以使用不同的编程语言编写,并可以独立测试。
挑战 :
- 增加调试难度,例如调用一个包含无限循环的模块将永远不会返回。
- 可能存在命名冲突和错误的上下文规范。
- 调用者和被调用者在同一地址空间,可能会滥用栈,例如被调用者可能使用调用者未保存在栈上的寄存器。
强类型语言可以通过在编译时或运行时确保类型安全来强制实现软模块化,它可能会拒绝无视数据类型的操作或函数类,或者不允
超级会员免费看
订阅专栏 解锁全文
6094

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



