机制和策略
2015-05-10 19:00
211 查看
ldd3中有句通用的名言:提供机制而非策略
区别对待机制(mechanism)和策略(policy)是Unix设计中的一大亮点。大部分的编程问题都可以被切割成两个部分:机制(mechanism)是指需要提供哪些功能,策略(policy)是指如何如何实现这些功能。如果程序可以由独立的部分分别完成机制与策略的实现,那么开发软件就更加容易,也更加容易适应不同的需求。
操作系统的本质是什么?管理者?亦或服务者?但归根到底,操作系统是一个执行者。
执行用户程序--所谓为用户服务;
执行中断--所谓为外设服务;
执行所谓系统调用--所谓解放程序员(姑且说它为广大的程序员服务,因为程序员不再与繁杂的硬件打交道了);
执行内核线程--为操作系统自身服务。
而这些所有,它们执行的核心,无非是在恰当的时机,让哪个对象(程序、线程、中断服务程序、中断的下半部分、系统调用)占有CPU。换句话说,Unix/Linux抽象出对这些对象的执行机制:
程序的执行机制 -- 进程 ;
内核函数的执行机制 -- 线程;
中断服务程序的执行机制 -- 中断信号触发;
中断下半部的执行机制 -- softirq, tasklet, 工作队列;
系统调用的执行机制 -- 软中断(int $0x80触发)
从机制和策略的角度看问题,也许,你对曾经困惑的问题有豁然开朗之感。
如果说机制是一种框架,那么,策略就是填充框架的一个个具体的实体。机制提供的是一种开放而宽松的环境,而策略就是在这个环境下赖以生存的生命个体。比如,我们编写的一个程序,fork()以后,就成为一个个进程的生命个体。而操作系统所提供给我们创建、执行以及结束进程的各种原语--fork(),exec(),exit()等是统管各种进程的机制。我们所创建进程的死活并不会影响机制本身。
如此看来,也许我们对原理之困惑有所醒悟。我们任何人在任何时候都可一调用fork()创建n多个进程。这样一个简单的fork()壳,想追根溯源者,剥开这个壳,可以看到其本质。fork()如果出现任何一个小的bug,直接影响到我们任何程序员和任何进程。
如此看来,也许我们对开发者所承担的角色有所领悟。系统分析员和设计人员任重道远。说道此,设计模式等系列的书,对于有志于从编码走向设计的开发者或许有所启发。
注:有的是从别的地方转载的,感觉写的还不错
区别对待机制(mechanism)和策略(policy)是Unix设计中的一大亮点。大部分的编程问题都可以被切割成两个部分:机制(mechanism)是指需要提供哪些功能,策略(policy)是指如何如何实现这些功能。如果程序可以由独立的部分分别完成机制与策略的实现,那么开发软件就更加容易,也更加容易适应不同的需求。
操作系统的本质是什么?管理者?亦或服务者?但归根到底,操作系统是一个执行者。
执行用户程序--所谓为用户服务;
执行中断--所谓为外设服务;
执行所谓系统调用--所谓解放程序员(姑且说它为广大的程序员服务,因为程序员不再与繁杂的硬件打交道了);
执行内核线程--为操作系统自身服务。
而这些所有,它们执行的核心,无非是在恰当的时机,让哪个对象(程序、线程、中断服务程序、中断的下半部分、系统调用)占有CPU。换句话说,Unix/Linux抽象出对这些对象的执行机制:
程序的执行机制 -- 进程 ;
内核函数的执行机制 -- 线程;
中断服务程序的执行机制 -- 中断信号触发;
中断下半部的执行机制 -- softirq, tasklet, 工作队列;
系统调用的执行机制 -- 软中断(int $0x80触发)
从机制和策略的角度看问题,也许,你对曾经困惑的问题有豁然开朗之感。
如果说机制是一种框架,那么,策略就是填充框架的一个个具体的实体。机制提供的是一种开放而宽松的环境,而策略就是在这个环境下赖以生存的生命个体。比如,我们编写的一个程序,fork()以后,就成为一个个进程的生命个体。而操作系统所提供给我们创建、执行以及结束进程的各种原语--fork(),exec(),exit()等是统管各种进程的机制。我们所创建进程的死活并不会影响机制本身。
如此看来,也许我们对原理之困惑有所醒悟。我们任何人在任何时候都可一调用fork()创建n多个进程。这样一个简单的fork()壳,想追根溯源者,剥开这个壳,可以看到其本质。fork()如果出现任何一个小的bug,直接影响到我们任何程序员和任何进程。
如此看来,也许我们对开发者所承担的角色有所领悟。系统分析员和设计人员任重道远。说道此,设计模式等系列的书,对于有志于从编码走向设计的开发者或许有所启发。
注:有的是从别的地方转载的,感觉写的还不错
相关文章推荐
- 系统优化之Dojo优化策略--页面加载机制优化
- 彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法
- 机制与策略
- 【转】策略与机制分离
- 策略与机制
- 安全机制之手机移动端验证码炸弹处理策略
- linux的机制和策略通信—seqfile
- Http协议:彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法
- 机制与策略概述
- 驱动思想之机制和策略
- 彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法
- 转:机制与策略
- 机制与策略
- 分布式Quorum机制,NWR策略读写模型
- Cassandra维护最终一致性 和存储机制 分区策略
- 机制和策略
- 安全机制之手机移动端验证码炸弹处理策略
- 彻底弄懂 HTTP 缓存机制 —— 基于缓存策略三要素分解法
- 策略:服务器上的白名单安全机制
- 机制和策略的理解