读书笔记--《深入理解计算机系统》第一章 计算机系统漫游

本文深入探讨了计算机系统的基本组成、CPU操作流程、文件概念及其抽象原理,强调信息的本质在于位与上下文,通过揭示计算机软件的核心在于信息处理与抽象层次的构建,帮助读者理解如何从底层逻辑出发,掌握计算机系统知识,以及如何通过抽象实现复杂系统的简化管理。
第一章:计算机系统漫游

1.信息=位+上下文
①. 系统中所有的信息——包括磁盘文件、存储器中的程序、用户数据、网络数据都是由一串表示的。
②. 区分不同对象的唯一方法是:我们读到这些数据对象时的上下文

2.CPU基本操作(汇编语言的工作过程):
①、加载:把一个字节或字从内存复制到寄存器,以覆盖原来的数据。
②、存储:把一个字节或字从寄存器复制到内存的某个位置,以覆盖这个位置上原有的内容。
③、操作:把两个寄存器的内容复制到ALU,ALU对这两个值作算术操作,并将结果放到某个寄存器中,以覆盖该寄存器原有内容。
④、跳转:从指令本身抽出一个字,并将这个字复制到PC寄存器中,以覆盖PC中原有的值。

3.文件
文件就是字节序列,仅此而已。
文件这个简单而又精致的概念其内涵是相当丰富的,因为它向应用程序提供了一个统一的视角,来看待系统中可能含有的各式各样的I/O设备,如磁盘、键盘、显示器、网络等等。

4.抽象
计算机中的一个重大课题就是提供不同层次的抽象表示,来隐藏实际实现的复杂性。

操作系统(内核)是应用程序和硬件之间的媒介,它提供了三个基本的抽象:
①、文件对I/O设备的抽象。
②、虚拟存储器对内存和磁盘的抽象。
③、进程对处理器、内存和I/O设备的抽象。

读后感: 
  作者从一开始就明确地指出了计算机以及软件的本质:计算机是用于处理信息的工具,而信息就是上下文。所谓的“位”,通俗地讲就是1或0,对应到物理量就是电平的高低,这就是信息的最小单位。而“上下文”指的是“语境”,同样的一串位(比如“1001 0011”)在不同情况(语境)下,表示的意思也不一定相同。
      就好比在英语的世界里,26个英文字母就是“”,这些可以通过不同的组合来表示不同的信息,如"apple" 就是由位组合而成的“字”,许许多多的连起来就是一句话、一首歌、一篇文章、一部小说等等。所以,我们在电脑屏幕上看到的一切信息,包括一个图标、一个MP3文件、一部电影等等,其本质都是一连串1/0的组合。
      认识到事物的本质,是掌握相关知识的关键。有了上面对计算机软件的本质认识,我们可以进一步理解所谓的文件、操作系统、编程语言、业务模块等等,这些堪称庞大的“模块”无非是一些牛人前辈们对信息进行了一系列加工、封装、架构,从而打造出了现如今纷繁复杂的计算机系统。
      作为普通码农的我们,都是活在极其聪明的前辈们构建的“概念”里,比如K&R构建(发明)了C语言,Linus用C语言构建了Linux系统,Andy Rubin在Linux系统上又构建了Android操作系统。这些能用别人做好的东西发明另一样东西的人,可谓是牛人中的战斗机;还有一部分人能把别人发明的东西、别人构建的概念很容易就学会,并且用得很好,这部分人就是牛人;而剩下就像你我这样的人(自认为是牛人的都不会看到这里,嘿嘿),疲于奔命,学习日新月异的技术,为的只是不被时代淘汰,为的只是混口饭吃,还有的是为了有朝一日能挤进牛人圈子里。
      怎么样才能从菜鸟变成技术牛人呢?这也是我经常问自己的问题。如今有一点点感悟,斗胆说出来与大家分享一下,有什么不对的地方也请大家不吝赐教。既然我们是跟在别人屁股后面,学习别人发明出来的东西、别人构建出来的概念,那么我们完全可以战略上藐视它,战术上重视它:
      ①、我要学习的东西在本质上就是一连串的1/0,没什么神秘,没什么了不起的。(藐视它,你才不会被它吓跑)
      ②、我要学习的东西它是什么(能干什么)?它怎么是做到的?为什么要这么做?(重视它,你才能掌握好它)
      在上面说的第②点中,能回答第一个问题是普通用户,能回答第二个问题是开发人员,能回答第三个问题是才是真正的技术牛人。
      我认为计算机世界里还有一点很重要,那就是“抽象”,用艺术来形容这个词都不为过。"计算机中的一个重大课题就是提供不同层次的抽象表示,来隐藏实际实现的复杂性。" 这句话本身就很抽象,但能够真正理解它,将使你如虎添翼。我所理解的抽象,即是对一类事物共性的提取过程或结果。抽象的艺术随处可见,比如Linux里把所有的I/O都抽象成了文件,带来的好处就是应用开发者可以通过统一的读写接口访问硬件,简单地控制着各种硬件的工作。Linux里的各种驱动模型也是抽象的结果,比如platform总线提供了一种通用的方法让驱动程序和设备相互匹配;usb模块又基于platform总线,抽象出了usb控制器的通用行为;input子系统抽象出了所有输入设备的共性;framebuffer抽象出了显示器的通用操作和属性等等。于是乎,驱动开发人员的开发步骤几乎可以简化成三个步骤:分配某个结构体、填充该结构体、将该结构体注册入内核。应用开发人员的开发步骤也可简化成:打开、读写、关闭。 回过头来想想,发明这套机制的是何等高明之人啊,我辈除了顶礼膜拜之外,只能认真研习,仔细品味才对得起神人们贡献出的智慧结晶。
      好了,今天就到这里了。
内容概要:本文介绍了基于贝叶斯优化的CNN-LSTM混合神经网络在时间序列预测中的应用,并提供了完整的Matlab代码实现。该模型结合了卷积神经网络(CNN)在特征提取方面的优势与长短期记忆网络(LSTM)在处理时序依赖问题上的强大能力,形成一种高效的混合预测架构。通过贝叶斯优化算法自动调参,提升了模型的预测精度与泛化能力,适用于风电、光伏、负荷、交通流等多种复杂非线性系统的预测任务。文中还展示了模型训练流程、参数优化机制及实际预测效果分析,突出其在科研与工程应用中的实用性。; 适合人群:具备一定机器学习基基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)础和Matlab编程经验的高校研究生、科研人员及从事预测建模的工程技术人员,尤其适合关注深度学习与智能优化算法结合应用的研究者。; 使用场景及目标:①解决各类时间序列预测问题,如能源出力预测、电力负荷预测、环境数据预测等;②学习如何将CNN-LSTM模型与贝叶斯优化相结合,提升模型性能;③掌握Matlab环境下深度学习模型搭建与超参数自动优化的技术路线。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注贝叶斯优化模块与混合神经网络结构的设计逻辑,通过调整数据集和参数加深对模型工作机制的理解,同时可将其框架迁移至其他预测场景中验证效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值