将目标文件分为程序段与数据段两大类的原因

目标文件中有很多段,根据其性质进行分类可分为两类,一类是程序段,代码段即属于程序段;另一类是数据段,.bss段和.data 段均属于数据段。这样划分的原因如下:


1.可以防止程序的指令被有意或无意的改写:

程序段中的指令通常都是不可写的,而数据段中的信息通常是可读写的。因此,将数据与指令分别映射到两个虚拟区域,并将这两个区域的权限分别设置为可读和读写,能够有效的防止程序指令被破坏


2.可以增加CPU的缓存命中率

指令区和数据区的分离有利于提高程序的局性,现代CPU的缓存一般被设计为数据缓存与指令缓存分离。以配合提高缓存命中率


3. 当系统中运行着某个程序的多个副本时,其指令都一样,所以内存只须保存一份该程序的指令部分(共享指令)

对于运行同一个程序的多个进程,将共享该程序的指令区域与只读数据,没有进程的数据区域将是进程的私有信息。在大部分程序中,指令区域占程序中很大的比例,因此,这项策略将节省大量的空间。该原因也是数据与指令分离的主要原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值