17.集成电路&摩尔定律
名词
分立元件
只有一个电路元件的组件,可以是被动的(电阻,电容,电感)或主动的(晶体管,或真空管)
分立元件用线连起来就构成电脑
数字暴政
如果想提升性能,就要加更多部件,这导致更多电线,更复杂
晶体管
晶体管比电子管 更小更快更可靠
集成电路(IC)
与其把多个独立部件用电线连起来,拼装出计算机,我们把多个组件包在一起,变成一个新的独立组件,原材料是硅
起初,一个 IC 只有几个晶体管
印刷电路板(PCB)
无需焊接或用一大堆线..它通过蚀刻金属线的方式,把零件连接到一起,还可以大规模生产
把 PCB 和 IC 结合使用可以大幅减少独立组件和电线,但做到相同的功能,而且更小,更便宜,更可靠
摩尔定律
得益于材料和制造技术的发展 ,同样大小的空间,能塞进两倍数量的晶体管!
英特尔
结合 Intergrated(集成) 和 Electronics(电子) 两个词
光刻
为了实现更复杂的设计,需要全新的制作工艺-光刻
硅是做晶体管的绝佳材料,我们可以用晶圆做基础,把复杂金属电路放上面,集成所有东西,非常适合做.. 集成电路
光刻法用很多化学品,每种都有特定用途,需要几轮光刻法 来做晶体管,光刻法也用来制作电阻和电容,互相连接的电路
一片晶圆可以做很多 IC ,整块都做完后,可以切割然后包进微型芯片
微型芯片就是在电子设备中那些小长方体,芯片的核心都是一小片 IC
超大规模集成(VLSI)软件 \N 用来自动生成芯片设计,软件会自动生成电路,做到尽可能高效
发展问题
- 用光掩膜把图案弄到晶圆上 因为光的波长,精度已达极限
- 当晶体管非常小,电极之间可能只距离几个原子, 电子会跳过间隙,这叫:量子隧穿效应
18.操作系统
定义:
操作系统,简称 OS,其实也是程序,但它有操作硬件的特殊权限 ,可以运行和管理其它程序,操作系统一般是开机第一个启动的程序,其他所有程序 都由操作系统启动
由于外部设备可能有很多种不同的,因此操作系统充当软件和硬件之间的媒介,更具体地说,操作系统提供 API 来抽象硬件,叫”设备驱动程序”,程序员可以用标准化机制 和输入输出硬件(I/O)交互IO阻塞
处理器经常闲着,等待慢的机械设备(比如打印机和读卡器)
这个操作系统不仅像更早期的批处理系统那样,能自动加载程序,还能在单个 CPU 上同时运行几个程序,它通过调度(clever scheduling)来做到这一点,多任务处理
多任务处理:使多个程序可以同时运行,在单个 CPU 上共享时间
多任务的难点:每个程序都会占一些内存,当切换到另一个程序时,我们不能丢失数据
如何解决呢:给每个程序分配专属内存块;程序 A 分配到内存地址 0 到 999;而程序 B 分配到内存地址 1000 到 1999,以此类推,如果一个程序请求更多内存虚拟内存
操作系统会决定是否同意,同一个程序的内存可能在物理上是不连续的,因此为了隐藏这种复杂性,操作系统会把内存地址进行 “虚拟化”,程序可以假定内存总是从地址0开始,简单又一致,而实际物理位置 被操作系统隐藏和抽象了,操作系统会自动处理虚拟内存和物理内存之间的映射动态内存分配
这种机制使程序的内存大小可以灵活增减,对程序来说,内存看起来是连续的,它简化了一切,为操作系统同时运行多个程序提供了极大的灵活性
程序 B 要地址 42,实际上是物理地址 1042
以 A 的视角,它有 2000 个连续地址999-999 1000-2000
优点:不同程序之间具有内存隔离性,程序它只能捣乱自己的内存,不会影响到其它程序.这叫 “内存保护”Memory Protection,防止恶意软件(如病毒)也很有用分时操作系统
time-sharing os
一个主机,多个终端(显示器+键盘+鼠标),操作系统不但要处理多个程序,还要处理多个用户,每个用户只能用一小部分处理器,内存,一般用于学校教学用途Multics多任务信息与计算系统
操作系统会占大约 1 Mb 内存,这在当时很多!可能是内存的一半,只拿来运行操作系统!阻碍 Multics 获得商业成功的一个明显问题是,从某种方面来说,它被过度设计了,功能太多了Unix
操作系统分成两部分:
- 操作系统的核心功能:
如内存管理,多任务和输入/输出处理这叫”内核”,紧凑的内核 意味着功能没有那么全面
- 一堆有用的工具
程序和运行库
如果有错误发生,我们就让内核”恐慌”(panic),内核如果崩溃,没有办法恢复
这种简单性意味着,Unix 可以在更便宜更多的硬件上运行,越来越多开发人员用 Unix 写程序和运行程序,工具数量日益增长,1971 年发布后不久,就有人写了不同编程语言的编译器,甚至文字处理器,使得 Unix 迅速成为1970~80年代最流行的操作系统之一
MS-DOS
到 1980 年代早期计算机的价格 降到普通人买得起,这些叫”个人电脑”或”家庭电脑”
举例,微软的磁盘操作系统(MS-DOS)只有 160 kB 一张磁盘就可以容纳,虽然缺少”多任务”和”保护内存”这样功能,意味着程序经常使系统崩溃,虽然很讨厌但还可以接受,因为用户可以重启
Windows
微软 1985 年发布的早期 Windows , 虽然在 90 年代很流行,但却缺乏”内存保护”,当程序行为不当时,就会”蓝屏”,代表程序崩溃的非常严重,把系统也带崩溃了,
现代操作系统
Mac OS X,Windows 10 Linux,iOS和Android
操作系统依然有”多任务, “虚拟内存”, “内存保护”
可以同时运行多个程序:代码 视频 听歌
19.内存和储存介质
自己实现的简单内存
存储器Storage
早期存储介质
打孔纸卡,打孔纸袋
优点:不用电而且便宜耐用
坏处:是读取慢,只能写入一次;打的孔无法轻易补上;对于存临时值,纸卡不好用
延迟线存储器
Delay Line Memory
信号眼电线传播几乎是瞬时的,任何时间点只显示 1 bit 数据,但管子中可以存储多个位(bit)
EDVAC
1949年的 EDVAC 成为最早的 “存储程序计算机” 之一,总共有 128 条延迟线,每条能存 352 位,总共能存 45,000 位(bit)
缺点:
每一个时刻只能读一位 (bit) 数据,如果想访问一个特定的 bit,比如第 112 位(bit) ,你得等待它从循环中出现,所以又叫 “顺序存储器”或”循环存储器”,这时候就要引入随机存取存储器
增加内存密度也是一个挑战,把压力波变得更紧密 意味着更容易混在一起->引入磁致伸缩延迟存储器(用金属线的振动来代表数据)
随机存取存储器
random access memory
我们想要的是 “随机存取存储器”可以随时访问任何位置
磁芯存储器
如果沿相反方向施加电流
这样就可以存储1和0
更重要的是,不像”延迟线存储器” 磁芯存储器能随时访问任何一位(bit)
磁带
1951年UNIVAC 商业电脑
磁带是纤薄柔软的一长条磁性带子 卷在轴上,磁带可以在”磁带驱动器”内前后移动
意味着一共可以存 1500 万位左右- 接近2兆字节!(2 MB)
磁带的主要缺点是访问速度,磁带是连续的,必须倒带或快进到达特定位置,可能要几百英尺才能得到某个字节(byte),这很慢
磁鼓存储器
磁鼓导致了硬盘的发展,不过硬盘用的是盘,不像磁鼓用圆柱体,因此得名
原理是一样的,磁盘表面有磁性,写入头和读取头 可以处理上面的 1 和 0,硬盘的好处是薄,可以叠在一起,提供更多表面积来存数据
磁盘
RAMAC 305
第一台磁盘计算机就有 50 张 24 英寸直径的磁盘,总共能存 5 MB 左右
要访问某个特定 bit,一个读/写磁头会向上或向下移动,找到正确的磁盘,然后磁头会滑进去,就像磁鼓存储器一样,磁盘也会高速旋转,所以读写头要等到正确的部分转过来
访问任意数据,平均只要六分之一秒左右,也叫寻道时间,还有”磁鼓存储器”和”磁,芯存储器”,这是”内存层次结构”的一个例子
广义内存层级
现在产品
硬盘 现代硬盘的平均寻道时间低于 1/100 秒
u盘
光盘 光盘表面有很多小坑,造成光的不同反射 光学传感器会捕获到,并解码为 1 和 0
软盘
ssd 由于 SSD 没有移动部件 磁头不用等磁盘转 所以 SSD 访问时间低于 1/1000 秒
底层:集成电路
所以现代计算机 仍然用存储层次结构
内存和存储技术也有类似的趋势:晶体管数量和摩尔定律
20.文件系统
数据存储,磁带和硬盘这样的技术可以在断电状态长时间存上万亿个位
非常合适存一整块有关系的数据,或者说”文件”
文件是什么
txt:文字
原始值01010101110000
转成十进制72 105 44 32 73 39 109 32 67 97 114 114
按照ASCII转码
I love you
wav声音文件
信息:码率,单声道还是立体声
1/1000秒为单位,声压的高低,也叫做振幅,输出的时候也输出这个
位图bitmap
元数据
运数据存在文件的开头,也叫做文件头
计算机如何管理文件
平面文件系统
所有文件在一个文件夹
目录文件+文件
缺点,A文件增加内容,没地方加
现代文件管理系统
- 把空间划分成一块块 \N 导致有一些 “预留空间” 可以方便改动
2. 拆分文件,存在多个块里
预留空间->slack space
假设打开 todo.txt 加了些内容
文件太大存不进一块里我们不想覆盖掉隔壁的块,所以文件系统会分配一个没使用的块,容纳额外的数据,目录文件会记录不止一个块,而是多个块,只要分配块,文件可以轻松增大缩小,这听起来很像”虚拟内存”
问题:产生了碎片,文件可以有很多块
答案:碎片整理,把同一个文件,放在连续的位置
问题:多文件夹怎么办
答案:增加一个来维护,文件块不变
结论
- 文件系统使我们不必关心文件在磁带或磁盘的具体位置
- 整理和访问文件更加方便
- 我们像普通用户一样直观操纵数据,比如打开和整理文件