口823标记保护法 多对基址与边界寄存器技术的问题:只能保 护数据区不被其他用户程序访问,不能控 制自身程序对同一个数据区内单元有选择 的读或写。 例如,一个程序中若没有数组越界溢出检查,当向该数组 区写入时就有可能越界到其他数据单元,甚至越界到程序 代码区(这就是缓冲区溢出的一种情况),而代码区是严 格禁止写的
26 多对基址与边界寄存器技术的问题:只能保 护数据区不被其他用户程序访问,不能控 制自身程序对同一个数据区内单元有选择 的读或写。 例如,一个程序中若没有数组越界溢出检查,当向该数组 区写入时就有可能越界到其他数据单元,甚至越界到程序 代码区(这就是缓冲区溢出的一种情况),而代码区是严 格禁止写的。 8.2.3 标记保护法
解决方法: 按其内容要求进行保护,例如有的单元只读, 读/写、或仅执行(代码单元)等不同要求, 可以在每个内存字单元中专用几个比特来 标记该字单元的属性。 除了标记读、写、执行等属性外,还可以 标记该单元的数据类型,如数据、字符、 地址、指针或未定义等
27 解决方法: 按其内容要求进行保护,例如有的单元只读, 读/写、或仅执行(代码单元)等不同要求, 可以在每个内存字单元中专用几个比特来 标记该字单元的属性。 除了标记读、写、执行等属性外,还可以 标记该单元的数据类型,如数据、字符、 地址、指针或未定义等
加标记的内存 代码 EEEE 代码 代码 代码 OR 数据 RW 数据 其中E表示执行,R表示读,W表示写,OR表 示只读
28 加标记的内存 E 代码 E 代码 E 代码 E 代码 RW 数据 OR 数据 ……………….. 其中E表示执行,R表示读,W表示写,OR表 示只读
口8.24分段与分页技术 对于稍微复杂一些的用户程序,通常按 功能划分成若干个模块(过程)。每个模 块有自己的数据区,各模块之间也可能有 共享数据区。各用户程序之间也可能有共 享模块或共享数据区。 这些模块或数据区有着不同的访问属性 和安全要求,使用上述各种保护技术很难 满足这些要求
29 8.2.4 分段与分页技术 对于稍微复杂一些的用户程序,通常按 功能划分成若干个模块(过程)。每个模 块有自己的数据区,各模块之间也可能有 共享数据区。各用户程序之间也可能有共 享模块或共享数据区。 这些模块或数据区有着不同的访问属性 和安全要求,使用上述各种保护技术很难 满足这些要求
分段技术的作用 分技不就是图解决较大程序的装入、 调度、运行和安全保护等问题的一种技 分段以模块(过程或子程序)为单位 采用分段技术,用户不知道他的程序实 际使用的内存物理地址。这种隐藏对保 护用户代码与数据的安全是极有好处的
30 ➢ 分段技术的作用 分段技术就是试图解决较大程序的装入、 调度、运行和安全保护等问题的一种技 术。 分段以模块(过程或子程序)为单位。 采用分段技术,用户不知道他的程序实 际使用的内存物理地址。这种隐藏对保 护用户代码与数据的安全是极有好处的