阶段 |
时间 |
名称 |
第一阶段 |
1946-1957 |
电子管计算机 |
第一阶段 |
1957-1964 |
晶体管计算机 |
第一阶段 |
1964-1980 |
集成电路计算机 |
第一阶段 |
1980-现在 |
超大规模集成电路计算机 |
电子管
埃尼阿克(ENIAC)
埃尼阿克(ENIAC)
贝尔实验室的三个科学家发明了晶体管
晶体管
TX-0
TX-0
PDP-1
image.png
德州仪器的工程师发明了集成电路(IC)
计算机具备了进入千家万户的条件
IBM:7094,1401
IBM退出兼容的产品System/360 ==> 操作系统的雏形
image.png
image.png
image.png
image.png
单核CPU
集成电路的性能,每18-24个月就会提升一倍
多核CPU
1TFlop/s=每秒一万亿次浮点计算
Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz:44.87 GFlop/s
44.87 GFlop/s = 0.04487TFlop/s
image.png
image.png
IBM Z9
去“IOE”行动:I(IBM),O(Oracle),E(EMC)
去“IOE”运动(阿里2008年提出)=> 阿里云(阿里云2009年成立)
大型机 => 普通服务器
普通服务器已经代替了传统的大型机,成为大规模企业计算的中枢
将程序指令和数据一起存储的计算机设计概念结构
image.png
现代计算机都是冯诺依曼机
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
微指令 < 微程序 = 机器指令
PUSH DS
PUSH AX
MOV AX,0040
MOV DS,AX
0/1称为bit(比特位)
字节:1Byte = 8 bit
bit |
Byte |
KB |
MB |
GB |
TB |
PB |
EB |
|
名字 |
比特位 |
字节 |
千字节 |
兆字节 |
吉字节 |
太字节 |
拍字节 |
兆字节 |
比例 |
- |
8bits |
1024B |
1024KB |
1024MB |
1024GB |
1024TB |
1024PB |
常见设备 |
门电路 |
- |
寄存器 |
高速缓存 |
内存/硬盘 |
硬盘 |
云硬盘 |
数据仓库 |
1024 = 2^10
1G内存,可以存储多少字节的数据?可以存储多少比特数据?
1G = 1024^3Bytes = 1024^3*8bits
为什么网上买的移动硬盘500G,格式化之后就只剩465G了?
硬盘商一般用10进位标记容量
500 * 1000^3 / 1024^3 ≈ 465
image.png
这里的100M并不是指容量
100M= 100M/s
为什么电信拉的100M光纤,测试峰值速度只有10M每秒?
网络常用单位为(Mbps)
100M/s = 100Mbps = 100Mbit/s
100Mbit/s = (100/8)MB/s = 12.5MB/s
image.png
2GHz = 2*1000^3Hz = 每秒20亿次
33+95 = 128 = 2^7
ASCII
image.png
1.计算机的发展历史大概可以分为几个阶段?每个阶段的计算机分别有什么特点?
四个阶段:电子管计算机、晶体管计算机、集成电路计算机、超大规模集成电路计算机。
2.你了解“摩尔定律”吗?“摩尔定律”对现代计算机产生了什么影响?
摩尔定律:摩尔定律是由英特尔(Intel)创始人之一戈登·摩尔(Gordon Moore)提出来的。其内容为:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。这一定律揭示了信息技术进步的速度。尽管这种趋势已经持续了超过半个世纪,摩尔定律仍应该被认为是观测或推测,而不是一个物理或自然法。
3.你了解冯诺依曼机吗?你是否可以大概描述冯诺依曼机的基本组成和工作原理?冯诺依曼机相对于之前的计算机有什么重要改进?
冯诺依曼机有五大组成部分:输入设备、输出设备、运算器、存储器、控制器。冯诺依曼机把程序指令和运行数据存储起来,使得计算机从专用电路计算机发展成为通用电路计算机。
什么是冯诺依曼瓶颈?冯诺依曼瓶颈对现代计算机产生了什么影响?
冯诺依曼瓶颈指的是存储器和运算器之间的访问速率差异巨大,使得计算机性能无法提升。现代计算机以存储器为核心,根据局部性原理设计了存储器的层次结构,大幅提升计算机性能。
5.你了解程序解释和程序翻译吗?什么是编译型语言,什么是解释型语言呢?
编程语言可以分为解释型语言和编译型语言,程序解释指的是程序代码在运行时,逐行翻译成较低层次的编程语言去执行;程序翻译指的是程序代码在编译阶段提前翻译成较低层次的编程语言逻辑,在运行时直接运行。
6.请你列举十种以上的编程语言,并分别分类他们属于什么类型的语言。
编译型语言:C、C++、Go、OC,解释型语言:Php、Python、Javascript、Perl、Lua,翻译+解释型语言:Java、C#、Kotlin等。
7.你了解计算机的层次结构吗?今天的软件和硬件是怎么界定的。
计算机的层次结构划分是为了方便理解计算机的整一个体系,在不同书籍或领域会有不一样的划分,没有绝对的正确。今天的软件、硬件的划分以硬件电路为界限,从涉及硬件电路逻辑往下的都归为硬件,要注意软件和硬件的划分也是与时俱进的,今天的软件很可能明天就变成了硬件,比如以前编写硬件逻辑代码是软件,而随着高级编程语言的出现和成熟,现在编写硬件逻辑代码已经视为硬件部分了。
8.请你尝试说明高级语言、汇编语言和机器语言的区别和联系?
高级语言是方便程序员描述程序逻辑的编程语言,与人类语言接近;汇编语言时方便程序员描述硬件逻辑的编程语言,与底层硬件接近;机器语言时方便计算机理解和运行的编程语言,一般程序员无法理解。
9.请完成常见的容量换算公式:
1). 1G = ( 10^3 )Bytes
2). 1Byte = ( 8 )bits
3). 一条内存条的容量大约2( GB )
4). 一个磁盘的容量大约1( T )
5). 一个SSD的容量大约256( GB )
10.CPU的速度一般使用什么做单位?它具有什么物理意义?
赫兹,是国际单位制中频率的单位,它是每秒中的周期性变动重复次数的计量。1Hz = 1/s,即在单位时间内完成振动的次数,单位为赫兹(1赫兹=1次/秒)。
11.网络的速度一般使用什么做单位?
bps,比特率是指每秒传送的比特(bit)数。单位为 bps(Bit Per Second),比特率越高,每秒传送数据就越多。
12.20世纪80年代以前的计算机是不支持输入中文的,当时的计算机使用的是什么编码集?
ASCII编码集。
13.ASCII编码集占用多少个字节?
ASCII有128个字符,占用7个比特位,扩展ASCII编码机占用8个比特位,一个字节。
14.‘A’, ‘b’, 'C’对应的ASCII十进制数值分别是多少?
65、98、67。
15.你可以使用你熟悉的语言将 72、96、108转换为ASCII码吗?
String.fromCharCode
String.fromCharCode(72) "H" String.fromCharCode(96) "`" String.fromCharCode(108) "l"
16.你知道Unicode编码和UTF-8编码的区别和联系吗?
Unicode全名为:统一码、万国码,是计算机科学领域里的一项业界标准。Unicode标准有不同的编码实现,比如UTF-8、UTF-16、UTF-32,也即是可以有多种规则来实现Unicode标准,比如UTF-8使用的是不定长字节表示Unicode字符,在表示高位Unicode字符时可以自动扩展,UTF-32使用的是定长4个字节表示Unicode字符。
17.假设有10000个汉字,6000个日本字,3000个韩国字,1000个特殊字符,如果让你设计一套通用的编码集,请问每个字至少几个比特位?
10000+6000+3000+1000=20000个字符,最起码使用15个比特位,占2个字节。