Virtual memory是physical memory和application之间的indirection。 软件架构中处处可见这样的indirection。 Indirection不光是屏蔽细节和提升系统灵活性那么简单。 知道系统里哪个部分需要动手术加一层indirection,考量的是经验和智慧;如何加这个indirection,考量的是能力。 总结一下,indirection的好处: 屏蔽细节 提高灵活性 增强安全性 提升效率 附上wikipedia关于indirection的链接,不能访问的就不要费心点了。
一、中介原则(Indirection Principle)中介原则是通用职责分配原则中的一种,指的是将职责转移给中介对象来实现。
文章目录 前言 一、中介原则(Indirection Principle) 二、使用步骤 示例 ---- 前言 GRASP:General Responsibility Assignment Software ---- 提示:以下是本篇文章正文内容,下面案例可供参考 一、中介原则(Indirection Principle) (1)问题 1、如何分配职责以避免两个(或多个)事物之间的直接耦合?
expected_vm_state=None, expected_task_state=None, admin_state_reset=False): remotable的定义如下,根据indirection_api 的定义情况:如果有定义indirection_api,则把save()方法作为一个参数fn来运行indirection_api.object_action,如果没有定义则运行save()。 if self.indirection_api: updates, result = self.indirection_api.object_action( else: return fn(self, *args, **kwargs) indirection_api在nova-compute服务中有赋值,而其他服务中没有: (cmd/ 而indirection_api.object_action的具体实现就是消息队列的call方法。
格式:CTF{} 解题链接: http://ctf5.shiyanbar.com/10/indirection/ 原题链接:http://www.shiyanbar.com/ctf/1846 【解题报告 我们在这里做个绕过的简单小结: //第一,我们可以构造 /indirection/a/../ /indirection/./ 等等这一类的 //所以,第一个要求就是不得出现 ./ //第二,我们可以构造 \ 来代替被过滤的 / //所以,第二个要求就是不得出现 ../ //第三,有的系统大小写通用,例如 indirectioN/ //你也可以用? 所以我们下一个要求就是必须包含/index.php,并且以此结尾 //第六,我们知道在index.php后面加.也是可以的 //所以我们禁止p后面出现.这个符号 //第七,现在是最关键的时刻 //你的$URL必须与/indirection
. /// /// - Note: A trivial type can be copied with just a bit-for-bit copy without /// any indirection `T`. /// /// - Note: A trivial type can be copied with just a bit-for-bit copy without /// any indirection memory. /// /// - Note: A trivial type can be copied with just a bit-for-bit copy without /// any indirection `T`. /// /// - Note: A trivial type can be copied with just a bit-for-bit copy without /// any indirection memory. /// /// - Note: A trivial type can be copied with just a bit-for-bit copy without /// any indirection
2、用了一个更小的indirection buffer来代替原来的im2row buffer。 不同于im2row buffer的大小随着输入channel数线性增加,indirection buffer没有这个特性,因此indirection buffer的内存占用特性非常有利于输入channel filter做矩阵乘法,所以就只能通过在buffer的行间进行循环,根据该行的pointer找到对应的输入数据,再将输入数据与kernel相乘,并与之前循环的结果拼接起来,从而间接的实现矩阵乘法,因此叫做indirection
Concurrent evacuation(这个阶段用到了Brooks Pointers(object version change with additional atomically changed indirection 它在Concurrent evacuation阶段用到了Brooks Pointers(object version change with additional atomically changed indirection
The operand must be addressable, that is, either a variable, pointer indirection, or slice indexing operation
indirection层: 一些DBMS有一个indirection layer,该层允许我们将一个page ID映射到某个集合中一个文件的某个位置(记录的是一个相对位置,方便文件整体移动后,能够快速定位该
Principle) SoC (Separation of Concerns) IoC (Inversion of Concerns) CoC (Configuration over Convention) Indirection Indirection/Layering原则也是为了解耦,就是把系统分成不同的层次,严格规定层次间的调用关系。 layering最著名的例子是ISO/OSI七层模型;indirection最著名的例子是hypervisor。 软件领域最著名的一句话是:"All problems in computer science can be solved by another level of indirection."
间阶层与重构(Indirection and Refactoring) 某位大师说过: 计算机科学中的所有的问题, 都可以通过增加一个间阶层来解决. 2、Dennis DeBruler曾说过的一句话:计算机科学是一门相信所有问题都可以通过多一个间接层(indirection)来解决的科学。 技术问题的解决思路是类似的:添加间接层。
这样就无需将输入张量的实际输入复制到 im2col 缓存,而是使用输入像素行的指针设置 indirection buffer,输入像素与每个输出像素的计算有关。 研究者还修改了矩阵相乘微内核,以便从 indirection buffer 加载虚构矩阵(imaginary matrix)A 的行指针,indirection buffer 通常比 im2col buffer 此外,如果两次推断运行的输入张量存储位置不变,则 indirection buffer 还可使用输入张量行的指针进行初始化,然后在多次推断运行中重新使用。 研究者观察到具备 indirection buffer 的微内核不仅消除了 im2col 变换的开销,其性能也比矩阵相乘微内核略好(可能由于输入行在计算不同输出像素时被重用)。
关于Indirection "计算机科学中的所有问题都可以通过另一种间接的方式来解决"。-- David Wheeler 这里有一个很少被开发者愿意解释却又经常被复用的compsci的引用。 开始考虑Indirection的最简单的方法是想像层次。例如,假设您有一个小项目,需要将组件A放入组件B: 两个都是标准的组件,因此你不能破坏他们并更改他们的工作方式。 相关引用: Indirection是强大的,但是复杂性是有代价的。 人们很少引用 Wheeler 关于Indirection的后续评论: 但通常会产生另一个问题 -- David Wheeler 从那时起,这一真理就一直让程序员在商业上如日中天。
AexprConst $$ = $1 8 a_expr c_expr $$ = $1 9 ) 41 10 a_expr ‘-’ a_expr $$ = doNegate($2, @1) 11 opt_indirection EMPTY 12 ; 59 13 c_expr ‘(’ a_expr ‘)’ opt_indirection $$ = $2 14 a_expr c_expr $$ = $1 15 a_expr
GRASP中提到的模式和原则包括有控制器(controller)、创建者(creator)、中介(indirection)、信息专家(information expert)、低耦合性(low coupling 中介 中介(indirection)模式支持低耦合性,在二个对象之间将其职责指定到中介的对象,因此可以复用。其中一个例子是在模型—视图控制模式中,在资料(模型)和其实现(视图)之间导入控制器组件。
Expert) 低耦合(Low Coupling) 控制器(Controller) 高内聚(High Cohesion) 多态性(Polymorphism) 纯虚构(Pure Fabrication) 间接性(Indirection
GRASP中提到的模式和原则包括有控制器(controller)、创建者(creator)、中介(indirection)、信息专家(information expert)、低耦合性(low coupling 中介 中介(indirection)模式支持低耦合性,在二个对象之间将其职责指定到中介的对象,因此可以复用。其中一个例子是在模型—视图控制模式中,在资料(模型)和其实现(视图)之间导入控制器组件。
Indirection Units(间接寻址单元,IU) 是用于管理闪存存储器中数据映射的一种结构,特别是在固态硬盘(SSD)中。 总结 本文档探讨了16KB Indirection Units(IUs)对现代工作负载的影响,特别是在闪存存储设备中。