2. 计算机系统基础知识
1 计算机系统概述
计算机系统 (Computer System) 是指用于数据管理的计算机硬件、软件及网络组成的系统。
计算机系统可划分为硬件(子系统)和软件(子系统)两部分。硬件由机械、电子元器件、磁介质和光介质等物理实体构成,例如处理器(含运算单元和控制单元)、存储器、输入设备和输出设备等。软件是一系列按照特定顺序组织的数据和指令,并控制硬件完成指定的功能。
2 计算机硬件
2.1 计算机硬件组成
计算机组成结构 (Computer Architecture) 源于冯·诺依曼计算机结构,该结构成为现代计算机系统发展的基础。冯·诺依曼计算机结构将计算机硬件划分为5部分。
但在现实的硬件构成中,控制单元和运算单元被集成为一体,封装为通常意义上的处理器(但处理器并不是只有上述两部分);输入设备和输出设备则经常被设计者集成为一体,按照传输过程被划分为总线、接口和外部设备。
下面按照处理器、存储器、总线、接口和外部设备进行阐述。
2.2 处理器
处理器 (Central Processing Unit,CPU) 是计算机系统运算和控制的核心部件。
处理器的指令集按照其复杂程度可分为复杂指令集 (Complex Instruction Set Computers,CISC) 与精简指令集 (Reduced Instruction Set Computers,RISC) 两类。 CISC 以 Intel、AMD 的 x86 CPU 为代表, RISC 以 ARM 和 Power 为代表。随着研究的深入,除了由于历史原因而仍然存在的 CISC 结构外, RISC 已经成为计算机指令集发展的趋势,几乎所有后期出现的指令集均为 RISC 架构。
随着微电子技术发展,用于专用目的处理器芯片不断涌现,常见的有图形处理器 (Graphics Processing Unit,GPU) 处理器、信号处理器 (Digital Signal Processor,DSP) 以及现场可编程逻辑门阵列 (Field Programmable Gate Array,FPGA) 等。
2.3 存储器
根据存储器的硬件结构可分为 SRAM、DRAM、NVRAM、Flash、EPROM、Disk 等。
- 本质
用半导体、磁、光等介质做成的数据存储电子设备。 - 分层体系(离 CPU 由近到远)
- 片上缓存(L0/L1)
• 集成在 CPU 核内,SRAM,16 kB–512 kB,最快。 - 片外缓存(L2/L3/Platform Cache)
• CPU 核外,SRAM,256 kB–4 MB,经总线访问。 - 主存(内存)
• DRAM,独立芯片,百MB – 数十GB,需不断刷新。 - 外存
• 磁盘、光盘、磁带、Flash 等,容量大、速度慢,掉电不丢。
• 数据寿命:Flash≈10 年,光盘数年-数十年,磁盘 >10 年,磁带 >30 年。
- 片上缓存(L0/L1)
2.4 总线
- 定义:计算机部件按协议交换数据的通路。
- 层级
– 内总线(片上总线):芯片内部互联。
– 系统总线:狭义指 CPU-主存-桥;广义含局部总线(Local Bus)。
– 外部总线(通信总线):计算机与外部设备/系统之间的总线。 - 桥(Bridge):完成不同总线协议转换。
- 性能指标:总线带宽、总线质量 QoS、总线时延、总线抖动。
- 常见总线
– 并行:PCI、PCIe、ATA(IDE)
– 串行:USB、SATA、CAN、RS-232/485、RapidIO、以太网
– 专业:ARINC429/659/664、MIL-STD-1553B、IEEE-1394、VME 等。
2.5 接口
- 定义:同一计算机不同功能层之间的通信规则。
- 常见接口
– 显示:HDMI、DVI、DP
– 音频:TRS、RCA、XLR
– 网络:RJ45、FC
– 其它:USB、SATA、PS/2、RS-232、LPT、离散量、A/D 等。 - 特点:一种总线可对应多种物理接口(例:以太网→RJ-45/同轴; PCle 总线则具有多种形态的接口实现连接)。
2.6 外部设备(外围设备)
- 定义:计算机非必要但常见的扩展设备,通过接口连接。
- 典型示例
– 通用:键盘、鼠标、显示器、扫描仪、摄像头、麦克风、打印机、光驱、网卡、U 盘/存储卡。
– 移动/穿戴:加速计、GPS、陀螺仪、感光、指纹识别。
– 专业领域:测温仪、测速仪、机械臂、液压装置、油门/驾驶杆等。
3 计算机软件
计算机软件是指计算机系统中的程序及其文档,是计算任务的处理对象和处理规则的描述。任何以计算机为处理工具的任务都是计算任务。处理对象是数据(如数字、文字、图形、图像和声音等,他们只是表示,而无含义)或信息(数据及有关的含义)。处理规则一般指处理的动作和步骤,文档是为了便于了解程序所需的阐述性资料。
3.1 计算机软件概述
软件系统是指在计算机硬件系统上运行的程序、相关的文档资料和数据的集合。计算机软件用来扩充计算机系统的功能,提高计算机系统的效率。按照软件所起的作用和需要的运行环境的不同,通常将计算机软件分为系统软件和应用软件两大类。
系统软件是为整个计算机系统配置的不依赖特定应用领域的通用软件。这些软件对计算机系统的硬件和软件资源进行控制和管理,并为用户使用和其他应用软件的运行提供服务。也就是说,只有在系统软件的作用下,计算机硬件才能协调工作,应用软件才能运行。根据系统软件功能的不同,可将其划分为:操作系统、程序设计语言翻译系统、数据库管理系统和网络软件等。
应用软件是指为某类应用需要或解决某个特定问题而设计的软件,如图形图像处理软件、财务软件、游戏软件和各种软件包等。在企事业单位或机构中,应用软件发挥着巨大的作用,承担了许多计算任务,如人事管理、财务管理和图书管理等。按照应用软件使用面的不同,可进一步把应用软件分为专用的应用软件和通用的应用软件两类。
3.2 操作系统
3.2.1 操作系统的组成
操作系统是一种大型、复杂的软件产品,它们通常由操作系统内核 (Kernel) 和其他许多附加的配套软件所组成,包括图形用户界面程序、常用的应用程序(如日历、计算器、资源管理器和网络浏览器等)、实用程序(任务管理器、磁盘清理程序、杀毒软件和防火墙等)以及为支持应用软件开发和运行的各种软件构件(如应用框架、编译器和程序库等)。
操作系统内核对硬件设备进行了抽象,为应用软件提供了一套简洁、统一的接口(称为系统调用接口或应用程序接口 API)。
操作系统内核指的是能提供进程管理(任务管理)、存储管理、文件管理和设备管理等功能的那些软件模块,它们是操作系统中最基本的部分。 内核通常都驻留在内存中,它以 CPU 的最高优先级运行,能执行指令系统中的特权指令,具有直接访问各种外设和全部主存空间的特权,负责对系统资源进行管理和分配。
3.2.2 操作系统的作用
操作系统主要有以下 3 个方面的重要作用。
(1)管理计算机中运行的程序和分配各种软硬件资源。计算机中一般总有多个程序在运行,这些程序在运行时都可能要求使用系统中的资源(如访问硬盘,在屏幕上显示信息等),此时操作系统就承担着资源的调度和分配任务,以避免冲突,保证程序正常有序地运行。操作系统的资源管理功能主要包括处理器管理、存储管理、文件管理、 I/O 设备管理等几个方面。
(2)为用户提供友善的人机界面。人机界面的任务是实现用户与计算机之间的通信(对话)。几乎所有操作系统都向用户提供图形用户界面 (GUI), 它通过多个窗口分别显示正在运行的各个程序的状态,采用图标 (Icon) 来形象地表示系统中的文件、程序和设备等对象,用户借助单击“菜单”的方法来选择要求系统执行的命令或输入某个参数,利用鼠标器或触摸屏控制屏幕光标的移动,并通过单击操作以启动某个操作命令的执行,甚至还可以采用拖放方式执行所需要的操作。这些措施使用户能够比较直观、灵活、有效地使用计算机。
(3)为应用程序的开发和运行提供一个高效率的平台。安装了操作系统之后,实际上呈现在应用程序和用户面前的是一台“虚拟计算机”。操作系统屏蔽了几乎所有物理设备的技术细节,它以规范、高效的方式(例如系统调用、库函数等)向应用程序提供了有力的支持,从而为开发和运行其他系统软件及各种应用软件提供了一个平台。
除了上述 3 个方面的作用之外,操作系统还具有辅导用户操作(帮助功能)、处理软硬件错误、监控系统性能、保护系统安全等许多作用。总之,有了操作系统,计算机才能成为一个高效、可靠、通用的数据处理系统。
3.2.3 操作系统的特征
- 并发性
- 表示:在一段时间内宏观上多个程序同时运行,但在单 CPU 环境中微观上只有一个程序在执行;多 CPU 环境中可将程序分配到不同 CPU 实现并行。
- 共享性
- 表示:系统资源(硬件、信息)可被多个并发进程(线程)共同使用,而非独占。
- 方式:
- 同时共享
- 互斥共享
- 虚拟性
- 表示:把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物。
- 目的:提供易于使用且高效的操作环境。
- 不确定性
- 表示:进程执行“走走停停”,何时执行、何时暂停、推进速度及总执行时间均不可预知,导致程序执行结果可能不唯一。
3.2.4 操作系统的分类
3.2.4.1 批处理操作系统
- 单道批处理
- 表示:一次只有一个作业装入内存执行,作业结束后自动调入同批下一作业,减少人工干预。
- 多道批处理
- 表示:多个作业装入内存,当某作业因 I/O 等待时让出 CPU,宏观并行、微观串行。
3.2.4.2 分时操作系统
表示:CPU 时间被划分为极短的时间片,轮流为多个终端用户服务,具备多路性、独立性、交互性、及时性。
3.2.4.3 实时操作系统
- 实时控制系统
- 表示:用于生产过程自动控制,如武器控制、导弹制导等。
- 实时信息处理系统
- 表示:用于实时信息处理,如飞机订票、情报检索等。
3.2.4.4 网络操作系统
表示:提供网络通信、共享资源管理、电子邮件、文件传输、打印共享、网络安全、目录服务等功能;具有硬件独立性、多用户支持、多种客户端支持。
3.2.4.5 分布式操作系统
表示:由多台无主从之分的计算机组成,可动态分配资源、任务划分与协调,提供统一界面;具备网络操作系统的全部功能,并增加透明性、可靠性与高性能。
3.2.4.6 微型计算机操作系统
表示:运行于个人计算机,常见有 Windows、Mac OS、Linux。
3.2.4.7 嵌入式操作系统
- 微型化:占用资源少、代码量小。
- 可定制:能在不同微处理器平台配置结构与功能。
- 实时性:满足过程控制、数据采集等快速响应需求。
- 可靠性:提供容错与防故障措施。
- 易移植性:采用 HAL 与 BSP 技术。
常见系统:VxWorks、μClinux、PalmOS、Windows CE、μC/OS-III、eCos 等。
3.3 数据库
3.3.1 数据库类型总览
- 表示:关系型数据库 & 非关系型数据库。
- 细化:按存储体系再分为
- 关系型数据库
- 键值 Key-Value 数据库
- 列存储数据库
- 文档数据库
- 搜索引擎数据库
3.3.2 关系型数据库
3.3.2.1 基本概念
- 表示:把复杂数据结构归结为二元关系(二维表)。
- 特点:较小冗余、较高数据独立性、易扩展、可共享。
3.3.2.2 数据模型
- 数据结构:二维表(关系)。
- 数据操作:选择、投影、连接、增删改查。
- 完整性约束:实体完整性、参照完整性、用户定义完整性。
3.3.2.3 关系实例
- 学生(学号,姓名,年龄,系别)
- 课程(课程号,课程名,学分)
- 选课(学号,课程号,分数)
3.3.2.4 设计方法
- 设计阶段
- 需求分析
- 概念结构设计(E-R 模型)
- 逻辑结构设计(关系模式、规范化)
- 物理结构设计(存储结构、索引、存取路径)
- 设计技术
- 基于 3 NF 的方法
- 基于 E-R 模型的方法
- 基于视图概念的方法
- 面向对象的关系库设计方法
- 计算机辅助设计工具(CASE)
3.3.2.5 运行维护
- 转储与恢复
- 安全性、完整性控制
- 性能监督与调优
- 重组与重构
3.3.3 分布式数据库
- 定义
- 表示:地理分散,逻辑相关,场地透明+自治。
- 特点
- 集中控制性
- 数据独立性
- 冗余可控性
- 场地自治性
- 存取有效性
- 体系结构
- 四层模式
- 全局外层(全局外模式)
- 全局概念层(全局概念模式、分片/分配模式)
- 局部概念层(局部概念模式)
- 局部内层(局部内模式、局部数据库)
- 映射:层间映射保证同构/异构兼容。
- 典型应用
- 分布式计算
- Internet 应用
- 数据仓库
- 数据复制
- 全球联网查询
- 例:Sybase Replication Server
3.3.4 常用数据库管理系统
- MySQL
- 轻量级关系型,开源,被 Oracle 收购。
- Oracle
- 大型关系型,支持对象扩展,组件:
- 数据库服务器
- 开发工具
- 连接产品
- 工具:Export、Import、PL/SQL
- 大型关系型,支持对象扩展,组件:
- IBM DB2
- 分布式关系型,支持跨数据库、跨 DBMS 查询。
- Sybase
- 产品:
- Adaptive Server Enterprise
- EAServer
- PowerDesigner
- PowerBuilder
- 产品:
- Microsoft SQL Server
- 多平台关系型,特点:
- 高度安全性
- 灵活备份/恢复、设备镜像
- 操作系统级容错
- 数据完整性手段丰富
- 分布式处理功能
- 多平台关系型,特点:
3.3.5 大型数据库管理系统的特点
- 网络环境支持
可用于 C/S 结构与 B/S 结构的数据库应用系统。 - 大规模并发与容量
支持数千并发用户、上百万事务、数百 GB 以上数据容量。 - 并发控制
自动锁功能,保证并发用户安全高效访问数据。 - 安全性
系统级高度安全性保障。 - 备份与恢复
- 灵活的数据备份与恢复方法
- 设备镜像功能
- 利用操作系统容错,最大限度恢复意外损坏数据
- 数据完整性
提供多种手段维护数据完整性。 - 分布式处理
内建方便易用的分布式处理功能。
3.4 文件系统
- 文件与文件系统
- 文件定义:具有符号名的、逻辑上完整的一组相关信息项集合。
- 文件组成:
- 文件体:真实内容。
- 文件说明:操作系统用于管理的信息(文件名、类型、长度、权限、时间戳等)。
- 文件系统:实现文件统一管理的一组软件及相关数据,提供按名存取、统一接口、并发控制、安全性、性能优化、差错恢复等功能。
- 文件类型
- 按性质和用途:系统文件、库文件、用户文件。
- 按保存期限:临时文件、档案文件、永久文件。
- 按保护方式:只读文件、读/写文件、可执行文件、不保护文件。
- 按 UNIX 分类:普通文件、目录文件、设备文件(特殊文件)。
- 文件的结构与组织
- 逻辑结构(用户视角):
- 记录式文件:有结构,记录长度可为定长或变长。
- 流式文件:无结构,字节流,可顺序或随机访问。
- 物理结构(实现视角):
- 连续结构:逻辑上连续的信息存放在物理上连续的块中。
- 链接结构:信息存放在不连续的块中,通过指针链接。
- 索引结构:为每个文件建立索引表,记录逻辑块号到物理块号的映射。
- 多重索引:大文件采用多级索引,如 UNIX 的 inode 结构。
- 文件存取方法
- 顺序存取:依次读写。
- 随机存取:按任意次序直接读写。
- 存储空间管理
- 空闲区表:记录连续空闲区(序号、起始块号、块数、状态)。
- 位示图:用位图表示块状态(0 空闲,1 占用)。
- 空闲块链:空闲块通过指针形成链表。
- 成组链接法(UNIX):空闲块按组管理,每组首块记录下一组信息。
- 文件共享与保护
- 共享方式:
- 硬链接:多个目录项指向同一索引节点。
- 符号链接:新文件存储原文件路径名,可跨文件系统。
- 保护机制:
- 存取控制矩阵:二维矩阵表示用户-文件权限。
- 存取控制表:按用户类别(文件主、同组、其他)设置权限。
- 用户权限表:以用户为单位集中管理可访问文件及权限。
- 密码:文件加密,需密码才能访问。
3.5 网络协议
- 基本概念
- 协议定义:计算机网络中通信双方必须共同遵守的“规则”或“约定”,用于保证数据正确、有序地发送与接收。
- 协议三要素:语法(数据格式)、语义(控制信息含义)、同步(通信时序)。
- 主要分类
- 局域网协议 LAN
- 广域网协议 WAN
- 无线网协议 WLAN
- 移动网协议(如 5G)
- 互联网核心协议簇:TCP/IP
3.6 中间件
2.3.6 中间件
- 定义
- 位于操作系统与应用软件之间的系统软件,向上为应用提供统一、标准的接口,向下屏蔽硬件与操作系统差异,实现跨平台、分布式应用的开发与运行。
- 核心作用
- 承上启下:使应用开发与具体硬件、操作系统解耦。
- 复用与扩展:提供通用服务(通信、事务、数据、安全等),减少重复开发。
- 提高可靠性与性能:通过负载均衡、容错、缓存、事务控制等机制。
- 常见分类
- 通信处理(消息)中间件:MQSeries、TongLINK、Kafka。
- 事务处理(交易)中间件:Tuxedo、WebLogic JTA。
- 数据存取管理中间件:该中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。
- Web 服务器中间件:Tomcat、Jetty、IIS。
- 安全中间件:PKI、SSL/TLS 库、身份认证网关。
- 跨平台/架构中间件:CORBA、DCOM/COM+、RMI。
- 专用平台中间件:电子商务、物联网、金融等垂直领域框架。
- 网络中间件:它包括网管、接入、网络测试、虚拟社区和虚拟缓冲等,也是当前最热门的研发项目。
- 代表产品
- IBM MQSeries:是 IBM 的消息处理中间件。异步、可靠消息传输。
- BEA Tuxedo:属于交易中间件。它允许客户机和服务器参与一个涉及多个数据库协调更新的交易,并能够确保数据的完整性。分布式事务处理、负载均衡、故障恢复。
- CORBA:跨语言、跨平台的对象请求代理。
- J2EE(EJB、JSP、Servlet):Java 企业级组件标准。
- Microsoft COM+/DCOM:Windows 平台分布式组件。
- 部署形态
- 独立进程:如消息代理、事务服务器。
- 库/框架:如 ODBC/JDBC 驱动、SSL 库。
- 容器化:现代微服务架构中,以容器或 Sidecar 形式运行。
3.7 软件构件
- 定义
- 构件(Component)是自包容、可复用的程序集合,通过明确定义的接口对外提供服务,隐藏内部实现细节。
- 核心特性
- 自包容:内部功能完整,不依赖外部细节。
- 可重用:可在不同系统或环境中多次使用。
- 可组装:支持“搭积木”式开发,通过接口与其他构件协同。
- 组装模型
- 设计构件组装 → 建立构件库 → 构建应用软件 → 测试发布。
- 优点:缩短开发周期、降低成本、并行开发、易于维护。
- 缺点:需要高水平架构设计、性能可能妥协、第三方构件质量不可控、学习成本较高。
- 主流标准与规范
- OMG CORBA:跨语言、跨平台的分布式对象标准。
- Sun J2EE / Jakarta EE:以 EJB 为核心的企业级 Java 构件规范。
- Microsoft COM / DCOM / COM+:Windows 平台构件模型,支持本地与远程调用。
- 构件粒度与层次
- 细粒度:函数级、类库级。
- 中粒度:业务模块、服务单元。
- 粗粒度:子系统、独立应用。
3.8 应用软件
- 定义
- 应用软件是为满足用户在特定领域或任务中的需求而专门设计的程序集合,用于解决实际问题、扩展计算机功能、提升用户效率。
- 与系统软件的关系
- 系统软件提供运行平台与资源管理;应用软件在系统软件之上直接面向用户,完成具体业务功能。
- 分类
- 通用软件:办公软件(Word、Excel)、浏览器、多媒体播放器、即时通讯工具等。
- 专用/行业软件:CAD 工程设计、医院 HIS、银行核心系统、ERP 等。
- 按运行环境:桌面应用、移动 App、Web 应用、小程序、云原生 SaaS 等。
- 核心特点
- 功能针对性强:针对特定业务或生活场景设计。
- 用户界面友好:通常提供 GUI,易于学习和操作。
- 可定制与可扩展:支持配置、插件、二次开发,满足个性化需求。
- 跨平台能力:现代应用普遍支持 Windows、macOS、Linux、iOS、Android 及 Web 浏览器。
- 持续更新:通过版本迭代修复缺陷、增加功能、提升安全性。
4 嵌入式系统及软件
4.1 嵌入式系统的组成及特点
- 定义:以应用为中心、以计算机技术为基础,软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
- 组成:
- 嵌入式处理器(MCU、MPU、DSP、FPGA/SoC)
- 支撑硬件:存储器(ROM、RAM、Flash)、时钟、电源、外设接口(GPIO、UART、SPI、I²C、USB、CAN、Ethernet)
- 嵌入式操作系统(RTOS、μClinux、FreeRTOS、VxWorks、RT-Thread)
- 支撑软件:BSP(Board Support Package)、HAL(Hardware Abstraction Layer)、驱动程序、协议栈
- 应用软件:面向具体业务的控制程序或算法
- 特点:
- 专用性强、软硬件高度耦合
- 资源受限(低功耗、小内存)
- 实时性需求(硬实时/软实时)
- 高可靠性与稳定性
- 生命周期长,固件升级机制完备
4.2 嵌入式系统的分类
- 按实时性
- 硬实时(Hard Real-Time)
- 软实时(Soft Real-Time)
- 按安全等级
- 安全攸关系统 (Safety-Critical System)
- 非安全攸关系统
- 按复杂度与规模
- 8/16/32/64 位系统;单片机、SoC、SBC、模块化计算机
4.3 嵌入式软件的组成及特点
- 层次结构
- 硬件层 → 硬件抽象(HAL)/板级支持包(BSP) → 操作系统层 → 中间件层 → 应用层
- 开发模式
- 宿主机(Host)开发、交叉编译、仿真调试
- 目标机(Target)运行,固件烧录或远程 OTA 更新
- 软件特点:
- 可裁剪、可配置、静态链接为主
- 实时调度(优先级抢占、时间片轮转)
- 资源静态分配,避免动态内存碎片
- 低功耗管理(时钟门控、动态电压频率调节 DVFS)
- 安全性 (Safety)与可靠性设计
4.4 安全攸关软件的安全性设计
- 依据标准:
- DO-178C(航空)
- 安全生命周期:
- 需求 → 设计 → 实现 → 验证 → 确认 → 维护
- 关键技术:
- 形式化方法与模型检测
- 静态代码分析、单元/集成/系统测试、故障注入
- 分区保护(ARINC 653、内存保护单元 MPU)
- 冗余与容错(TMR、双机热备、Fail-Safe 模式)
5 计算机网络
计算机网络是利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同的形式连接起来,并依靠网络软件及通信协议实现资源共享和信息传递的系统。计算机网络技术主要涵盖通信技术、网络技术、组网技术和网络工程等四个方面。
5.1 网络的基本概念
2.5.1 网络的基本概念
- 计算机网络的定义
- 由独立计算机系统、通信设备及通信协议通过通信线路互联,实现资源共享和信息传递的系统。
- 发展四阶段
- 诞生阶段:20 世纪 60 年代前,单主机远程联机系统。
- 形成阶段:20 世纪 60 年代中–70 年代,ARPANET 引领的多主机互连。
- 互联互通阶段:20 世纪 70 年代末–90 年代,TCP/IP 与 OSI 标准确立。
- 高速发展阶段:20 世纪 90 年代至今,Internet 普及,高速光纤、无线技术广泛应用。
- 核心功能
- 数据通信:二进制形式的信息交换。
- 资源共享:硬件(打印机、存储)、软件、数据。
- 管理集中化:管理信息系统、办公自动化系统等,通过这些系统可以实现日常工作的集中管理,提高工作效率,增加经济效益。
- 分布式处理:任务拆分、并行计算、结果汇总。
- 负荷均衡:动态分配工作负载,提升整体效率。
- 性能指标
- 速率(bit/s)、带宽(Hz 或 bit/s)、吞吐量、时延、往返时间 RTT、信道利用率、网络利用率。
- 非性能指标:费用、质量、标准化、可靠性、可扩展性、易管理性。
- 应用前景
- 因特网是人类自印刷术发明以来在通信方面最大的变革。现在,人们的生活、工作、学习和交往都已离不开因特网了。
- 信息时代基石,推动教育、金融、制造、政务、社交等领域数字化转型,支撑云计算、物联网、大数据、AI 的融合发展。
5.2 通信技术
- 信道
- 物理信道:由传输介质(双绞线、光纤、无线、卫星等)和通信设备组成。
- 逻辑信道:发端到收端之间的虚拟线路,可面向连接或无连接。
- 香农公式
- 信道容量
- 为最大比特率, 为带宽, 为信噪比。
- 提升信道容量可以使用比较大的带宽,降低信噪比;也可以使用比较小的带宽,升高信噪比。
- 信号处理流程
- 发端:信源编码→信道编码→交织→脉冲成形→调制→信道。
- 收端:解调→去交织→信道译码→信源译码→输出。
- 复用技术
- TDM 时分复用、FDM 频分复用、CDM 码分复用。其中 ADSL 使用了 FDM 的技术,语音的上行和下行占用了不同的带宽。
- 多址技术
- TDMA 时分多址、FDMA 频分多址、CDMA 码分多址。
- 5G 关键技术
- OFDM 优化波形与可扩展子载波间隔。
- 大规模 MIMO、毫米波、频谱共享、LDPC/Polar 编码。
5.3 网络技术
- 局域网 LAN
- 覆盖范围:办公室、楼宇、校园等有限地理区域。
- 常见拓扑:星形、树形、总线、环形、网状。
- 关键技术:以太网(IEEE 802.3)、交换式以太网、VLAN、PoE。
- 无线局域网 WLAN
- 标准:IEEE 802.11 a/b/g/n/ac/ax(Wi-Fi 6/6E)。
- 拓扑:基础设施模式(AP-STA)、Ad-hoc、Mesh。
- 关键技术:OFDM、MIMO、WPA3 安全、射频管理与漫游。
- 城域网 MAN
- 覆盖城市范围,技术:DQDB(IEEE 802.6)、千兆/万兆以太网、MPLS、SPN。
- 分层结构:核心层、汇聚层、接入层。
- 广域网 WAN
- 覆盖国家/全球,技术:SONET/SDH、MPLS、Frame Relay、ATM、xDSL、PON。
- 互联方式:电路交换、分组交换、SD-WAN(软件定义广域网)。
- 移动通信网
- 1G → 5G 演进:模拟 → 数字 → 宽带 → 全 IP → 云原生。
- 5G 核心:SBA 服务化架构、网络切片、边缘计算、uRLLC/eMBB/mMTC 场景。
5.4 组网技术
5.4.1 网络设备及其功能层级
- 集线器 Hub:物理层,广播转发,所有端口共享冲突域。
- 中继器 Repeater:物理层,信号放大、整形,延长传输距离。
- 网桥 Bridge:数据链路层,基于 MAC 地址过滤、隔离冲突域。
- 交换机 Switch:数据链路层,MAC 地址学习、单播转发,支持 VLAN、STP、链路聚合。
- 路由器 Router:网络层,基于 IP 地址转发,实现子网间互联、路由选择、ACL、NAT。
- 防火墙 Firewall:工作于网络层及以上,安全策略过滤,支持状态检测、VPN、IPS/IDS。
5.4.2 网络协议基础
- OSI 七层模型 vs TCP/IP 四层模型
- OSI:物理→数据链路→网络→传输→会话→表示→应用
- TCP/IP:网络接口→网际层→传输层→应用层
- 核心协议
- IP / ICMP(Internet Control Message Protocol) / ARP / RARP(网际层)
- TCP / UDP(传输层)
- HTTP / HTTPS / FTP / SMTP / DNS(应用层)
5.4.3 交换技术
人们日常使用的计算机通常就是通过交换机接入网络的。
- 交换原理
- 学习:根据源 MAC 建立端口-MAC 表
- 转发:已知目的 MAC 单播转发;未知 MAC 泛洪
- 更新:老化机制保持 MAC 表实时性
- 环路避免
- STP/RSTP/MSTP:生成树协议,逻辑阻塞冗余链路
- 链路聚合:802.3ad/LACP,多条物理链路捆绑为一条逻辑链路,提升带宽与冗余
5.4.4 路由技术
- 路由原理
- 路由表构成:目的网络、下一跳、出接口、度量值
- 路由过程:最长前缀匹配 → 转发决策 → 数据包封装 → 下一跳发送
- 路由协议
- 静态路由:人工配置,简单但维护量大
- 动态路由
- 内部网关协议 IGP
- 链路状态:OSPF、IS-IS(支持大规模网络)
- 距离矢量:RIP
- 外部网关协议 EGP:BGP(自治系统间路径向量协议)
- 内部网关协议 IGP
5.5 网络工程
5.5.1 网络规划
- 需求分析:业务目标、用户规模、应用类型、流量模型、安全合规。
- 可行性分析:技术可行性、经济评估、风险识别、ROI 计算。
- 现网评估:拓扑梳理、性能基线、瓶颈诊断、资产盘点。
5.5.2 网络设计
- 总体目标:高可用、高性能、可扩展、易管理、安全合规。
- 设计原则:模块化、分层(核心/汇聚/接入)、冗余、可演进。
- 关键内容:
- 拓扑设计:物理与逻辑拓扑、双核心冗余、链路聚合、VRRP/HSRP。
- 地址规划:IPv4/IPv6 地址分配、子网划分、路由聚合、NAT 策略。
- 设备选型:交换机(L2/L3)、路由器、防火墙、无线 AP、光模块。
- 性能设计:带宽瓶颈计算、QoS 策略、缓存与队列管理。
- 安全设计:分层防御(防火墙/IPS/VPN)、零信任、访问控制、日志审计。
- 管理设计:SNMP/NetFlow/Syslog、自动化运维、故障定位体系。
5.5.3 网络实施
- 工程实施计划:里程碑、资源排期、割接窗口、回退预案。
- 设备验收:硬件清点、功能/性能测试、固件版本一致性。
- 安装调试:拓扑布线、设备上架、配置下发、连通性验证、冗余切换测试。
- 试运行:压力测试、故障演练、监控基线校准、用户培训。
- 正式切换:割接流程审批、实时监测、问题回滚、验收报告。
- 用户培训等。
6 计算机语言
6.1 计算机语言的组成
- 表达式
- 变量:存储数据的命名单元
- 常量:运行期间值不变
- 字面量:直接书写的数值、字符或字符串
- 运算符:算术 、关系 、逻辑 、位运算 等
- 流程控制
- 分支:if / else、switch / case
- 循环:for、while、do-while
- 函数:定义、调用、参数传递、返回值
- 异常:try / catch / finally、raise / throw
- 集合(数据结构)
- 字符串:字符序列
- 数组:同类型元素的有序集合
- 散列表(哈希表):键-值映射
- 组织单元
- 语句:最小可执行单元
- 模块 / 包:代码复用与命名空间管理
- 注释:单行、多行、文档注释
6.2 计算机语言的分类
6.2.1 机器语言
二进制指令,CPU 直接执行;与硬件强相关、不可移植。
6.2.2 汇编语言
助记符形式(MOV、ADD 等);经汇编程序翻译为机器码;依赖指令集、效率高、可移植性差。
6.2.3 高级语言
- 接近自然语言、跨平台;需编译或解释执行。
- 常见:C、C++、Java、Python、C#、Go。
6.2.4 建模语言
描述系统结构与行为,不直接执行;典型代表 UML、SysML。
- 概念与作用
- 使用图形化或文本化符号对系统需求、结构、行为进行抽象描述的语言。
- 目的:在编码之前可视化系统、减少歧义、支持验证与自动生成代码。
- 发展历程
- 1970s(1970 到 1979 这十年):结构化分析(SA)、数据流图(DFD)。
- 1990s(1990–1999):面向对象分析兴起,出现 Booch93、OMT、OOSE。
- 1997:OMG 采纳 UML 1.1,统一建模语言诞生。
- 2005 后:SysML(系统工程扩展)、BPMN(业务流程)、ArchiMate(企业架构)相继成熟。
- UML 的组成要素
- 基本构造块
- 事物
- 结构事物
- 行为事物
- 分组事物
- 注释事物
- 关系
- 依赖 (Dependency)
- 语义:使用关系,一方变化影响另一方;通常是临时、非结构化。
- 图形:带箭头的虚线,箭头指向被依赖者。
- 示例:类 A 的方法参数中出现类 B 的类型。
- 关联 (Association)
- 语义:结构化连接,表示对象之间的长期引用;可单向/双向,可多重性。
- 图形:实线,可在线端标多重性(0…1、1、* 等);箭头表示导航方向。
- 示例:订单 —— 客户。
- 泛化 (Generalization)
- 语义:继承关系,子元素继承父元素的结构与行为;可替代父元素。
- 图形:带空心三角箭头的实线,箭头指向父类。
- 示例:Shape ← Triangle。
- 实现 (Realization)
- 语义:契约关系,类或构件实现接口/用例所定义的行为规范。
- 图形:带空心三角箭头的虚线,箭头指向接口或用例。
- 示例:Runnable ← Thread。
- 依赖 (Dependency)
- 事物
- 图(支配基本构造块如何放置在一起的规则)
- 运用于整个语言的公用机制。
- 基本构造块
- UML 的 5 种视图
- 用例视图、逻辑视图、进程视图、实现视图和部署视图,其中的用例视图居于中心地位。
- UML 核心图(13 种)
- 结构图:类图、对象图、构件图、部署图、包图、组合结构图。
- 行为图:用例图、活动图、状态机图、序列图、通信图、时序图、交互概览图。
6.2.5 形式化语言
基于数学逻辑精确描述需求与规格;如 Z 语言、CSP、TLA+;用于高可信系统验证。
7 多媒体
7.1 多媒体概述
2.7.1 多媒体概述
- 多媒体定义
- 利用计算机技术将文本、图形、图像、音频、视频、动画等多种媒体信息数字化后综合集成,并建立逻辑连接,形成具有交互性的系统。
- 媒体分类(ITU-T)
- 感觉媒体(Perception Medium):视觉、听觉、触觉等信息形式。
- 表示媒体(Representation Medium):图像、声音、视频等编码格式。
- 表现媒体(Presentation Medium):键盘、鼠标、显示器、打印机、音箱等输入输出设备。
- 存储媒体(Storage Medium):硬盘、光盘、闪存等物理载体。
- 传输媒体(Transmission Medium):双绞线、光纤、电磁波、卫星链路等通信介质。
- 多媒体四大特征
- 多维化:多种媒体形态并存与交互。
- 集成性:设备、信息、表现手段高度统一。
- 交互性:用户可主动控制、实时反馈。
- 实时性:音频、视频等时间敏感媒体需同步处理。
- 多媒体系统的组成
- 多媒体硬件
- 多媒体计算机(MPC、图形工作站等)
- 多媒体板卡(显示卡、音频卡、视频卡等)
- 多媒体外部设备(触摸屏、扫描仪、摄像头等)
- 多媒体软件
- 多媒体系统软件
- 多媒体驱动程序
- 多媒体操作系统
- 多媒体支持软件
- 多媒体素材制作工具
- 多媒体著作工具
- 多媒体编程语言
- 多媒体应用软件
- 多媒体系统软件
- 多媒体硬件
- 应用领域
- 工业监控、医疗影像、军事仿真、轨道交通、办公协作、教育培训、数字娱乐、智能家居等。
7.2 多媒体系统的关键技术
7.2.1 视音频技术
音频技术:包括音频数字化、语音处理、语音合成及语音识别 4 个方面。
视频技术
- 视频数字化:模拟信号 → 数字信号。
- 视频编码技术
- 释义:是将数字化的视频信号经过编码成为视频信号,从而可以录制或播放。
- 视音频编解码器:硬件/软件实现,支持同步、字幕、元数据。
- 视频编码:压缩算法(H.26x、MPEG-x)。
视音频压缩方法:
- 无损:FLAC、WAV、TTA。
- 有损:MP3、AAC、H.264、H.265。
7.2.2 通信技术
通信技术是多媒体系统中的一项关键技术,是指将信息从一个地点传送到另一个地点所采取的方法和措施。这里所说的通信技术仅仅涵盖多媒体系统采用的通信方法。
通信技术通常包括了数据传输信道技术和数据传输技术。
- 信道:双绞线、光纤、无线、卫星。
- 复用:TDM、FDM、CDM。
- 交换:电路交换、分组交换、ATM、MPLS。
7.2.3 数据压缩技术
- 静态图像:JPEG、JPEG 2000。
- 动态图像视频编码标准 (MPEG) MPEG-1/2/4
- 视频编解码器标准 (H.26L)
7.2.4 虚拟现实 ( V R ) /增强现实 ( A R ) 技术
- VR:完全由计算机生成的三维沉浸式环境,用户与现实世界隔离。
- 应用场景:沉浸培训、虚拟仿真、数字孪生、游戏、心理治疗。
- AR:将计算机生成的虚拟信息(文字、图像、3D 模型等)实时叠加到真实世界中,实现“增强”的感官体验。
- 应用场景:远程协作、工业维护、导航、教育、零售试穿、医疗手术导航。
8 系统工程
系统工程是一种组织管理技术。
8.1 系统工程概述
- 定义:面向复杂系统的跨学科方法,通过整体规划、分析、设计、实现与评估,使系统在约束条件下达到整体最优。
- 起源:二战期间运筹与项目管理实践;阿波罗登月计划奠定现代系统工程框架。
- 特点:整体性、多学科、生命周期视角、持续迭代。
8.2 系统工程方法
系统工程方法是一种现代的科学决策方法,也是一门基本的决策技术。
- 霍尔三维结构(1969)
- 时间维:规划→方案→研制→生产→安装→运行→更新。
- 逻辑维:明确问题→目标→综合→分析→优化→决策→实施。
- 知识维:工程、管理、法律、经济等多领域知识。
- 切克兰德软系统方法(1981)
- 七步:问题情境→根底定义→建立概念模型→比较→选择→设计与实施→评估与反馈。
- 强调“比较-学习”而非“最优化”,适用于难量化的社会经济系统。
- 并行工程(1986)
- 设计-制造-维护并行推进,缩短周期、降低成本、提高质量。
- 综合集成法(1990,钱学森)
- 定性+定量、专家+数据+模型,解决“开放的复杂巨系统”。
- WSR 方法论(1994,顾基发)
- “物理-事理-人理”三维协调,强调人、关系、利益的动态平衡。
8.3 系统工程的生命周期(ISO/IEC 15288)
8.3.1 生命周期阶段
下面是系统工程流程的7个一般生命周期阶段。
- 探索性研究:需求洞察、技术可行性。
- 概念阶段:需求细化、方案比选。
- 开发阶段:详细设计、原型、验证确认。
- 生产阶段:制造、验收、交付。
- 使用阶段:运行、监控、持续改进。
- 保障阶段:维护、升级、延寿。
- 退役阶段:数据归档、资源回收、环境善后。
8.3.2 生命周期方法
- 计划驱动方法
- 渐进迭代式开发
- 精益开发
- 敏捷开发
8.4 基于模型的系统工程 MBSE
- 定义:用形式化、图形化模型贯穿需求-设计-验证全生命周期。
- 三大支柱
- 建模语言:SysML(系统)、UML(软件)、BPMN(流程)。
- 建模工具:Cameo、Capella、Rhapsody、Enterprise Architect。
- 建模思路:Harmony-SE、OOSEM、SYSMOD 等方法论。
9 系统性能
9.1 性能指标
- 计算机:时钟频率(主频)、CPI、MIPS、FLOPS、内存容量/带宽、缓存命中率、IOPS、RASIS 特性 ( 即可靠性 (Reliability)、 可用性 (Availability)、 可维护性(Serviceability)、 完整性和安全性 (Integrity and Security))。
- 路由器:吞吐量(pps)、背板容量、路由表规模、丢包率、时延、时延抖动、VPN 并发、QoS 队列数。
- 交换机:交换容量(Gbps)、MAC 表容量、VLAN 数、ACL 条目、PoE 功率、缓存、可堆叠/集群能力。
- 网络:评价网络的性能指标有设备级性能指标、网络级性能指标、应用级性能指标、用户级性能指标和吞吐量。
- 举例:链路利用率、带宽、RTT、重传率、抖动、QoE、并发连接数。
- 操作系统:上下文切换开销、系统调用延迟、CPU/内存/磁盘利用率、平均负载、可伸缩性。
- 数据库:TPS/QPS、并发事务、索引命中率、缓存命中率、锁等待时间、复制延迟。
- Web 服务器:最大并发连接数、响应延迟、吞吐量(Requests/sec)、错误率。
9.2 性能计算
- 计算方法
- 定义法:按指标原始定义直接计算。
- 公式法:利用标准公式(如 MIPS、峰值、吉普森等效指令速度)。
- 程序检测法:在软件中插入计时/计数代码,运行时采样。
- 仪器检测法:使用硬件测试仪、逻辑分析仪、示波器等外部设备测量。
- 典型指标
- MIPS:$ \text{MIPS} = \frac{\text{指令条数}}{\text{执行时间} \times 10^6} $
- 峰值计算:理论最大运算能力(FLOPS、IPS)。
- 吉普森法:按指令权重加权平均,得到等效指令速度。
- 实践处理
- 多种指标复合计算 → 加权算法 → 综合性能得分。
9.3 性能设计
- 性能调整
- 目标:定位并消除瓶颈。
- 数据库侧重:CPU/内存、表设计、索引、日志、磁盘空间。
- 应用侧重:响应时间、并发数、可用性、资源占用。
- 流程:识别约束 → 指定负载 → 设定目标 → 循环“收集-分析-配置-测试”。
- 阿姆达尔定律
- 加速比公式:
- :可改进部分占总执行时间比例(可并行比例)
- :该部分性能提升倍数(为并行加速倍数)
- 结论:性能提升上限受限于不可并行部分;盲目增加并行度收益递减。
- 加速比公式:
9.4 性能评估
性能评估的一个目的是为性能的优化提供参考。
- 基准测试程序
- 把应用程序中用得最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序 (benchmark)。
- Web 服务器的性能评估
- 在 Web 服务器的测试中,反映其性能的指标主要有:最大并发连接数、响应延迟和吞吐量等。
- 常见的 Web 服务器性能评测方法有基准性能测试、压力测试和可靠性测试。
- 系统监视
- 一是通过系统本身提供的命令,如 UNIX/Linux 中的W、ps、last,Windows 中的 netstat 等;
- 二是通过系统记录文件查阅系统在特定时间内的运行状态;
- 三是集成命令、文件记录和可视化技术,如 Windows 的 Perfmon 应用程序。