• 我是一台笔记本


    *

    我是一台笔记本,2017年2月份刚从厂子里出来呢,诞生的过程记忆尤新,那会儿人们在流水线中把嵌了CPU的主板,内存条,硬盘往我肚子里塞,然后给我预装上win10的操作系统,就可以上架销售了。
    可是我不知道CPU,内存,硬盘这些有啥用呢。一天深夜,万籁俱寂,我叫醒了这些部件,来开个茶话会,也互相认识下,这样才能在以后能更协调的工作,对吧。它们都可活跃了,一个个踊跃发言。

    首先是CPU。他颇为自豪地开口了,“人们都说现在的笔记本的计算能力非常强,可达多少【?】次每秒,说的真没错,而发挥最关键的作用就是我了,我的工作很多,每天都忙个不停,我要执行加载在内存里准备就绪的程序,有些时候某些程序需要等待外部数据的输入,这个时候如果我干等着,就太浪费时间了,人类就更不乐意了,为了更加高效,充分利用好每一秒钟,往往需要等待的时候,我就保护好这个程序的现场,然后切换到其他准备就绪的程序运行中,不仅是等待外部设备的时候,我会切换,事实上我把时间分成了一个个的时间片,如果有很多程序在等待执行,我就每人分配一个时间片给他们,当某个程序时间片用完了,我就让它暂时堵塞,然后执行下一个程序”


    “你这样切换不麻烦吗,如果一个程序没有执行完,你就执行下一个,那人类不就发现了吗” 我插嘴问。

    CPU摇摇头,“人类根本察觉不出来,虽然说麻烦了点,但是效果非常好。我处理的级别是纳秒级,人类的速度是秒级别,人类不会感觉到的,他们边听音乐,边写文档,还以为是同时在执行两个程序呢,我达到这种效果,人类就很开心了,他们一点都不介意我是怎么实现的。”

    我心想,这样确实不错,人类能同时做多件事。“对了,你说程序是加载在内存中,那内存妹妹是不是。。。”,我还没说完,娇小的内存妹妹就把话抢过去了,“对啦对啦,我的工作就是把要运行的数据和程序加载过来,提供给CPU使用,因为我的速度仅次于CPU及其里面的寄存器,可惜我的空间比较小,每次不能加太多,有时候一个大程序我还得运好几次呢,而且要是断电了,那些数据啊,程序就都没有了”,说着说着,内存妹妹有点沮丧了。

    “妹子,这有啥啊,我莽汉一个,但一直是你的后盾,你断电没有了,随时都可以来我这里取”,硬盘大哥粗神粗气的说着,看起来是一个豪爽汉子。说话间,他那里呼哧呼哧地喘着气。
    见我看着他,他憨憨地笑了,“我啊,容量可大了,这几年硬件发展的也快,动不动就T,P级别,比以前几百G大多了,里面永久的存放着人类保存的东西,一些程序啊,数据也保存在我这里,刚刚内存妹子也说了,每次程序要执行了,她就从我这里加载过去,然后CPU从她那里读”

    “那CPU要通过内存取数据,而不是从你这里取,是不是因为速度的原因啊?”我见他这么大个,行动远没有内存妹子灵活,就直接问了。

    他一点都不介意,“你说的对,我要是直接给CPU老大哥提供程序和数据,那真真要等到花儿都谢了,你瞅我这身材,一个柱子上串着这么多唱片似的盘,那些程序数据都在里头呢,可是读它们,我这根臂膀得慢慢移动到那上面,再取,因为我这还是机械硬盘呢,要这样慢吞吞地转动,又容易发热,不过听说我家族现在已经有不少固态硬盘了,他们不用像我这样老式的转动,不过我还不太清楚状况呢”

    “哦,我大概明白了,CPU大哥就像指挥官,调度你们配合他的工作,需要数据和程序时,内存妹妹赶紧去硬盘大哥那里取过来”

    “那程序是人类给咱们的,CPU大哥怎么知道里面的意思呢,难道CPU大哥懂人类的语言??”,我话一出,他们就都笑我了。

    CPU不紧不慢地说,“我哪里知道人类的语言,我就知道一些电流信号怎么流转,利用这些电信号来工作,人类为了告诉我怎么执行,就开发出贴近底层的指令【??】,然后他们再通过一个编译器,把这些指令解释成机器代码,我就明白他们的意思了”

    “哦,原来指令就是人类和计算机沟通的桥梁啊”,我陷入沉思中,夜已深,大伙都困了,陆续退出了讲话,休息去了。

     


    解说:
    CPU:执行程序,进行计算,分配时间片
    内存:加载数据和程序到内存中,提供给CPU使用
    硬盘:永久存储数据和程序
    指令:其实我也还没懂【??】,是指指令集???

    *

    有问题在公众号【清汤袭人】找我,时常冒出各种傻问题,然一通百通,其乐无穷,一起探讨


  • 相关阅读:
    zoj 3632 Watermelon Full of Water
    将字符串切割成数组 componentsSeparatedByString
    paip.C#.NET多线程访问 toolStripStatusLabel
    EBS后台取消死锁检查代码和取消死锁会话步骤经验
    Java泛型深入题目
    Win7下BootCamp蓝屏问题解决方案二
    一步步开发 Spring MVC 应用
    批处理获取U盘、可移动硬盘的盘符
    一种松耦合的分层插件系统的设计和实现
    分享一个开源的批量修改VC工程属性的小工具
  • 原文地址:https://www.cnblogs.com/qingmaple/p/6437070.html
Copyright © 2020-2023  润新知