01-概述

计算机硬件系统

  • 冯诺依曼架构 略

计算机系统的用户视图

  • 应用:用户的视图

  • 语言处理:应用程序员的视图

  • 操作系统:语言处理程序设计者的视图

  • 计算机硬件:操作系统设计者的视图

总线

  • 数据总线

  • 地址总线

  • 控制总线

  • 类型

    • 内部总线:CPU 内部连接各元件

    • 系统总线:连接 CPU、I/O 模块、内存

    • 通信总线:计算机系统之间通信

  • 北桥:主存控制器,连接CPU、主存

  • 南桥:I/O 控制器

现代 CPU 架构中,大部分已不再采用传统意义上的南北桥设计,而是将北桥(如内存控制器、PCI Express 控制器等)集成到处理器内部,而南桥的功能则由单一芯片组或平台控制器处理。这种改变有助于提高数据传输速度并降低延迟。

当我看到老掉牙的 PPT 时,就意识到这课的水准了

CPU

  • 组成

    • ALU

    • 寄存器、Cache

    • 控制器

存储

  • 寄存器

  • L1 Cache SRAM

  • L2 Cache SRAM

  • L3 Cache SRAM

  • 主存 DRAM

  • SSD

  • HDD

  • 远程外存储器

I/O 控制方式

  • 轮询:CPU 控制 I/O、数据经由 CPU 传输

  • 中断:CPU 启动 I/O 设备,设备进行 I/O,设备中断 CPU 以善后,数据经由 CPU 传输

  • DMA:CPU 启动 DMA,DMA 独立进行 I/O 和内存数据交换,DMA 中断 CPU 以善后,数据经由 I/O 模块直达内存

计算机操作技术的发展

  • 手工操作:与机器速度不匹配

  • 装入程序

    • 卡片、打孔纸带

    • 装入程序 Loader:将程序装入内存,必要时转换地址

    • 存放在 ROM 中

  • 引入汇编语言后的计算机控制

    • 汇编语言代码在通过汇编程序编译为可执行代码

    • 可执行代码在计算机上输入数据,获得结果

  • 引入高级语言后的计算机控制

    • 高级语言程序通过编译程序编译为目标代码

    • 目标代码通过链接程序链接为可执行代码

    • 可执行代码在计算机上输入数据,获得结果

  • 简单批处理系统:引入作业控制语言,用户编写作业说明书

    • 资源管理程序出现:屏蔽硬件细节

    • 中断出现:实现 CPU 和 I/O 设备的并行工作

    • 磁带出现:输入效率提高,但是不足以支持多道程序切换

  • 操作系统

    • 多道程序同时执行:需要高速的外存:磁盘

计算机操作系统

  • 计算机系统最基础的系统软件,管理软硬件资源、控制程序执行,改善人机界面,合理组织计算机工作流程,为用户使用计算机提供良好运行环境

  • 公共基础设施,所有应用程序共用 OS 服务

  • 内核:反应式机制,终端驱动

操作控制方式

  • 多道批处理操作系统:脱机控制方式

  • 分时操作系统:交互式控制方式

    • 采用时间片轮转调度方式

    • 多个用户可以同时使用计算机,每个用户分配一个时间片

    • 用户间彼此独立,互不干扰

    • 响应时间短,用户体验较好,但系统开销较大

  • 实时操作系统:实时控制方式

    • 计算机对输入信息进行即时处理,并在严格的时间约束下给出结果

    • 适用于工业控制、航空航天、军事防御等场景

    • 硬实时:必须在截止时间内完成

    • 软实时:尽量在截止时间内完成

  • Unix Windows 是分时操作系统

操作系统的视角

资源管理的视角

  • 资源种类

    • 硬件资源:CPU、内存、外设

    • 信息资源:数据、程序

  • 资源管理

    • CPU:哪个进程使用 CPU

    • 内存:程序、数据在内存中的分布

    • 设备:分配、使用设备

    • 信息资源:如何访问文件信息

    • 信号量资源:管理进程间通信

  • 驱动程序:底层直接监视硬件,向上层屏蔽资源使用的底层细节

  • 共享方式

    • 独占使用:一个时间段内资源只能被一个进程使用(打印机)

    • 并发使用:多个进程可以同时使用资源(读文件)

  • 分配策略

    • 静态分配:进程运行前拿到全部都占资源,效率低

    • 动态分配:使用资源前临时申请,可能产生死锁

    • 资源抢占:被抢夺资源的进程需要回滚执行

  • 资源管理的技术

    • 复用:空分复用、时分复用,分配给不同的用户

    • 虚拟:把物理资源虚拟成逻辑资源,分配给不同的用户

    • 抽象:简化资源使用的复杂性,屏蔽底层细节

      • 进程抽象

      • 虚存抽象

      • 文件抽象

控制程序执行的视角

  • CPU 和 I/O 速度不匹配

  • 让多道程序同时进入内存争抢 CPU,提升利用率

  • 特点

    • CPU 与外部设备充分并行

    • 外部设备之间充分并行

    • 发挥 CPU 的提升效率

    • 提升吞吐量(单位时间的计算量)

    • 单个程序的响应时间变长

  • 实现:为进入内存的程序建立管理实体 进程

  • 设计要点

    • 如何使用资源

    • 如何复用 CPU

    • 如何使 CPU 与 I/O 设备充分并行

    • 如何让正在运行的程序让出 CPU

操作控制计算机的视角

  • OS 的操作接口:系统程序

  • 脱机作业方式

    • OS:提供作业声明语言

    • 用户:编写作业说明书

    • 操作员:通过控制台输入作业

  • 联机作业控制方式

    • 用户首先登陆操作系统

    • 操作系统提供命令解释程序接受输入的命令

    • 用户通过联机输入命令,控制作业执行

  • 命令解释程序:接受和执行一条用户提出的对作业的加工处理命令

人机交互的视角

  • 设备

    • 传统终端设备

    • 新型模式识别设备

    • 行命令 -> 全屏幕 -> GUI

程序接口的视角

系统调用

  • 操作系统内核提供的一系列具有预定功能的服务例程

  • 设计原因:对系统进行保护,程序按照不同的特权运行

  • 系统调用在内核态执行

    • 用户态/用户空间/目态:用户程序运行

    • 内核态/核心空间/管态:操作系统运行

  • 实现机制:陷入处理机制

    • 使用陷入指令,含有编号,寄存器内有参数

    • 用户态程序执行系统调用时,CPU 产生中断,进入内核态

    • 内核态执行系统调用,完成后返回用户态

    • 实现要点

      • 编写系统调用处理程序

      • 维护系统调用入口地址表:包含处理程序的入口地址、参数个数,表驱动机制

      • 开辟现场保护区:保护用户态程序的现场

  • 种类

    • 进程管理:创建、撤销、阻塞、唤醒

    • 文件管理:创建、删除、打开、关闭

    • 设备管理:请求、释放

    • 存储管理:分配、释放

    • 进程通信:建立、断开连接;发送、接受消息

    • 信息管理:获取、设置时间、系统数据,生成诊断、统计数据

POSIX 标准

  • Portable Operating System Interface

  • Unix 系统的标准化接口

  • 提供了一个统一的 API 接口,屏蔽了不同操作系统之间的差异

系统结构的角度

结构设计方法

  • 单体式结构:模块化,模块之间协作

  • 层次式结构:进程间存在层次,只能单项依赖(底层为高层服务)

  • 虚拟机结构:虚拟化物理硬件设备

  • 微内核结构:内核中只有必须的最小核心功能,其余功能由用户态的服务程序实现,可移植性好,但是效率低

操作系统内核

  • 单内核:内核中各部件混居,广泛使用,Windows、Linux

  • 微内核:结构性部件和功能性部件分离

  • 混合内核:单内核和微内核的折中,将组件移入核心态获取更快的性能

  • 外内核:将操作系统的管理功能最小化,尽可能地将资源管理权交给用户级应用程序(PPT 疑似胡说八道

最后更新于