
内存段及内存管理
10:无访问限制。 11:仅允许写操作。
发布日期:2021-05-18 09:29:40
浏览次数:18
分类:精选文章
本文共 1034 字,大约阅读时间需要 3 分钟。
内存管理与异常处理机制
内存分配在现代操作系统中采用段式管理模式,每个进程根据特性从不同区域分配内存。每个内存段维护sbrk和max_stack两个边界值,用于检查页面合法性。如果发现异常,进程可能会直接core dump,尤其是内核进程,可能导致系统整体崩溃。
DMA映射与数据一致性
DMA操作在内存管理中扮演重要角色,主要分为两种类型:跨驱动和跨进程的异步访问。这种机制允许进程间直接通过DMA完成数据交换,无需在CPU层面频繁地在地址空间交换数据。然而,这一机制要求严格保证数据在使用前被彻底释放,否则当前进程将被暂停,等待相关处理完成。
页面异常处理
程序在内存管理过程中可能会遇到以下页面异常:
Page Faults Not Allowed
当中断处理禁止操作(通常发生在内核代码中)时,默认会触发kernel exception。此时,vmm可能会触发core进程或导致操作系统崩溃。Page Does Not Exist
可能原因包括页面号超出sbrk和max_stack范围,或Segment ID非法。Segment Faults
请求的段地址不在当前段表中,vmm会尝试重新加载相关段。如果未能找到段号,进程会与非法访问地址处理同样的方式处理。Memory Exceptions
如果发生内核内存异常,默认会调用预定义处理例程;若发生用户空间异常,进程会接收到SIGSEGV信号并被core。致命内存异常
内核处理部分对异常处理的响应更加严格,包括:
- 中断处理期间发生页面缺失;
- 访问内核函数数据发生保护异常;
- 内核空间内存满或数据IO错误;
- 指令或数据存储意外发生时无定义异常处理(尤其是当访问的页面不在内存时)。
硬件段特性
硬件段寄存器中保留了4位用于段属性标记:
- SID bit 0 (位8):用于标记页面正在或即将进行I/O,避免页面被高频访问造成性能问题。
- SID bits 1-3 (位9-11):支持文件系统访问超过2Gb的文件,无需占用额外的8位段ID。
网页保护机制
通过设置PP位,可以对指定页面实施保护,硬件层面实现访问控制。访问页面时,系统会检查以下关键信息:
- 当前执行状态(用户模式或内核模式,存储在MSR中);
- 对应的保护位(如Kp或Ks)在段寄存器中的设置;
- 页表条目中的PP位。
页面PP位可能的设置包括:
这些机制共同构成了现代内存管理和安全防护的重要基础。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月22日 20时03分04秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
canvas设置文字阴影
2023-01-26
Centos 5.3 ADSL拨号组建中小型企业网络
2023-01-26
Centos 5.8 安装后不能使用ifconfig
2023-01-26
Centos 6 & 7 LVM 逻辑盘卷管理
2023-01-26
CentOS 6 时间,时区,设置修改及时间同步
2023-01-26
Centos 6.3 64bit安装KVM总结
2023-01-26
CentOS 6.4 yum安装chrome
2023-01-26
CentOS 6.4下编译安装MySQL 5.6.14
2023-01-26
Centos 6.4搭建网络源
2023-01-26
CentOS 6.5 Zabbix-server安装
2023-01-26
CentOS 6.5 伪分布式 安装 hadoop 2.6.0
2023-01-26
CentOS 6.5 配置IP地址的三种方法
2023-01-26
CentOS 6.9 yum 和源码安装htop,适用于centOS 7
2023-01-26
centos 64位 hadoop编译
2023-01-26
CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin
2023-01-26
CentOS 7更换yum源
2023-01-26
CentOS 7 安装 postgreSQL 9.4
2023-01-26
centos 7安装docker
2023-01-26
CentOS 7 巨大变动之 systemd 取代 SysV的Init
2023-01-26