你能想到CPU的设计是开闭原则的设计吗

说CPU的设计很符合软件设计的开闭原则,估计一般的同学肯定不会这样意识到。其实我也一样不太可能把它们能够想在一起,并将它们关联起来。

可确实就这样发生了。实际上CPU的设计本身就是朝着开闭去的。

CPU,中央处理器,它要运行指令,这些指令是稳定的。比如加减乘除的计算类指令,读写数据的IO指令。但是,指令序列是变化的,是按照循环,还是按照分支条件呢。这里的指令是“闭”的,指令序列是“开”的。

问题1:指令序列的变化是通过什么实现的呢?

软件。我们编写的软件。

还有一点,CPU通过端口,定义好输入输出规范就可以跟各种设备进行交互,从而实现了电脑的无限扩展能力。这样CPU和外部输入输出设备之间就是一种“开闭”关系。

通过这种开闭的形式,CPU和输入输出设备之间也完全体现了正交性。

一个程序怎么变慢的呢

程序,是作为程序员的我们写出来的,一堆文本格式的代码,被传递到计算机的磁盘上面。这个时候它什么也干不了,就是一个静态的文件。

怎么才能“动”起来呢,是要从磁盘加载到内存中,然后由CPU执行这些代码中的指令序列,这样,程序便运行起来了。

这个过程有什么,加载到内存中,需要IO,需要内存,程序运行起来需要一个线程。

好了,IO、内存、线程,是程序能够运行起来的必备因素。

一个程序怎么变慢的呢。

机器的资源总是有限的,访问一个文件,请求一个数据连接,文件句柄数有限,数据库连接数有限。如果某一时刻的并发数超过了这些限制,就会有线程进入排队等待。等待的线程越来越多,从请求用户的角度来看,响应时间变长,系统变慢。

触动的句子

近期读了一些闲书,过程中觉得有触动的语句,摘抄如下:

冷兵器使得男人更像男人。

所谓真性情,一面是对个性和内在精神价值的看重,另一面是对外在功力的看轻。

人生最糟糕的情形是,活得不开心,又死得不情愿,两边都不落好。

人的精力是有限的,有所为就必有所不为,而人与人之间的巨大区别就在于所为所不为的不同取向。

天才的诞生是一个超越于家族的自然事件和文化事件,在自然事件这一面,毋宁说天才是人类许多世代之精华的遗传,是广阔范围内无血缘关系的灵魂转世,是钟天地之灵秀的产物,是大自然偶一为之的杰作。

他也许不说出来,但心灵的地震仍然在底表之下悄悄发生。

让孩子从小对人生最重大也最令人困惑的问题保持勇于面对的和开放的心态,这肯定有百利而无一弊,有助于在他们的灵魂中生长起一种根本的诚实。

儿时的收集只是一种游戏,与成人的收藏是两回事,后者混合着恋物癖、占有欲和虚荣心。我这么说并无贬低之意,收藏恰恰是这些欲望的最天真无邪的满足方式。

上帝对亚当说:“你是用尘土造的,你还要归于尘土。”

成功只比未成功多坚持了一次。

人的认知是螺旋式发展的,及时自我复盘,总结经验,将自己的错误或者不足之处及时暴露出来,以免将来再犯。

数据是钢铁,分析是铸造。

行遍天下之后,客观而言,杭州的山水若在世界各胜景中排名,或许进不了前二十位。但是,在一个中国人的心中,若这些名字被一一朗诵出来,却会生长出别样的气质,它是“历史的黏性”,是被想象出来的风景。人对世界的记忆,从来是悲欢莫测的命运图像,自然山水仅仅是背景而已。

我认识到,学问不是第一位的,生活本身高于学问,做一个有丰富内心世界的人比做一个学问家更有意义。

----END----

这里记录,我每周碰到的,或想到的,引起触动,或感动的,事物的思考及笔记。不见得都对,但开始思考记录总是好的。

一周技术学习笔记(第67期)-CPU的设计跟开闭原则有关系吗相关推荐

  1. 一周技术学习笔记(第68期)-像练习硬笔书法那样写代码

    像练习硬笔书法那样写代码 你如果认真练习过硬笔书法,而且小有成就,就会有这样的经历,写字不认真的时候,或者说不按套路来的时候,写出来的字还是挺难看的. 但是,当你认真的时候,就能写出很漂亮的字来. 这 ...

  2. 一周技术学习笔记(第87期)-代码上坚持是坚韧不拔,也可以是顽固不化

    学习需要定期投入 知识投资和金融投资的一个主要区别是:所有知识投资都有些价值.即使你从来不会再工作中使用某项技术,它也会影响你思考和解决问题的方式. 知识投资和金融投资的一个主要相同点是:需要定期投资 ...

  3. 一周技术学习笔记(第81期)-《愿生命从容》

    "享受人生而不沉湎,看透人生而不消极",这次暂当做活出生命的技术吧. 隔离的生活时常是乏味和恐惧的交替,乏味是在只有巴掌大的地方上踱步,恐惧是望着窗外晴朗的天空却只能被困在这里.这 ...

  4. 一周技术学习笔记(第82期)-你要的理论、法则、定律、效应都在这里了

    72法则: 72小时法则:当你决定做一件事的时候,你必须在72小时内完成它,否则,你很可能就永远不会再做了. 金融里面还有个"72法则",如果你投资收益率在12%,你想知道多少年你 ...

  5. 一周技术学习笔记(第65期)-到底是返回错误码还是返回异常信息

    1.分布式程序调用到底是返回错误码还是返回错误信息 分布式系统环境里面,RPC往往被我们称为:连接各个服务之间的纽带.当然,也有MQ.如果纽带这个词显得高雅,通俗点就是信息交互,或者通信. 好,还是说 ...

  6. java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)

    原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...

  7. 小五思科技术学习笔记之SSH

    下面介绍一下相关概念: SSH的概念: SSH的英文全称为Secure Shell,SSH使用TCP的22号端口,其目的是要在非安全的网络上提供安全的远程登陆和其他安全的网络服务, 为什么要使用SSH ...

  8. ssm 转发请求_千呼万唤!阿里内部终于把这份SSM框架技术学习笔记分享出来了...

    SSM SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容).常作为数据源较简单的web项 ...

  9. 知识图谱技术学习笔记

    知识图谱技术学习笔记 从一开始的Google搜索,到现在的聊天机器人.大数据风控.证券投资.智能医疗.自适应教育.推荐系统,无一不跟知识图谱相关.它在技术领域的热度也在逐年上升. 本文以通俗易懂的方式 ...

最新文章

  1. 用JavaScript实现函数重载
  2. python入门指南 许半仙txt百度云-《婚前教育》TXT全本 百度云网盘下载 by鱼一三...
  3. display 的 32 种写法
  4. 一个自己整理的HASH类
  5. 微软Skype突破!视讯人数上限来到50人
  6. Elasticsearch优化
  7. python pandas.DataFrame选取、修改数据
  8. QPW 用户签到日志表(tf_user_signin_log)
  9. scrt如何切换成英文版_英文版SecureCRT显示乱码解决
  10. Springboot2集成minidao持久层
  11. 关于最新版FCKeditor上传漏洞错误解决办法
  12. CCNP精粹系列之十三-----OSPF路由汇总
  13. 转:神经网络编程入门
  14. SpringBoot中如何优雅的使用拦截器
  15. python京东自动下单_京东自动下单脚本
  16. 逻辑数据库设计 - 可变属性(继承)
  17. 渲染测试软件 d15,Apophysis 7X V15D详细图文使用教程
  18. 计算机主板测试配件,如何检测主板是否有问题_如何诊断主板是否损坏,没有图形步骤...
  19. 疫情肆虐,延迟返工,今年的“金三银四”还能照常进行吗?
  20. Console.read()、Console.readline()、Console.readkey()和Console.Write、Console.Writeline()的意思

热门文章

  1. echarts 自定义y轴高度
  2. IOS并发编程指南:Dispatch Queue任务执行与Dispatch Source
  3. HTML5网站大观:精美的 HTML5 商业网站设计案例
  4. python识别中文人名_中文人名识别
  5. linux的最新内核版本是多少,求问Linux最新内核版本以及发布日期。
  6. Sentence-BERT详解
  7. 天梯赛习题:直捣黄龙(Dijsk算法 + dfs + 路径状态存储)
  8. 手把手教你从分析到实现,王者荣耀壁纸爬虫!表弟馋哭了!
  9. 80x86编程手册_编程从8到80
  10. ansys workbench汉化教程_FC魔法阵咕噜咕噜汉化版下载-街机魔法阵咕噜咕噜完美汉化版下载...