跳转至

计算机系统的层次结构

概述

计算机系统是一个复杂的系统,为了便于理解和设计,通常将其划分为多个层次。每一层都建立在下一层之上,为上一层提供服务。这种层次结构使得计算机系统具有良好的模块化特性,便于理解和维护。

计算机系统的多级层次结构

从上到下,计算机系统可以分为以下几个层次:

第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框架

参考资料