个人认为教材中最重要的一章是第一章,不管是本课程的学习还是为了以后的再学习,有了第一章的铺垫,学起来也有一定的系统性和合理性,以下为对第一章的总结
教材学习内容总结
目录概述
- 程序翻译过程
- 编译系统
- 系统硬件组成:总线、I/O设备、主存、处理器
- 高速缓存 - 上一层的存储器作为低一层存储器的高速缓存(存储器层次结构的主要思想)
- 操作系统的基本抽象概念:进程、虚拟内存、文件
- Amdahl定律
- 并发和并行
- 抽象:虚拟机、进程、指令集架构、虚拟内存、文件
内容总结
- 计算机系统是由硬件和系统软件组成的,它们共同协作以运行应用程序。计算机内部的信息被表示为一组组的位,它们依据不同的上下文又有不同的解释方式。程序被其他程序翻译成不同的形式,开始时是ASCII文本,然后被编译器和连接器翻译成二进制可执行文件。
- 处理器读取并解释存放在主存里的二进制指令。因为计算机花费了大量的时间自啊存储器、I/O设备和CPU寄存器之间拷贝数据,所以系统的存储设备就按层次排列,CPU寄存器在顶部,接着是多层的硬件高速缓存设备、DRAM主存储器和磁盘存储器。在层次模型中位于更高层的存储设备比低层的存储设备要快,单位比特造价也高。程序员通过理解和运用这种存储层次结构的知识,可以优化C程序的性能。
操作系统内核是应用程序和硬件之间的媒介。它提供3个基本的抽象概念:文件是对I/O设备的抽象概念;虚拟存储器是对主存和磁盘的抽象概念;进程是处理器、主存和I/O设备的抽象概念。网络提供了计算机系统之间通信的手段。从某个系统的角度来看,网络就是一种I/O设备。
程序编译过程:预处理->编译->汇编->链接
理解编译系统如何工作的好处:
1)优化程序性能
2)理解链接时出现的错误
3)避免安全漏洞- 系统的硬件组成:总线、I/O设备、主存、处理器
- 存储设备的层次结构:寄存器、芯片上的L1,芯片外的L2、主存储器、本地二级存储、远程二级存储
- 操作系统的两个用途:防止硬件被失控的应用程序滥用;在控制复杂而又通常广泛不同的低级硬件设备方面,为程序提供简单一致的方法
文件只不过就是字节序列。每个I/O设备,包括磁盘、键盘、显示器、甚至于网络,都可以被看成是文件。系统中所有的输入输出都是通过使用称为Unix I/O的一小组系统函数调用读写文件来实现的。
系统不仅仅只是硬件。系统是互相交织的硬件和系统软件的集合体,它们必须共同协作以达到运行应用程序的最终目的。
练习题解答
- 练习题1.1 假设你是个卡车司机,要将土豆从爱达荷州的Boise运送到明尼苏达州的Minneapolis,全程2500公里。在限速范围内,你估计平均速度为100公里/小时,整个行程需要25个小时。
A.你听到新闻说蒙大拿州刚刚取消了限速,这使得行程中有1500公里卡车的速度可以为150公里/小时。那么这对整个行程的加速比是多少?
B.你可以在www.fasttrucks.com网站上为自己的卡车买个新的涡轮增压器。网站现货供应各种型号,不过速度越快,价格越高。如果想要让整个行程的加速比为1.67×,那么你必须以多快的速度通过蒙大拿州? - 答:A. 1.25倍 B. 300km/h,过于快了。
- 练习题1.2 公司的市场部向你的客户承诺,下一个版本的软件性能将改进2×。这项任务被分配给你。你已经确认只有80%的系统能够被改进,那么,这部分需要被改进多少(即k取何值)才能达到整体性能目标?
- 答:k = 2.67,利用Amdahl定律来做。
代码托管
结对及互评
本周结对学习情况
- [20155308](博客链接)