码农要术:操作系统篇:计算机如何工作

May 23, 2020

比尔盖茨在创立公司的时候,定下了一个目标:要让每个办公桌,家家户户拥有一台电脑。目前看,比尔盖茨的目标已经基本实现,甚至在乔布斯重新发明了手机后,每个人都把电脑带到身上了。

你在用电脑或者手机上网,听歌的时候,有没有想过这么一个问题:电脑到底在干什么?如果回到古代,没有电脑,让人来做电脑做的事情,会是个什么场景?

出场人物介绍

  1. “及时雨”宋江:水泊梁山创业公司CEO
  2. “智多星”吴用:梁山副总裁、参谋长
  3. “神算子”蒋敬:梁山金钱粮食会计,精通算数
  4. “神行太保”戴宗:日行八百里,送信高手
  5. “铁叫子”乐和:梁山乐队指挥

场景1: 梁山发财报

宋江带领弟兄们创业也有一段时间了,最近想扩大公司规模,拉投资,广纳贤才势在必行。

又到了发财报的时候了,宋江叫来军师吴用,说:“每次算财报都算好几天,还经常出错,军师可有良策?“。吴用回答道:”回公明哥哥,前一段时间让神算子蒋敬去英特尔公司进修,目前已经学有所成,变成了一个无情的计算工具人,算的又快又准。还把自己的外号神算子都改了,现在叫CPU“。

宋江差人把蒋敬唤来,问道:”记得去年我们盈利X贯,今年盈利Y贯,这两年一共盈利多少贯?听说你学了新本事,能说一下怎么算么?“

只见,神算子蒋敬(CPU)拿出了一本书,书的封皮上写着两个字《内存》。然后又拿出几张草稿纸,上面写着xx寄存器之类的。然后拿出其中一张叫程序计数器的草稿纸,看上面写着第10页,就翻到《内存》的第10页,看到第10页上面空空如也,就坐在那里不动了。

宋江问吴用:“这是何意?”。吴用答道:“自从蒋敬出了趟国,外号改成CPU后,就只会按照《内存》这本书上的内容做事情,公明哥哥写什么,他就做什么。现在第10页什么都没有,所以CPU蒋敬不知道干什么。“

宋江提笔要写,吴用有说:”CPU蒋敬长期在国外,对我们大宋朝的话有些生疏了,现在他只会一种叫机器语言的方言。吴用不才,学了一些机器语言和它的速记版本:汇编语言,可为公明哥哥代笔。“

只见吴用在内存的第10,11,12页写了一大堆0和1。宋江心想,这机器语言有圈有线跟蝌蚪似的,正在规划的“石碑天降排座次”项目可能用得上。但是此时耐不住好奇心,问道:“军师写了什么?”

吴用解释道:“第10页写的是把X抄到草稿纸(寄存器)A上,第11页写的是把Y抄到草稿纸B上,第12页写的是把A和B加起来,然后写到草稿纸A上。这样我们近两年的盈利值就算出来了。“

CPU蒋敬看了程序计数器的草稿纸,上面写的10,然后把《内存》第10页的内容抄写到指令寄存器的草稿纸上,然后执行指令寄存器上的工作,把X抄到草稿纸A,接着把程序计数器上面的数字改成11。

CPU蒋敬看了程序计数器的草稿纸,上面写的11,然后把《内存》第11页的内容抄写到指令寄存器的草稿纸上,然后执行指令寄存器上的工作,把Y抄到草稿纸B,接着把程序计数器上面的数字改成12。

CPU蒋敬看了程序计数器的草稿纸,上面写的12,然后把《内存》第12页的内容抄写到指令寄存器的草稿纸上,然后执行指令寄存器上的工作,把A和B上面的数字加起来,结果写到草稿纸A上,接着把程序计数器上面的数字改成13。

CPU蒋敬看了程序计数器的草稿纸,上面写的13,第13页暂时没有写东西,蒋敬又开始休息。

所以说,CPU蒋敬做的事情,就是翻到《内存》这本书的某一页,然后执行这一页上的命令。命令中一些计算都是借助草稿本(寄存器)完成。执行完这一页后,默认翻到《内存》的下一页,除非命令让翻到第n页。如此反复。

CPU蒋敬确实算的又快又准,很快就把本年度的财报算完了。

image-20200525005511348

场景2:宋大哥想听李师师的新专辑

今年财报不错,北宋胡润榜上大员外兼全国枪棒武术冠军卢俊义都被我们请上山了,估值提升,上市指日可待。

宋江又想起个问题,问吴用:“这X+Y的计算方法,在CPU蒋敬进修之前拿算盘算的好像还更简单一些?这里又有草稿纸,又有内存的,整这么复杂干什么?”

吴用答道:“刚才我们看到的只是数值运算,和拿算盘算差别不大。但是CPU蒋敬还有个新本事,那就是精通逻辑运算。而且CPU和内存的这套组合拳其实就是升级版的通用图灵机,理论上,一切可计算的东西都可以通过图灵机来计算

宋江又问:“什么是可计算?什么是图灵机?”

吴用答道:“通俗来讲,一个问题如果能够通过有限步骤得到解决,就是可计算。图灵机的概念几句话讲不明白,改天再跟公明哥哥细说。“

宋江说:“那我给你出个题目,为了提高梁山的精神文明健身,我请弟兄们听一下李师师的新歌。怎么解决?”

吴用回答道:“主要分这么几步:“

  1. 让神行太保戴宗(网卡)去一趟东京汴梁,把乐谱取回来,按顺序誊写到《内存》上。(上网下载音乐)
  2. CPU蒋敬翻到《内存》乐谱的位置,取出里面的音调和节拍,按顺序发给铁叫子乐和(可以是8254芯片)
  3. 铁叫子乐和指挥乐队(音响),演奏歌曲。
  4. 其中也可以加入一些逻辑判断,比如宋大哥说:下一首。则CPU蒋敬会找到下一首乐谱的位置,演奏下一首歌曲。

问题就解决了,宋大哥足不出户,就可以听到李师师的新歌,这就是所谓的“科技改变生活”。

宋江心想:“解决个屁。这帮技术宅,不懂我的心意,我是想去看李师师,这歌有什么好听的!“

image-20200525000356446

码农要术:操作系统篇:计算机如何工作 - May 23, 2020 -