云计算百科
云计算领域专业知识百科平台

【第 001 讲】初识计算机系统:计算机系统概述 | 计算机硬件系统 | 计算机软件系统

        Python 是一门编程语言,无论今后用它编写自动化脚本、分析数据,还是训练人工智能模型,写出的程序最终都要依托计算机系统来执行。因此在动手编程之前,有必要先建立对计算机系统的整体认知,弄清程序由哪些部件执行、存放在哪里,又由谁指挥运转。

        围绕这三个问题,本篇将依次讲解计算机系统的基本组成、硬件系统与软件系统,为后续的 Python 学习打好基础。

1 计算机系统概述

1.1 计算机的定义

        计算机(Computer)俗称电脑,是一种能够按照预先存储的程序,自动、高速地对数据进行处理的电子设备。

        这一定义包含三个关键特征:

  • 按程序工作:计算机严格按照程序行事,先做什么、后做什么、每一步怎么做,都由程序规定。
  • 自动执行:程序一经启动,计算机就自动逐条执行其中的指令,无须人在每一步干预。
  • 以数据为处理对象:计算机加工的对象是数据,程序描述的正是对数据进行加工的步骤。

        从早期占据整个房间的电子管计算机,到今天摆在桌面上的个人计算机,计算机的形态与性能发生了巨大变化,但这三个特征始终未变。

1.2 指令与程序

        计算机所做的每一件事,都可以分解为一个个基本动作:取一个数、做一次加法、把结果保存起来、在屏幕上显示一个字符……指示计算机完成一个基本操作的命令,称为指令(Instruction)。

        要让计算机完成一个完整的任务,就需要把执行该任务所需的一组指令按先后顺序组织起来。这样的有序指令集合,称为程序(Program)。计算机的工作过程,本质上就是逐条执行程序中指令的过程。

        编写程序所使用的语言,称为编程语言(Programming Language)。用编程语言写出的程序,最终都会被转换成一条条指令,交由计算机执行。

1.3 硬件与软件

        一个完整的计算机系统由硬件(Hardware)与软件(Software)共同构成,二者相互依存,缺一不可:

  • 硬件:计算机系统中所有物理装置的总称,是看得见、摸得着的实体部分,如芯片、电路板、键盘、显示器等。
  • 软件:按照特定逻辑组织的程序、数据以及相关文档的集合,是让硬件得以发挥功能的无形部分。

        通俗地说,硬件如同计算机的 “躯体”,软件如同计算机的 “灵魂”。未安装任何软件的纯硬件设备称为裸机(Bare Machine),它无法完成任何有意义的任务;反过来,软件也必须依托硬件才能运行。

1.4 计算机的常见类型

        按照规模与用途的不同,计算机大致可分为以下四类:

  • 个人计算机:供个人使用的通用计算机,如台式机、笔记本电脑,广泛应用于办公、学习与娱乐。日常口语中的 “电脑”,通常指的就是这一类。
  • 服务器:在网络中为其他计算机提供服务的计算机。你浏览的网站、使用的网盘,背后都是服务器在响应;今后编写的许多 Python 程序,也会部署到服务器上运行。
  • 超级计算机:运算速度最快、处理能力最强的一类计算机,主要用于气象预测、核试验模拟、药物研发等需要海量计算的场景。其内部由数以万计的处理器协同工作,占地可达数百平方米。
  • 嵌入式计算机:被集成到其他设备内部、执行特定控制或数据处理任务的计算机,如汽车的电控系统、智能家电中的控制芯片。从数量上看,嵌入式计算机是四类中最多的一类。

2 计算机硬件系统

2.1 冯·诺依曼结构与存储程序思想

        现代通用计算机的硬件设计,普遍遵循一种经典体系结构——冯·诺依曼结构(Von Neumann Architecture)。这一结构得名于美籍匈牙利数学家冯·诺依曼(John von Neumann):1945 年,他在《关于 EDVAC 的报告草案》(First Draft of a Report on the EDVAC)中系统阐述了这种计算机的逻辑设计,其中最核心的设计思想是存储程序思想(Stored-Program Concept)。

        所谓存储程序思想,指的是将程序与待处理的数据一视同仁,均以二进制(Binary)形式统一存放在存储器中,由计算机自动逐条取出指令并执行。这里提到的二进制,是计算机表示信息所采用的方式——机器内部的所有数据与指令,最终都以 0 和 1 组成的序列来记录。

        在这一思想付诸实现之前,早期电子计算机的程序并不存放在机器内部的存储器里,而是靠连接线路、设置开关直接 “写” 在机器上。以 1946 年正式对外公布的 ENIAC 为例,这台重约 27 吨、使用了约 1.8 万个电子管的机器,每更换一次程序,都要重新配置一遍线路和开关,往往要耗费数天时间。而将程序像数据一样存入存储器之后,计算机只需读取不同的程序,就能完成不同的任务,无须再改动任何线路。

        这一思想需要由具体的硬件来实现。冯·诺依曼结构在逻辑上把硬件划分为五大部件:运算器、控制器、存储器、输入设备与输出设备。它们各司其职、协同配合,使程序得以自动执行。五大部件的逻辑关系与信息传递路径如下图所示:

        上图中,黄色实线箭头表示数据流,即在各部件之间传输的运算对象与计算结果:输入设备送入的数据先进入存储器;运算器从存储器中读取数据进行加工,再把结果存回;最终结果由存储器送往输出设备。灰色实线箭头表示指令流,即指令由存储器流向控制器。蓝色虚线箭头表示控制流,即控制器发出的控制信号,它们被送往各个部件,指挥其协同动作。

2.2 运算器与控制器

        运算器(Arithmetic Unit)是计算机中负责数据加工的部件,主要完成以下几类操作:

  • 算术运算:完成加、减、乘、除等数学计算。
  • 逻辑运算:完成与、或、非、异或等逻辑判断。
  • 数据操作:完成移位、比较等操作。

        这些操作虽然简单,却是计算机全部运算的基础——再复杂的计算,最终都由它们组合完成。

        控制器(Control Unit)是整个计算机的指挥中枢,它的工作可以概括为一个不断重复的循环:

  • 取出指令:从存储器中取出当前要执行的指令;
  • 分析指令:解读这条指令的编码,弄清它要执行什么操作、涉及哪些数据;
  • 执行指令:向相关部件发出控制信号,调度它们协同完成指令要求的操作。
  •         取出、分析、执行,三个步骤依次进行、周而复始,构成了计算机自动运转的基本节奏。

    💡 提示:运算器与控制器集成为 CPU

            在冯·诺依曼结构的逻辑模型中,运算器与控制器是两个独立的部件,分别承担数据加工与指挥调度的职责。现代计算机则把二者集成为一个统一的部件,称为中央处理器(Central Processing Unit,简称 CPU),它既是计算机的运算核心,也是控制核心。

    2.3 存储器

            存储器(Memory)用于存放程序与数据,相当于计算机的 “记忆” 部件。在冯·诺依曼结构中,存储器特指主存储器(Main Memory),也就是通常所说的内存,即 CPU 可以直接按地址访问、用于存放当前正在运行的程序与数据的部件。

            除内存外,计算机通常还配备主要用于长期保存数据的存储设备,如固态硬盘、机械硬盘、光盘等,它们属于辅助存储器(Secondary Storage),俗称外存。冯·诺依曼结构的五大部件中并没有外存的位置,它一般被视为一种输入/输出设备。

            内存与外存的主要区别如下表所示:

    对比项内存外存
    访问方式 CPU 可直接访问 数据必须先加载到内存,才能被 CPU 处理
    断电后的表现 数据丢失 数据长期保存
    速度 读写速度较快 读写速度较慢
    容量与价格 容量较小,单位容量的价格较高 容量较大,单位容量的价格较低

    ⚠️ 注意:内存断电后数据会丢失

            内存主要由随机存取存储器(Random Access Memory,简称 RAM)构成,RAM 一旦断电,其中保存的数据就会丢失,这种特性称为易失性(Volatility);外存则不具备这一特性,断电后数据依然保留。这正是 “文件必须保存到硬盘才安全” 的原因:编辑器中尚未保存的代码只存在于内存里,一旦断电或程序意外退出就会丢失。因此,编写程序时请养成随手保存文件的习惯。

    2.4 输入设备与输出设备

            输入设备(Input Device)负责把外部世界的信息转换为计算机能够识别的信号,常见的有键盘、鼠标、麦克风等。

            输出设备(Output Device)负责把计算机处理后的结果转换为人类能够感知的形式,常见的有显示器、扬声器、打印机等。

            还有许多设备同时具备输入与输出两种功能,例如触摸屏既能接收你的操作,又能显示画面。这类设备常被统称为输入/输出设备(Input/Output Device,简称 I/O 设备)。

    2.5 系统总线

            五大部件要协同运转,必须在物理层面建立连接。承担这一连接任务的是系统总线(System Bus),即计算机各部件之间传输信息的公共通道。按照所传输信息的种类,系统总线通常分为三类:

    • 数据总线(Data Bus):在各部件之间双向传输数据,包括运算对象与计算结果。
    • 地址总线(Address Bus):由 CPU 发出,单向传输地址信息,用于指明数据在存储器中的位置。
    • 控制总线(Control Bus):传输各部件之间的控制信号,既包括 CPU 发出的读写命令,也包括其他部件发回 CPU 的状态与请求信号。

            把三类总线与三类信息流对应起来,各部件之间信息传送的全貌就清晰了:运算对象与计算结果,经由数据总线在各部件之间往返;无论存取数据还是读取指令,都要先指明存储器中的具体位置,这一任务由地址总线完成;CPU 与其他部件之间的命令和状态信号,则由控制总线承载。指令流需要单独说明:程序本就以数据的形式存放在存储器中,因此从存储器流向控制器的指令,在物理上同样经由数据总线传送——这正是存储程序思想在总线层面的直接体现。

            初学时可以这样类比:数据总线好比运输货物的公路,地址总线好比快递单上的收件地址,控制总线好比指挥交通的信号灯。三者配合,数据才能在部件之间准确、有序地流动。


    3 计算机软件系统

            硬件为程序运行提供了物理基础,但仅有硬件还不够——真正让硬件 “活” 起来的,是运行在其上的各类软件。按照功能与服务对象的差异,软件通常划分为系统软件与应用软件两大类。

    3.1 系统软件

            系统软件(System Software)直接控制与管理计算机的硬件资源,为上层软件提供运行支撑:向下统一调度各类硬件,向上屏蔽底层设备的实现细节。其中最典型的是操作系统(Operating System,简称 OS),如 Windows、macOS、Linux 等,它负责管理 CPU、内存、外存与各类 I/O 设备。你今后编写的每一个 Python 程序,都需要操作系统为它分配并调度所需的资源。

            除操作系统外,系统软件还包括设备驱动程序与语言处理程序等:前者让操作系统能够识别并控制具体的硬件;后者负责把用编程语言写出的代码翻译成计算机能够直接执行的指令,其典型代表是编译器(Compiler)与解释器(Interpreter)。至于它们如何完成翻译、彼此有何差异,此处暂不展开,后续文章将详细讲解。

    3.2 应用软件

            应用软件(Application Software)为满足用户在特定领域的具体需求而开发,运行在系统软件之上,直接与使用者交互。从你日常使用的文本编辑器、网页浏览器,到大型 3D 游戏,再到你今后编写代码时会用到的集成开发环境(Integrated Development Environment,简称 IDE),都属于应用软件。

            应用软件并不直接操控硬件,而是通过操作系统获取所需的运算与存储资源。一台计算机上通常只安装一套操作系统,应用软件则可以按需灵活安装,让同一台计算机适应办公、创作、娱乐等不同的使用场景。

    📚 扩展:介于两类软件之间的中间件

            除上述两大类外,行业中还常提到中间件(Middleware)。它位于操作系统与应用软件之间,利用操作系统提供的基础服务,为应用程序搭建通信桥梁,常见的有应用服务器、消息队列等。它们替应用程序处理网络通信、任务分发等底层细节,让开发者能够更专注于业务逻辑本身。至于中间件究竟应归入系统软件还是独立为一层,业内并无统一结论。作为初学者,知道有这样一个 “中间层” 角色即可。

    📝 总结:计算机系统的整体图景

            程序是指令的有序集合,计算机的一切工作都围绕程序的执行展开。一个完整的计算机系统由硬件与软件共同构成,二者相互依存:硬件层面,冯·诺依曼结构以存储程序思想为核心,把计算机在逻辑上划分为运算器、控制器、存储器、输入设备与输出设备五大部件,各部件通过系统总线互联,其中运算器与控制器集成为 CPU;软件层面,系统软件与应用软件上下配合,前者管理硬件资源并提供运行支撑,后者面向具体需求、直接服务用户。理解了这幅整体图景,后续学习 Python 时遇到的许多概念——内存、外存、操作系统、IDE——都能在这张 “地图” 上找到自己的位置。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【第 001 讲】初识计算机系统:计算机系统概述 | 计算机硬件系统 | 计算机软件系统
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!