首页 > 编程语言 >《程序是怎样跑起来的》第五章读后感

《程序是怎样跑起来的》第五章读后感

时间:2024-02-26 22:24:26浏览次数:26  
标签:读后感 调用 程序 DLL 第五章 内存 磁盘 虚拟内存

内存利用电流实现:高速高价,磁盘利用磁效实现:低速低价
磁盘中存储的程序:必须加载到内存中才能运行,因为负责解释和运行程序内容的CPU需要通过内部程序计数器来指定内存地址,然后才能读出程序,其次,磁盘的速度慢即使可以直接读取,效率也比较低下。
内存与磁盘相互促进
磁盘缓存: 加快磁盘访问速度(磁盘读出的数据保存到内存,下次读取同一数据直接内存读取)。
虚拟内存: 把磁盘作为部分内存使用,在内存不足时也可以运行程序。
虚拟内存的实现方式:
虚拟内存虽说是将磁盘当内存一部分使用,但实际上在正在运行的程序部分,在这个时间点上是必须存在内存中的,也就是说为了实现虚拟内存,就必须把实际内存的内容和磁盘上的虚拟内存的内容进行部分置换(swap),并同时运行程序。
虚拟内存的方法有分页式,分段式两种,windows 使用的是分页式。
分页技术: 在不考虑程序构造的情况下,把运行的程序按照一定大小的页进行分割,并以页为单位在内存和磁盘间进行置换,把磁盘内容读取到内存成为Page in ,内存内容写入到磁盘称为Page out,在 win 中页大小为 4kb,也就是只将大程序分割为 4kb 大小的页进行切分,并以页为单位放入磁盘或内存。
分段技术: 把要运行的程序分割成以处理集合及数据集合等为单位的段落,然后在以分割后的段落为单位在内存和磁盘间进行置换。
虚拟内存的大小: 通常为实际内存的相同大小或者两倍程度。
1、动态 DLL 链接文件:
通过 DLL 文件实现函数共有:DLL(动态链接文件),可以在程序运行时动态加载的库文件(函数和数据的集合),多个应用可以共有同一个 DLL 文件,通过共有,可以实现节约内存的效果。
静态链接在各个应用程序中,内置库文件函数(成为了应用执行程序的一部分),同时运行各应用时,内存会存在具有同一库文件函数的多个程序,这会降低内存的利用效率,DLL 动态链接作为独立的文件而不是应用的执行文件,由于在内存中可以被多个应用共有,因此该 DLL 函数在内存中只存在一个,从而实现了节约内存,同时,DLL 文件还可以以在不变更应用执行文件情况下,通过只升级 DLL 文件就可实现程序的更新。
2、 使用-stdcall 标准调用减小程序文件大小
函数在调用完毕后,执行栈清理使用_stdcall调用方式,将该栈清理实现在被调用函数一方进行清理,栈清理处理在被调用方进行比在调用方进行程序整体要小一些,同时避免了在调用方程序存在多处调用时反复进行重复清理操作(在被调用方所有调用结束后,只需要执行一次清理)。

标签:读后感,调用,程序,DLL,第五章,内存,磁盘,虚拟内存
From: https://www.cnblogs.com/ybbk/p/18035721

相关文章

  • 《程序是怎样跑起来的》第六章读后感
    压缩分类:压缩后的数据可以复原的称为可逆压缩,无法复原的称为不可逆压缩。文件是将数据存储在磁盘等存储媒介上的一种形式,其以字节为存储单位,文件就是数据集合的字节。任何情况下:文件的字节序列都是连续存储的。RLE压缩算法:将文件内容用数据X重复次数,从而实现数据压缩,常用......
  • 《程序是怎样跑起来的》第八章——从源文件到可执行文件
    编译(Compilation):首先,程序员使用文本编辑器编写源代码,然后通过编译器将源代码转换为目标代码。编译器会进行词法分析、语法分析、优化和代码生成等步骤,最终生成可执行文件或库文件。链接(Linking):如果程序包含多个源文件或库文件,链接器会将这些文件中的目标代码连接在一起,形成最......
  • 程序是怎样跑起来的第十二章读后感
    读完《程序是怎样跑起来的》第十二章后,我对程序的性能优化有了更深刻的理解。这一章主要介绍了程序性能优化的方法和技巧,让我认识到了性能优化对于提升程序效率和用户体验的重要性。在这一章中,我学到了性能优化的多个方面,包括算法和数据结构的优化、代码优化、多线程和并发处理等......
  • 第十章 通过汇编语言了解程序的实际构成 笔记
    编语言是介于机器语言和高级编程语言之间的一种语言。它使用助记符来表示CPU指令,这些助记符相较于机器语言的二进制编码更为人类可读。虽然汇编语言比高级语言更难以编写和理解,但它能够提供对程序行为的直接控制,以及与计算机硬件架构密切相关的通过学习汇编语言,我们可以了解程序......
  • 编汇语言了解程序的实际构成
    一、汇编语言和本地代码1、汇编语言和本地代码的关系:汇编语言和本地代码是一一对应的关系。计算机CPU能直接解释运行只有本地代码(机器语言)程序。用C语言等编写的源代码,需要通过各自的编译器编译后,转换成本地代码。通过调查本地代码的内容,可以了解程序最终是以何种形式来运行的......
  • 《程序是怎样跑起来的》第九章
    操作系统类似于工厂的指挥官,与它指挥下的无数应用程序工人之间的互动,构成了现代计算技术的核心。操作系统作为硬件和软件之间的桥梁,其重要性不言而喻。它管理着计算机的资源,为应用程序提供一个运行的平台。这就好比一个高效的物流系统,确保每个应用程序都能得到所需的资源,同时保持......
  • 程序是怎样跑起来的第十一章读后感
    在阅读《程序是怎样跑起来的》第十一章后,我对程序的运行机制有了更深入的理解。这一章主要介绍了内存管理和垃圾回收的相关内容,让我认识到了高效的内存管理对于程序性能和稳定性的重要性。通过本章的学习,我了解到了内存管理的基本概念,包括内存分配、内存访问和内存释放。内存分配......
  • 对于自组织系统方法的认识(《系统科学方法概论》第五章)
    阅读《系统科学方法概论》第五章——自组织系统方法,我了解了关于自组织系统方法的相关知识,包括其发展历史、耗散结构理论、系统学、突变论以及自组织系统方法。对于它的发展历史,自组织系统理论的提出是由19实际中期以来热血与生物学矛盾发展的结果,是生命系统与物理系统之间的碰撞......
  • 热补丁(Hot Patching)是指在程序运行过程中,无需停止或重启程序,直接对其进行修补或更新的
    热补丁(HotPatching)的起源可以追溯到早期操作系统和服务器软件的开发。由于这些软件需要在长时间运行过程中保持稳定和可靠,因此需要不停地修复和更新软件中的漏洞和错误。传统的修补方法通常需要重新编译程序、重新部署或重启服务器等,这会导致服务中断和停机时间增加,影响用户体验......
  • 《程序是怎样跑起来的》第四章读后感
    内存:一种IC电子元件,常见DRAM(需要经常刷新保存数据)、SRAM(不需要刷新电路既可以保存数据),可以读取与写入,ROM(只能用来读取的内存)等形式。内存物理组成:电源、地址信号、数据信号、控制信号,用来输入输出的IC引脚(通过为引脚指定地址,进行数据读取)。地址信号引脚数决定了内存......