第三章计算机原理 3.1电唱机、电话、电脑—一谈谈模拟信号 3.2数字信号 3.3I/0设备,存储器、处理器 3.4内存 3.4.1内存地址 3.4.2虚拟内存 “原理”一词,似乎总是代表艰深难度,另外还多少有些“太过理论,脱离实际”的意 味。对于计算机,它的原理还偏向于硬件。基于这些,我们需要明白,在真正开始学习编 程之前,我们有何必要学习一些计算机原理呢? 在大学里,计算机系有专门的一门《计算机原理》课,计算机原理的内容并不出现在计 算机语言的课中。或许是这个原因,许多面向社会人员(非专业人士)的计算机编程书籍 同样不讲计算机原理。这容易造成学习者也许上手很快,但学到一定程度后就难以有较深 入的发展。我想,这是因为“底气不足 如上面提到的,计算机原理是完整的一门课,我们此处只用 必须讲最本质的原理 3.1电唱机、电话、电脑——谈谈模拟信号 要了解电脑的原理,不妨举一些我们早已熟悉的其它电器的例子,看看它们的原理。 假如你第一次看到一台会能说会唱的电脑,你可能会感到新奇,但事实上,别忘了,从 CD机到带式的随机听,它们都没有生命却“记下”然后“说出”声音。事实上它们运行的 原理,在本质和电脑完全一致,只不过由于我们太过熟悉,所以就认为它们没有什么了不 起。其实,你能说出电唱机为什么能唱吗? 原始的电唱机会发唱的原理: 一张盘,表面涂一层石蜡。取一根针,针尖正好接触蜡面,针上顶一张薄膜。让帕瓦罗 蒂在不远处冲着这张膜唱《我的太阳》。另有一人在老帕高歌时均速地旋转蜡盘。于是, 歌声高低不同,薄膜向下压的幅度也不同,针在蜡上刻的深浅便不同,这样,就将人的声
第三章 计算机原理 3.1 电唱机、电话、电脑——谈谈模拟信号 3.2 数字信号 3.3 I/O 设备,存储器、处理器 3.4 内存 3.4.1 内存地址 3.4.2 虚拟内存 “原理”一词,似乎总是代表艰深难度,另外还多少有些“太过理论,脱离实际”的意 味。对于计算机,它的原理还偏向于硬件。基于这些,我们需要明白,在真正开始学习编 程之前,我们有何必要学习一些计算机原理呢? 在大学里,计算机系有专门的一门《计算机原理》课,计算机原理的内容并不出现在计 算机语言的课中。或许是这个原因,许多面向社会人员(非专业人士)的计算机编程书籍 同样不讲计算机原理。这容易造成学习者也许上手很快,但学到一定程度后就难以有较深 入的发展。我想,这是因为“底气不足”。 如上面提到的,计算机原理是完整的一门课,我们此处只用一章的时间阐述,所以我们 必须讲最本质的原理。 3.1 电唱机、电话、电脑——谈谈模拟信号 要了解电脑的原理,不妨举一些我们早已熟悉的其它电器的例子,看看它们的原理。 假如你第一次看到一台会能说会唱的电脑,你可能会感到新奇,但事实上,别忘了,从 CD 机到带式的随机听,它们都没有生命却“记下”然后“说出”声音。事实上它们运行的 原理,在本质和电脑完全一致,只不过由于我们太过熟悉,所以就认为它们没有什么了不 起。其实,你能说出电唱机为什么能唱吗? 原始的电唱机会发唱的原理: 一张盘,表面涂一层石蜡。取一根针,针尖正好接触蜡面,针上顶一张薄膜。让帕瓦罗 蒂在不远处冲着这张膜唱《我的太阳》。另有一人在老帕高歌时均速地旋转蜡盘。于是, 歌声高低不同,薄膜向下压的幅度也不同,针在蜡上刻的深浅便不同,这样,就将人的声
音最终以蜡上划痕的深浅记录下来。将蜡盘固化,在一套反方向的装置上:盘转,顶针上 下高底不同地拉动一张膜,那张膜就会有模有样地唱《我的太阳》了。 再来看看电话的原理: 话筒内有一堆碳粉,碳粉内埋一导线,碳粉盖一张膜。同样,当你对话筒大喊大叫时 膜对碳粉造成忽紧忽松的压力,碳粉之间时紧时松,引起其电阻的大小变化,最终忽大忽 小的电流传到对话的听筒。听筒内有一电磁铁随电脑大小而磁性不同,它对埋有金属丝薄 膜时吸时放,薄膜便发出了你的声音。 你我都已经永远地失去了发明的电唱机或电话的机会了……伟大的先驱们是那么的聪 明,懂得将一种不便于存储,不便于传播的信号转换为另一种便于存储,便于传播的信号 从而有了伟大的发明 电脑(计算机)要管理各种信息,首先它必须能存储,传载这些信息,所以,在这一点 上,它的本质和电唱机或电话没有区别,必须实现各种信息以某种方法,转换为另一种信 息 这就是计算机的第一条本质原理:将各类信息以某种信号进行存储 好极了,现在,我们已经是了解计算机本质之一的人,从今天起,当我们再听到有菜鸟 在说硬盘时,你大可对其怒喝:“成天就知道‘酷鱼大脚西部数据’!不管是什么牌子, 也不管是硬是软是光,它们都是计算机将外界信息以磁或者激光信号的形式进行存储的介 质,懂不?看你真像个中关村的电脑贩子!”(如果对方体积俨然在你的1.5倍以上,最 后一句可以不说) 3.2数字信号 “数字”一— digit 无论我说中文还是英文的,除了刚巧学完0~9的小学低年级学生外,20和21世纪内出 生的人都知道我是在说一个时髦词 这个“数字”所代表的,是“模拟”的反面 电视,我们要数字的(尽管据说在中国并没有数字信号的电视节目) 手机,当然是数字的,前阵子中国电信已彻底地向采用模拟信号的蜂窝说bye-bye 相机,数码的。(数码就是数字)
音最终以蜡上划痕的深浅记录下来。将蜡盘固化,在一套反方向的装置上:盘转,顶针上 下高底不同地拉动一张膜,那张膜就会有模有样地唱《我的太阳》了。 再来看看电话的原理: 话筒内有一堆碳粉,碳粉内埋一导线,碳粉盖一张膜。同样,当你对话筒大喊大叫时, 膜对碳粉造成忽紧忽松的压力,碳粉之间时紧时松,引起其电阻的大小变化,最终忽大忽 小的电流传到对话的听筒。听筒内有一电磁铁随电脑大小而磁性不同,它对埋有金属丝薄 膜时吸时放,薄膜便发出了你的声音。 你我都已经永远地失去了发明的电唱机或电话的机会了……伟大的先驱们是那么的聪 明,懂得将一种不便于存储,不便于传播的信号转换为另一种便于存储,便于传播的信号, 从而有了伟大的发明。 电脑(计算机)要管理各种信息,首先它必须能存储,传载这些信息,所以,在这一点 上,它的本质和电唱机或电话没有区别,必须实现各种信息以某种方法,转换为另一种信 息。 这就是计算机的第一条本质原理:将各类信息以某种信号进行存储。 好极了,现在,我们已经是了解计算机本质之一的人,从今天起,当我们再听到有菜鸟 在说硬盘时,你大可对其怒喝:“成天就知道‘酷鱼大脚西部数据’!不管是什么牌子, 也不管是硬是软是光,它们都是计算机将外界信息以磁或者激光信号的形式进行存储的介 质,懂不?看你真像个中关村的电脑贩子!”(如果对方体积俨然在你的 1.5 倍以上,最 后一句可以不说) 3.2 数字信号 “数字”——digit。 无论我说中文还是英文的,除了刚巧学完 0~9 的小学低年级学生外,20 和 21 世纪内出 生的人都知道我是在说一个时髦词。 这个“数字”所代表的,是“模拟”的反面。 电视,我们要数字的(尽管据说在中国并没有数字信号的电视节目); 手机,当然是数字的,前阵子中国电信已彻底地向采用模拟信号的蜂窝说 bye-bye; 相机,数码的。(数码就是数字)
空调,数控的(空调吹不出数字的风,但它说,我这风是在数字信号的控制下吹出来的, 当然就白里透红与众不同) “数字的”就这么好吗?电脑也是数字的吗 前面我们说唱机,电话的原理时,你可以看到,在一种信号转换为另一种信号时,采用 的方法是进行“模拟”。比如用针在蜡上刻的深浅来模拟声音的高低。尽管新的信号记载 原来不空易存储的信号(声音),但这种新信号本身也是不稳定,不精确,比如针的不同, 或蜡的质量不同,但会造成虽然同样是老帕在同一时刻唱的歌,不同的盘最后播出的声音 却不同。类似的,笔者便常常在电话这头将丈母娘的声音听成是丈母娘女儿的声音而下不 了台 和许多伟大发明一样,当初计算机的发明的需明恐怕也是为了战争。现代计算机更是广 泛用于卫星发射,飞机导航等不允许出错的领域。其实,就算是仅仅用于让你给女朋友或 男朋友发一封情义绵绵的e-mail,只怕你也不希望它出什么差错 尽管模拟的手段是一种信号转换为另一信号时几乎是不可避免的最初方法,但我们要求 有进一步的转换来或得可以精确复制,从而更利于存储,传播的信号 当你将一首存在磁带式唱片上歌不停地录到别的唱片时,歌声会越来越变调。同样操作 进行在数字信号的CD唱片,歌声却完全一致 模拟信号转换成数字信号和其反方向的转换是如何实现,不是一章的文字能说清。也不 是我们学习的重点。我们只需记住以下内容 1、首先:模拟信号英文为: analog signals缩写AS;数字信号为: digital signals/Ds; 因此,前者到后者的转换称为AD转换,另一方向则称为DA转换。在各种计算机系统(特 别是工业控制)中,AD转换往往是采集数据的初始端,而DA则是播放数据的最终端。 2、第二就更简单。以下是两张示意图,分别为模拟和数字信号的波形图 你需要能认出二者 像心电图一样的锯齿波是模拟信号典型的波样,比如我们的声音。而方形波则为数字信号
空调,数控的(空调吹不出数字的风,但它说,我这风是在数字信号的控制下吹出来的, 当然就白里透红与众不同)。 “数字的”就这么好吗?电脑也是数字的吗? 前面我们说唱机,电话的原理时,你可以看到,在一种信号转换为另一种信号时,采用 的方法是进行“模拟”。比如用针在蜡上刻的深浅来模拟声音的高低。尽管新的信号记载 原来不空易存储的信号(声音),但这种新信号本身也是不稳定,不精确,比如针的不同, 或蜡的质量不同,但会造成虽然同样是老帕在同一时刻唱的歌,不同的盘最后播出的声音 却不同。类似的,笔者便常常在电话这头将丈母娘的声音听成是丈母娘女儿的声音而下不 了台。 和许多伟大发明一样,当初计算机的发明的需明恐怕也是为了战争。现代计算机更是广 泛用于卫星发射,飞机导航等不允许出错的领域。其实,就算是仅仅用于让你给女朋友或 男朋友发一封情义绵绵的 e-mail,只怕你也不希望它出什么差错。 尽管模拟的手段是一种信号转换为另一信号时几乎是不可避免的最初方法,但我们要求 有进一步的转换来或得可以精确复制,从而更利于存储,传播的信号。 当你将一首存在磁带式唱片上歌不停地录到别的唱片时,歌声会越来越变调。同样操作 进行在数字信号的 CD 唱片,歌声却完全一致。 模拟信号转换成数字信号和其反方向的转换是如何实现,不是一章的文字能说清。也不 是我们学习的重点。我们只需记住以下内容: 1、首先:模拟信号英文为:analog signals 缩写 AS;数字信号为:digital signals/DS; 因此,前者到后者的转换称为 AD 转换,另一方向则称为 DA 转换。在各种计算机系统(特 别是工业控制)中,AD 转换往往是采集数据的初始端,而 DA 则是播放数据的最终端。 2、第二就更简单。以下是两张示意图,分别为模拟和数字信号的波形图。 你需要能认出二者。 像心电图一样的锯齿波是模拟信号典型的波样,比如我们的声音。而方形波则为数字信号
(笔者用画笔毛糙地画成,不像样之处尚望各位包涵。) 面对左图的锯齿波。我们也就明白了为什么人生和生活会那么复杂。因为人类的原始的现实的生活中,各种信号几乎都 是模拟的。不仅仅是声音,不仅仅是我们的心跳的规律,更包括我们的感情,都是“模拟信号”。你看“情绪化”一词又总 是用来代表不稳定的,非理智的……和生活相比,编程世界是那么的简单。它0就是就0,1就是1,正所谓爱恨分明 似乎有些跑题,不过接来的另一段“面对”倒很重要,请认真看。 面对方形波,回忆第一章我们说过的二进制:二进制数只用0、1两个数字。方形波最适合于二进制表示。凸起的用1表 凹下的用0表示。所以现在你可明白:在计算机的世界里,所有信息最终都被数字化为0和1,这是一种最彻底的数字 化。譬如在我们已熟悉的数据存储方面:硬盘和软盘都为磁盘,它通过有盘上某一点有无磁性来表示1或0:而光盘,它盘 面上会有连续的凸起颗粒,和间隔的平面。当激光头的射线进入前者时,光被散射,这些连续的点用于表示一个0,当光线 照在平面区时,光被反射,则可表示1。(如下图) (由于这种数字化的实现大多数通过电子电路,所以,一些场合数字化也被称为电子化) 至此,让我们再重复一遍在第一章我们说是严重跑题的那段话: 世界就是这样奇妙。万事万物五彩缤纷,但进了计算机,却只是个0和1的组合。不由得你会想起道教的古老玄机:“无 极生太极,太极生两仪,两仪生四象,四象生八卦,八卦生十六爻”。 3.3I/0设备,存储器、处理器 计算机系统中,硬盘、软盘/软驱、光盘/光驱等称为存储器。它们用来存储信息,这些信息在它们的内部统统以0和1 表示 如果只有这些,那计算机就只能叫数据仓库了。有了数据还需要处理数据的能力 数据和处理。依笔者的理论,这是程序的全部,计算机的全部,也是世界的全部。反过来说,正因为整个世界都可以用 数据和处理来表达,所以最终程序才有可能实现对现实问题的解决 当我们在写程序时,就是在用程序来表达这个世界。当然,由于很多数据没法实现“数字化”,所以它们永远无法用程 序来表达,比如人类的感情,或许永远只能是“模拟信号”。(基于此,所有科幻片中关于有一天计算机会突然具有自已的 意识,并开始以人类为敌的设想,我们可以断定它也就只能是幻想一一永远都是。)
(笔者用画笔毛糙地画成,不像样之处尚望各位包涵。) 面对左图的锯齿波。我们也就明白了为什么人生和生活会那么复杂。因为人类的原始的现实的生活中,各种信号几乎都 是模拟的。不仅仅是声音,不仅仅是我们的心跳的规律,更包括我们的感情,都是“模拟信号”。你看“情绪化”一词又总 是用来代表不稳定的,非理智的……和生活相比,编程世界是那么的简单。它 0 就是就 0,1 就是 1,正所谓爱恨分明…… 似乎有些跑题,不过接来的另一段“面对”倒很重要,请认真看。 面对方形波,回忆第一章我们说过的二进制:二进制数只用 0、1 两个数字。方形波最适合于二进制表示。凸起的用 1 表 示,凹下的用 0 表示。所以现在你可明白:在计算机的世界里,所有信息最终都被数字化为 0 和 1,这是一种最彻底的数字 化。譬如在我们已熟悉的数据存储方面:硬盘和软盘都为磁盘,它通过有盘上某一点有无磁性来表示 1 或 0;而光盘,它盘 面上会有连续的凸起颗粒,和间隔的平面。当激光头的射线进入前者时,光被散射,这些连续的点用于表示一个 0,当光线 照在平面区时,光被反射,则可表示 1。(如下图) (由于这种数字化的实现大多数通过电子电路,所以,一些场合数字化也被称为电子化) 至此,让我们再重复一遍在第一章我们说是严重跑题的那段话: 世界就是这样奇妙。万事万物五彩缤纷,但进了计算机,却只是个 0 和 1 的组合。不由得你会想起道教的古老玄机:“无 极生太极,太极生两仪,两仪生四象,四象生八卦,八卦生十六爻”。 3.3 I/O 设备,存储器、处理器 计算机系统中,硬盘、软盘/软驱、光盘/光驱等称为存储器。它们用来存储信息,这些信息在它们的内部统统以 0 和 1 表示。 如果只有这些,那计算机就只能叫数据仓库了。有了数据还需要处理数据的能力。 数据和处理。依笔者的理论,这是程序的全部,计算机的全部,也是世界的全部。反过来说,正因为整个世界都可以用 数据和处理来表达,所以最终程序才有可能实现对现实问题的解决。 当我们在写程序时,就是在用程序来表达这个世界。当然,由于很多数据没法实现“数字化”,所以它们永远无法用程 序来表达,比如人类的感情,或许永远只能是“模拟信号”。(基于此,所有科幻片中关于有一天计算机会突然具有自已的 意识,并开始以人类为敌的设想,我们可以断定它也就只能是幻想——永远都是。)
计算机系统中,键盘,鼠标,扫描仪,数码相机等,可称为输入( Input)设备。 显示器,打印机,称为输出( Output)设备。 这二者统称为输入输出设备,也就是计算机英文中常见的那个缩写:10或I/0。 输入设备用来做什么?用来向计算机输入信息,这过程便有非常多的“模拟->数字”转换器。而输出设备,则将处理后 的的信息以合适的格式输出(一般是为了输出给人看)。下面我们用我们最熟悉不过的鼠标来说明。 第一,鼠标的输入端是什么呢? 答:是我们手里握着的那个类似老鼠的东西 第二,鼠标的输入端要处理的是什么信息呢(换一种问法是:鼠标要输入什么信息)? 答:是我们胳膊肘的来回挪动(这里暂不说单击,双击等)。可别说胳膊肘的动作不是信息一一那样说可真外行一一包 括挪动的方向,距离,速度等。 第三,胳膊肘的动作是“模拟信号”还是“数字信号”呢? 答:只要你的手是肉长的,那么就只能是模拟信号 第四,胳膊肘的动作是如何被采集,又如何传输入进电脑,又如何被处理,又如何变成一个光标在屏幕上跑来跑去,有 时候还会变成一只小手 答:@#¥%#?! 关于鼠标的具体工作过程已经不是我能回答的了,也不是我们要学习的内容。不过如你很穷,和我一样用的是10来块的 机械式鼠标,那么恭喜你,你可以亲自“解剖”一下鼠标,观察鼠标里头的“模数转换器”。方法是把鼠标背过来,揭掉合 格证(提醒,揭掉后你的鼠标可能无法保修了),拧掉螺丝,打开上盖,会发现内有滚轮,水平向滚轴,垂直向滚轴,辅助 压轮各一,组成一套采集设置,看看你就明白它们是如何配合工作,完成采集你胳膊肘的挪动的信息了。 最后在合上盖时,顺便将滚轴上的积泥刮掉,它们严重影响数据采集的精度 说完存储设备和I/0设备,重要人物也要该出场了。它就是电脑的心脏:CPU
计算机系统中,键盘,鼠标,扫描仪,数码相机等,可称为输入(Input)设备。 显示器,打印机,称为输出(Output)设备。 这二者统称为输入输出设备,也就是计算机英文中常见的那个缩写:IO 或 I/O。 输入设备用来做什么?用来向计算机输入信息,这过程便有非常多的“模拟->数字”转换器。而输出设备,则将处理后 的的信息以合适的格式输出(一般是为了输出给人看)。下面我们用我们最熟悉不过的鼠标来说明。 第一,鼠标的输入端是什么呢? 答:是我们手里握着的那个类似老鼠的东西。 第二,鼠标的输入端要处理的是什么信息呢(换一种问法是:鼠标要输入什么信息)? 答:是我们胳膊肘的来回挪动(这里暂不说单击,双击等)。可别说胳膊肘的动作不是信息——那样说可真外行——包 括挪动的方向,距离,速度等。 第三,胳膊肘的动作是“模拟信号”还是“数字信号”呢? 答:只要你的手是肉长的,那么就只能是模拟信号。 第四,胳膊肘的动作是如何被采集,又如何传输入进电脑,又如何被处理,又如何变成一个光标在屏幕上跑来跑去,有 时候还会变成一只小手…… 答:@ # ¥ % # ? ! 关于鼠标的具体工作过程已经不是我能回答的了,也不是我们要学习的内容。不过如你很穷,和我一样用的是 10 来块的 机械式鼠标,那么恭喜你,你可以亲自“解剖”一下鼠标,观察鼠标里头的“模数转换器”。方法是把鼠标背过来,揭掉合 格证(提醒,揭掉后你的鼠标可能无法保修了),拧掉螺丝,打开上盖,会发现内有滚轮,水平向滚轴,垂直向滚轴,辅助 压轮各一,组成一套采集设置,看看你就明白它们是如何配合工作,完成采集你胳膊肘的挪动的信息了。 最后在合上盖时,顺便将滚轴上的积泥刮掉,它们严重影响数据采集的精度。 说完存储设备和 I/O 设备,重要人物也要该出场了。它就是电脑的心脏:CPU