CSAPP读书部分基础知识整理

1.系统中所有的信息—包括磁盘文件、存储 器中的程序、存储器中存放的用户数据以及网络上传送的数据,都是由一串位表示的,但是上下文不同,同一个数字表示的含义也不同。位数有限,那么对于一些小数就是有限的近似了。
C 语言是为实现 Unix 操作系统而设计的。但是抽象能力差,指针容易出错。

2.汇编语言是非常有用的,因为它为不同高级语言的不同编译器提供了通  用的输出语言。

3.贯穿整个系统的是一组电子管道 称做 总线 它携带信息字节并负责在各个部件间传递
4.控制器是置于 I/O 设备本身的或者系统的主印制电路板(通常称为主板)  上的芯片组,而适配器则是一块插在主板插槽上的卡。无论如何,它们的功能都是在 I/O 总线和  I/O 设备之间传递信息。
5.主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据
6.从系统通电开始,直到系统断电,处理器一直在不断地执行程序计数器指向的指令,再更新  程序计数器,使其指向下一条指令
7.操作系统有两个基本功能 1 防止
硬件被失控的应用程序滥用 2 向应用
程序提供简单一致的机制来控制复杂而又
通常大相径庭的低级硬件设备。操作系统实现交错执行的机制称为上下文切换

8.程序再被编译之后(帮你把导入过的包装入程序文本)-汇编程序-机器指令-从磁盘被复制到主存(DMA可以不用CPU,直接经过总线到主存)-复制到CPU的寄存器中被执行-总线到
GPU等其他设备


9.容量越大的存储器速度越慢 上一层是下一层的高速缓存。

10.局部性原理,即程序具有访问局部区域里的数据和代码的趋势。

11.用户栈之所以会溢出,是因为他也在内存里面,编译器编译时要用到它
每调用一个函数,他会变长,内存里面除了放栈,还有程序的数据,OS内核
 

12.每个线程都运行在进程的上下文中,并共享同样的代码和全局数  据。

13.文件就是字节序列,仅此而已。每个 I/O 设备,包括磁盘、键盘、显示器,甚至网络,都可  以视为文件

14.从一个单独的系统来看,网络可视为一个 I/O 设备,如  图 1-14 所示。当系统从主存将一串字节复制到网络适配器时,数据流经过网络到达另一台机器,  而不是其他地方,例如本地磁盘驱动器。相似地,系统可以读取从其他机器发送来的数据,并把  数据复制到自己的主存

15.,Intel Core i7 处理器可以让一个核执行  两个线程,所以一个 4 核的系统实际上可以并行地执行 8 个线程。比  较先进的处理器可以保持每个时钟周期 2 ~ 4 条指令的执行速率 在最低层次上,许多现代处理器拥有特殊的硬件,允许一条指令产生多个可以并行执行的操  作,这种方式称为单指令、多数据,即 SIMD 并行。

16.计算机系统中的一个重大主题就是提供不同层次的抽象表示,来隐藏实际实现的复杂性

第一章总结:

计算机系统是由硬件和系统软件组成的 它们共同协作以运行应用程序 计算机内部的信息
被表示为一组组的位 它们依据上下文有不同的解释方式 程序被其他程序翻译成不同的形式
开始时是 ASCII 文本 然后被编译器和链接器翻译成二进制可执行文件(windows上是exe文件)
处理器读取并解释存放在主存里的二进制指令 因为计算机把大量的时间用于存储器 I/O
设备和 CPU 寄存器之间复制数据 所以将系统中的存储设备划分成层次结构 CPU 寄存器在
顶部 接着是多层的硬件高速缓存存储器 DRAM 主存和磁盘存储器 在层次模型中 ,位于更
高层的存储设备比低层的存储设备要更快 单位比特开销也更高(没比特价格更贵) 层次结构中较高层次存储设备 可以作为较低层次设备的高速缓存。 通过理解和运用这种存储层次结构的知识 程序员可以优化 C 程序的性能
操作系统内核是应用程序和硬件之间的媒介 它提供三个基本的抽象 1 文件是对 I/O
设备的抽象 2 虚拟存储器是对主存和磁盘的抽象 3 进程是对处理器 主存和 I/O 设备的
抽象
最后 网络提供了计算机系统之间通信的手段 从特殊系统的角度来看 网络就是一种 I/O
设备
第二章:信息的处理和表示
构造存储和处理信息的机器时,二进制的值工作得更好。二值  信号能够很容易地被表示、存储和传输,例如,可以表示为穿孔卡片上有洞或无洞、导线上的高  电压或低电压,或者顺时针或逆时针的磁场。对二值信号进行存储和执行计算的电子电路非常简  单和可靠,制造商能够在一个单独的硅片上集成数百万甚至数十亿个这样的电路
计算机的表示法是用有限数量的位来对一个数字编码,因此,当结果太大以至不能表示时,  某些运算就会溢出( overflflow)。
整数的表  示虽然只能编码一个相对较小的数值范围,但是这种表示是精确的 ;而浮点数虽然可以编码一个  较大的数值范围,但是这种表示只是近似的 
编译器产生的机器级代码
者字节( byte),作为  最小的可寻址的存储器单位 程序本身就是一个字节序列
十六进制  1  7  3  A  4  C  二进制  0001 0111 0011 1010 0100 1100
对于一个字长为 w 位的机器而言,虚拟地址的范围为 0 ~ 2w-1,程序最多  访问 2w 个字节
在几乎所有的机器上,多字节对象都被存储为连续的字节序列
最高有效字节包含位 [xw-1,xw-2,…,xw-8],而最低有效字节包含位  [x7,x6,…,x0],其他字节包含中间的位
某些机器选择在存储器中按照从最低有效字节到最高  有效字节的顺序存储对象,而另一些机器则按照从最高有效字节到最低有效字节的顺序存储。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Proxy(代理)是一种在计算机网络中广泛应用的中间服务器,用于连接客户端和目标服务器之间的通信。Proxy csapp是一个与计算机系统应用(Computer Systems: A Programmer's Perspective)相关的代理服务器。 Proxy csapp的设计目的是为了提供更高效的网络通信,增强系统的安全性,并提供更好的用户体验。在Proxy csapp中,客户端的请求首先会被发送到代理服务器,然后由代理服务器转发给目标服务器,并将目标服务器的响应返回给客户端。这种中间层的机制可以提供很多功能,如缓存、负载均衡、安全认证等。 在csapp中,Proxy csapp可以被用于优化网络数据传输的效率。代理服务器可以对客户端请求进行调度和协商,以减少网络延迟和数据传输量。通过缓存常用的数据和资源,代理服务器可以减少重复的数据传输和目标服务器的负载,提高网络性能和响应速度。 此外,Proxy csapp还可以提供安全的网络通信环境。代理服务器可以拦截和过滤网络流量,用于检测和阻止恶意攻击、垃圾邮件等网络安全威胁。代理服务器还可以对用户进行身份验证和授权,保护敏感数据的安全性。 最后,通过Proxy csapp可以实现更好的用户体验。代理服务器可以根据用户的需求进行个性化的服务,如按地理位置提供更快的网络连接、提供访问限制和控制等。代理服务器还可以对网络流量进行压缩和优化,提高网络传输效率,减少用户的等待时间。 总之,Proxy csapp在计算机系统应用中是一个重要的代理服务器,它可以提供高效的网络通信、增强系统的安全性,并带来更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值