计算机程序通常由用户用高级语言编写程序,然后将它和数据一起送入计算机内,再由计算机将其翻译成机器能识别的机器语言程序,并将计算结果输出
编程语言发展过程
机器语言 ----> 汇编语言 ----> 高级语言
-
机器语言
用0、1代码表示的语言;可以直接在机器上执行;编写难度大
-
汇编语言
符号式的程序设计语言;必须先将汇编语言翻译成机器语言程序,才能被机器接受并自动运行。
这个翻译过程由机器系统软件中的汇编程序完成。
从本质上看,汇编语言仍是一种面向实际机器的语言;汇编语言没有通用性,每台机器必须有一种与之相对应的汇编语言
-
高级语言
高级语言必须直接或间接地翻译成机器语言,才能被自动执行
通常,将高级语言程序翻译成机器语言程序的软件称为翻译程序。
翻译程序有两种:
-
编译程序
将用户编写的高级语言程序的全部语句一次全部翻译成机器语言程序,而后再执行机器语言程序
只要源程序不变,就无须再次进行翻译
-
解释程序
将源程序的一条语句翻译成对应于机器语言的一条语句,并且立即执行这条语句,接着翻译源程序的下一条语句并执行,如此重复直至完成源程序的全部翻译任务
翻译一次,执行一次,即使下一次重复执行该语句,也必须重新翻译
-
操作系统
操作系统提供了在汇编语言和高级语言的使用和实现过程中所需的某些基本操作,还起到控制并管理计算机系统全部硬件和软件资源的作用,为用户使用计算机系统提供极为方便的条件。
从计算机系统的多级层次结构来看,可以将硬件研究的主要对象归结为传统机器和微程序机器。
软件的研究对象主要是操作系统级以上的各级虚拟机。
随着超大规模继承电路技术的不断发展,一部分软件功能将由硬件来实现,例如,目前操作系统已实现了部分固化
把软件永恒地存于只读存储器中,称为固件等
软硬件交界界面变化的趋势如下:
graph TD
虚拟机器M4/高级语言机器 --> 虚拟机器M3/汇编语言机器 --> 虚拟机器M2/操作系统机器 --> 传统机器M1/机器语言机器 --> 微程序机器M0/微指令系统
计算机组成 & 计算机体系结构
计算机体系结构 指 概念性的结构与功能特性
计算机系统属性 指 传统机器的属性,包括指令集、数据类型、存储器寻址技术、I/O机理等
计算机的基本组成
冯·诺依曼计算机
特点如下:
-
计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成
-
指令和数据以同等地位存放于存储器内,并可按地址寻访
-
指令和数据均用二进制表示
-
指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
-
指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序
-
机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成
现代的计算机已转化为以存储器为中心
各部件功能如下:
-
运算器用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器内
-
存储器用来存放数据和程序
-
控制器用来控制、指挥程序和数据的输入、运行以及处理运算结果
-
输入设备用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等
-
输出设备可将机器运算结果转换为人们熟悉的信息形式,如打印机输出、显示器输出等
计算机的工作步骤
存储容量
-
主存容量
指主存中存放二进制代码的总位数:存储容量 = 存储单元个数 * 存储字长
MAR的位数反映了存储单元的个数
MDR的位数反映了存储字长
现代计算机中常以字节数来描述容量的大小
-
辅存容量
通常用字节表示
比如谋机辅存(如硬盘)容量为80GB(1G = 1024M)
运算速度
计算机的运算速度与许多因素有关,如机器的主频、执行什么样的操作、主存本身的速度等都有关
现在机器的运算速度普遍采用单位事件内执行指令的平均条数来衡量,并用MIPS(百万条指令每秒)作为计量单位
也可以用CPI(执行一条指令所需的时钟周期数【机器主频的倒数】)或FLOPS(浮点运算次数每秒)来衡量运算速度