
C++
10年计算机行业研发经验总结分享
Coder个人博客
51CTO/阿里云社区专家博主
展开
-
Linux下可执行程序的分段
说明:Linux系统下编译产生的二进制程序是以ELF格式存储的,ELF格式是分段的;Linux系统采用段式内存管理架构,二进制程序加载进内存后内存分布也是分段的。 windows系统也是类似的。个人理解:分段是由编译器和操作系统实现,编译时编译器将不同类型的元素存储到相应的段,以区分处理,利于管理和加快操作效率。 分段行为不是固定的,不同编译器,不同平台可能有细微差别,虚拟内存和硬盘都是连续的。 程序由数据和处理两部分组成,处理部分(代码)编译后为二进制指令(代码段)比较固定,而数据部分(变原创 2021-04-13 18:44:58 · 384 阅读 · 0 评论 -
C/C++零散知识点汇总之缓冲区
缓冲区是为了让低速的输入输出设备和高速的用户程序能够协调工作,并降低输入输出设备的读写次数。用户程序的执行速度可以看做CPU的允许速度,如果没有各种硬件的阻碍,理论上它们是同步的。例如,我们都知道硬盘的速度要远低于CPU,它们之间有好几个数量级的差距,当向硬盘写入数据是,程序需要等到,不能做任何事情,就像卡顿了一样,用户体验非常差。计算机上绝大多数应用程序都需要和硬件打交道,例如读写硬盘、向显示器输出、从键盘输入等,如果每个程序都等待硬件,那么整台计算机也将变得卡顿。但是如果有了缓冲区,就可以将原创 2020-08-08 20:44:04 · 695 阅读 · 0 评论