《笨兔兔的故事——带你了解Ubuntu,了解Linux》
第13节

作者: 懒蜗牛Gentoo
收藏本书TXT下载
  好了,基本的操作说完了,现在说正题,不同位数的区别。两位的CPU就像刚才说的那样,那么假设现在需要计算3173+644,这里有2位的CPU一个,4位的CPU一个,分别用他们做这个计算,有什么区别呢?
  咱先拿这两位的,有人说了,两位的只能算两位啊,这个没法算哪?唉,这机器是死的,咱软件是活的啊,一次只能算两位,咱不会分开了多算几次么。首先,写一张73,写一张44,按钮,咔嚓,出来一张17,咔嚓又出来一张写着还得进位,好,可记住了啊,还得进位。然后再写一张31,写一张6,按钮,咔嚓,出来37。别忙,没完,刚才还得进位呢么不是,再写一张37,写一张1,按钮,咔嚓,出来38。好,最后结果拼一块,高位是38,低位是17,最后结果:3817

  再拿这4位的算算看。4位的就意味着输入的数据和输出的数据都可以是4位,也就是说我直接就可以写一张3173,写一张644,放进去,按钮,咔嚓,出来一张3817,算完收工~

日期:2009-06-19 21:22:38

  (36) 位
  这就是2位的CPU和4位的CPU的不同,从理论上来说,4位的要比2位的快,从上面的例子看的很明显嘛,大一点的数,4位的CPU一下就能算完,2位的CPU要折腾好几次。但是这4位的CPU还得有人会用才行,这就需要4位的软件来用着个4位的CPU。
  终于说到软件的位数了,CPU的位数就是一次能计算多少位的数,那软件的位数呢?就是说明这个软件需要使用多少位的CPU。软件干活肯定需要计算,计算就得用CPU,2位的软件会用2位的CPU,4位的软件就会用4位的CPU(还是拿十进制位做比喻啊)。比如有一个2位的软件(就说明这个软件会用2位的CPU),那么当这个软件运行在一个2位CPU的电脑上的时候就是这样:还比如要算3173+644,他就会先算73+44,然后记住进位,然后计算31+6,然后加上进位,最后拼起来,得到答案,就像上面描述的那样。那么当这个2位的软件运行在一个4位的CPU上的时候会怎么样呢?他会先算73+44,然后记住进位,然后计算31+6,然后加上进位,最后拼起来,得到答案……有人说了,他怎么不直接算啊?4位的CPU不是能直接就算出来么?但是别忘了他是两位的软件啊,他不会用4位的CPU,但是不会用不等于不能用,他还是可以那4位的CPU当成2位的来用,只是有些浪费而已。那么要想完全发挥4位CPU的性能怎么办呢?当然就得4位的软件出场了。当一个4位的软件运行在一个4位的CPU上时怎么计算3173+644呢?大家大概都知道了,直接算,一次完成。那么当一个4位的软件运行在一个2位的CPU上时会怎么样呢?这个软件会写个3173的纸条要往CPU的寄存器里塞,急的满头大汗就是塞不进去,最后一甩手——不干了,这破CPU没法用!当然,这只是个比喻,并不是说4位软件在2位CPU上算3173+644就算不了,算1+1就能算。4位的软件是根本无法运行在2位的CPU上的。


日期:2009-07-05 15:33:09

  (37) 协作
  64位的EVA熟练的使用着64位的CPU;同时,32位的奔流也在使用的同一颗CPU;(当然,是当成32位的用。)同时,皮筋也时不时的汇报一下主人的MSN和GTalk上的好友是否有消息发来;同时,狐狸妹妹也没闲着,游走在个个网站之间;同时………………总之,内存里大家各司其职,一派繁荣和谐的景象。而这和谐景象的背后,是由于我认真的学习了XXX思想,XXX理论,并且还戴了三个表。 -_-b

  好吧,其实之所以大家能够如和谐的同时工作,都因为我是一个多任务的操作系统。什么是多任务呢?直观的说,就是你能一边聊天,一边看电影还一边打字。(什么?你说你不能?那是因为你的大脑不是多任务系统。)有的人要说了,哪个电脑哪里系统不能一边聊天一边打字了?这说来又话长了,话说很久以前,还是那有点软的公司,在查皮的老祖宗问世之前,有点软公司赖以起家的,是一个叫做“剁死”(DOS)的操作系统。这个操作系统就是单任务的,也就是说,同时只能有一个软件在内存里运行。

  难道多让几个程序跑进内存里很难么?答案是——没错。我们工作用的内存阿CPU阿,都是很重要的资源,尤其CPU,一个CPU同时只能有一个程序在用(现在的多核心CPU对程序来说就是多个CPU),如果要让很多程序同时跑进来一起干活,就一定要对CPU进行合理的分配。剁死系统就比较简单,基本不管分配的事情。比如主人要启动狐狸妹妹(那念头当然还没有狐狸妹妹,咱就打个比方),如果是剁死系统的话,他就会跑去叫醒狐狸妹妹,然后跟她说:狐狸阿,起床干活了,你看咱这有一个奔腾166的CPU,16M的内存,够你用的不够?狐狸说,够了。然后剁死就说,那好,你去干活吧,我就不管了,干完了叫我。然后剁死就睡觉去了,整个机器归狐狸妹妹控制。所以不可能同时运行两个程序嘛。

  那多任务的系统又是怎样的呢?比如我和隔壁的查皮,都是多任务的操作系统,我们不会把整个计算机的所有资源都给一个程序用,而是进行合理和规划。还比如叫狐狸妹妹,我会去跟她说:狐狸阿,起床干活了。狐狸妹妹会起来跟我说,好,我现要10M的内存。我说检查一下内存空间,然后告诉她,可以,那一块10M的地方给你用。然后狐狸就走进工作室,开始工作的时候,一定要用到CPU,需要用的时候狐狸要找到我,向我提出申请。我根据情况,看现在有没有人正在用CPU,要是有的话就让狐狸等一下,没有的话就给她用。但是给她用也不能就让他一直用,只能让她用一会,因为还有别的程序要用。这个“用一会”的时间,专业的说法叫做时间片。每个运行着的程序都轮流的“用一会”,也就是每个程序都分配一定的时间片。没有分到时间片的程序就等着,不过这个切换的时间是非常短的,在主人那里根本感觉不到程序等待使用CPU的时间的,所以在主人看来,就是多个程序一起运行了,也就是我们所说的多任务。

  多任务的实现也有不同的模式,有协同式多任务,和抢占式多任务。
  协同式多任务,需要每个正在使用CPU的程序主动放弃CPU控制权,并由操作系统再次分配。如果我是个协同式多任务的操作系统,那就是这个样子的:狐狸妹妹用了一会CPU说,好了,我暂时不用了,去网口等个数据包去。兔子哥你让下一个程序用吧。然后我就回收了CPU的控制全,扭头一看,皮筋那里等了半天了,就把CPU给他用,他用了一会说,好了,我一会再用,先让下一个程序来吧……就这样,大家互相谦让,内存里一派繁荣和谐的景象。这主要是因为我学习XXX思想,XXX理论……戴了三个表。不过这样做得缺点就是万一有个程序不和谐就坏了。比如狐狸妹妹用了半天了,我跟她说:狐狸呀,你看,你用CPU都用了1秒了(对于我们程序来说,1秒已经是相当长的时间了)是不是该让其他的小朋友们……哦,不对,是不是刚让其他的程序用用阿?狐狸扭头斩钉截铁的说:不!于是我也没办法。如果狐狸始终不能放开CPU,那其他程序就一直等着,直到天荒地老,沧海桑田,直到机器重启,直到小区停电。

请按 Ctrl+D 将本页加入书签
提意见或您需要哪些图书的全集整理?
上一节目录下一节
【网站提示】 读者如发现作品内容与法律抵触之处,请向本站举报。 非常感谢您对易读的支持!举报
© CopyRight 2011 yiread.com 易读所有作品由自动化设备收集于互联网.作品各种权益与责任归原作者所有.