计算机第一章学什么,《深入理解计算机系统》第一章学习笔记

第一章计算机系统漫游

计算机系统是由硬件和系统软件组成的,他们共同工作来运行程序。

举例hello程序的生命周期

1.1信息就是位+上下文

从源程序(源文件)开始,即程序员通过编辑器创建保存的文本文件,文件名是hello.c,源程序实际上就是一个有值0和1组成的位序列

Hello.c程序是以字节序列的方式存储在文件中。每个字节都有一个整数值,对应于某些字符。像这样只由ASCⅡ字符构成的文件称为文本文件,所有其它文件都称为二进制文件。

Hello.c的表示方法说明了一个基本思想;系统中所有的信息都是由一串比特表示的。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。

1.2程序被其他程序翻译成不同的格式

hello.c程序的生命周期是从一个高级c语言程序开始的,因为这种形式能被人读懂

为了在系统上运行hello.c程序,每条c语句都必须被其他程序转化为一系列的低级机器语言指令。然后这些指令按照一种称为可执行目标程序格式打包好,并以二进制磁盘文件的形式存放起来。

Gcc编译器驱动程序读取源程序文件hello.c,并把它翻译成一个可执行目标文件,共有四个阶段。

预处理阶段:预处理器(cpp)根据以字符#靠头的命令,修改原始的C程序。结果就得到了另一个C程序,通常是以.i作为文件扩展名。

编译阶段:编译器(ccl)将文本文件hello.i翻译成文本文件hello.s,它包含了一个汇编语言程序。每条语句都以一种文本格式描述了一条低级机器语言指令。

汇编阶段:汇编器(as)将hello.s翻译成机器语言指令,把这些这些指令打包成可重定位目标程序的格式,并将结果保存在目标文件hello.o中。

链接阶段:每个c编译器都提供的标准c库,链接器负责处理函数于hello.o的合并,得到hello文件,它是一个可执行目标文件,可以被加载在内存中,由系统执行

1.3了解编译系统如何工作是大有益处的

1.优化程序性能2.理解链接时出现的错误3.避免安全漏洞。

1.4处理器度并解释存储在内存中的指令

将已经被编译系统翻译成可执行目标文件的hello在unix上输入到称为shell的应用程序中:

Linux> ,/hello

Hello,world

Linux>

Shell是一个命令行解释器,他输出一个提示符,等待输入一个命令行,然后执行这个命令。

1.4.1系统的硬件组成

1.总线:贯穿整个系统的是一组电子管道。称作总线。

2.I/O(输入/输出)设备:系统与外部世界的联系通道。

3.主存:主存是一个临时存储设备。

4.处理器:***处理单元简称处理器,是解释或执行存储在主存中指令的引擎。

1.4.2运行hello程序

c4325766ab191a6a121f4eba17da34da.png

1.5高速缓存至关重要

根据机械原理较大的存储设备比较小的存储设备运行的慢,而快速设备的造价远高于同类的低速设备,所以处理器从存储器文件中读取数据比主存快的多,这种处理器于主存之间的差距还在持续增大。

针对这种处理器于主存之间的差异,系统设计者采用了更小更快地存储设备称为***(高速缓存)。

1.6存储设备形成的层次结构

0d3959557bf2132fcdeb42c1b3fd5f7d.png

寄存器、一级缓存、二级缓存、三级缓存、主内存、本地磁盘、远程磁盘构成一个层次结构。上面一层是当前层的高速缓存。

1.7操作系统管理硬件

操作系统有两个基本功能:

1.     防止硬件被失控的应用程序滥用

2.     向应用程序提供了简单一致的机制来控制复杂而又通常大不相同的低级硬件设备。

1.7.1进程

进程是操作系统对一个正在运行程序的一种抽象。操作系统保持跟组进程运行所需的所有状态信息,当操作系统决定要把控制权从当前进程抓移到某个新进程时,就会进行上下文切换(保存当前进程的上下文,恢复新进程的上下文,然后将控制权传递到新进程)

75704c1e8bef9804c565074c4cd7e9c6.png

1.7.2线程

一个进程实际上可以由多个称为线程的执行单元组成,每个线程都运行在进程上下文中,并共享同样的代码和全局数据。

1.7.3虚拟存储

一个抽象概念,它为每个进程提供了一个假象,即每个进程都在独立地使用主存。Linux中,地址空间最上面的区域是为操作系统中的代码和数据保留的,这对素有进程来说是一样的,地址空间的地步存放用户进程定义的数据和代码

2d1ed592540218945dec4ba1d7f32f63.png

·         程序代码和数据。对所有的进程来数,代码是从同一固定地址开始的,紧接着是C全局变量,代码和数据区是直接按照可执行文件加载的,如上图的hello片段。

·         堆:代码和数据区后是运行时堆,代码和数据区是进程在一开始运行时就被规定了大小,但是堆可以在调用malloc和free等函数式动态的扩展和收缩

·         共享库:大约在地址空间的中间部分是用来存放C标准库等这样共享库的代码和数据的区域。

·         栈:位于用户虚拟地址空间的顶部,编译器用它来实现函数调用,和堆一样,在程序执行期间可以动态地扩展和收缩。(调用函数会使得栈增加,从函数返回时,栈收缩)

·         内核虚拟存储器:内核总是驻留在内存中,是操作系统的一部分,不允许程序续写,或直接调用内核代码定义的函数。

1.7.4文件

字节序列。I/O设备,磁盘,键盘,显示器都可视为文件。

1.8系统之间利用网络通信

网络也是一个I/O设备,系统通过网络进行通信

1.9重要主题

系统是硬件与软件的集合体,它们必须共同协作以达到运行应用程序的最终目的。

1.9.1并发和并行

·         并发:指一个同时具有多个活动的系统。

·         并行:用并发使一个系统跑的更快。

·         线程级并发

·         进程这个抽象的出现,使我们能够设计出能同时执行多个程序的系统。

·         线程可以在一个进程中执行多个控制流。

·         指令级并行

·         现代处理器可以处理多条指令

·         单指令、多数据并行

·         一条指令可以产生多个可以并行执行的操作。

1.9.2计算机系统中抽象的重要性

抽象的使用是计算机科学中最为重要的概念之一。

fc092e7b87d2e707e067f2c222582334.png

内容概要:本文详细探讨了基于樽海鞘算法(SSA)优化的极限学习机(ELM)在回归预测任务的应用,并与传统的BP神经网络、广义回归神经网络(GRNN)以及未优化的ELM进行了性能对比。首先介绍了ELM的基本原理,即通过随机生成输入层与隐藏层之间的连接权重及阈值,仅需计算输出权重即可快速完成训练。接着阐述了SSA的工作机制,利用樽海鞘群体觅食行为优化ELM的输入权重和隐藏层阈值,从而提高模型性能。随后分别给出了BP、GRNN、ELM和SSA-ELM的具体实现代码,并通过波士顿房价数据集和其他工业数据集验证了各模型的表现。结果显示,SSA-ELM在预测精度方面显著优于其他三种方法,尽管其训练时间较长,但在实际应用仍具有明显优势。 适合人群:对机器学习尤其是回归预测感兴趣的科研人员和技术开发者,特别是那些希望深入了解ELM及其优化方法的人。 使用场景及目标:适用于需要高效、高精度回归预测的应用场景,如金融建模、工业数据分析等。主要目标是提供一种更为有效的回归预测解决方案,尤其是在处理大规模数据集时能够保持较高的预测精度。 其他说明:文提供了详细的代码示例和性能对比图表,帮助读者更好地理解和复现实验结果。同时提醒使用者注意SSA参数的选择对模型性能的影响,建议进行参数敏感性分析以获得最佳效果。
《芋道开发指南文档-2023-10-27更新》是针对软件开发者和IT专业人士的一份详尽的资源集合,旨在提供最新的开发实践、范例代码和最佳策略。这份2023年10月27日更新的文档集,包含了丰富的模板和素材,帮助开发者在日常工作提高效率,保证项目的顺利进行。 让我们深入探讨这份文档的可能内容。"芋道"可能是一个开源项目或一个专业的技术社区,其开发指南涵盖了多个方面,例如: 1. **编程语言指南**:可能包括Java、Python、JavaScript、C++等主流语言的编码规范、最佳实践以及常见问题的解决方案。 2. **框架与库的应用**:可能会讲解React、Vue、Angular等前端框架,以及Django、Spring Boot等后端框架的使用技巧和常见应用场景。 3. **数据库管理**:涵盖了SQL语言的基本操作,数据库设计原则,以及如何高效使用MySQL、PostgreSQL、MongoDB等数据库系统。 4. **版本控制**:详细介绍了Git的工作流程,分支管理策略,以及与其他开发工具(如Visual Studio Code、IntelliJ IDEA)的集成。 5. **持续集成与持续部署(CI/CD)**:包括Jenkins、Travis CI、GitHub Actions等工具的配置和使用,以实现自动化测试和部署。 6. **云服务与容器化**:可能涉及AWS、Azure、Google Cloud Platform等云计算平台的使用,以及Docker和Kubernetes的容器化部署实践。 7. **API设计与测试**:讲解RESTful API的设计原则,Swagger的使用,以及Postman等工具进行API测试的方法。 8. **安全性与隐私保护**:涵盖OAuth、JWT认证机制,HTTPS安全通信,以及防止SQL注入、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值