• 精选
  • 会员

操作系统管理电脑的运行

2019年5月4日  来源:小智雅汇 作者: 提供人:laogan45......

2、操作系统管理电脑的运行

操作系统一旦进入内存,立刻就是老大, 所有人都得听他指挥。

我也发现我的周围出现了一个屋子:进程屋。

屋里堆着一大堆东西, 什么进程描述信息包裹、进程控制信息包裹, 我都不太关心, 我只关心最最重要的两件东西:

I 我工作必备的寄存器, 就放在我面前的工作台上;

2 程序计数器, 我用它记住我要执行的下一条指令地址;

"阿甘, 别来无恙啊!" , 操作系统对我还是挺不错的, 先给我打招呼。

"Linux老大, 今天有什么活啊?", 我每次都表现的积极主动。

"来,把这个hello world 程序给运行了!"

Hello world 程序还在硬盘上睡着呢, 得先把他也装载到内存里, 要不然我怎么执行啊。

于是我就拿起电话打给硬盘, 电话通过系统总线来到I/O桥电话局, 再转接到I/O总线,这才来到硬盘这里。

我在电话里请他把数据给我运过来, 然后我就无所事事的坐在那里等。

Linux 老大立刻就怒了 : 阿甘, 告诉你多少次了, 你小子怎么还在等硬盘给你发数据!

是的, 我忘了一件事,硬盘比我慢太多了, 我执行一条指令大概是1ns(纳秒) ,在用来读磁盘的16ms里, 我能潜在的执行1600多万条指令啊。

我感到深深的愧疚, 赶紧拿起电话打给硬盘 : 哥们, 按我们之前商量好的,用直接内存访问(DMA)啊, 你直接把数据装载到内存吧, 不用经过我了, 装载完成以后给我发个信号。

"这还差不多!" Linux 老大心情好了些。

“阿甘,数据还没来, 别闲着, 这有一个斐波那契数列, 来算一下吧!”

"肥波纳妾数列? 这名字好古怪,老大, 其实你也知道, 我脑子小,懒得去理解那是啥意思, 你把进程屋切换下,把程序计数器设置好,指向下一条指令, 我一条条指令执行就得了。“ 我挺没追求的。

"真是个阿甘啊! ”老大感慨道。

我所处的进程屋立刻发生了变化(当然,这也是我辅助Linux老大干的), 各种包裹的信息都变了, 尤其是寄存器和程序计数器。

于是我就开始计算这个什么纳妾数列 ,但是这个数列似乎无穷无尽, 哪个无脑子的程序员写了个无限循环吧。

正在这时, 我便收到了一个电话, 说是Hello world的数据已经装载到内存了, 让我去处理。

我放下手中的活, 保存好现场, 就去处理那个Hello world, 果然数据已经都好了, 那就切换过去运行吧。

其实老大并不知道, 任何人,只要你运行了相当多的数量的指令以后, 你都能悟到这些程序的秘密。

我CPU阿甘虽然傻傻的, 但也架不住执行这数以万万亿的指令给我的熏陶啊。

这个秘密就是:程序都是由顺序,分支,循环来组成的。 其实分支和循环在我看来都是跳转而已。

所以我的工作就是打电话问内存要一条指令, 执行这个指令, 如果是个跳转指令的话,我就问内存要跳转的目标地址的那一条指令, 继续执行, 生活就是这么简单。

计算机系统

如涉及版权,请著作权人与本网站联系,删除或支付费用事宜。

0000