-
假设你要将一份机密的文档通过互联网发送给你的朋友老王,你可能会想到先将文档加密之后再发给他。不论你使用的是对称加密,还是非对称加密,首先都需要与老王沟通并确定加密方式,以及加密文档用的密钥。
假若你使用对称加密方式,密钥显然要告知老王,不然他无法解密。假若你使用的是非对称加密,比如RSA,那么你得知道老王的公钥,用来加密文档。所以你们怎么通过不安全的互联网来协商加密方式呢?
-
在使用
C
语言编写程序时,往往会有动态分配内存的需求,比如动态分配数组。动态申请的内存必须是一块连续的地址空间,在不再需要这块内存时,又会对内存进行释放操作。当进行多次申请、释放之后,地址空间中会出现许多大大小小的空闲块,这些空闲块可能无法满足新的内存申请,这样就导致空闲块“被浪费了”,从而降低了内存的使用率。
设计较差的分配器不仅仅会造成内存使用率较低的问题,也很有可能花费更多的时间来搜索空闲块,造成系统吞吐率变低。
总结而言,分配器的目的有以下两个:
- 最大化内存利用率。
- 最大化吞吐量。
-
CSAPP Data Lab V.2016.05.04。
$ ./btest Score Rating Errors Function 1 1 0 bitAnd 2 2 0 getByte 3 3 0 logicalShift 4 4 0 bitCount 4 4 0 bang 1 1 0 tmin 2 2 0 fitsBits 2 2 0 divpwr2 2 2 0 negate 3 3 0 isPositive 3 3 0 isLessOrEqual 4 4 0 ilog2 2 2 0 float_neg 4 4 0 float_i2f 4 4 0 float_twice Total points: 41/41
-
两年前整理的计算机组织与体系结构复习要点