Chapter 1 全景图
1.1 计算系统
计算系统是一种动态实体,用于解决问题以及与它所处的环境进行交互。由硬件、软件和它们的管理的数据构成。
计算机硬件是构成机器及其附件的物理原件集合。
计算机软件是提供计算机执行的指令的程序集合。
计算机系统的核心是它管理的信息。
A. 计算系统的分层(从内到外、自底向上)
a.信息层
反映了在计算机上表示信息的方式,纯概念层。
b.硬件层
由计算机系统的物理硬件组成。
c.程序设计层
负责处理软件、用于实现计算的指令以及管理数据。
d.操作系统层
使我们可以和计算机系统进行交互,管理硬件设备、程序
和数据之间的交互方式。
/** 前面(内部)的分层重点在于使计算机系统运转 **/
e.应用程序层
运行应用程序在其他领域利用计算机的能力,解决现实问题。
f.通信层
是计算机系统操作的基础层,连接至网络上,以共享信息和资源。
B. 抽象
抽象,是对复杂细节的隐藏,只保留实现目标的必需信息。
1.2 计算机历史
外围设备 : 辅助存储设备、输入设备和输出设备。
A. 计算机硬件的简史
第一代 1951 ~ 1959
计算机使用真空管(电子管)存储信息。
使用读卡器阅读IBM卡上的孔。
第二代 1959 ~ 1965
晶体管代替真空管成为计算机硬件主要部件。
出现即时存取存储器。
晶体管和其他计算机元件手工集成在印刷电路板上。
第三代 1965 ~ 1971
使用集成电路IC是第三代计算机特征。
Moore定律: 一个集成电路板上能容纳的电路数量每年增长一倍。
出现终端(带有键盘和屏幕的输入/输出设备)。
第四代 1971 ~ 至今
大规模集成化是第四代计算机特征。
Moore定律改写为 芯片的集成度每18够月增长一倍。
20世纪70年代末,个人计算机PC出现
如今,Moore定律改写为
每18个月,计算机的功率会在同样的价格水平下增长一倍,或者以一半的价格可以买到同样的计算机功率。
并行计算
新的机器体系结构
使用并行体系结构的计算机依靠的是一套互相连接的中央处理器
一种并行机器的组织结构是所以处理器共享同一个存储部件
另一种组织结构是每个中央处理器具有自己的本地内存,与其他处理器
通过高速内部网络进行通信。
并行体系结构提供了几种加快执行速度的方法
SIMD(单指令多数据流 single-instruction,multiple-data-stream)
把程序的一步操作分成多个片段,在几个独立的处理器上同时执行
MIMD(多指令多数据流 multiple-instruction,multiple-data-stream)
机器同时运行程序的不同部分。
连网
以太网是一种廉价的同轴电缆和一套能够让机器互相通信的协议。
工作站、PC连接成网络,形成了LAN(局域网 local area network)
Internet 由分布在世界各地的不同网络组成,这些网络采用通用的TCP/IP协议
LAN、Internet、ARPANET都使用包交换的方法共享信息
TCP/IP : transmission-control protocol/internet protocal
B. 计算机软件的简史
第一代软件 1951 ~ 1959
第一代程序是用机器语言编写。
出现第一代人工程序设计语言 : 汇编语言
第二代软件 1959 ~ 1965
出现高级语言 FORTRAN(为数字应用程序设计)、COBOL(为商业应用程序设计)、
Lisp(人工智能语言)
系统程序员 : 编写诸如汇编器和编译器等这样辅助工具,简化他人程序设计
应用程序设计员: 使用这些工具编写程序
第三代软件 1965 ~ 1971
操作系统: 一种控制何时运行什么实用程序的程序。
并通过分时,可使得多个用户用各自终端同时与一台计算机通信
实用程序、操作系统、语言翻译程序(汇编器和编译器)构成系统软件
第四代软件 1971 ~ 1989
出现结构化程序设计方法
Pascal,Modula—2,C...
出现更强大的操作系统 UNIX,PC-DOS,MS-DOS
同时出现鼠标的概念和点击式的图形界面
三种典型的应用程序包: 电子制表软件、文字处理软件、数据库管理软件
第五代软件 1990 ~ 至今
三个著名事件 : Microsoft公司的崛起、面向对象的设计和编程方法的出现
以及万维网(World Wide Web)普及。
1.3 计算工具和计算科学
从业人员需要四个领域的技巧
a. 算法思想,即能够用按部就班的过程表示问题,从而解决它们
b. 表示方法,即用能被有效处理的方式存储数据。
C. 程序设计,即把算法思想和表示方法组织在计算机软件中。
d. 设计 ,使得软件满足一种用途。
计算机科学分区(共12)
系统分区: 算法与数据结构、程序设计语言
计算机体系结构、操作系统
软件方法学和工程学、人机交互
应用分区: 数值和符号计算、数据库和信息检索
人工智能和机器人技术、图形学
组织信息学、生物信息学