编程技术中的文件处理、汇编宏及并行计算
1. Oracle RDBMS 的 .MSB - 文件处理
在 Oracle RDBMS 里,文件头部之后存在一个可能包含 16 位值的表。通过可视化方式能确定其大小(例如在 Hiew 中绘制红线)。在转储这些值时发现,每个 16 位数是每个块的最后错误代码。
Oracle RDBMS 快速查找错误消息的步骤如下:
1. 加载名为 last_errnos 的表,该表包含每个块的最后错误编号。
2. 假设所有错误代码在每个块以及整个文件中递增,找到包含所需错误代码的块。
3. 加载特定块。
4. 枚举 6 字节结构,直至找到特定错误编号。
5. 从当前 6 字节块获取第一个字符的位置。
6. 从下一个 6 字节块获取最后一个字符的位置。
7. 加载该范围内消息的所有字符。
下面是一个用于解包 .MSB 文件的 C 程序示例(文件名为 beginners.re)。在 Oracle RDBMS 11.1.0.6 示例中还用到了 beginners.re 和 beginners.re 这两个文件。
此方法对现代计算机而言或许较为陈旧,推测该文件格式是在 80 年代中期由为大型机编程且考虑内存/磁盘空间经济性的人开发的。不过,在不查看 Oracle RDBMS 代码的情况下理解这种专有文件格式,是一件有趣且容易的事。
2. 汇编语言中的 NPAD 宏
NPAD 是一个汇编语言宏,用于将标签对齐到特定边界。对于经常传递控制流的标签,如循环体起始处,这种对齐很有必要,这样 CPU 就能通过内存总线、缓存行等有效加载数据或代
超级会员免费看
订阅专栏 解锁全文
2485

被折叠的 条评论
为什么被折叠?



