AIX 6 和 POWER 6 中的内存保护存储键(storage keys)
2008-09-06 08:19:31 来源:WEB开发网另外请注意,存储键不是安全功能(存储键安全功能指应用到内存的一项普通安全机制,可保证进程拥有自己的地址空间,并能访问具有自己的保护机制的共享内存)。
存储键是用于协作程序的调试功能,可确定有问题的代码,以便消除问题,从而提高可靠性。还可以将其用于其他情况,例如运行用户编写的服务器存储过程的数据库,以保护数据库不受用户编程错误的影响。锁定,以保护数据
锁定,以保护数据
考虑一下包含数十亿内存页的大型系统,程序访问内存的速度非常快,因此要检查这些锁定,也需要非常快,即在毫微秒级单位进行。因此,我们不能使用数百万个键来交叉检查对内存的每次读写,因此只需要少量的锁定和键。每个内存页都有一个锁定,缺省为锁定状态(编号为 0),称为 UKEY_PUBLIC,即内存按照正常或解锁方式工作,可以进行读写操作(对于程序代码之类的只读部分只能进行只读操作)。
程序可以将内存锁定更改为 UKEY_PRIVATE1……UKEY_PRIVATE32。此操作通过函数调用完成ukey_protect( address, size, UKEY_PRIVATE1)
注意:
Address 必须为页面对齐
Size 必须为页面大小的倍数
AIX 有 4 种页面大小!
获得访问的键
现在要访问此受保护的内存,进程必须具有恰当的键。键具有不同的选项
无权访问
读访问
写访问
读写访问
可以设置只写访问,但这没有什么意义!
POWER6 CPU 提供了一个额外的寄存器,称为 ASR,其中保存当前的键和选项。
其设置如下:ukeyset_t none, reader, writer; /* define three keys */
ukeyset_init(none,0); /* initialise one */
writer = reader = none; /* you can copy a key - this initialises the other keys */
ukset_add_key(&reader,UKEY_PRIVATE1, UK_READ); /* set the read permission bits */
ukset_add_key(&writer,UKEY_PRIVATE1, UK_RW); /* set the read and write permission bits */
uketset_activate(writer, UKA_REPLACE_KEYS); /* Activate the key to the ASR register */
- ››PowerPoint 2010:图表技术与演示文稿的完美融合
- ››PowerPoint 2010:让幻灯片中的视频全屏播放
- ››PowerPoint 2010:小小指针的大用途
- ››PowerPoint 2010:图片版式效果让人耳目一新
- ››PowerPoint 2010:流程展现一目了然
- ››PowerPoint 2010:不可不知的放映快捷键
- ››PowerPoint 2010:对企业的幻灯片资源进行统一管理...
- ››PowerPoint 2010:让公司徽标出现在所有幻灯片上
- ››PowerPoint 2010:快速重用之前文档中的幻灯片
- ››PowerPoint 2010:为幻灯片减肥
- ››PowerPoint 2010:轻松选择幻灯片中的对象元素
- ››PowerPoint 2010:如何在演讲中自己看到备注信息
更多精彩
赞助商链接