1.1 计算机系统简介
1.1.1 计算机软硬件概览
计算机又“软件”和“硬件”。
硬件由各类光、电、机设备的实物组成,如主机和外部设备。
软件由人们事先编制的具有各类特殊功能的程序组成。通常把这些程序寄存与各类媒体(如RAM、ROM、磁带、磁盘、光盘、甚至纸带等),他们通常存放在计算机的主存和辅存内。
注:辅存狭义指硬盘。
计算机软件通常又可以分为两大类,系统软件和应用软件。
系统软件:
- 标准语言库
- 语言处理程序
- 操作系统
- 服务程序
- 数据库管理系统
- 网络软件
应用软件如:
- 科学计算程序
- 数据处理程序
- 过程控制程序
- 事务管理程序
1.1.2 计算机系统的层次结构
早期只有机器语言,必须用二进制(0、1)进行编写程序。
20世纪50年代出现符号式的程序设计语言,即汇编语言。其原理是将汇编语言程序翻译成机器语言程序。在实际机器之中存在一台虚拟机用于翻译。
汇编语言没有通用性,每台机器必须有一种与之对应的汇编语言。
20世纪60年代出现了面向问题的高级语言,如BASIC、PASCAL、C等。程序员完全不必了解、掌握实际机器M1的机型、内部的具体组成及其指令系统、只要掌握这类高级语言的语法和语义,便可直接使用这种高级语言来编程,给程序员带来了极大的方便。高级语言最终编译运行的过程如图。
1.1.3 计算机组成和计算机体系结构
计算机体系结构是指那些能够被程序员看到的计算机系统的属性,即概念性的结构和功能特性。计算机系统的属性通常包括指令集、数据类型、存储器寻址技术、I/O机理等 、大多数抽象的属性。
由于计算机具有多层次结构,因此,站在不同层次上的编程的程序员所看到的计算机属性也各不相同。例如高级语言编程的程序员可以把IBM PC与RS600两种机器看成同一属性的机器。可是对于汇编语言编程的程序员来说,这是两种截然不同的机器。
计算机组成是指如何实现计算机体系结构所体现的属性,它包含了许多对程序员来说是透明的硬件细节。例如,指令系统体现了机器的属性,这是属于计算机结构的问题。但是指令的实现,即如何取指令、分析指令、取操作数、运算、送结果等,这些都是属于计算机组成的问题。因此,当两台机器指令系统相同时,只能认为他们具有相同的结构。