@大一大二读了死书,大三读了懒书,大四读了瞎忙书,希望以后能,好好读一读书
第一章 计算机系统漫游
这是跟着刘欣大佬读csapp的作业。
这里不是纯粹一本书的读书笔记,只是摘录了我感兴趣的部分,结合之前的书和感想。尽量让这个作业有那么点意义。
几个重要概念
1.抽象
还记得大一时候,接触类,对象。实际上这个是我第一次在计算机世界中接触抽象。(C语言入门好像没学到过函数原型。。。。)
计算机系统中的抽象
抽象的使用是计算机科学中最为重要的概念之一。
在计算机系统中使用的几个抽象:
- 在处理器里,指令架构提供了对实际处理器硬件提供了抽象,使用这个抽象,机器代码程序表现的就好像运行在一个一次只执行一条指令的处理器上
- 文件是对I/O设备的抽象
- 虚拟内存是对程序存储器的抽象
- 进程(processes)是对一哥正在运行的程序的抽象。
- 虚拟机提供了对整个计算机的抽象,包括操作系统、处理器和程序。
Java中的抽象
类
通过类实现自定义数据类型,封装该类型的数据所具有的属性和操作,隐藏实现细节,从而在更高的层次(类和对象的层次,而非基本数据类型和函数的层次)上考虑和操作数据,是计算机程序解决复杂问题的一种重要的思维方式——《Java编程的逻辑》马俊昌
接口
接口:对能力的一种抽象。
2.Amdahl定律
定义:
当我们对系统的某个部分加速时,其对系统整体性能的影响取决于部分的重要性和加速程度。
即:想要加速某个系统,必须提升全系统中相当大的部分的速度。——就是死磕一点没用,你都都磕完才行。
3.并发(concurrency)和并行(parallelism)
并发:
是一个通用的概念,只一个同时具有多个活动的系统
并行:
指的是用并发来使一个系统运行得更快
3.1并行在计算机系统的多个抽象层次上的使用(由高到低)
-
线程级并发
构建在进程这个抽象智商,我们能够设计出同时有多个程序执行的系统,这就导致了并发。 -
指令级并行
在较低抽象层次上,现代处理器可以同时执行多条指令的属性称为指令级并行。 -
单指令、多数据并行
在最低层次上,许多现代处理器拥有特殊的硬件,允许一条指令产生多个可以并行执行的操作,这种方式称为单指令、多数据。