cs:app第一章:计算机系统漫游读书笔记
信息就是位+上下文
计算机的世界里一切都是比特。磁盘,内存中的指令,数据都是比特;区别在于对比特的解读,不同的解读有了不同的信息。
操作系统的抽象
文件是对io设备的抽象
对io设备的操作,操作系统统一提供了文件这一抽象视角。磁盘,网络,键盘,鼠标的操作都被统一为文件操作。此“文件”是操作系统提供的抽象概念,应该与磁盘上的文件区分。对于linux系统而言,磁盘本身也是个文件。文件里面放文件,没问题吧?但是文件却不一定要放在磁盘上。比如网络设备,socket,并没有放在磁盘上。我们可以通过文件系统查看。linux中一切都是文件,所有的操作都具有一个统一的文件视角。就连内存,cpu都是文件。linux中有个“挂载”的概念。挂载某个设备就是挂载到linux的文件系统中供统一管理。
虚拟内存是对存储器的抽象
虚拟内存让应用程序感到计算机上只有自己在运行。操作系统为应用程序提供相同的虚拟内存空间。应用程序无需关系自己的程序的数据和代码在内存中的物理地址。
进程是对程序实体的抽象
进程表示一个运行中的程序。这个程序会用到cpu,内存,存储,io等资源。操作系统通过进程来管理,调度各个进程对资源的使用。
阿姆达尔定理
阿姆达尔定律衡量的是一个系统的一部分性能的优化对系统整体性能的提升。结果是,直对部分进行优化对性能的提升程度相当有限。除了整体性能优化,别无它途。
抽象
抽象在计算机的世界里是个很重要的概念。计算机自上而下为我们提供了各种抽象,这让我们不必关系底层实现,而计算机还仍然会按照我们预料的那样正确运行。