转:机制与策略

一些特殊语境的理解

摘自《Linux device drivers 3rd》设备驱动程序的作用

作为一名驱动程序的编写者,你需要在编程所需的时间以及驱动程序的灵活性之间选择一个可接受的折衷方案。虽然用“灵活”这个词来形容驱动程序显得有些奇怪,但我用这个词实际上是强调设备驱动程序的作用在于提供机制( mechanism ),而不是提供策略( policy ) o区分机制和策略是UNIX设计背后隐含的最好思想之一。大多数编程问题实际上都可以分成两部分:“需要提供什么功能”(机制)和“如何使用这些功能”(策略)。如果这两个间题由程序的不同部分来处理,或者甚至由不同的程序来处理,则这个软件包更容易开发,也更容易根据需要来调整。

 

摘自互联网

机制就是提供的功能,比如在驱动程序的编写中,你要提供怎样和硬件交流的方式,这就叫机制。 而策略则是指你怎样去使用已有的机制完成你自己的特定的功能,比如在驱动程序的编写中,你该怎样去利用硬件机制完成特定的功能。

不仅仅在驱动方面,在很多,如网络安全方面都有相应的概念。

 

摘自互联网

现代的OS很讲求机制与策略的分离,以使操作系统的结构和实现能够在一定范围内适应不同的应用需要。例如,SOlaris的调度器实现了进程调度的基本机制,同时它允许通过动态调度核心参数实现不同负载下的系统平衡,这就是一种机制与策略的分离,请再举出一个例子说明怎样根据调度将机制策略分开,请构造一种机制,允许父进程控制子进程的调度策略,谢谢高手指教,给出网址也可以

 

进程

进程的概念是操作系统的核心,是出了名的(notoriously)难定义。一种粗浅的理解是,进程是程序的一次动态执行,是程序完成 一次任务所需的资源的载体。我们可以把进程比喻成在戏剧院表演独角戏的演员,对于演员,舞台小道具就是他的资源。当演员需道具时,他到道具管理处(相当操 作系统的资源分配程序)申请。由于资源是对所有演员共享的,管理处的工作就是当多个演员申请道具时代为解决资源竞争问题,满足两个冲突的目标:

  • 让每个演员得到他们想要的道具 (机制WHAT的问题)
  • 公平分配道具 (策略HOW的问题)

KEMIN:由于各种资源(包括包装过的高级资源)的性质不一,所以对它们的[管理]方式都不一样的,从管理手段的名称就可看出这一 点,处理器是[调度]的,主存是[分配]的。但从完成管理功能的高度看,它们都有实现管理的部分和如何管理的部分,实现管理就是机制问题,如何管理就是策 略问题。比如,处理器的调度机制(必须有timer和进程切换指令等体系功能的支持)和调度策略。

KEMIN的头脑风暴过程及初步结论

b.一直奇怪“策略”和“战略”是什么东东,原来它们还是方法和工具!今天发现经常与“策略”一起的“机制”一样是方法和工具。只是这两对方法在描述方法的不同侧面。策略与战略是整体与局部的关系,策略与机制是动态与静态的关系。机制有机械的意思,机械意味着固定和自动,所谓应变机制指的是应对变化有一套固定被测定为较好自动处理方法。策略是在机制的基础上再作具体问题具体方法调整。举个例子,计算机为了实现并发处理引入了中断机制;而为了解决速度不同的中断事件引入了中断优先级处理策略。 2009-5-11 12:06

b.机制有机械机理的意思。但相对机理强调内部结构和组件间序关系不同,我觉得人工机制强调的是系统面对外部事件时应变规则。这个有点像编程时的分支流程,也就是先判断一个条件事件,然后自动选择一条最有效的处理分支,产生一个最有价值的效果。我们在设计一个人工机制时,就是对这些分支的设计,包括评价各分支的效益。 2009-5-11 20:07

b.其实机制和策略算是设计理论方面的内容。对于应用或驱动开发人员来说还不算合适,因为设计任务一般是统筹工作,属于系统设计人员的职责。开发人员一般在一个大框架内演绎,可设计可编程可演绎的空间很有限的,不是说没有设计。比如,别说开发人员,系统设计师也不会设计一个新的并发机制现有的中断机制,他们对中断优先级策略的调整也是很有限的。而应用开发人员更多在做一些更具体更特殊的收尾工作。 2009-5-12 2:51

2009-7-9 18:57:30 b.同是内核,却会有单内核和微内核的不同的实现形式,我们假设二种形式的内核的功能都是相同的,那构造方法却不同,这意味什么呢?相同的功能说明机制一样,构造方法不同是策略不同?

2009-7-9 20:27:58 b.其实机制就是一种由能量驱动的刺激与反射活动的概括,也就是我常常谈的性质、属性、功能或作用。抽出一个与机制相对概念--策略是因为我们从改造的视角,想当一回上帝,主观地改造世界的原因。我们为一些外界环境约束(人为的或自然的)人工地制造性质、功能和作用。策略就是为了满足不同的约束的一种方法。

2009-7-9 22:27:58 b.前面说过,机制和策略都是一种方法,现在又说机制是一种人造性质,貌似前后矛盾,因为方法是时间性的,而性质则是空间性的。的确表述上存在不清晰,要谈到方法一定会涉及工作任务 ,因为方法指是工作的步骤。我们举一个例子来理解。比如我们说人是会跑的,会跑是上帝赋于人的活动机制,是人的一项性质;而我们说某人能从甲地跑到乙地花时一天,这是说某人利用会跑的机制完成一件工作,但是完成这件工作的过程中会遇种情况,比如上山下海,比如半路发现有公路可使用自行车更快的到达乙二等诸多的环境约束,那么策略就是用来解决过程所出现的各约束的。

 

加入系统做功的结论

由上面的头脑风暴,我们大概了解机制和策略的一些“性质”了。但不完全。第一,为什么要引入机制,为谁引入机制?机制都是由设计师为[系统]设计的性质和功能。系统本身就是一项产品。

第二,如果策略是基于机制的如何,那么具体表现是什么?我们知道会跑与跑完是不同的,前者是机制,后者机制做功,策略就存在于做功的过程中。要理解策略,得先弄清楚系统机制做功过程的本质。

我们常说功能功能,严格上说,功与能是有密切的关系,但不是同一个概念。“能”强调的是系统静态性质;而“功”则强调动态的活动性,有时间因素。“功”是系统在一定时间内的活动效果,是建立于系统的某一“能”上的活动,活动过程有能量释放。到这里,虽然区分了功与能的差别,但因为“功”的过程本质没有厘清,所以策略也很模糊。

请看看一则关于“系统做功”引用:

系统首先强调的是事物间的相互制约的结构,其次系统与边界的交互。因为系统不仅存以于静态的空间中,而且还存在于时间中,被时间向前推动,不断地[做功](无论是被动还是主动的)。[做功]是一种条件反射现象,过程有能量的单方向释放。有些观点认为,系统与系统边界有着物质、能量和信息的交换。我认为,第一,能量是始终存在于动态的时空中的,它是默认的,不必特指;第二,物质可泛化为信息的一种(通过定义[信息]为做功的[输入])。所以系统与系统边界协作[做功]可以简化为只通过交换[信息]完成。

从以上的论述可得到,如果撇开主观性,其实存在于时空中的系统都在时时刻刻做着功。添加主观性后,我们有意限制系统做功,为我们做有益的功。功就是功效,一种新的状态输出,所以,功在不同环境和场合有不同类型;不过做功都要有一定的输入(信息或物质)和都在一个特定的上下文环境下完成的。俗话说:“方法好就事半功陪“,这个方法、事和功都一般的;事就是做功的上下文,方法就是策略!

posted @ 2012-09-06 16:17  D调的晨星  阅读(332)  评论(0编辑  收藏  举报