社区
C语言
帖子详情
【如何设置某个内存位只读,只限制某个地址,而不是一页】
piaochen_2002
2010-11-07 03:11:14
标准c中有mprotect可以设置,但是是分页的,每次都设置为一个页面的大小。
希望高手可以解答,需要附代码,c以及汇编皆可。
...全文
505
3
打赏
收藏
【如何设置某个内存位只读,只限制某个地址,而不是一页】
标准c中有mprotect可以设置,但是是分页的,每次都设置为一个页面的大小。 希望高手可以解答,需要附代码,c以及汇编皆可。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chongerfeia
2010-11-09
打赏
举报
回复
对头,看看386以上的保护模式下的分段分页机制,就明白了
[Quote=引用 1 楼 truelance 的回复:]
只能按页设置。这是CPU决定的。
[/Quote]
熊熊大叔
2010-11-07
打赏
举报
回复
之所以只能按页设置,是因为内存的属性如果能被程序设置,也是要保存在内存中。假设一页内存的属性要占一个字节,每页4k的话,4G内存中就要有1M拿出来保存内存页的属性。
如果每个内存位都能设置的,那么4G内存就只好都拿来保存属性用,就没有内存用于程序运行和保存数据了。
熊熊大叔
2010-11-07
打赏
举报
回复
只能按页设置。这是CPU决定的。
虚拟
内存
与虚拟
地址
空间
虚拟
地址
空间是一种使程序可以直接访问这些
内存
而不必真正了解这些
内存
在物理上所处的
位
置的技术。每个进程都有自己的独立虚拟
地址
空间,同时操作系统负责将每个进程的虚拟
地址
映射到主存中的物理
内存
地址
。虚拟
地址
空间使每个进程都有最大4GB(32
位
系统)或16EB(64
位
系统)可用的虚拟
内存
空间,尽管实际物理
内存
少于该数量,这样允许处理器利用虚拟
内存
空间存储更多数据。总的来说,虚拟
地址
空间是一种重要的
内存
管理技术,它允许计算机以更高效、可靠和安全的方式管理
内存
。虚拟
地址
空间允许各进程共享某些资源并提升系统的效率。
彻底搞懂虚拟
内存
,虚拟
地址
,虚拟
地址
空间
程序经过编译后,变成了可执行的文件,可执行文件主要包括代码和数据两部分,代码是
只读
的,数据则是可读可写的。 可执行文件由操作系统加载到
内存
中,交由CPU去执行,现在问题来了,CPU怎么去访问代码和数据?,访问的方式经历过四个阶段: 1.直接访问 2.段基址+段偏移
地址
3.段选择子+段偏移
地址
4.虚拟
地址
现代操作系统采用的是虚拟
地址
,这也是本篇文章阐述的重点,但虚拟
地址
是由1~3阶段发展而来的,所以也有必要阐述1~3三种访问方式。 直接访问 直接访问很好理解,程序经过编译后,生成了可执行
虚拟
内存
虚拟
内存
1、计算机的存储机制 2、虚拟
内存
的出现 在没有虚拟
内存
的时候,那个时候的计算机,程序指令所访问的
内存
地址
就是物理
内存
地址
. 也就是不得不把程序的全部装进
内存
当中,然后运行。物理
内存
其实就是插在计算机主板
内存
槽上的实际物理
内存
,CPU可以直接进行寻址.。物理
内存
的容量是固定的,但是寻址空间却取决于cpu
地址
线条数,如32
位
机,则寻址空间为2^32 = 4G,所以最大支只持4G的寻址空间,即使插了8G的
内存
条也只能使用4G
内存
。 直接使用物理
地址
进行寻址会出现以下几
linux
内存
管理
内存
管理 一、相关概念 ● 虚拟
内存
:
内存
管理的一种技术,它使得应用程序认为它拥有连续的可用
内存
(一个连续完整的
地址
空间); ● 物理
内存
:相对于虚拟
内存
而言,指通过物理
内存
条而获得的
内存
空间; ● 页表:一个进程的虚拟
地址
到物理
地址
的一个映射; ● 页框:物理
内存
管理的基本单
位
,每个
内存
分区由大量的页框组成;内核以 struct page 来描述页框;页框由很多属性,如页框的状态、用途、是否被分配等; ●
内存
节点:主要依据 CPU 访问代价的不同而划分,分为不同的分区;内核以 struct zone 来
《VxWorks7编程指南》笔记(一)——
内存
管理
目录 VxWorks7
内存
管理模型 物理
内存
映射库 VxWorks
内存
分配 RTP堆与
内存
区域管理 VxWorks内核堆与
内存
区域管理
内存
分配优化
内存
池 POSIX
内存
管理
内存
映射机制 内核虚拟
内存
管理 其他内核
内存
保护特性
内存
错误检测 1.VxWorks7
内存
管理模型 VxWorks7为执行在内核态与用户态的所有代码都提供了
内存
管理机制。对于32
位
与64
位
CPU,VxWorks7所提供的
内存
管理机制是相同的。 内核上下文不是一一映射的,也就是说虚拟
内存
地址
与物理
地址
不
C语言
70,021
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章