目录
计算机系统漫游
本章只是对整个计算机体系进行概要的介绍,很多主题扩展开来又可以写一本很厚的书了。在阅读此章时,有个大概了解即可。
hello world
源程序实际上就是一个由值0和1组成的位(又称为比特)序列,8个位被组织成一组,称为字节。每个字节表示程序中的某些文本字符。
系统中所有的信息–包括磁盘文件、内存中的程序、内存中存放用户数据以及网络上传送的数据,都是由一串比特表示的。区分不同数据对象的唯一方式是我们读到这些数据对象时的上下文。
下图描述了一个c程序是如何被编译运行的。
关于计算机的构成
关于存储器
分层,高层提供给低层高速缓存,越高层性能越好,价格越贵。
计算机抽象的表示
关于shell
shell是一个命令行解释器,它输出一个提示符,等待输入一个命令行,然后执行这个命令。如果该命令行的第一个单词不是内置的shell命令,那么shell就会假设这是一个可执行文件的名字,它将加载并运行这个文件。
操作系统的两个基本功能:
- 防止硬件被失控的应用程序滥用;
- 向应用程序提成简单一致的机制来控制复杂而又通常大不相同的低级硬件设备。
操作系统通过几个基本的抽象概念(进程、虚拟内存和文件)来实现这两个功能。
文件是对I/O设备的抽象表示,虚拟内存是对主存和磁盘I/O设备的抽象表示,进程则是对处理器、主存和I/O设备的抽象表示。
Posix的由来
20世纪80年代中期,Unix厂商试图通过加入新的、往往不兼容的特性来使他们的程序与众不同,为了阻止这种趋势,IEEE开始标准化Unix的开发,后来由Richard Stallman命名为“Posix”。结果就得到了一些列的标准,称作Posix标准。
并发运行
一个进程的指令和另一个进程的指令是交错执行的。
操作系统保持跟踪进程运行所需的所有状态信息。这种状态,也就是上下文。
进程间切换的交错执行的机制称为上下文切换。
Amdahl定律
- a表示可以提升部分的比例
- k表示可提升部分性能提升的比例