标题：CLR
基本信息
释义一CLR(公共语言运行时,Common Language Runtime)和Java虚拟机一样也是一个运行时环境，是一个可由多种编程语言使用的运行环境。CLR的核心功能包括：内存管理、程序集加载、安全性、异常处理和线程同步，可由面向CLR的所有语言使用。并保证应用和底层操作系统之间必要的分离。CLR是.NET Framwork的主要执行引擎。[1]
为了提高平台的可靠性，以及为了达到面向事务的电子商务应用所要求的稳定性级别，CLR还要负责其他一些任务，比如监视程序的运行。按照.NET的说法，在CLR监视之下运行的程序属于“托管的”（managed）代码，而不在CLR之下、直接在裸机上运行的应用或者组件属于“非托管的”（unmanaged）的代码。 
CLR将监视形形色色的常见编程错误，许多年来这些错误一直是软件故障的主要根源，其中包括：访问数组元素越界，访问未分配的内存空间，由于数据体积过大而导致的内存溢出，等等。 
然而，这种对受管理代码的运行监视是有代价的。虽然当前还不可能精确地得到监视程序运行所需要的开销，但从当前Beta测试版的性能表现来看，正如Microsoft所承认的那样，我们可以预料由它导致的性能降低程度至少达到10%。当然，如果监视程序运行能够将稳定性和可用性提高到一个新的档次，那么，我们是否仍会怀疑这10%的性能降低是一件坏事？
在处理器性能改善方面，摩尔定律已经一再被证明是正确的。既然如此，我们要得到一台性能增加了10%的服务器要等待多长时间呢。释义二CLR（公用语言运行时，Common Language Runtime）
NET提供了一个运行时环境，叫做公用语言运行时（Common Language Runtime），是一种多语言执行环境，支持众多的数据类型和语言特性。他管理着代码的执行，并使开发过程变得更加简单。这是一种可操控的执行环境，其功能通过编译器与其他工具共同展现。
依靠一种以运行时为目标的编译器开发的代码叫做可操控代码。
元数据：为了使运行时环境可以向可操控代码提供服务，语言编译器需要产生一种元数据，它将提供在使用语言中的类型、成员、引用的信息。运行时环境使用元数据定位并载入类，在内存中展开对象实例，解决方法调用，产生本地代码，强制执行安全性，并建立运行时环境的边界。
可操控执行的含义：对象在执行的过程中完全被运行时环境所控制。运行时环境提供以下服务:自动内存管理、调试支持、增强的安全性及与非可操控性代码的互操作性。条件：1、选择以运行时为目标的语言编译器，如VB、C#；2、在组件的输出类型中使用CLR要求的语言特性。
集成能力
跨语言集成的能力：CLR包含了一个丰富的语言特性集，保证了它与各种程序设计语言的兼容性。这一特性集即公用语言规范，稍后将对其进行详细说明。
内存管理
内存管理的自动化：在执行过程中管理应用程序的资源是一项单调而困难的工作。它会将你的注意力从你本应解决的问题中引开。而垃圾收集机制完全解决了程序员在编程过程中头痛的问题，跟踪内存的使用，并知道何时将它们释放。
在面向对象的环境中，每种类型都标识了对你的应用程序有用的某种资源。为了使用这些资源，你需要为类型分配内存。在应用中，访问一种资源要通过以下步骤：
（1）为类型分配内存。
（2）初始化内存，设置资源的初始状态并使其可用。
（3）通过访问该类型的实例成员来访问资源。
（4）卸下将被清除的资源状态。
（5）释放内存。
这一看似简单的过程在实际的编程中是产生错误的主要来源之一。更可怕的是：内存中的错误往往导致不可预见的结果。如果你有过编程的经验，想想看，有多少次你的程序因为内存访问错误而崩溃？特别是计算机存在多根内存条时特别容易内存报错死机。建议升级电脑时换掉原来的内存，不要采用加内存的方式。
CLR要求所有的资源从可操控的堆（注：在此指一种内存结构）中分配。当一个进程被初始化后，CLR保留了一个未被分配的地址空间。这一区域叫做可操控堆。在堆中保持了指向下一个将被分配给对象的堆地址的指针(NEXT)。
初始状态下，该指针是保留地址空间的基地址。一个应用使用新的操作产生对象。此操作首先检查新对象需要字节的大小是否会超出保留空间。如果对象大小合适，指向下一个地址的指针将指向堆中的这个对象，该对象的构造器被调用，新的操作返回对象的地址。
当一个应用请求建立一个对象时，地址空间可能不够大。堆将发现这一点（通过将新对象的大小与NEXT指针相加，并与堆的大小进行比较），这时垃圾收集器就将被调用。在这里，CLR引入了“代”的概念。代，指堆中对象产生的先后。这样，垃圾收集器在将发生溢出时回收属于特定的“代”的对象，而不是回收堆中的所有对象。
（6）即时编译
在各种语言的编译器对源代码进行编译之后，在CLR环境中产生的是中间代码（出于兼容性与跨语言集成的考虑），其内容虽然有效，但在转化为本地代码之前它本身是不可执行的。这就是JIT编译器需要完成的工作。
这里需要说明一个问题：为什么要即时编译，而不是一次性的将中间代码文件进行编译？答案很简单：原因在于效率。在大型的应用中，你很少会用到程序的全部功能，这种边执行边编译的措施比一次性的完全编译效率更高。
CLR带有三个不同的JIT编译器，在Windows平台中，CLR带有三个不同的JIT编译器：
（1）缺省的编译器---主编译器，由它进行数据流分析并输出经过优化的本地代码，所有的中间代码指令均可被它处理。
（2）PREJIT，它建立在主JIT编译器之上。其运行方式更象一个传统的编译器：每当一个.NET组件被安装时它就运行。
（3）ECONOJIT，在并不充分优化的前提下，它能够快速完成IL代码到本地码的转换，编译速度与运行速度都非常快。
为了配合编译器的工作，在.NET SDK的安装路径下的/bin目录中有一个负责管理JIT的应用程序：jitman.exe。具体的使用参见联机帮助。
版本发布
在当前以组件为基础的系统中，开发人员和用户对于软件版本和发布中存在的问题已经十分熟悉了。当我们安装一个新的应用之后，我们很可能发现原本正常的某个应用程序奇怪的停止了工作。绝大多数开发人员将时间花在了确保所有注册表入口的一致性，以便激活COM类上。这就是所谓的“DLL地狱”。
.NET平台通过使用集合来解决这一问题。在这里，“集合”是一个专有名词，指类型与资源的发布单元，在很大程度上它等同于今天的DLL。正象.NET用元数据描述类型一样，它也用元数据描述包含类型的集合。
通常说来，集合由四个部分组成：集合的元数据（集合的内部清单）、元数据描述的类型、实现类型的中间语言代码和一组资源。在一个集合中，以上四个部分并不是都必须存在，但是，集合中必须包含类型或资源，这样集合才有意义。
在.NET中一个基本的设计方针是使用孤立的组件。一个孤立的集合的含义是指一个集合只能被一个应用所访问。在一台机器上，它不被多个应用共享，也不会受其它应用程序对系统的更改的影响。“孤立”赋予了开发人员在自己的程序中对代码的完全控制权。
任何共享代码都需要被明确地标识。同时，.NET框架也支持共享集合的概念。一个共享集合指在一台机器上被多个应用共享的集合。共享集合需要严格地命名规定。
有了.NET，应用程序间的共享代码是明确定义的。共享集合需要一些额外的规则来避免我们今天遇到的共享冲突问题。共享代码必须有一个全局唯一的名称，系统必须提供名称保护，并在每当引用共享集合时，CLR将对版本信息进行检查。
汇编指令
51单片机 汇编 指令CLR：CLRA// 累加器A 被赋零值，此时为逻辑运算指令。CLRC//程序状态寄存器PSW中的CY位状态清零，此时为位操作指令。
生化技术
CLR生物处理技术是我司联合中山大学基于生物接触氧化法、UNITANK、CASS处理方法的基础上并结合我司CLR生物复合菌技术而研发成功的专有技术。CLR生物复合菌是综合了国内外先进技术，采用高科技手段，将自然水体中有益的微生物，通过特殊的设备分离、提纯、培殖驯化、浓缩后配制成高活性、高浓度、多组合的固剂或水剂贮存。CLR生物处理技术是利用环境微生物处理技术组合成的一种高效污水生化处理技术。它由微生物复合菌群及载体等组成，并配与严格的供氧量，其主要是通过人工强化技术，将我公司培殖的CLR复合菌群一次性引入到污水处理系统内，系统内设有特殊的CLR-TL生物载体（也称生物床），便于微生物快速结膜繁衍生存。在一定曝气供氧条件下生物载体上逐渐形成菌群生物膜，利用其新陈代谢作用吸附、消化、分解污水中的有机污染物，使之转化为稳定的无害化物质，达到净化水质的目的。主要特点①、池内单位容积的生物固体量都高于活性污泥法曝气池及生物滤池，因此，其具有较高的容积负荷，最高可达到2.0 kgCOD/(m3·d)； 
②、CLR生化池内培养的是我司专有的CLR生物复合菌，处理效果显著，也不存在污泥膨胀问题，运行管理简便；
③、CLR生化池由于兼有活性污泥法和生物膜法的特点，因此，单位体积内有较高的微 生物量，使得该工艺具有一定的抗冲击能力；
④、污泥产量较少。工艺技术CLR工艺技术讨论区
氧化沟(Qxidation Ditch)称为连续式反应池（Continuous Loop Reactor),简称CLR，最早是由帕斯维尔（A.Psaveer)博士设计，于1954年在荷兰沃绍本建造并投入使用。之后，相继成为欧洲、大洋洲、南非和北美洲的一种重要污水处理技术。到目前为止，西方国家已经建造了近1500座氧化沟。七十年代末，氧化沟技术进入我国，并引起环保界的极大兴趣。根据氧化沟的处理机理，研究开发了多种型式的氧化沟工艺，如卡鲁塞尔（Carroussel)型、奥伯尔（Orbal)型、射流曝气式、导管式、一体化式等多种形式的氧化沟。DE氧化沟DE型氧化沟是丹麦克鲁格公司在间歇运行的氧化沟基础上发展的一种新型的氧化沟。在运行稳定可靠的前提下，操作更趋灵活方便。DE型氧化沟为双沟半交替工作式氧化沟系统，具有良好的生物除氮功能。它与D型、T型氧化沟的不同之处是二沉池与氧化沟分开，并有独立的污泥回流系统。两个氧化沟相互连通，串联运行，交替进水。沟内设双速曝气转刷，高速工作时曝气充氧，低速工作时只推动水流，基本不充氧，使两沟交替处于厌氧和好氧状态，从而达到脱氮的目的。若在DE氧化沟前增设一个缺氧段，可实现生物除磷，形成脱氮除磷的DE型氧化沟工艺。 
Carrousel氧化沟是由荷兰DHV技术咨询公司在六十年代后期发明的，当时开发这一工艺的主要目的是寻求一种渠道更深、效率更高和机械性能更好的系统设备来改善和弥补当时流行的转刷式氧化沟的技术特点。 
与其它池型氧化沟相比，其最大的特点是采用特殊设计的立式低速表曝机作曝气设备，由于曝气设备的不同(区别于其它水平轴式曝气装置)，使污水在混合曝气充氧的同时具有泵的局部水力提升作用，使混合液和原水得到彻底的混合。 
奥贝尔氧化沟由三个相对独立的同心椭园形沟道组成，污水由外沟道进入沟内，然后依次进入中间沟道和内沟道，最后经中心岛流出，至二次沉淀池。三个环形沟道相对独立，溶解氧分别控制在0、1、2 mg/l，其中外沟道容积达50%~60%，处于低溶解氧状态，大部分有机物和氨氮在外沟道氧化和去除。内沟道体积约为10%~20%，维持较高的溶解氧（2mg/l），为出水把关。在各沟道横跨安装有不同数量转碟曝气机，进行供氧兼有较强的推流搅拌作用。 
奥贝尔氧化沟除具备一般氧化沟的优点：流程简单、抗冲击负荷能力强、出水水质稳定和易于维护管理。