Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

在计算机科学和系统工程中,系统通常是由多个相互作用、按一定方式组织起来,并围绕一个或多个目标运行的元素集合。这些元素可能包括硬件、软件、固件、数据、通信设施、人员、流程、物理设备和运行环境。因此,系统不只是操作系统,也不一定只由代码组成。

一台笔记本电脑可以是计算机系统;Linux 是系统软件;电商平台是信息系统和软件系统;多台服务器协同提供服务时,又可以构成分布式系统。理解“系统”的关键,不是背下一张唯一的分类表,而是看清它的组成、边界、目标和运行方式。

计算机科学中的“系统”是什么

NIST 采用的系统工程定义,将系统描述为:为实现一个或多个既定目的而组织起来的相互作用元素组合。NIST 列举的系统元素包括硬件、软件、固件、物理结构、设备、人员、流程和程序。可参考 NIST System Glossary 和 NIST SP 800-160。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

用更容易理解的话说:

系统不是孤立部件的简单堆积,而是多个相互作用的部分,在特定环境中围绕某个目标共同运行的整体。

这个定义比“硬件加软件”更宽,也比“多个程序的集合”更准确。一个医院信息系统可能包括应用程序、数据库、网络、医护人员、业务流程、访问规则和备份设施;一个汽车控制系统则可能同时包含传感器、控制器、固件、执行机构和物理环境。

“系统”没有一个在所有学科和场景中都完全相同的狭义定义。不同说法通常是在强调不同方面:组成范围、处理的信息、运行位置、响应时间、与物理世界的关系,或系统所处的层次。

系统由哪些部分组成

分析一个系统时,可以先从六个基本要素入手。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

1. 元素或组件

系统由可以识别和管理的部分组成,例如:

  • 硬件:处理器、内存、磁盘、传感器、执行器和网络设备;
  • 软件:程序、服务、模块、进程、驱动程序和固件;
  • 数据:数据库、文件、消息、配置和交易记录;
  • 人员:用户、管理员、开发者、运维人员和其他责任主体;
  • 规则与流程:协议、业务规则、操作步骤、权限制度和应急流程。

并不是每种系统都必须直接包含上述全部元素。一个抽象的软件系统可以主要由代码、数据和接口构成;但在进行系统工程、安全或可靠性分析时,人员、流程和运行环境往往不能被忽略。

2. 关系与交互

组件之间的关系是系统区别于零散部件的关键。交互可能表现为函数调用、进程间通信、网络请求、数据库读写、传感器输入、执行器输出,也可能表现为用户按照流程操作设备。

同样的组件,采用不同的连接方式,也可能产生完全不同的系统行为。例如,数据库、订单服务和支付服务之间的接口设计,会影响整个电商平台的性能、一致性和故障恢复能力。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. 目标或功能

系统通常围绕一个或多个目标组织,例如处理数据、提供通信、管理资源、执行控制、支持决策或持续提供业务服务。大型系统的目标往往不止一个,还要同时考虑性能、安全性、可靠性、可维护性、成本和合规性。

4. 输入、处理与输出

对初学者最直观的系统模型是:

输入 → 处理或转换 → 输出

例如,在线商店接收用户订单,执行库存检查和支付处理,最后输出订单确认。这是有用的入门抽象,但不是系统行为的全部。真实系统还会保存状态、处理并发请求、依赖外部服务、应对异常,并在很长时间内持续运行。

5. 边界

系统边界决定哪些部分属于系统内部,哪些部分属于外部环境。以在线商店为例,边界可以只包括网站代码,也可以包括数据库、支付服务、物流接口、客服流程和运维团队。

所以,“系统由什么组成”并不总是一个完全客观且固定的答案。边界取决于分析目的、责任范围、管理对象和抽象层级。安全评估尤其需要明确边界,因为边界会影响哪些组件必须被授权、保护和监控。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

6. 环境

系统总是在环境中运行。环境可能包括用户、操作系统、网络、第三方 API、云服务、传感器、物理世界、法规和组织流程。NIST 的系统工程材料也强调,应结合系统预期运行的环境来理解系统,而不能只观察内部代码。

系统具有哪些典型特征

  • 整体性:系统行为通常不等于各个部件行为的简单相加。
  • 交互性:连接、协议和依赖关系会影响整体结果。
  • 目的性:系统通常围绕功能、业务或任务目标组织。
  • 边界性:需要区分系统内部与外部环境。
  • 层次性:系统可以由子系统组成,也可以成为更大系统的一部分。
  • 状态性:系统会保存会话、库存、交易或设备状态。
  • 动态性:系统会随输入、时间、事件和环境变化。
  • 约束性:系统受到性能、安全、时间、资源、成本和法规约束。
  • 有限可观测性:内部状态往往需要借助日志、指标和测试来观察。
  • 故障传播性:一个组件的故障可能沿依赖关系影响其他组件。

系统、程序、软件、平台和信息系统的区别

概念 重点 例子
程序 让计算机执行任务的指令和数据定义 排序程序、计算器程序
软件 程序、库、脚本、驱动、服务等非物理资源 浏览器、数据库软件
软件系统 多个软件组件、数据、配置、接口和文档组成的整体 企业资源规划系统
平台 为其他程序、服务或用户提供运行和构建基础 操作系统、云平台
计算机系统 一个或多个计算机及其相关软件组成的整体 服务器、个人电脑
信息系统 围绕信息的收集、处理、维护、使用、共享和传播组织起来的资源与流程 医院电子病历系统

系统与程序

程序通常是一组让计算机执行特定任务的指令和数据定义。IEEE 软件工程术语资料将计算机程序描述为能够使计算机硬件执行计算或控制功能的指令与数据定义组合,相关术语资料可见 IEEE Software Engineering Terminology。

系统的范围通常更大。一个银行系统除了交易程序,还可能包括身份认证、数据库、网络、审计、备份、客服和运维流程。单个程序可以是系统的一部分,但不一定本身就是完整系统。

系统与软件

软件是系统的重要组成部分,但两者不是完全同义的词。软件可以是单个脚本、库、驱动或服务;软件系统则强调多个软件部分如何协同工作。更广义的工程系统还可能包含硬件、人员、物理设备和运行流程。

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

系统与平台

“平台”强调的是基础能力和承载作用。操作系统为应用程序提供运行环境,云平台提供计算、存储和网络资源,数据库平台提供数据管理能力。因此,一个平台可以同时是一个系统,但“平台”和“系统”关注的角度不同。

系统与操作系统

在日常中文里,“系统”有时会被简称为操作系统,例如“安装系统”或“系统崩溃”。但在计算机科学中,操作系统只是系统软件的一类。

NIST 将操作系统描述为运行在计算机上的软件平台,为其他程序提供运行环境,并负责输入输出控制、资源调度和数据管理等基础功能。可参考 NIST OS Glossary。Windows、Linux 和 macOS 是操作系统,但“系统”还可以指硬件整体、业务平台、信息处理体系或分布式服务集合。

系统与信息系统

信息系统是系统的一个重要子类,重点是信息资源及其处理过程。NIST 对信息系统的描述是:为收集、处理、维护、使用、共享、传播或处置信息而组织起来的一组信息资源。相关定义见 NIST SP 800-171 Rev. 3。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

因此,信息系统不应被简单理解为“网站加数据库”。它还可能包括用户、管理人员、业务流程、设施、通信、访问规则和数据生命周期。

计算机系统的常见类型

系统类型不是唯一、互斥的清单。同一个对象可以同时属于多个类型。下面按不同维度分类,比把所有类型混在一张列表中更准确。

按组成范围分类

硬件系统

硬件系统主要关注处理器、存储器、输入输出设备、总线、传感器、执行器和数据中心设施等物理组件。CPU 与 GPU 子系统、手机硬件平台和嵌入式控制器都可以从这一角度分析。

软件系统

软件系统由程序、服务、模块、配置、数据、接口和相关文档组成。数据库管理系统、Web 应用、编译器工具链和企业应用都可以被视为软件系统。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

计算机系统

计算机系统是一个较宽泛的说法,通常指一个或多个计算机及其相关软件组成的整体。个人电脑、服务器、移动设备和数据中心中的计算节点都可以属于计算机系统。IEEE 相关术语资料对 computer system 的概括可见 IEEE Software Engineering Terminology。

信息系统

信息系统关注信息资源及其处理流程,通常同时涉及技术、人员、数据和组织过程。例如学校教务系统、银行交易系统、客户关系管理系统和医院电子病历系统。

按运行位置和组织方式分类

集中式系统

集中式系统的主要处理能力或控制集中在一个中心节点或中心环境。它通常较容易管理,数据一致性也可能更容易控制,但中心节点可能成为瓶颈或单点故障,扩展能力也会受到限制。

分布式系统

分布式系统由多个独立计算节点通过网络协同完成任务。节点可能位于不同机器、机房、地区或云环境中。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

分布式系统的难点不只是“有多台电脑联网”,还包括:

  • 网络通信会带来延迟、丢包和中断;
  • 多个节点可能同时运行并发任务;
  • 部分节点可能失效,而其他节点仍需继续工作;
  • 数据复制会带来一致性问题;
  • 系统需要处理故障检测、服务发现和恢复。

ACM/IEEE 的 CS2023 课程体系将操作系统、计算机体系结构、网络、并行系统和分布式系统列为计算机系统相关知识领域,见 CS2023。

云系统

云系统通常把计算、存储、网络和应用能力作为可远程使用的资源提供。“云”不必被看作一种完全独立的系统类别;云平台往往是分布式系统、虚拟化、网络、存储和服务管理能力的组合。

系统之系统

系统之系统是由多个相对独立、能够独立运行,但又协同完成更大目标的系统组成的整体。例如智慧城市平台、由交通和支付系统组成的城市基础设施,以及大型航空航天任务系统。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

按时间和响应要求分类

批处理系统

批处理系统先集中收集任务,再批量执行。夜间账务结算、批量报表生成和大规模数据导入都属于常见例子。

交互式系统

交互式系统在运行过程中持续接收用户输入,并提供反馈。文本编辑器、搜索引擎、在线购物网站和图形用户界面应用都属于这一类。

实时系统

实时系统必须在规定的时间约束内完成关键操作。实时并不等于“速度最快”或“延迟为零”,重点是响应时间是否可预测。

  • 硬实时系统:错过截止时间可能导致灾难性或不可接受的后果,例如部分飞行控制和汽车制动控制场景。
  • 软实时系统:延迟会降低质量,但偶尔超时通常不会使系统完全失效,例如音视频处理或在线游戏。

按处理方式分类

顺序系统

顺序系统中的任务主要按前后顺序执行,后续步骤通常依赖前一步的结果。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

并发系统

并发系统允许多个任务在时间上交错推进。它们不一定在同一时刻真正执行;单核处理器也可以通过任务切换支持并发。

并行系统

并行系统使用多个处理单元,同时执行多个任务,或执行同一任务的不同部分。

并发关注多个任务如何组织和推进,并行关注多个计算活动是否同时执行;分布式系统则关注多个独立节点之间的协作。三者经常同时出现,但不是同义词。

按与物理世界的关系分类

通用计算系统

通用计算系统面向大量不同用途,例如桌面电脑、服务器和通用操作系统。

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

嵌入式系统

嵌入式系统被集成到设备或产品中,通常服务于特定功能,并受到功耗、存储、成本和响应时间的限制。家电控制器、路由器固件和汽车电子控制单元都是例子。

控制系统

控制系统通过传感器获取状态,经过计算后控制执行器或物理过程。典型闭环是:

感知 → 判断或计算 → 执行 → 反馈

信息物理系统

信息物理系统将计算、网络和物理过程深度结合。自动驾驶设备、智能电网、工业机器人和部分医疗设备都可能属于这一范畴。

按软件层次分类

系统软件

系统软件为应用软件提供基础运行和管理能力,包括操作系统、设备驱动程序、编译器、语言运行时、中间件、固件和系统工具。IEEE Technology Navigator 对系统软件的介绍还覆盖从嵌入式控制器底层固件到云操作系统内核的范围,见 IEEE Technology Navigator。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

应用系统

应用系统直接完成用户或组织的业务目标,例如财务系统、订单管理系统、内容管理系统和推荐系统。

支撑系统

支撑系统为其他系统提供基础能力,例如身份认证、日志、监控、消息、配置管理、备份和恢复系统。

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

系统的层次结构

系统具有递归和分层特性:一个系统可以包含子系统,一个子系统又可以继续拆分为组件、模块和服务;反过来,一个系统也可能只是更大系统中的一个组件。

系统
├── 子系统
│ ├── 组件
│ │ ├── 模块
│ │ └── 服务
│ └── 接口
└── 外部环境

例如,在线支付系统可以分为用户界面、身份认证、订单、支付处理、风控、数据存储、消息通知、监控和审计等子系统。每个子系统都可以独立分析,同时也必须通过接口与其他部分协作。NIST 对系统元素的递归关系有进一步说明,见 NIST System Element Glossary。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

一个系统可以同时属于多种类型

分类维度不同,得出的标签也不同。下面这些描述可以同时成立:

对象 可能的分类
智能手机 计算机系统、移动系统、嵌入式系统、网络系统
Linux 服务器 计算机系统、系统软件平台、交互式系统
云数据库 软件系统、信息系统、分布式系统、在线服务系统
汽车控制器 嵌入式系统、实时系统、控制系统、信息物理系统
电商平台 信息系统、软件系统、分布式系统、业务系统

以在线支付平台为例:

  • 从代码和服务看,它是软件系统;
  • 从订单、账户和交易记录看,它是信息系统;
  • 从多台服务器和跨网络服务看,它是分布式系统;
  • 从交易时限和持续服务要求看,它可能具有实时性和高可用性要求;
  • 从用户、支付机构、客服和审计流程看,它还是一个更广义的社会技术系统。

这些标签并不互相排斥,而是在回答不同问题。

如何判断一个对象是不是系统

可以使用下面的检查表:

  1. 是否存在两个或多个可以识别的元素?
  2. 这些元素之间是否存在交互、依赖或通信?
  3. 它们是否被组织起来完成某种功能或目标?
  4. 是否可以划定系统边界?
  5. 是否存在输入、输出或状态变化?
  6. 系统是否运行在某个环境中?
  7. 是否可以继续拆分为子系统?
  8. 是否需要整体评价性能、安全性、可靠性或可维护性?

如果大多数问题的答案是“是”,通常可以合理地称其为系统。

  • 单个排序函数:通常称为函数、算法或程序,不一定称为系统。
  • 编译器:可以称为软件系统,因为它包含词法分析、语法分析、优化和代码生成等协同部分。
  • 操作系统:是系统软件,也是计算机系统的重要组成。
  • 一台手机:是硬件系统、计算机系统和移动计算平台。
  • 大型电商平台:是软件系统、信息系统、分布式系统和业务系统的组合。
  • 一段孤立数据:通常不是系统,除非它处于更大的信息处理结构中。

系统思维为什么重要

系统思维要求观察组件之间的关系,而不是只看某个局部功能。一个模块单独表现良好,并不意味着整体系统一定可靠。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

例如,支付服务本身可能运行正常,但如果身份认证延迟、数据库复制落后、消息重复投递或客服流程缺失,用户仍可能无法完成交易。类似地,增加缓存可能改善性能,却也可能引入数据不一致;缩短安全检查可能提高速度,却会扩大风险。

因此,系统质量不只是“功能能不能用”,还包括:

  • 性能和可扩展性;
  • 安全性和隐私保护;
  • 可靠性、可用性和容错能力;
  • 数据一致性与完整性;
  • 可维护性、可观测性和可恢复性;
  • 与外部系统的兼容性;
  • 人员操作的清晰度和错误容忍度。

系统边界也必须明确。边界过窄,可能遗漏关键依赖和责任;边界过宽,则可能让分析和保护范围难以管理。进行系统分析时,最好先写明分析目的、边界、环境、责任主体、时间范围和需要评价的质量属性。

结论

在计算机科学中,系统是围绕目标组织起来、由多个相互作用部分构成,并在特定环境中运行的整体。它可以包含硬件、软件、数据、人员、流程和物理设备。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

程序可能只是系统的一部分,软件不一定等于系统,操作系统只是系统软件的一类,信息系统也不只是网站和数据库。系统类型应按组成范围、运行方式、时间约束、处理方式、物理环境和软件层次等多个维度理解;同一个真实产品通常会同时属于多种类型。

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.