提交 cce953fe 编写于 作者: W wizardforcel

ch3 incomp.

上级 46aea309
# 第三章 虚拟内存
> 作者:[Allen B. Downey](http://greenteapress.com/wp/)
> 原文:[Chapter 3 Virtual memory](http://greenteapress.com/thinkos/html/thinkos004.html)
> 译者:[飞龙](https://github.com/)
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
## 3.1 简明信息理论
比特是二进制的数字,也是信息的单位。一个比特有两种可能的情况,写为0或者1。如果是两个比特,那就有四种可能的组合,00、01、10和11。通常,如果你有`b`个比特,你就可以表示`2 ** b`个值之一。一个字节是8个比特,所以它可以储存256个值之一。
从其它方面来讲,假设你想要储存字母表中的字母。字母共有26个,所以你需要多少个比特呢?使用4个比特你可以表示16个值之一,这是不够的。使用5个比特你可以表示32个值,这对于所有字母是够用的,同时还有一点点浪费。
通常,如果你想要表示`N`个值之一,你就需要求出最小的`b`使`2 ** b >= N`。在两边计算以2为底的对数,就会得到`b >= log(2, N)`
假设我投掷一枚硬币并且告诉你结果,我就向你提供了1比特的信息。如果我投掷六个面的筛子并告诉你结果,我就向你提供了`log(2, 6)`比特的信息。并且通常,如果结果的概率是`1/n`,结果应该包含`log(2, N)`比特的信息。
同样,如果结果的概率为`p`,那么信息的内容为`-log(2, p)`。这个数量叫做“自信息”(self-information)。它度量了结果有多么令人意外,所以也叫作“惊异度”。如果你的赛马只有十六分之一的几率获胜,并且它获胜了,那么你就得到了4比特的信息(以及奖金)。但是如果它的获胜几率为75%,这条新闻只含有0.42个比特。
可以由直觉得出,非预期的新闻会带有大量信息;与之相反,如果你对一件事情很有自信,对它的验证只会得到少量的信息。
对于书中的一些话题,我们只需要熟练于在比特数量`b`和它们所编码的值的数量`N = 2 ** b`之间进行转换。
## 3.2 内存(Memory)和储存器(Storage)
当进程处于运行期间,它的多数数据都放在“主存”(内存)之中,它通常是一些随机储存器(RAM)。在当前的大多数电脑上,主存非常易失,也就是说,当电脑关闭时,主存的内容就没了。一个典型的台式电脑拥有2~8GiB的内存。GiB代表“gibibyte”,相当于`2 ** 30`个字节。
如果进程会读写文件,这些文件通常放在机械硬盘(HDD)或固态硬盘(SSD)里面。这些储存器都是非易失的,所以他们可用于长时间储存。当前,一个典型的台式电脑拥有500GB到2TB的HDD。GB代表“gigabyte”,相当于`10 ** 9`个字节。TB代表“terabyte”,相当于`10 ** 12`个字节。
你可能会注意到我使用二进制单位GiB来描述主存大小,并使用十进制单位GB和TB来描述HDD的大小。由于历史和技术因素,内存以二进制单位度量,并且硬盘以十进制单位度量。本书中我会小心区分二进制和十进制单位,但是你应该注意到“gigabyte”以及GB缩写通常在使用上非常模糊。
非正式的用法中,“内存”有时会用于HDD和SSD(特别是移动设备),以及RAM。然而,这些设备的属性大相径庭,所以我们需要区分它们。我会使用“储存器”来指代HDD和SSD。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册