计算机系统由硬件和软件两大部分组成,其中软件是驱动硬件、实现各种功能的逻辑指令集合。理解计算机软件的分类、计算机的工作过程以及系统的层次结构,是掌握计算机科学与技术的基础。
1.2.3 计算机软件的分类
计算机软件通常分为两大类:系统软件和应用软件。
1. 系统软件
系统软件是管理、控制和维护计算机硬件与软件资源的程序集合,为应用软件提供运行平台。主要包括:
- 操作系统:如Windows, Linux, macOS,是计算机系统的核心,负责资源管理、任务调度、文件管理和用户界面等。
- 语言处理程序:包括汇编程序、编译程序和解释程序,负责将程序员编写的高级语言或汇编语言源代码“翻译”成机器能直接执行的机器语言。
- 数据库管理系统:如Oracle, MySQL,用于高效地组织、存储、管理和检索大量数据。
- 系统支撑与服务程序:如驱动程序、诊断程序、调试程序,为系统开发和维护提供工具支持。
2. 应用软件
应用软件是为解决特定领域问题或满足用户具体需求而设计的软件。种类繁多,例如:
- 通用应用软件:办公软件(如WPS, Microsoft Office)、媒体播放器、网页浏览器等。
- 专用应用软件:针对特定行业或业务定制的软件,如银行结算系统、企业资源规划系统、计算机辅助设计软件等。
1.2.4 计算机的工作过程
计算机的工作过程本质上是执行程序的过程,遵循“存储程序”原理,即程序和数据预先存入内存,计算机自动地、逐条地从内存中取出指令并执行。这个过程可以概括为一个核心循环——指令周期,主要包括以下四个阶段:
- 取指令:程序计数器指示当前指令的地址,控制器从内存中取出该指令,送入指令寄存器。
- 指令译码:控制器分析指令寄存器中的指令,识别出需要执行的操作(操作码)和操作对象(地址码)。
- 执行指令:运算器根据译码结果,执行具体的操作,如算术运算、逻辑运算或数据传送。
- 结果写回/更新计数器:将执行结果写入指定的寄存器或内存单元,然后更新程序计数器,指向下一条要执行的指令地址,从而开始下一个指令周期。
这个循环由控制器指挥,在运算器、存储器、输入/输出设备的协同下完成,体现了计算机自动、高速、精确处理信息的基本能力。
1.2.5 计算机系统的多级层次结构与软件开发
现代计算机系统是一个复杂的整体,为了便于理解、设计和使用,常被抽象为一个多级层次结构。从底层硬件到顶层用户应用,每一层都为其上层提供功能接口,同时隐藏下层的实现细节。一个典型的层次模型如下:
- 第0级:数字逻辑层——由门、触发器等硬件电路组成,是计算机的物理基础。
- 第1级:微程序/机器语言层——由微指令或直接由硬件执行的机器指令构成,是实际硬件执行的操作。
- 第2级:操作系统层——管理和抽象硬件资源,提供进程管理、内存管理、文件系统等服务。
- 第3级:汇编语言层——提供与机器指令一一对应的符号化表示,通过汇编程序转换为机器语言。
- 第4级:高级语言层——如C, Java, Python,使用接近自然语言的语法,极大地提高了编程效率。需要通过编译或解释转换为下层语言。
- 第5级:应用程序层——用户直接使用的各种软件,如浏览器、游戏、办公软件等。
计算机软件开发正是建立在这个层次结构之上。软件开发人员通常在高级语言层(第4级)或汇编语言层(第3级)进行编程。他们利用下层(尤其是操作系统层)提供的服务和接口,调用系统资源,实现具体的应用逻辑。开发出的应用程序运行于层次结构的顶层,最终通过层层翻译和控制,转化为底层硬件的电子信号动作,从而完成复杂的信息处理任务。
而言,清晰的软件分类帮助我们组织和管理软件资源;对计算机工作过程(指令周期)的理解揭示了计算机自动工作的奥秘;而多级层次结构模型则为软硬件协同、尤其是软件开发提供了清晰的理论框架和工程实践路径,使得在复杂系统上构建高效、可靠的软件成为可能。