计算机系统的层次结构¶
概述¶
计算机系统是一个复杂的系统,为了便于理解和设计,通常将其划分为多个层次。每一层都建立在下一层之上,为上一层提供服务。这种层次结构使得计算机系统具有良好的模块化特性,便于理解和维护。
计算机系统的多级层次结构¶
从上到下,计算机系统可以分为以下几个层次:
第4层: 高级语言机器 (M4)¶
虚拟机器M4
- 特点: 使用高级语言编写程序
- 实现方式: 用编译程序翻译成汇编语言程序
- 示例:
C = A + B - 用户: 应用程序员
- 功能: 提供接近人类思维的编程接口
编译过程:
| Text Only | |
|---|---|
第3层: 汇编语言机器 (M3)¶
虚拟机器M3
- 特点: 使用汇编语言编写程序
- 实现方式: 用汇编程序翻译成机器语言程序
- 示例:
LOAD A, 16 - 用户: 系统程序员
- 功能: 提供符号化的机器指令
汇编过程:
| Text Only | |
|---|---|
第2层: 操作系统机器 (M2)¶
虚拟机器M2
- 特点: 用机器语言解释操作系统
- 实现方式: 提供系统调用接口
- 功能:
- 资源管理: CPU、内存、设备、文件
- 进程管理: 创建、调度、同步
- 内存管理: 分配、保护、虚拟存储
- 文件管理: 存储、目录、保护
- 设备管理: 驱动、缓冲、分配
- 用户: 系统程序员和应用程序员
- 作用: 防止内存冲突、提供系统服务
系统调用:
| Text Only | |
|---|---|
以上是软件层,以下是硬件层(不严格的界限)
第1层: 传统机器 (M1)¶
虚拟机器M1
- 特点: 用机器语言(二进制指令)编程
- 实现方式: 用微指令解释机器指令
- 示例:
10110000 01100001 - 用户: 系统程序员
- 功能: 执行机器语言程序
指令执行:
| Text Only | |
|---|---|
第0层: 微程序机器 (M0)¶
硬件机器M0
- 特点: 由硬件直接执行微指令
- 实现方式: 硬件逻辑电路
- 功能: 完成基本的微操作
- 组成:
- 控制存储器: 存放微程序
- 微指令寄存器: 存放当前微指令
- 微地址寄存器: 存放下条微指令地址
微指令格式:
| Text Only | |
|---|---|
层次结构的特点¶
1. 透明性¶
- 上层不需要了解下层的实现细节
- 每一层都为上一层提供抽象接口
- 便于系统理解和维护
2. 独立性¶
- 各层相对独立,可以单独设计和实现
- 修改一层不影响其他层
- 便于系统升级和扩展
3. 接口性¶
- 层与层之间通过接口交互
- 接口定义清晰,功能明确
- 便于系统集成和测试
各层之间的关系¶
1. 自上而下的翻译¶
- 高级语言程序 → 汇编语言程序 → 机器语言程序
- 编译程序和汇编程序完成翻译工作
- 翻译在程序执行前完成
2. 自下而上的解释¶
- 微指令解释机器指令
- 机器语言解释操作系统
- 操作系统解释高级语言程序
- 解释在程序执行时进行
3. 层次间的通信¶
- 上层通过接口调用下层服务
- 下层通过返回值向上层反馈结果
- 异常和中断可以跨层传递
层次结构的优势¶
1. 便于理解¶
- 复杂系统分解为多个简单层次
- 每层功能明确,易于理解
- 便于教学和学习
2. 便于设计¶
- 可以分层设计,降低复杂度
- 各层可以并行开发
- 便于团队协作
3. 便于维护¶
- 问题定位到具体层次
- 修改局部不影响全局
- 便于系统升级
4. 便于移植¶
- 硬件改变只需修改底层
- 软件可以在不同硬件上运行
- 提高系统可移植性
实际应用¶
1. 程序开发¶
- 应用程序员工作在M4层
- 系统程序员工作在M2、M3层
- 硬件工程师工作在M0、M1层
2. 系统优化¶
- 可以在不同层次进行优化
- 高级语言优化: 算法优化
- 编译优化: 代码优化
- 硬件优化: 指令集优化
3. 故障诊断¶
- 根据故障现象定位层次
- 软件故障: M2、M3、M4层
- 硬件故障: M0、M1层
现代计算机系统的扩展¶
随着计算机技术的发展,层次结构也在不断扩展:
1. 虚拟化层¶
- 在硬件和操作系统之间
- 提供虚拟机支持
- 实现资源隔离和共享
2. 中间件层¶
- 在操作系统和应用软件之间
- 提供通用服务
- 如数据库中间件、消息中间件
3. 应用框架层¶
- 在中间件和应用软件之间
- 提供开发框架
- 如Web框架、GUI框架