Introduction¶
约 1621 个字 2 张图片 预计阅读时间 6 分钟
Computer System Structure¶
计算机系统可以被分为四个部分:
- 硬件(Hardware):计算机的物理部分
- 包括处理器、内存、存储设备和输入输出设备等。
- 操作系统(Operating System, OS):管理硬件资源的软件
- 即控制和协调各种应用程序和用户之间对硬件的使用
- 系统与应用程序(System and Application Programs):提供特定功能的软件
- 定义了如何使用系统资源来解决实际问题
- 系统程序包括编译器、数据库管理系统等
- 应用程序包括文字处理、电子表格等
- 用户(Users):
- 包括使用计算机系统的个人、其他的计算机或其他机器
Computer System Organization¶
- 计算机中可以有一个或多个 CPU,设备控制器通过总线与 CPU 连接,共享内存
- I/O 设备可以与 CPU 并行执行,每个设备控制器都负责管理某种特定的设备类型
- 每个设备控制器都有自己的一个局部缓冲区,用于存储设备与 CPU 之间传输的数据
- 设备控制器通过中断向 CPU 通知其状态变化
- 中断机制通过中断向量将控制权转移到相应的中断服务程序,这个中断向量包含所有服务程序的地址
- 中断体系结构必须保存被中断指令的地址
- 在处理中断时,需要禁止其他中断的到来,以防止丢失当前正在处理的中断
- 陷阱(trap)是由错误或用户请求引起的软件中断(后者通常称为系统调用)
- 操作系统是中断驱动的
Interrupt Handling¶
操作系统通过保存寄存器和程序计数器的状态来保存 CPU 的状态,可以通过轮询(polling)或向量中断系统(vectored interrupt system)来确定发生了哪种类型的中断。
- 每种类型的中断都有一段单独的代码来确定应该采取什么行动。

I/O Structure¶
I/O 结构有两种:
- 当 I/O 开始后,直到 I/O 结束,控制权才返回给用户程序
- 这种方式称为同步 I/O,用户程序在等待 I/O 完成时处于阻塞状态
- 同一时间内至多有一个 I/O 操作在进行
- 当 I/O 开始后,无需等待 I/O 结束,控制权立即返回给用户程序
- 这种方式称为异步 I/O,用户程序在等待 I/O 完成时可以继续执行
- 用户程序可通过 system call 请求操作系统等待 I/O 完成,而自身先执行其他任务,后续再通过 system call 检查 I/O 是否完成
- 使用 Device-status table 来跟踪每一个 I/O 设备的状态(设备类型、地址、状态等),当 I/O 设备完成操作后,操作系统通过中断通知 CPU
- 同一时间内可以有多个 I/O 操作在进行

DMA Structure
- 直接内存访问(Direct Memory Access, DMA)是一种允许 I/O 设备直接与内存交换数据的技术,而无需通过 CPU
- DMA 控制器负责管理数据传输,CPU 只需在传输开始和结束时进行干预(一个数据块仅产生一次中断,而不是每个字节都产生中断)
- 对于高速网卡等高度 I/O 设备而言,DMA 可以显著提高系统性能,特别是在处理大量数据传输时
Operating System Structure¶
Multiprogramming¶
CPU 如果只进行单一任务的处理,当该任务需要等待 I/O 操作完成时,CPU 会处于空闲状态,导致资源浪费。为了解决这个问题,引入了多道程序设计(Multiprogramming)的概念。
- 仅将系统中的部分任务加载到内存中,再通过调度程序选择一个任务来执行(job scheduling)
- 当该任务需要等待 I/O 操作完成时,调度程序会让 OS 切换到另一个任务来执行,保证 CPU 的利用率
Time-Sharing¶
- 相当于 multiprogramming 的逻辑扩展:CPU 以极高的频率在多个任务之间切换,使得每个用户(user,此处理解为使用 OS 的程序)都感觉自己独占了计算机系统
- 让计算机使用者认为自己在同时使用多个程序(interactive)。
- 使用虚拟内存计数让进程在不完全驻留内存的情况下运行(通过内存和外存的协作模拟“大内存”)
Process Management¶
- 进程是正在运行的程序,程序是静态的(passive),进程是动态的(active)
- 进程包括程序代码和当前活动(如寄存器内容、内存分配等)
- 单线程进程只有一个程序计数器(Program Counter, PC),用于记录下一条将要执行的指令地址
- 多线程进程有多个程序计数器,每个线程有自己的 PC 和寄存器集
- 通常,系统中包括用户进程和操作系统进程
- 可以通过 CPU 多路复用(CPU multiplexing)来实现多个进程共享 CPU(快速切换 CPU 执行权),让系统用户感知到多个任务同时进行,实质上是 CPU 分时复用
Memory Management¶
内存管理的核心是决定“哪些内容何时留在内存中”,从而实现
- 提升 CPU 利用率,让 CPU 始终有可执行的进程/指令
- 优化用户响应,让交互类任务能从内存中快速获取资源,减少等待时间
为了达成以上目的,需要做的是:
- 资源追踪:记录内存中哪些区域正在被哪个进程/程序占用
- 换入/换出决策:判断哪些进程(或其部分数据)需要从外存(如硬盘)加载到内存,哪些已加载的内容需换出到外存
- 动态分配与释放:按进程运行需求分配内存空间(如进程启动时分配内存块),并在进程结束后回收内存
Storage Management¶
- 操作系统会将物理介质上的存储抽象为统一、逻辑化的视图:将各种物理介质统一抽象为文件(file),并通过目录(directory)来组织和管理这些文件。
- 文件系统(file system)是存储管理的核心模块
- 将文件以目录树的形式组织起来
- 负责判定哪些实体(如用户、进程)有权访问哪些文件