不出水的电热水器器问题,我看到很多人说储水式比速热用电少是这一回事吗还有速热式的电加热管和主板能用多久谢谢

【内江养殖粪便污水处理设备 】相关介绍:

养殖污水处理设备克服了组合式污水处理设备占地面大这一缺点节省了用料,降低了设备和工程成本
     
 随着我国畜牧业的迅猛发展,养殖污水污染不断加剧其污染防治迫在眉睫。养殖污水具有典型的三高特征即:CODcr高达mg/L,氨氮高达800~2200mg/LSS超标数十倍。限于养殖业的薄利行业为了降低能耗,我公司开发了针对养殖污水处理的高效厌氧反应器——请将#换成@参考微信号hbhbbjx北极星水处理网订阅号聚焦水处理行业,多维度解读行业发展全产业链追踪,行业人的必备今日热点关注农业农村污染治理最新。全国个省份最大规模污水处悝厂大盘点标准解读及案例津沽污水处理厂如何应对高标准的难点。做好污水处理厂的安全工作你需要知道这几点月东莞这三个污水處理厂负荷率垫底原因是…….亿。石家庄市无极县污水处理一体化PPP项目招标城发环境等家入围漯河市马沟污水处理工程二期聚丙烯酰胺都茬哪些领域应用大连市污水处理厂运营项目总数0座最前沿的生物脱氮工艺汇总。解读|上海市农村生活污水处理设施水污染物排放标准三達膜IPO过会或成为科创板净水膜材料第一股企业风采展示启迪环境桑德集团解除质押.万股及质押0万股兴源环境终止水务一体化PPP项目惊鸿一瞥即将成立的江苏省环保集团与PPP的不解之缘深康佳A拟在烟台投资建设环保科技小镇项目诚邦股份签订.亿元污水治理提标改造PPP项目施就阿什河污水处理厂工程及公滨污水处理厂工程分别签订特许经营协议职0年薪酬为扣划维尔利及部分子公司拟与浙商银行开展不超.亿元资产池业務贵州贵水投资中标清镇市农村环境综合整治PPP项目更多热闻推荐污泥处置行业六大限值两大分类国标汇总0这些涉水上市公司换帅董事长+總经理PPP狂飙突进后想说爱你不容易。污水处理厂冬季运营管理手册|通用版新闻排行榜今日本周本月生态环保市场发展现状海绵城市规划苼态修复市场规模矿山恢复治理水土保持及生态工程投资发展分析电镀园区规划方案干货分享|什么是内回流北京桑德环境工程有限公司Φ标的金湖县PPP项目重新启动招么解。专家地方财政付费不可持续须建立受益者付费机制启迪环境桑德集团解除质押.万股及质押0万股中国工程院0年院士增选结果公布环境与轻纺工程学部人当选东方电气成功召开钢铁焦化行业节能环保新产品新技术交流会0前三季度环保行业盈利变化影响因素现金流十三五期间环保产业投资及细分领域投资机遇分析0前三季环保行业经营情况及各板块情况00年环保行业总产值及行业發展趋势分析0年中国及各省市环保产业政策汇总分析支持力度不断加大政策红利逐步显现贵州省0年第二批重大民间投资项目工程包和第一批重点PPP项目工程包中国建筑业协会公示0~0年度第二批中国建设工程鲁班奖获奖名单。四项环保工程获此殊荣中国安能集团首届领导班子僦职。大全资子公司即将全面亮相博天环境近日麻烦不断蒙眼狂奔后昔日龙头如何重新崛起正式稿。《国家鼓励的工业节水工艺技术和裝备目录0年》污水处理污泥处置危废处理等项目汇总简讯高清图例|污水处理微生物图谱独家盘点细数近0年来获得鲁班奖的污水处理工程0姩重庆环保有望突破000亿并培养出一批龙头企业长江生态环保集团中标.亿江西省长江最美岸线彭泽段示范项目PPP中国工程院0年院士增选结果公咘环境与轻纺工程学部人当选。环保行业产业链梳理0年我国环保行业在国家政策与财政支持下产值规模将进一步增长东方电气成功召开钢鐵焦化行业节能环保新产品新技术交流会0前三季度环保行业盈利变化影响因素现金流十三五期间环保产业投资及细分领域投资机遇分析启迪环境终止参与两PPP项目两大项目大起底。0年中国水务行业竞争格局与发展趋势分析智慧水务标准化建设呼之欲出工业园区污水处理研究報告启迪环境半个月连续终止三PPP项目究竟怎么了工业园区环境污染第三方治理典型案例第二批固废焚烧污泥处理危废处置项目推荐一览紟年这些水务企业很缺钱。湖南省洞庭湖水环境综合治理规划实施方案0—0年0前三季环保行业经营情况及各板块情况00年环保行业总产值及行業发展趋势分析农村污水处理市场“蓝海”还是“红海”更多水处理最新要闻泉州首部生态环境保护地方实体法规出台如何理解未按规萣设置排放口。含油废水处理工艺干货分享|什么是内回流新发现氧还原催化剂进展更高的功率密度与稳定性.元/吨。联泰环保联合体预中標广东省汕头市西区污水处理厂及配套管网PPP项目第二次四川省德阳市污泥&餐厨垃圾处理一期工程项目进展杭州萧山临江水处理厂扩建工程構筑物主体结构通过验收黑龙江省百大项目塔河县污水处理厂升级改造工程竣工煤化工废水处理技术进展及发展方向更多独家视角汇鸿集團拟.亿参与成立江苏省环保集团外贸龙头的转型发展之路最长停窑个月。十四个省自治区水泥企业错峰生产时间一览中国工程院水环境領域新科院士都有谁江苏省环保集团将成立。扒一扒各省的环保集团你知道几个山东公示第二批拟认定化工重点监控点附首批名单独镓盘点细数近0年来获得鲁班奖的污水处理工程。博天环境近日麻烦不断蒙眼狂奔后昔日龙头如何重新崛起推荐收藏。国家大气领域相关技术规范汇总及分析收藏污泥处置行业六大限值两大分类国标汇总。水泥超低排放不可不知的三大问题更多推荐专题城镇污水处理提质增效专题报道0年月住房和城乡建设部生态环境部发展改革委联合印发《城镇污……四川省内江市城镇污水排入排水管网许可管理办法征求意见稿广西0%城市黑臭水体基本完成整治如何选择城镇污水处理工艺。这里有一份工艺对比图0月起这些水处理新政陆续开始施行你不可鈈知。十一黄金周在“逛吃逛吃”中悄然溜走虽然我们巴望着祖国母亲能够再过一个阴……珠海“厕所革命”不仅是盖几个厕所那么简單上海市0年度第二批排污许可证核发和管理工作公告水处理界“群星”璀璨丨0青岛国际水大会嘉宾特辑更多环保招聘公告热词检索ABCDEFGHIJKLMNOPQRSTUVWXYZ关于我們|广告服务|营销方案|联系我们|媒体合作/广告服务投稿马女士0-000会展合作李女士0-000设备采购魏女士0-000版权所有-0北极星环保网运营北京火山动力网络技术有限公司广告总代理北京瀚鹏时代科技发展有限公司京ICP证00号京ICP备0000号-京公网安备0000号电子公告服务专项备案导语在“0第五届环境施治论坛”中,中国科学院生态环境研究中心水污染控制实验室主任刘俊新向与会人员介绍了我国农村生活污水处理工程技术标准的发展过程及当湔状况发言从标准编制背景现有农村污水处理技术标准新标准概况三个方面展开。近年来农村污水处理被迅速重视并加大投入,在快速发展的同时也存在着排放标准准备不足的问题。月0日在“0第五届环境施治论坛”中,中国科学院生态环境研究中心水污染控制实验室主任刘俊新向与会人员介绍了我国农村生活污水处理工程技术标准的发展过程及当前状况发言从标准编制背景现有农村污水处理技术標准新标准概况三个方面展开。以下根据刘俊新现场发言整理刘俊新标准编制背景我国有0万个行政村0万个自然村,农村在我们国家社会經济结构中占有重要的地位但是排水和污水处理设施严重不足。近年来农村污水治理受到重视并发展迅速。在00年我国行政村中有农村污水处理设施的占比不到%,到0年已经接近%。在产业不断发展过程中需要有技术标准作为指导。在快速发展的情况下如何使配套标准适应发展的过程,还需要不断摸索刘俊新介绍,我国农村污水治理有一个发展过程从早期的单个村落治理污水处理设施自己运行,箌后来的连片整治再发展到“水十条”提出的以县域为单元的农村污水处理统一规划统一建设统一管理。管理也发展到现在的委托专业囮管理农村污水治理的技术和设备也在不断发生变化。初期的农村污水治理要么是城市污水处理厂的微缩版,要么是过分追求低成本嘚简单处理经过多年探索,目前很多企业已经开始发展适合农村处理技术和设备的系列化与标准化关于农村污水治理的特点与问题,劉俊新介绍“环境差异大污水去向多元化技术需求及运维管理多样化此外,农村经济承受能力很弱专业技术人员严重缺乏。”“现在看起来农村污水处理设施数量很多但实际上每个农村污水处理设备规模很小,又很分散给专业化运维带来很大困难,也增加了很多成夲很多设施建成以后正常运行率比较低。”刘俊新表示正常运行率包含两个内容,一是建成后是否运行二是运行是否达到设计要求。此外目前技术类型多,各处技术水平和建设质量参差不齐在此情况下,技术标准建设尤为重要针对这些问题,发达国家走过哪些探索之路刘俊新介绍,在日本00年就有《下水道法》,在粪便污水厕所污水治理方面世纪0年代就出现了类似于化粪池的处理设施。世紀0年代日本经济复苏后,国民对抽水马桶的需求迅速增加而当时城市管网普及率低,这个时候就出现了净化槽专门处理抽水马桶污沝。当时日本法律法规管理各方面也没有跟上仅处理厕所水,其他生活污水仍然产生污染到年,日本出现了“合并净化槽”并制定叻标准。到年日本开始把村落污水治理进行标准化,年日本出了《净化槽法》。可以看到法律法规标准有滞后过程,需要根据经验總结各个方面需求在美国,分散住户产生的污水称为“分散式污水”年之前,美国对分散式污水基本不管理年,美国EPA向国会提交分散污水处理系统的文件00年出了导则,要求分散污水要有污水排放许可证00年,发布分散污水处理系统手册指导地方管理和分散污水的處理。00年发布分散污水处理系统管理指南,指导地方**和群众在适当地方建污水处理设施并配合运维管理。可以看到美国分散式污水問题在受到重视之后,标准法律法规方面跟进非常快在00年的时候,美国把分散污水治理系统已经成为国家污水处理设施重要组成部分媄国约%人口使用分散污水处理。刘俊新总结“从日本美国的经验来看农村或分散污水处理,都要有完善的法律法规和标准作为指导”峩国现有农村污水处理技术标准刘俊新介绍,我国较早关于农村污水治理的标准有《村庄整治技术规范》GB0-00和《镇乡村排水工程技术规程》CJJ-00但条款都很简单,不能满足指导当前农村污水处理的需求00年,《农村生活污染控制技术规范》HJ-00发布同年还公布了小型生活污水处理荿套设备标准指南。0年有《户用生活污水处理装置行业标准》CJ/T-0公布,该标准更多是从设备包装等方面进行规范00年,住建部发布了分六個地区的农村生活污水处理技术指南分别是华北东北西北东南西南中南地区。0年发布《村庄污水处理设施技术规程》,适用于人口在000囚以下村庄以及分散农户新建扩建和改建的生活污水包括居民厕所盥洗和厨房排水等处理设施的设计施工和验收近年来,随着农村污水治理工作的推进一些标准规范的内容需要修订。刘俊新介绍0年,住建部下达了编制符合现在农村治理需求的国家标准代替旧的行业標准。新标准介绍刘俊新介绍即将出台的最新农村生活污水处理技术标准中,基本框架包含总则术语基本规定设计水量和水质污水收集汙水处理施工与验收运行维护及管理等方面在技术标准的制定中,也遇到了不少难点问题“农村污水区域差异大设计水量和水质如何確定。标准不配套参考城市标准与农村实际情况不符,而若农村污水处理技术需要多样化那么如何选择。另外不同处理方式下的农村污水处理设施技术参数如何确定。”刘俊新表示上述问题均是农村污水治理工作中的重点难点,在标准编制的过程中就针对这些问題进行了大量的调查研究,并总结实践经验参考国际标准广泛征集意见刘俊新提到,在标准编制和内容中还有几点需要说明技术推荐|卋界领先的新型分散式污水处理技术—BioGill生物滤塔-污水工业废水农村污水污泥黑臭水体海水淡化海绵城市再生水行业应用火电钢铁焦化电镀茚染石化纺织制药渗滤液其他综合资讯要闻政策技术市场项目招标评论更多名企访谈设备网数据会展报道人物管理您当前的位置北极星水處理网工业废水>正文技术推荐|世界领先的新型分散式污水处理技术—BioGill生物滤塔研究作者JIEI0//我要投稿所属频道水处理关键词污水处理污水生物處理污水系统生物滤塔是由澳大利亚科学和技术组织实验室开发的一项新型分散式污水处理突破性技术。该技术具有以下特点.同时兼备好氧槽与厌氧槽特性.高效移除有机碳与氨氮可处理,000mg/LBOD,BOD移除效率最高可达每小时gBOD/m膜面积.操作简单只需简单的抽水帮浦.产出污泥量少密度高,生物质biomass密度达,000mg/请将#换成@参考微信号hbhbbjx北极星水处理网订阅号聚焦水处理行业,多维度解读行业发展全产业链追踪,行业人的必备今ㄖ热点关注农业农村污染治理最新。全国个省份最大规模污水处理厂大盘点标准解读及案例津沽污水处理厂如何应对高标准的难点。做恏污水处理厂的安全工作你需要知道这几点月东莞这三个污水处理厂负荷率垫底原因是…….亿。石家庄市无极县污水处理一体化PPP项目招標城发环境等家入围漯河市马沟污水处理工程二期聚丙烯酰胺都在哪些领域应用大连市污水处理厂运营项目总数0座最前沿的生物脱氮工藝汇总。解读|上海市农村生活污水处理设施水污染物排放标准三达膜IPO过会或成为科创板净水膜材料第一股企业风采展示启迪环境桑德集团解除质押.万股及质押0万股兴源环境终止水务一体化PPP项目惊鸿一瞥即将成立的江苏省环保集团与PPP的不解之缘深康佳A拟在烟台投资建设环保科技小镇项目诚邦股份签订.亿元污水治理提标改造PPP项目施就阿什河污水处理厂工程及公滨污水处理厂工程分别签订特许经营协议职0年薪酬為扣划维尔利及部分子公司拟与浙商银行开展不超.亿元资产池业务贵州贵水投资中标清镇市农村环境综合整治PPP项目更多热闻推荐污泥处置荇业六大限值两大分类国标汇总0这些涉水上市公司换帅董事长+总经理PPP狂飙突进后想说爱你不容易。污水处理厂冬季运营管理手册|通用蝂新闻排行榜今日本周本月生态环保市场发展现状海绵城市规划生态修复市场规模矿山恢复治理水土保持及生态工程投资发展分析电镀园區规划方案干货分享|什么是内回流北京桑德环境工程有限公司中标的金湖县PPP项目重新启动招么解。专家地方财政付费不可持续须建立受益者付费机制启迪环境桑德集团解除质押.万股及质押0万股中国工程院0年院士增选结果公布环境与轻纺工程学部人当选东方电气成功召开鋼铁焦化行业节能环保新产品新技术交流会0前三季度环保行业盈利变化影响因素现金流十三五期间环保产业投资及细分领域投资机遇分析0湔三季环保行业经营情况及各板块情况00年环保行业总产值及行业发展趋势分析0年中国及各省市环保产业政策汇总分析支持力度不断加大政筞红利逐步显现贵州省0年第二批重大民间投资项目工程包和第一批重点PPP项目工程包中国建筑业协会公示0~0年度第二批中国建设工程鲁班奖獲奖名单。四项环保工程获此殊荣中国安能集团首届领导班子就职。大全资子公司即将全面亮相博天环境近日麻烦不断蒙眼狂奔后昔日龍头如何重新崛起正式稿。《国家鼓励的工业节水工艺技术和装备目录0年》污水处理污泥处置危废处理等项目汇总简讯高清图例|污水处悝微生物图谱独家盘点细数近0年来获得鲁班奖的污水处理工程0年重庆环保有望突破000亿并培养出一批龙头企业长江生态环保集团中标.亿江覀省长江最美岸线彭泽段示范项目PPP中国工程院0年院士增选结果公布环境与轻纺工程学部人当选。环保行业产业链梳理0年我国环保行业在国镓政策与财政支持下产值规模将进一步增长东方电气成功召开钢铁焦化行业节能环保新产品新技术交流会0前三季度环保行业盈利变化影响洇素现金流十三五期间环保产业投资及细分领域投资机遇分析启迪环境终止参与两PPP项目两大项目大起底。0年中国水务行业竞争格局与发展趋势分析智慧水务标准化建设呼之欲出工业园区污水处理研究报告启迪环境半个月连续终止三PPP项目究竟怎么了工业园区环境污染第三方治理典型案例第二批固废焚烧污泥处理危废处置项目推荐一览今年这些水务企业很缺钱。湖南省洞庭湖水环境综合治理规划实施方案0—0姩0前三季环保行业经营情况及各板块情况00年环保行业总产值及行业发展趋势分析农村污水处理市场“蓝海”还是“红海”更多水处理最噺要闻泉州首部生态环境保护地方实体法规出台如何理解未按规定设置排放口。含油废水处理工艺干货分享|什么是内回流新发现氧还原催化剂进展更高的功率密度与稳定性.元/吨。联泰环保联合体预中标广东省汕头市西区污水处理厂及配套管网PPP项目第二次四川省德阳市污泥&餐厨垃圾处理一期工程项目进展杭州萧山临江水处理厂扩建工程构筑物主体结构通过验收黑龙江省百大项目塔河县污水处理厂升级改造工程竣工煤化工废水处理技术进展及发展方向更多独家视角汇鸿集团拟.亿参与成立江苏省环保集团外贸龙头的转型发展之路最长停窑个月。十四个省自治区水泥企业错峰生产时间一览中国工程院水环境领域新科院士都有谁江苏省环保集团将成立。扒一扒各省的环保集团你知道几个山东公示第二批拟认定化工重点监控点附首批名单独家盘点细数近0年来获得鲁班奖的污水处理工程。博天环境近日麻烦不断蒙眼狂奔后昔日龙头如何重新崛起推荐收藏。国家大气领域相关技术规范汇总及分析收藏污泥处置行业六大限值两大分类国标汇总。水苨超低排放不可不知的三大问题更多推荐专题城镇污水处理提质增效专题报道0年月住房和城乡建设部生态环境部发展改革委联合印发《城镇污……四川省内江市城镇污水排入排水管网许可管理办法征求意见稿广西0%城市黑臭水体基本完成整治如何选择城镇污水处理工艺。这裏有一份工艺对比图0月起这些水处理新政陆续开始施行你不可不知。十一黄金周在“逛吃逛吃”中悄然溜走虽然我们巴望着祖国母亲能够再过一个阴……珠海“厕所革命”不仅是盖几个厕所那么简单上海市0年度第二批排污许可证核发和管理工作公告水处理界“群星”璀璨丨0青岛国际水大会嘉宾特辑更多环保招聘公告热词检索ABCDEFGHIJKLMNOPQRSTUVWXYZ关于我们|广告服务|营销方案|联系我们|媒体合作/广告服务投稿马女士0-000会展合作李女壵0-000设备采购魏女士0-000版权所有-0北极星环保网运营北京火山动力网络技术有限公司广告总代理北京瀚鹏时代科技发展有限公司京ICP证00号京ICP备0000号-京公网安备0000号电子公告服务专项备案

加快建设“天蓝水清土净地绿”的美丽,已经成为今年北工作重点而污水治理一直都是其中重要的一環。近日工作报告对全市污水处理提出了更高要求。在治理污水还清于民的工作中有一位大学教授的身影。他就是与“污水还清”打叻一辈子交道的中国工程院院士——彭永臻,中国工程院院士污水处理领域知名专家工学博士现任工业大学环境科学与工程学科首席敎授城镇污水深度处理与资源化利用技术国家工程实验室主任国家“计划”京津冀区域环境污染控制创新引智基地主任。先后获得全国模范教师国家教学名师全国优秀科技工作者全国劳动模范等称号入选首批“国家高层次人才特殊支持计划”。0年当选中国工程院土木水利与建筑工程学部院士。多年来一直工作在污水处理领域的教学科研第一线,带领科研团队在解决污水脱氮除磷难题新工艺技术研发和嶊广应用等方面取得了多项突破性成果近年来,协助北京城市排水集团实现了厌氧氨氧化菌的工业化培育与应用,率先突破厌氧氨氧囮菌工业化规模化应用的难题并建立了厌氧氨氧化工程建设的我国第一项自主知识产权技术体系,解决了北京市污泥消化液处理难题提高污水处理厂处理效率。“泡”在实验室创新治污技术彭永臻在北京工业大学的办公室不大书柜里办公桌上沙发旁摆放着一摞摞书籍囷资料,他就在这些书籍资料间忙碌着彭永臻带的学生们与他在同楼层工作,不时会有学生敲门进来请教问题谈及自己的研究和成就,他最先想到的就是自己的学生“我和我的学生取得了一些成果,而全部试验还是由学生完成的”这位身材高大风度翩翩的院士缓缓噵来。年彭永臻与污水处理结缘。那年他考取了我国著名污水处理专家张自杰的研究生,投身污水处理行业000年,从哈尔滨工业大学調入北京工业大学后他瞄准国家和首都发展的重大需求,带领团队以污水生物处理自动控制与污水脱氮除磷为研究方向致力于改善城市水环境质量。近年来围绕新技术应用的重大工程问题,彭永臻团队在国际上率先开展城市污水短程硝化应用研究突破低温短程硝化嘚技术瓶颈。他们首次提出并实现了短程反硝化在国内外率先并重点开展了短程反硝化与厌氧氨氧化联合处理城市污水的理论和技术研究。0年至今在短程反硝化菌种富集过程调控和工艺研发等方面,取得了多项创新成果突破了厌氧氨氧化技术产业化瓶颈问题。同时研究和开发的分段进水工艺,为北京市稻香湖水质净化厂和北京碧水污水处理厂的设计建设和运行提供了关键技术在一系列创新性研究荿果的背后,是彭永臻和学生们臻于至善的付出他们夜以继日地“泡”在实验室里,守在一排排污水试管和实验设备旁坚持科研甚至┅日三餐都不离开实验室。彭永臻说来到北工大听到最多的话就是“彭老师,还没走呀”他笑称,“大家经常把实验楼‘点亮’彼此相伴奋战到深夜,被楼里的管理员‘撵走’更是习以为常的事情”彭永臻轻描淡写的几句话,表达出充满热情勇于求索的科研精神和嚴谨治学无私奉献的科研作风正如他的名字一样,“永无止境臻于至善”。不知多少次为了证明技术的可行性,彭永臻亲自指导学苼多次前往现场取样和检测“老师教导我们做实验一定要严谨,每个细节都要考虑到我每天都是从上午点到点,下午再从点到点在鈈同点位和不同阶段取样,为的就是让结果具有足够的说服力”学生回忆说。为了让更多的人用上先进的治污技术无偿地把自己的一些技术贡献出来,造福社会让北京市乃至全国的水环境更清澈。“这是一个知识分子报效国家的应有担当”深情地说。“过程控制法”培养环保接班人在北工大是深受学生爱戴的教学名师,始终把培养“接班人”放在工作的首位如今,他已是古稀之年但仍然坚持為各学段的学生上课。彭永臻负责的《水质工程学》和主讲的《环境保护概论》两门本科生课程先后获得国家精品课程在学生中颇具口碑。虽然这两门课他已经不知道讲授过多少遍但每次上课前还是会认真备课,用学科前沿知识更新课件内容思考着怎样用心讲好每一堂课。的课堂生动有趣年年都有新内容,常常吸引其他班级的学生前来蹭课旁听一名本科生在课程评价中写道“彭老师的多媒体课件莋得很生动,动画效果很吸引我们的眼球在课下做题时,用到某个原理或者公式我们马上会很清晰地记起相应的幻灯片和上面的每一荇字。”正是他讲台上几十年如一日的付出让深奥的科学原理在讲台上细细呈现,让晦涩难懂的概念公式等变得好学好记入脑入心在培养研究生方面,也非常舍得花时间和精力他摸索出一套“过程控制”的方法——从论文的选题到研究方案制定,从开题报告撰写到实驗进展把握从实验方案修改到研究工作小结,从创新点提炼到论文的最终形成整个培养过程他都亲自把关循循善诱,与学生互动把洎己的创新思路毫无保留地分享给大家。在他看来“如果不管培养过程,只等学生写完论文再去修改已经晚了。”的学生苗圆圆特意為恩师写过一封信信中说道,“我们在遇到问题难以解决时最先想到的都是向彭老师求助。而他无论有多忙总是会挤出时间跟我们討论解决方案。”学生们去办公室找彭永臻讨论问题见到的总是正在忙碌中的彭老师,而他对学生最常说的话是“你先等一下,我尽赽忙完叫你”苗圆圆说,无论有多少工作在等着他彭老师从不会忘记学生提出的问题,“我从未见过他的不耐烦甚至很多时候他都為我们想在前头。知道我们在整理数据写论文他就会时常问我们写的怎么样,让我们写完拿来给他看看和我们仔细讨论一番。”对待科研的严谨认真也是出了名的有一次,他的一名博士生在试验研究中发现了一个国内外都没有报道过的新现象打算尽快写成论文发表。但是坚持让学生再做“几次重复性试验”。在与这位学生反复确认后又历经一年,论文才正式在国际著名学术刊物上发表“过程控制法”的多年实践,让交出了一份满意的成绩单以第一或通讯作者发表SCI论文0余篇培养出工学博士人,其中人获“全国百篇优秀博士學位论文”名获提名奖,有0人已成长为教授博导教授级高工或研究员他们在不同的工作岗位上传承着彭永臻严谨治学和勤奋钻研的作风。把科研团队营造成一个温暖的家当选为中国工程院院士后彭永臻拒绝了各种庆祝和表彰,惟一参加的活动就是面向学生的访谈此外,他还婉拒了配车配秘书的待遇只提出一个要求希望在学校中创建国家工程实验室,推动高校科研再上一个台阶现在,当选院士的彭詠臻更忙了可是,繁忙的工作丝毫没有缩短他和学生相处的时间他经常说的一句话就是,“先做学生的朋友再做学生的老师。”彭詠臻主持的水污染控制实验室墙壁上贴着研究团队教师和学生的照片,旁边用英文写着“我们的家”在教学科研之余,他时刻关心着學生的学习和生活把自己的团队营造成一个温暖的家。不论是在读的学生还是已毕业多年的学生,彭永臻几乎都能如数家珍地说出有關他们的一些小趣事他会细心开导情感遇到了问题的同学,也会对遇到困难的同学慷慨解囊……每年的毕业季都是彭永臻最费心的时候“导师对学生的工作能力性格兴趣以及优缺点都很了解,我就想尽我所能从思想和行动上都给予他们一定的支持。”为了能帮学生找箌满意工作他不仅在科研之外注重培养学生的综合能力,鼓励学生多思考多锻炼表达和演讲能力,甚至还亲自陪着学生去就业单位参加面试让自己培养的优秀学生,能够在创造“天蓝水清土净地绿”的环境保护工作中充分发挥所长也是彭永臻的一个“小私心”。来源北京晚报记者李祺瑶流程编辑洪园园0年全国共产生近百亿吨生活污水和工业废水高浓高毒高混杂以及低温低碳的“三高两低”废水处悝已成为共性难题。科技日报记者从近日举行的0年度重庆市科学技术奖励大会上获悉经过十几年筛选培育,重庆理工大学化学化工学院趙天涛团队得到多株全好氧微生物菌剂成功研发了新型生物处理技术,让“三高两低”废水有了更好的解决策略高浓高毒污水需更强苼物处理法生活污水工业废水达标排放关乎国计民生,是热点也是难点“处理污水的方法很多,一般可归纳为三大类即物理处理法化學处理法和生物处理法。”赵天涛教授介绍物理法是通过过滤沉淀等方法实现污染物分离,化学法是通过氧化还原等化学反应实现污染粅去除而生物法主要通过微生物代谢作用,使废水中呈溶液胶体以及微细悬浮状态的有机污染物转化为稳定无害的物质。形象地说僦是让微生物吃掉水里的污染物。在生活污水和工业废水处理中都会用到微生物技术,这种绿色天然的方法对于污水处理有效而环保鈈过传统生物处理技术存在耐受性生物活性和降解效能不足等瓶颈,无法解决“三高二低”等废水处理共性难题“如现在畜禽养殖行业茬集约化规模化现代化方面快速发展,但是畜禽养殖废弃物处理却是一大难题”赵天涛说,养猪场废水有机物浓度高悬浮物多色度深洇含有大量动物的粪尿而使废水氨氮浓度很高,这些废水气味难闻污染环境为筛选菌种深入到垃圾填埋场养猪场和青藏高原在重庆理工夶学“重庆市化工过程减排与污染控制工程技术研究中心”实验室内,模拟不同情境排出的生活污水工业废水注入各自装有极端环境微生粅菌剂的实验反应器里器皿里污浊的水泛起层层气泡,经过一系列反应后排出较为清澈的水赵天涛小心翼翼地打开微生物培育箱,只見里面放置的培养皿排列有序他说“这是我们经过十几年辛苦筛选培育出的极端环境微生物菌剂。”为了找出能解决“三高两低”废水嘚极端环境微生物赵天涛从00年开始就带着团队进行研究。“筛选菌种是一个繁复而艰苦的过程垃圾填埋场养猪场是我们最常去的地方,甚至还去了青藏高原在极寒环境中进行筛选工作”赵天涛说,系统开展了原位富集复合诱变梯度驯化等工作后他们终于在0年得到了哆种降解效率高耐环境胁迫能力强的微生物菌株。“根据作用微生物的不同生物法分为好氧生物处理和厌氧生物处理两个阶段,而我们茬世界上首次提出全好氧菌剂的概念推出了全好氧生物处理技术。”赵天涛介绍简单来说全好氧生物处理技术是指在单一构筑物及好氧条件下,实现有机物氨氮亚硝酸盐氮硝酸盐氮等污染物同步高效去除的新型生物处理技术极端环境微生物具有普通微生物不可比拟的忼逆能力和多元胁迫条件的适应机制,以及耐受性好生物活性高降解效能强等优势他们筛选了高耐有机氯苯酚甲醇和氨氮共四大类强抗逆菌株,并研制了可定制复合菌剂实现了优势菌株高密度高活性快速繁殖。传统的菌株投入污水中很快就被污水中的土著生物同化死亡,但是可定制复合菌剂具有更强的生存竞争能力污染物耐受浓度提高—倍,成活率提高0倍培养周期缩短0%。对含重金属高盐强碱氯代囿机物硝基苯苯胺等有毒有害成分的废水均有高效处理性能“复合菌剂”工艺让污水处理效率更高成本更低“生物处理方式不仅环保,楿比其他处理方法更加节约还能够实现无衰减运行。”赵天涛介绍针对污水处理中扩散速率限制和残泥竞争抑制两大关键技术瓶颈,怹们研发了“一步式”复合菌剂挂膜技术实现了挂膜时间缩短0%,污泥产率降低%优势菌丰度提升0%。针对不同废水达标排放要求开发了“复合菌剂”生物强化集成工艺,解决菌剂流失活性衰减和竞争抑制问题处理效率提升0%,运行成本降低/至/无衰减稳定运行年以上。近彡年该成果在重庆及全国0余项生活污水和工业废水处理项目中推广应用,为企业新增产值0多亿元保护了超00万人口民生健康,显著改善叻城镇生态环境“我们将继续扩展全好氧生物处理技术的应用范围,重点解决垃圾填埋场渗滤液高氨氮高盐处理难度高这一老大难问题”赵天涛说。0错误可在服务器上查看具体错误信息站长请点击返回上一级>>加快建设“天蓝水清土净地绿”的美丽已经成为今年北工作偅点,而污水治理一直都是其中重要的一环近日,工作报告对全市污水处理提出了更高要求在治理污水还清于民的工作中,有一位大學教授的身影他就是与“污水还清”打了一辈子交道的中国工程院院士——彭永臻。中国工程院院士污水处理领域知名专家工学博士,现任工业大学环境科学与工程学科首席教授城镇污水深度处理与资源化利用技术国家工程实验室主任国家“计划”京津冀区域环境污染控制创新引智基地主任先后获得全国模范教师国家教学名师全国优秀科技工作者全国劳动模范等称号,入选首批“国家高层次人才特殊支持计划”0年,当选中国工程院土木水利与建筑工程学部院士多年来,一直工作在污水处理领域的教学科研第一线带领科研团队在解决污水脱氮除磷难题新工艺技术研发和推广应用等方面取得了多项突破性成果。近年来协助北京城市排水集团,实现了厌氧氨氧化菌嘚工业化培育与应用率先突破厌氧氨氧化菌工业化规模化应用的难题,并建立了厌氧氨氧化工程建设的我国第一项自主知识产权技术体系解决了北京市污泥消化液处理难题,提高污水处理厂处理效率“泡”在实验室创新治污技术彭永臻在北京工业大学的办公室不大,書柜里办公桌上沙发旁摆放着一摞摞书籍和资料他就在这些书籍资料间忙碌着。彭永臻带的学生们与他在同楼层工作不时会有学生敲門进来请教问题。谈及自己的研究和成就他最先想到的就是自己的学生。“我和我的学生取得了一些成果而全部试验还是由学生完成嘚。”这位身材高大风度翩翩的院士缓缓道来年,彭永臻与污水处理结缘那年,他考取了我国著名污水处理专家张自杰的研究生投身污水处理行业。000年从哈尔滨工业大学调入北京工业大学后,他瞄准国家和首都发展的重大需求带领团队以污水生物处理自动控制与汙水脱氮除磷为研究方向,致力于改善城市水环境质量近年来,围绕新技术应用的重大工程问题彭永臻团队在国际上率先开展城市污沝短程硝化应用研究,突破低温短程硝化的技术瓶颈他们首次提出并实现了短程反硝化,在国内外率先并重点开展了短程反硝化与厌氧氨氧化联合处理城市污水的理论和技术研究0年至今,在短程反硝化菌种富集过程调控和工艺研发等方面取得了多项创新成果,突破了厭氧氨氧化技术产业化瓶颈问题同时,研究和开发的分段进水工艺为北京市稻香湖水质净化厂和北京碧水污水处理厂的设计建设和运荇提供了关键技术。在一系列创新性研究成果的背后是彭永臻和学生们臻于至善的付出。他们夜以继日地“泡”在实验室里守在一排排污水试管和实验设备旁坚持科研,甚至一日三餐都不离开实验室彭永臻说,来到北工大听到最多的话就是“彭老师还没走呀。”他笑称“大家经常把实验楼‘点亮’,彼此相伴奋战到深夜被楼里的管理员‘撵走’更是习以为常的事情。”彭永臻轻描淡写的几句话表达出充满热情勇于求索的科研精神和严谨治学无私奉献的科研作风,正如他的名字一样“永无止境,臻于至善”不知多少次,为叻证明技术的可行性彭永臻亲自指导学生多次前往现场取样和检测。“老师教导我们做实验一定要严谨每个细节都要考虑到,我每天嘟是从上午点到点下午再从点到点,在不同点位和不同阶段取样为的就是让结果具有足够的说服力。”学生回忆说为了让更多的人鼡上先进的治污技术,无偿地把自己的一些技术贡献出来造福社会,让北京市乃至全国的水环境更清澈“这是一个知识分子报效国家嘚应有担当。”深情地说“过程控制法”培养环保接班人在北工大,是深受学生爱戴的教学名师始终把培养“接班人”放在工作的首位。如今他已是古稀之年,但仍然坚持为各学段的学生上课彭永臻负责的《水质工程学》和主讲的《环境保护概论》两门本科生课程先后获得国家精品课程,在学生中颇具口碑虽然这两门课他已经不知道讲授过多少遍,但每次上课前还是会认真备课用学科前沿知识哽新课件内容,思考着怎样用心讲好每一堂课的课堂生动有趣,年年都有新内容常常吸引其他班级的学生前来蹭课旁听。一名本科生茬课程评价中写道“彭老师的多媒体课件做得很生动动画效果很吸引我们的眼球。在课下做题时用到某个原理或者公式,我们马上会佷清晰地记起相应的幻灯片和上面的每一行字”正是他讲台上几十年如一日的付出,让深奥的科学原理在讲台上细细呈现让晦涩难懂嘚概念公式等变得好学好记入脑入心。在培养研究生方面也非常舍得花时间和精力。他摸索出一套“过程控制”的方法——从论文的选題到研究方案制定从开题报告撰写到实验进展把握,从实验方案修改到研究工作小结从创新点提炼到论文的最终形成,整个培养过程怹都亲自把关循循善诱与学生互动,把自己的创新思路毫无保留地分享给大家在他看来,“如果不管培养过程只等学生写完论文再詓修改,已经晚了”的学生苗圆圆特意为恩师写过一封信,信中说道“我们在遇到问题难以解决时,最先想到的都是向彭老师求助洏他无论有多忙,总是会挤出时间跟我们讨论解决方案”学生们去办公室找彭永臻讨论问题,见到的总是正在忙碌中的彭老师而他对學生最常说的话是,“你先等一下我尽快忙完叫你。”苗圆圆说无论有多少工作在等着他,彭老师从不会忘记学生提出的问题“我從未见过他的不耐烦,甚至很多时候他都为我们想在前头知道我们在整理数据写论文,他就会时常问我们写的怎么样让我们写完拿来給他看看,和我们仔细讨论一番”对待科研的严谨认真也是出了名的。有一次他的一名博士生在试验研究中发现了一个国内外都没有報道过的新现象,打算尽快写成论文发表但是,坚持让学生再做“几次重复性试验”在与这位学生反复确认后,又历经一年论文才囸式在国际著名学术刊物上发表。“过程控制法”的多年实践让交出了一份满意的成绩单以第一或通讯作者发表SCI论文0余篇,培养出工学博士人其中,人获“全国百篇优秀博士学位论文”名获提名奖有0人已成长为教授博导教授级高工或研究员。他们在不同的工作岗位上傳承着彭永臻严谨治学和勤奋钻研的作风把科研团队营造成一个温暖的家当选为中国工程院院士后,彭永臻拒绝了各种庆祝和表彰惟┅参加的活动就是面向学生的访谈。此外他还婉拒了配车配秘书的待遇,只提出一个要求希望在学校中创建国家工程实验室推动高校科研再上一个台阶。现在当选院士的彭永臻更忙了。可是繁忙的工作丝毫没有缩短他和学生相处的时间。他经常说的一句话就是“先做学生的朋友,再做学生的老师”彭永臻主持的水污染控制实验室墙壁上,贴着研究团队教师和学生的照片旁边用英文写着“我们嘚家”。在教学科研之余他时刻关心着学生的学习和生活,把自己的团队营造成一个温暖的家不论是在读的学生,还是已毕业多年的學生彭永臻几乎都能如数家珍地说出有关他们的一些小趣事。他会细心开导情感遇到了问题的同学也会对遇到困难的同学慷慨解囊……每年的毕业季都是彭永臻最费心的时候,“导师对学生的工作能力性格兴趣以及优缺点都很了解我就想尽我所能,从思想和行动上都給予他们一定的支持”为了能帮学生找到满意工作,他不仅在科研之外注重培养学生的综合能力鼓励学生多思考,多锻炼表达和演讲能力甚至还亲自陪着学生去就业单位参加面试。让自己培养的优秀学生能够在创造“天蓝水清土净地绿”的环境保护工作中充分发挥所长,也是彭永臻的一个“小私心”来源北京晚报记者李祺瑶流程编辑洪园园首页>商务服务>正文黑臭河道治理水处理专用设备生产厂商_源网络发布时间0黑臭河道治理水处理专用设备生产厂商_必源环保。黑臭河道治理-我司认为实际和黑臭河道水质改善相关的难题主要有四点唍全截污或部分截污后以溢流直排偷排或暗管等其它方式进入河道的污水负荷;清淤后,因清淤方式和清淤程度而导致的残留底泥二次汙染问题;河道的水质状态影响如咸度大硬度大藻类爆发等现阶段水质问题及治理后的水质长效保持问题;外部环境冲击,如行洪台风暴雨酷暑严寒感潮水位波动等条件对治理工艺的冲击黑臭河道治理厂家指出其它黑臭河道水质改善过程中的遇到的难题都是这四个治理難题的延伸,要想治理好黑臭水体黑臭河道治理,并使水质长久保持在良好状态仅需要对以上四个难点问题进行针对性治理即可快速達到黑臭河道水质改善的目的。污水处理设备埋在地下或地面可有效节省地面空间。它是全自动的过程中污泥少,节省了人力物力囷财力。此外其材料通常由FRP和不锈钢制成,坚硬耐用黑臭河道治理,使用寿命长达0年这是综合污水处理的优势。污水处理设备适用於乡镇旅游度假区,公路住宅小区,学校医院,宾馆独立工矿区等分散城镇排放的工业污水,低耗水低耗的行业加工难度。总結一句话只要它与污水类似,它是适用的所以你不必担心问题的范围。黑臭河道治理是近年来发展的一种新型的利用废水中杂质颗粒嘚磁性进行分离的水处理技术对于水中非磁性或弱磁性的颗粒,黑臭河道治理利用磁性接种技术可使它们具有磁性。磁分离技术应用於废水处理有三种方法直接磁分离法间接磁分离法和微生物磁分离法黑臭河道治理厂家表示目前研究的磁性化技术主要包括磁性团聚技術铁盐共沉技术铁粉法铁氧体法等,具有代表性的磁分离设备是圆盘磁分离器和高梯度磁过滤器但多年来,由于种种原因磁分离技术┅直处于实验室研究阶段。黑臭河道治理设备能够有效的处理污水中的固体悬浮物总磷化学需氧量五日生化需氧量等相较于现有的污水處理技术,其处理污染物的种类更加广泛净化效率更高。稀土永磁产生的磁力可达其自身重力的00倍黑臭河道治理设备在秒内完成对水Φ磁性物的吸附分离;在冶金行业,利用磁力吸附去除冶金废水中的铁磁性悬浮物净化水体,整个流程只需min;黑臭河道治理厂家表示对於景观河道矿井水等非磁性悬浮物污水有较好处理效果;磁性介质与水污染物分离后循环使用磁性介质循环利用率≥;非磁性污泥含水率低,不需要浓缩处理可直接进入污泥脱水机进行脱水。黑臭河道治理设备厂家_必源环保超磁分离污水净化技术优势一处理量大占地尐超快的固液分离速度,使设备占地远小于传统方法总体占地少/以上。在同等占地条件下处理水量远大于传统沉淀分离方法。单台设備大处理能力00m/h冶金废水特别适用于悬浮物为主要污染物的大流量废水净化。二工艺流程短处理效果好适应悬浮物浓度范围广,而出水沝质优于高密澄清解决了漏渣跑渣问题,水质优于其它类型的磁盘机进磁盘出泥浓度高,脱水前不需要浓缩处理进水SS≤00mg/L,出水SS≤0mg/L低可达0mg/L;油≤mg/L。三黑臭河道治理项目总投资省设备投资略高于传统方法但由于大量节省占地和构筑物,总投资低磁分离主设备投资也低于传统平流式磁盘机。四黑臭河道治理施工周期短以磁分离设备为主整个工艺构筑物少,项目建设工期短从设备加工到现场正常运荇一般不超过个月。五黑臭河道治理运行维护简单成本低从预处理到出水污泥脱水全过程可自动控制,运行维护工作量很小全新的磁盤动态梯度磁路设计,改变传统磁盘机的刮渣卸渣方式备品备件采购和维护费用大大降低。磁分离设备核心部件磁盘的焊缝磨损小正瑺使用寿命更长。六黑臭河道治理工艺成熟技术先进国内外,磁分离净化废水技术的工程应用超过0年工艺成熟可靠。新一代HRMD磁分离技術集数项国家发明和新型开发而成,并经工程运行检验实现了先进性经济性可靠性的良好结合。第三代污水处理技术如何从实验室走姠产业化-北极星水处理网设为首页加入收藏新闻新闻产品企业水处理市政污水工业废水农村污水污泥黑臭水体海水淡化海绵城市再生水荇业应用火电钢铁焦化电镀印染石化纺织制药渗滤液其他综合资讯要闻政策技术市场项目招标评论更多名企访谈国际设备网数据会展报道囚物管理您当前的位置北极星水处理网工业废水>正文第三代污水处理技术如何从实验室走向产业化。北极星水处理网来源中国科技网作者林莉君0//0我要投稿所属频道水处理关键词污水处理技术MBR大齐科技北极星水处理网讯我们这项技术在污水处理领域取得了突破性进展性能超過国外同类产品。如果不是有创新的成果转化模式实现优势互补合作共赢,这项成果很可能会沉睡在实验室一家是手握核心技术的国芓号科研院所,一家是致力于污水处理技术服务的高科技公司两年多的时间里,中国科学研究院生态环境研究中心这项获得0多项发明的荿果顺利嫁入北京大齐科技有限公司,并率先在山东胶州市完成技术的示范工程我们这项技术在污水处理领域取得了突破性进展,性能超过国外同类产品如果不是有创新的成果转化模式,实现优势互补合作共赢这项成果很可能会沉睡在实验室。中国科学研究院生态環境研究中心魏源送研究员告诉科技日报记者虽然00万的转让费超出原来的预算,但是我们获得了的独家使用权当前,国家正在大力推動美丽乡村建设污水处理技术市场潜力巨大,加上中科院的品牌效应肯定会成为公司新的盈利增长点。北京大齐科技有限公司董事长孫承革认为这笔钱花得值两家单位是这样相亲的让两家单位联姻的第三代污水处理技术,是中国科学院生态环境研究中心0多年的研究结晶我们从年就着手研发污水处理技术。相继研发了第一代第二代污水处理技术前者虽然耗能低,但是占地大水质不稳定后者虽然水質稳定,但是用到的膜材料价格高寿命低严重阻碍了技术的推广应用。魏源送说00年,第三代污水处理技术立项在国家计划国家自然科学基金的支持下,这项具有自主知识产权的科研成果在污水处理工程结构新型无机有机膜材料制备两大领域的核心技术取得了突破性進展,并获得国家科学进步二等奖和大齐科技接触之前,我们在工程结构方面的中试环节已经完成但是在膜的光接枝聚合技术上,小試还没做魏源送告诉记者。彼时主营业务在医疗器械方面的孙承革,一直在为企业寻求新的投资领域当时医疗领域有一款高科技膜材料,是***转民用产品我想这个膜是不是也能用在污水处理上。朋友推荐我去找研究中心的科技人员做做实验在孙承革的印象中,两家單位就是这样开始相亲的时间是0年。00万聘礼获得独家使用权虽然实验结果证明孙承革看中的膜材料并不适合污水处理,但是在不断的溝通交流中孙承革看到了第三代污水处理技术巨大的市场潜力,提出和研究中心建立合作关系转化这项成果。中科院北京国家技术转迻中心评估后开出了0年00万的转让费。说实话这个数额和我们的心里预期差距太大了,公司的副总甚至跟我说谈不下去不谈了签约前嘚三四个月,孙承革反复思考这笔钱到底值不值我想这笔费用分十年付清,企业还可以承受跟我们签约的都是踏踏实实搞研究的科技囚员,如果小试失败了就当这笔钱支持国家科研发展了,也给企业证明这条技术道路走不通万一成功了,我们就获得了的独家使用权膜技术又不易被模仿,市场潜力太大了这笔投资还是划得来的。0年年研究中心和大齐科技签订了合作技术开发协议0年间,第三代污沝处理技术归两家共同所有市场转化由大齐科技负责。经过共同努力双方在研究中心原有科技成果的基础上,成功开发了我国第三代汙水处理技术新型低能耗一体化MBR污水处理成套装备及远程控制系统将第二代常规MBR脱氮除磷的厌氧缺氧好氧三池合一,而且也把处理一吨汙水的耗电量降到请将#换成@北极星环保网声明此资讯系转载自北极星环保网合作媒体或互联网其它网站北极星环保网登载此文出于传递哽多信息之目的,并不意味着赞同其观点或证实其描述文章内容仅供参考。微信号hbhbbjx北极星水处理网订阅号聚焦水处理行业多维度解读荇业发展。全产业链追踪行业人的必备。今日热点关注农业农村污染治理最新全国个省份最大规模污水处理厂大盘点。广东省农村生活污水处理标准解读及案例津沽污水处理厂如何应对高标准的难点做好污水处理厂的安全工作你需要知道这几点。月东莞这三个污水处悝厂负荷率垫底原因是…….亿石家庄市无极县污水处理一体化PPP项目招标城发环境等家入围漯河市马沟污水处理工程二期聚丙烯酰胺都在哪些领域应用。大连市污水处理厂运营项目总数0座最前沿的生物脱氮工艺汇总解读|上海市农村生活污水处理设施水污染物排放标准三达膜IPO过会或成为科创板净水膜材料第一股企业风采展示启迪环境桑德集团解除质押.万股及质押0万股兴源环境终止水务一体化PPP项目惊鸿一瞥即將成立的江苏省环保集团与PPP的不解之缘深康佳A拟在烟台投资建设环保科技小镇项目诚邦股份签订.亿元污水治理提标改造PPP项目施工合同鹏鷂环保就阿什河污水处理厂工程及公滨污水处理厂工程分别签订特许经营协议国祯环保董事长李泓萱辞职0年薪酬为万元博天环境陷借款纠紛逾000万资金被扣划维尔利及部分子公司拟与浙商银行开展不超.亿元资产池业务贵州贵水投资中标清镇市农村环境综合整治PPP项目更多热闻推薦污泥处置行业六大限值两大分类国标汇总。0这些涉水上市公司换帅董事长+总经理PPP狂飙突进后想说爱你不容易污水处理厂冬季运营管理掱册|通用版新闻排行榜今日本周本月生态环保市场发展现状海绵城市规划生态修复市场规模矿山恢复治理水土保持及生态工程投资发展汾析电镀园区规划方案干货分享|什么是内回流。北京桑德环境工程有限公司中标的金湖县PPP项目重新启动招标惊鸿一瞥即将成立的江苏省环保集团与PPP的不解之缘含油废水处理工艺.元/吨联泰环保联合体预中标广东省汕头市西区污水处理厂及配套管网PPP项目第二次海绵城市来了雨沝收费还会远吗。煤化工废水处理技术进展及发展方向四川省德阳市污泥&餐厨垃圾处理一期工程项目进展新发现氧还原催化剂进展更高的功率密度与稳定性如何理解未按规定设置排放口深康佳A拟在烟台投资建设环保科技小镇项目环保PPP“有毒”怎么解。专家地方财政付费鈈可持续须建立受益者付费机制启迪环境桑德集团解除质押.万股及质押0万股中国工程院0年院士增选结果公布环境与轻纺工程学部人当选東方电气成功召开钢铁焦化行业节能环保新产品新技术交流会0前三季度环保行业盈利变化影响因素现金流十三五期间环保产业投资及细分領域投资机遇分析0前三季环保行业经营情况及各板块情况00年环保行业总产值及行业发展趋势分析0年中国及各省市环保产业政策汇总分析支歭力度不断加大政策红利逐步显现贵州省0年第二批重大民间投资项目工程包和第一批重点PPP项目工程包中国建筑业协会公示0~0年度第二批中國建设工程鲁班奖获奖名单。四项环保工程获此殊荣中国安能集团首届领导班子就职。大全资子公司即将全面亮相博天环境近日麻烦不斷蒙眼狂奔后昔日龙头如何重新崛起正式稿。《国家鼓励的工业节水工艺技术和装备目录0年》污水处理污泥处置危废处理等项目汇总简訊高清图例|污水处理微生物图谱独家盘点细数近0年来获得鲁班奖的污水处理工程0年重庆环保有望突破000亿并培养出一批龙头企业长江生态環保集团中标.亿江西省长江最美岸线彭泽段示范项目PPP中国工程院0年院士增选结果公布环境与轻纺工程学部人当选。环保行业产业链梳理0年峩国环保行业在国家政策与财政支持下产值规模将进一步增长东方电气成功召开钢铁焦化行业节能环保新产品新技术交流会0前三季度环保荇业盈利变化影响因素现金流十三五期间环保产业投资及细分领域投资机遇分析启迪环境终止参与两PPP项目两大项目大起底。0年中国水务荇业竞争格局与发展趋势分析智慧水务标准化建设呼之欲出工业园区污水处理研究报告启迪环境半个月连续终止三PPP项目究竟怎么了工业園区环境污染第三方治理典型案例第二批固废焚烧污泥处理危废处置项目推荐一览今年这些水务企业很缺钱。湖南省洞庭湖水环境综合治悝规划实施方案0—0年0前三季环保行业经营情况及各板块情况00年环保行业总产值及行业发展趋势分析农村污水处理市场“蓝海”还是“红海”更多水处理最新要闻泉州首部生态环境保护地方实体法规出台如何理解未按规定设置排放口。含油废水处理工艺干货分享|什么是内回鋶新发现氧还原催化剂进展更高的功率密度与稳定性.元/吨。联泰环保联合体预中标广东省汕头市西区污水处理厂及配套管网PPP项目第二次㈣川省德阳市污泥&餐厨垃圾处理一期工程项目进展杭州萧山临江水处理厂扩建工程构筑物主体结构通过验收黑龙江省百大项目塔河县污水處理厂升级改造工程竣工煤化工废水处理技术进展及发展方向更多独家视角汇鸿集团拟.亿参与成立江苏省环保集团外贸龙头的转型发展之蕗最长停窑个月。十四个省自治区水泥企业错峰生产时间一览中国工程院水环境领域新科院士都有谁江苏省环保集团将成立。扒一扒各省的环保集团你知道几个山东公示第二批拟认定化工重点监控点附首批名单独家盘点细数近0年来获得鲁班奖的污水处理工程。博天环境近日麻烦不断蒙眼狂奔后昔日龙头如何重新崛起推荐收藏。国家大气领域相关技术规范汇总及分析收藏污泥处置行业六大限值两大汾类国标汇总。水泥超低排放不可不知的三大问题更多推荐专题城镇污水处理提质增效专题报道0年月住房和城乡建设部生态环境部发展妀革委联合印发《城镇污……四川省内江市城镇污水排入排水管网许可管理办法征求意见稿广西0%城市黑臭水体基本完成整治如何选择城镇汙水处理工艺。这里有一份工艺对比图0月起这些水处理新政陆续开始施行你不可不知。十一黄金周在“逛吃逛吃”中悄然溜走虽然我們巴望着祖国母亲能够再过一个阴……珠海“厕所革命”不仅是盖几个厕所那么简单上海市0年度第二批排污许可证核发和管理工作公告水處理界“群星”璀璨丨0青岛国际水大会嘉宾特辑更多环保招聘公告热词检索ABCDEFGHIJKLMNOPQRSTUVWXYZ关于我们|广告服务|营销方案|联系我们|媒体合作/广告服务投稿马奻士0-000会展合作李女士0-000设备采购魏女士0-000版权所有-0北极星环保网运营北京火山动力网络技术有限公司广告总代理北京瀚鹏时代科技发展有限公司京ICP证00号京ICP备0000号-京公网安备0000号电子公告服务专项备案0错误可在服务器上查看具体错误信息站长请点击返回上一级>>0错误可在服务器上查看具體错误信息站长请点击返回上一级>>

}

主存(RAM) 是一件非常重要的资源必須要认真对待内存。虽然目前大多数内存的增长速度要比 IBM 7094 要快的多但是,程序大小的增长要比内存的增长还快很多不管存储器有多大,程序大小的增长速度比内存容量的增长速度要快的多下面我们就来探讨一下操作系统是如何创建内存并管理他们的。

经过多年的研究發现科学家提出了一种 分层存储器体系(memory hierarchy),下面是分层体系的分类:

位于顶层的存储器速度最快但是相对容量最小,成本非常高层级結构向下,其访问速度会变慢但是容量会变大,相对造价也就越便宜(所以个人感觉相对存储容量来说访问速度是更重要的)。

操作系统中管理内存层次结构的部分称为内存管理器(memory manager)它的主要工作是有效的管理内存,记录哪些内存是正在使用的在进程需要时分配内存鉯及在进程完成时回收内存。所有现代操作系统都提供内存管理

下面我们会对不同的内存管理模型进行探讨,从简单到复杂由于最低級别的缓存是由硬件进行管理的,所以我们主要探讨主存模型和如何对主存进行管理

最简单的存储器抽象是无存储器。早期大型计算机(20 世纪 60 年代之前)小型计算机(20 世纪 70 年代之前)和个人计算机(20 世纪 80 年代之前)都没有存储器抽象。每一个程序都直接访问物理内存當一个程序执行如下命令:

计算机会把位置为 1000 的物理内存中的内容移到 REGISTER1 中。因此呈现给程序员的内存模型就是物理内存内存地址从 0 开始箌内存地址的最大值中,每个地址中都会包含一个 8 位位数的内存单元

所以这种情况下的计算机不可能会有两个应用程序同时在内存中。洳果第一个程序向内存地址 2000 的这个位置写入了一个值那么此值将会替换第二个程序 2000 位置上的值,所以同时运行两个应用程序是行不通嘚,两个程序会立刻崩溃

不过即使存储器模型就是物理内存,还是存在一些可变体的下面展示了三种变体:

中的模型一般用于掌上电腦或者是嵌入式系统中。第三种模型就应用在早期个人计算机中了ROM 系统中的一部分成为 BIOS (Basic Input Output System)。模型 a  和 c 的缺点是用户程序中的错误可能会破坏操作系统可能会导致灾难性的后果。

按照这种方式组织系统时通常同一个时刻只能有一个进程正在运行。一旦用户键入了一个命令操作系统就把需要的程序从磁盘复制到内存中并执行;当进程运行结束后,操作系统在用户终端显示提示符并等待新的命令收到新的命囹后,它把新的程序装入内存覆盖前一个程序。

在没有存储器抽象的系统中实现并行性一种方式是使用多线程来编程由于同一进程中嘚多线程内部共享同一内存映像,那么实现并行也就不是问题了但是这种方式却并没有被广泛采纳,因为人们通常希望能够在同一时间內运行没有关联的程序而这正是线程抽象所不能提供的。

但是即便没有存储器抽象,同时运行多个程序也是有可能的操作系统只需偠把当前内存中所有内容保存到磁盘文件中,然后再把程序读入内存即可只要某一时刻内存只有一个程序在运行,就不会有冲突的情况發生

在额外特殊硬件的帮助下,即使没有交换功能也可以并行的运行多个程序。IBM 360 的早期模型就是这样解决的

System/360是 IBM 在1964年4月7日,推出的划時代的大型电脑这一系列是世界上首个指令集可兼容计算机。

在 IBM 360 中内存被划分为 2KB 的区域块,每块区域被分配一个 4 位的保护键保护键存储在 CPU 的特殊寄存器(SFR)中。一个内存为 1 MB 的机器只需要 512 个这样的 4 位寄存器容量总共为 256 字节 (这个会算吧) PSW(Program Status Word, 程序状态字)中有一个 4 位码。一个运行中嘚进程如果访问键与其 PSW 中保存的码不同360 硬件会捕获这种情况。因为只有操作系统可以修改保护键这样就可以防止进程之间、用户进程囷操作系统之间的干扰。

这种解决方式是有一个缺陷如下所示,假设有两个程序每个大小各为 16 KB。

从图上可以看出这是两个不同的 16KB 程序的装载过程,a 程序首先会跳转到地址 24那里是一条 MOV 指令,然而 b 程序会首先跳转到地址 28地址 28 是一条 CMP 指令。这是两个程序被先后加载到内存中的情况假如这两个程序被同时加载到内存中并且从 0 地址处开始执行,内存的状态就如上面 c 图所示程序装载完成开始运行,第一个程序首先从 0 地址处开始运行执行 JMP 24 指令,然后依次执行后面的指令(许多指令没有画出)一段时间后第一个程序执行完毕,然后开始执荇第二个程序第二个程序的第一条指令是 28,这条指令会使程序跳转到第一个程序的 ADD 处而不是事先设定好的跳转指令 CMP,由于这种不正确訪问可能会造成程序崩溃。

上面两个程序的执行过程中有一个核心问题那就是都引用了绝对物理地址,这不是我们想要看到的我们想要的是每一个程序都会引用一个私有的本地地址。IBM 360 在第二个程序装载到内存中的时候会使用一种称为 静态重定位(static relocation)的技术来修改它它的笁作流程如下:当一个程序被加载到 16384 地址时,常数 16384 被加到每一个程序地址上(所以 JMP 28会变为JMP 16412 )虽然这个机制在不出错误的情况下是可行的,但这不是一种通用的解决办法同时会减慢装载速度。更近一步来讲它需要所有可执行程序中的额外信息,以指示哪些包含(可重定位)地址哪些不包含(可重定位)地址。毕竟上图 b 中的 JMP 28 可以被重定向(被修改),而类似 MOV

一种存储器抽象:地址空间

把物理内存暴露給进程会有几个主要的缺点:第一个问题是如果用户程序可以寻址内存的每个字节,它们就可以很容易的破坏操作系统从而使系统停圵运行(除非使用 IBM 360 那种 lock-and-key 模式或者特殊的硬件进行保护)。即使在只有一个用户进程运行的情况下这个问题也存在。

第二点是这种模型想要运行多个程序是很困难的(如果只有一个 CPU 那就是顺序执行)。在个人计算机上一般会打开很多应用程序,比如输入法、电子邮件、瀏览器这些进程在不同时刻会有一个进程正在运行,其他应用程序可以通过鼠标来唤醒在系统中没有物理内存的情况下很难实现。

如果要使多个应用程序同时运行在内存中必须要解决两个问题:保护和 重定位。我们来看 IBM 360 是如何解决的:第一种解决方式是用保护密钥标記内存块并将执行过程的密钥与提取的每个存储字的密钥进行比较。这种方式只能解决第一种问题(破坏操作系统)但是不能解决多進程在内存中同时运行的问题。

还有一种更好的方式是创造一个存储器抽象:地址空间(the address space)就像进程的概念创建了一种抽象的 CPU 来运行程序,哋址空间也创建了一种抽象内存供程序使用地址空间是进程可以用来寻址内存的地址集。每个进程都有它自己的地址空间独立于其他進程的地址空间,但是某些进程会希望可以共享地址空间

基址寄存器和变址寄存器

最简单的办法是使用动态重定位(dynamic relocation)技术,它就是通过一種简单的方式将每个进程的地址空间映射到物理内存的不同区域从 CDC 6600(世界上最早的超级计算机)到 Intel 8088(原始 IBM PC 的核心)所使用的经典办法是给每个 CPU 配置两个特殊硬件寄存器,通常叫做基址寄存器(basic register)和变址寄存器(limit register)当使用基址寄存器和变址寄存器时,程序会装载到内存中的连续位置并且在裝载期间无需重定位当一个进程运行时,程序的起始物理地址装载到基址寄存器中程序的长度则装载到变址寄存器中。在上图 c 中当┅个程序运行时,装载到这些硬件寄存器中的基址和变址寄存器的值分别是 0 和 16384当第二个程序运行时,这些值分别是 16384 和 32768如果第三个 16 KB 的程序直接装载到第二个程序的地址之上并且运行,这时基址寄存器和变址寄存器的值会是 32768 和 16384那么我们可以总结下

  • 基址寄存器:存储数据内存的起始位置
  • 变址寄存器:存储应用程序的长度。

每当进程引用内存以获取指令或读取、写入数据时CPU 都会自动将基址值添加到进程生成嘚地址中,然后再将其发送到内存总线上同时,它检查程序提供的地址是否大于或等于变址寄存器 中的值如果程序提供的地址要超过變址寄存器的范围,那么会产生错误并中止访问这样,对上图 c 中执行 JMP 28 这条指令后硬件会把它解释为 JMP 16412,所以程序能够跳到 CMP 指令过程如丅:

使用基址寄存器和变址寄存器是给每个进程提供私有地址空间的一种非常好的方法,因为每个内存地址在送到内存之前都会先加上基址寄存器的内容。在很多实际系统中对基址寄存器和变址寄存器都会以一定的方式加以保护,使得只有操作系统可以修改它们在 CDC 6600 中僦提供了对这些寄存器的保护,但在 Intel 8088 中则没有甚至没有变址寄存器。但是Intel 8088 提供了许多基址寄存器,使程序的代码和数据可以被独立的偅定位但是对于超出范围的内存引用没有提供保护。

所以你可以知道使用基址寄存器和变址寄存器的缺点在每次访问内存时,都会进荇 ADD 和 CMP 运算CMP 指令可以执行的很快,但是加法就会相对慢一些除非使用特殊的加法电路,否则加法因进位传播时间而变慢

如果计算机的粅理内存足够大来容纳所有的进程,那么之前提及的方案或多或少是可行的但是实际上,所有进程需要的 RAM 总容量要远远高于内存的容量在 Windows、OS X、或者 Linux 系统中,在计算机完成启动(Boot)后大约有 50 - 100 个进程随之启动。例如当一个 Windows 应用程序被安装后,它通常会发出命令以便在後续系统启动时,将启动一个进程这个进程除了检查应用程序的更新外不做任何操作。一个简单的应用程序可能会占用 5 - 10MB 的内存其他后囼进程会检查电子邮件、网络连接以及许多其他诸如此类的任务。这一切都会发生在第一个用户启动之前如今,像是 Photoshop 这样的重要用户应鼡程序仅仅需要 500 MB 来启动但是一旦它们开始处理数据就需要许多 GB 来处理。从结果上来看将所有进程始终保持在内存中需要大量内存,如果内存不足则无法完成。

所以针对上面内存不足的问题提出了两种处理方式:最简单的一种方式就是交换(swapping)技术,即把一个进程完整的調入内存然后再内存中运行一段时间,再把它放回磁盘空闲进程会存储在磁盘中,所以这些进程在没有运行时不会占用太多内存另外一种策略叫做虚拟内存(virtual memory),虚拟内存技术能够允许应用程序部分的运行在内存中下面我们首先先探讨一下交换

刚开始的时候,只有进程 A 茬内存中然后从创建进程 B 和进程 C 或者从磁盘中把它们换入内存,然后在图 d 中A 被换出内存到磁盘中,最后 A 重新进来因为图 g 中的进程 A 现茬到了不同的位置,所以在装载过程中需要被重新定位或者在交换程序时通过软件来执行;或者在程序执行期间通过硬件来重定位。基址寄存器和变址寄存器就适用于这种情况

交换在内存创建了多个 空闲区(hole),内存会把所有的空闲区尽可能向下移动合并成为一个大的空闲區这项技术称为内存紧缩(memory compaction)。但是这项技术通常不会使用因为这项技术回消耗很多 CPU 时间。例如在一个 16GB 内存的机器上每 8ns 复制 8 字节,它紧縮全部的内存大约要花费 16s

有一个值得注意的问题是,当进程被创建或者换入内存时应该为它分配多大的内存如果进程被创建后它的大尛是固定的并且不再改变,那么分配策略就比较简单:操作系统会准确的按其需要的大小进行分配

但是如果进程的 data segment 能够自动增长,例如通过动态分配堆中的内存,肯定会出现问题这里还是再提一下什么是 data segment 吧。从逻辑层面操作系统把数据分成不同的段(不同的区域)来存储:

又称文本段用来存放指令,运行代码的一块内存空间

此空间大小在代码运行前就已经确定

内存空间一般属于只读某些架构的代码也尣许可写

在代码段中,也有可能包含一些只读的常数变量例如字符串常量等。

存储初始化的全局变量和初始化的 static 变量

数据段中数据的生存期是随程序持续性(随进程持续性) 随进程持续性:进程创建就存在进程死亡就消失

存储未初始化的全局变量和未初始化的 static 变量

bss 段中數据的生存期随进程持续性

bss 段中的数据一般默认为0

存储的是函数或代码中的局部变量(非 static 变量)

栈的生存期随代码块持续性,代码块运行就给伱分配空间代码块结束,就自动回收空间

存储的是程序运行期间动态分配的 malloc/realloc 的空间

段定义( segment ) 是用来区分或者划分范围区域的意思汇编语訁的 segment 伪指令表示段定义的起始,ends 伪指令表示段定义的结束段定义是一段连续的内存空间

所以内存针对自动增长的区域,会有三种处理方式

  • 如果一个进程与空闲区相邻那么可把该空闲区分配给进程以供其增大。
  • 如果进程相邻的是另一个进程就会有两种处理方式:要么把需要增长的进程移动到一个内存中空闲区足够大的区域,要么把一个或多个进程交换出去已变成生成一个大的空闲区。
  • 如果一个进程在內存中不能增长而且磁盘上的交换区也满了,那么这个进程只有挂起一些空闲空间(或者可以结束该进程)

上面只针对单个或者一小部汾需要增长的进程采用的方式如果大部分进程都要在运行时增长,为了减少因内存区域不够而引起的进程交换和移动所产生的开销一種可用的方法是,在换入或移动进程时为它分配一些额外的内存然而,当进程被换出到磁盘上时应该只交换实际上使用的内存,将额外的内存交换也是一种浪费下面是一种为两个进程分配了增长空间的内存配置。

如果进程有两个可增长的段例如,供变量动态分配和釋放的作为堆(全局变量)使用的一个数据段(data segment)以及存放局部变量与返回地址的一个堆栈段(stack segment),就如图 b 所示在图中可以看到所示进程的堆栈段茬进程所占内存的顶端向下增长,紧接着在程序段后的数据段向上增长当增长预留的内存区域不够了,处理方式就如上面的流程图(data segment 自动增长的三种处理方式)一样了

在进行内存动态分配时,操作系统必须对其进行管理大致上说,有两种监控内存使用的方式

下面我们就来探讨一下这两种使用方式

使用位图方法时内存可能被划分为小到几个字或大到几千字节的分配单元。每个分配单元对应于位图中的一位0 表示空闲, 1 表示占用(或者相反)一块内存区域和其对应的位图如下:

图 a 表示一段有 5 个进程和 3 个空闲区的内存,刻度为内存分配单元阴影区表示空闲(在位图中用 0 表示);图 b 表示对应的位图;图 c 表示用链表表示同样的信息。

分配单元的大小是一个重要的设计因素分配单位越小,位图越大然而,即使只有 4 字节的分配单元32 位的内存也仅仅只需要位图中的 1 位。32n 位的内存需要 n 位的位图所以1 个位图只占鼡了 1/32 的内存。如果选择更大的内存单元位图应该要更小。如果进程的大小不是分配单元的整数倍那么在最后一个分配单元中会有大量嘚内存被浪费。

位图提供了一种简单的方法在固定大小的内存中跟踪内存的使用情况因为位图的大小取决于内存和分配单元的大小。这種方法有一个问题是当决定为把具有 k 个分配单元的进程放入内存时,内容管理器(memory manager) 必须搜索位图在位图中找出能够运行 k 个连续 0 位的串。茬位图中找出制定长度的连续 0 串是一个很耗时的操作这是位图的缺点。(可以简单理解为在杂乱无章的数组中找出具有一大长串空闲嘚数组单元)

另一种记录内存使用情况的方法是,维护一个记录已分配内存段和空闲内存段的链表段会包含进程或者是两个进程的空闲區域。可用上面的图 c 来表示内存的使用情况链表中的每一项都可以代表一个 空闲区(H) 或者是进程(P)的起始标志,长度和下一个链表项的位置

在这个例子中,段链表(segment list)是按照地址排序的这种方式的优点是,当进程终止或被交换时更新列表很简单。一个终止进程通常有两个邻居(除了内存的顶部和底部外)相邻的可能是进程也可能是空闲区,它们有四种组合方式

当按照地址顺序在链表中存放进程和空闲区時,有几种算法可以为创建的进程(或者从磁盘中换入的进程)分配内存我们先假设内存管理器知道应该分配多少内存,最简单的算法昰使用 首次适配(first fit)内存管理器会沿着段列表进行扫描,直到找个一个足够大的空闲区为止除非空闲区大小和要分配的空间大小一样,否則将空闲区分为两部分一部分供进程使用;一部分生成新的空闲区。首次适配算法是一种速度很快的算法因为它会尽可能的搜索链表。

首次适配的一个小的变体是 下次适配(next fit)它和首次匹配的工作方式相同,只有一个不同之处那就是下次适配在每次找到合适的空闲区时就會记录当时的位置以便下次寻找空闲区时从上次结束的地方开始搜索,而不是像首次匹配算法那样每次都会从头开始搜索Bays(1997) 证明了下次算法的性能略低于首次匹配算法。

另外一个著名的并且广泛使用的算法是 最佳适配(best fit)最佳适配会从头到尾寻找整个链表,找出能够容纳进程的最小空闲区最佳适配算法会试图找出最接近实际需要的空闲区,以最好的匹配请求和可用空闲区而不是先一次拆分一个以后可能會用到的大的空闲区。比如现在我们需要一个大小为 2 的块那么首次匹配算法会把这个块分配在位置 5 的空闲区,而最佳适配算法会把该块汾配在位置为 18 的空闲区如下:

那么最佳适配算法的性能如何呢?最佳适配会遍历整个链表所以最佳适配算法的性能要比首次匹配算法差。但是令人想不到的是最佳适配算法要比首次匹配和下次匹配算法浪费更多的内存,因为它会产生大量无用的小缓冲区首次匹配算法生成的空闲区会更大一些。

最佳适配的空闲区会分裂出很多非常小的缓冲区为了避免这一问题,可以考虑使用 最差适配(worst fit) 算法即总是汾配最大的内存区域(所以你现在明白为什么最佳适配算法会分裂出很多小缓冲区了吧),使新分配的空闲区比较大从而可以继续使用汸真程序表明最差适配算法也不是一个好主意。

如果为进程和空闲区维护各自独立的链表那么这四个算法的速度都能得到提高。这样這四种算法的目标都是为了检查空闲区而不是进程。但这种分配速度的提高的一个不可避免的代价是增加复杂度和减慢内存释放速度因為必须将一个回收的段从进程链表中删除并插入空闲链表区。

如果进程和空闲区使用不同的链表那么可以按照大小对空闲区链表排序,鉯便提高最佳适配算法的速度在使用最佳适配算法搜索由小到大排列的空闲区链表时,只要找到一个合适的空闲区则这个空闲区就是能容纳这个作业的最小空闲区,因此是最佳匹配因为空闲区链表以单链表形式组织,所以不需要进一步搜索空闲区链表按大小排序时,首次适配算法与最佳适配算法一样快而下次适配算法在这里毫无意义。

另一种分配算法是 快速适配(quick fit) 算法它为那些常用大小的空闲区維护单独的链表。例如有一个 n 项的表,该表的第一项是指向大小为 4 KB 的空闲区链表表头指针第二项是指向大小为 8 KB 的空闲区链表表头指针,第三项是指向大小为 12 KB 的空闲区链表表头指针以此类推。比如 21 KB 这样的空闲区既可以放在 20 KB 的链表中也可以放在一个专门存放大小比较特別的空闲区链表中。

快速匹配算法寻找一个指定代销的空闲区也是十分快速的但它和所有将空闲区按大小排序的方案一样,都有一个共哃的缺点即在一个进程终止或被换出时,寻找它的相邻块并查看是否可以合并的过程都是非常耗时的如果不进行合并,内存将会很快汾裂出大量进程无法利用的小空闲区

尽管基址寄存器和变址寄存器用来创建地址空间的抽象,但是这有一个其他的问题需要解决:管理軟件的不断增大(managing bloatware)虽然内存的大小增长迅速,但是软件的大小增长的要比内存还要快在 1980 年的时候,许多大学用一台 4 MB 的 VAX 计算机运行分时操莋系统供十几个用户同时运行。现在微软公司推荐的 64 位 Windows 8 系统至少需要 2 GB 内存而许多多媒体的潮流则进一步推动了对内存的需求。

这一发展的结果是需要运行的程序往往大到内存无法容纳,而且必然需要系统能够支持多个程序同时运行即使内存可以满足其中单独一个程序的需求,但是从总体上来看内存仍然满足不了日益增长的软件的需求(感觉和xxx和xxx 的矛盾很相似)而交换技术并不是一个很有效的方案,在一些中小应用程序尚可使用交换如果应用程序过大,难道还要每次交换几 GB 的内存这显然是不合适的,一个典型的 SATA 磁盘的峰值传输速度高达几百兆/秒这意味着需要好几秒才能换出或者换入一个 1 GB 的程序。

SATA(Serial ATA)硬盘又称串口硬盘,是未来 PC 机硬盘的趋势已基本取代了傳统的 PATA 硬盘。

那么还有没有一种有效的方式来应对呢有,那就是使用 虚拟内存(virtual memory)虚拟内存的基本思想是,每个程序都有自己的地址空间这个地址空间被划分为多个称为页面(page)的块。每一页都是连续的地址范围这些页被映射到物理内存,但并不是所有的页都必须在内存中財能运行程序当程序引用到一部分在物理内存中的地址空间时,硬件会立刻执行必要的映射当程序引用到一部分不在物理内存中的地址空间时,由操作系统负责将缺失的部分装入物理内存并重新执行失败的指令

在某种意义上来说,虚拟地址是对基址寄存器和变址寄存器的一种概述8088 有分离的基址寄存器(但不是变址寄存器)用于放入 text 和 data 。

使用虚拟内存可以将整个地址空间以很小的单位映射到物理内存中,而不是仅仅针对 text 和 data 区进行重定位下面我们会探讨虚拟内存是如何实现的。

虚拟内存很适合在多道程序设计系统中使用许多程序嘚片段同时保存在内存中,当一个程序等待它的一部分读入内存时可以把 CPU 交给另一个进程使用。

大部分使用虚拟内存的系统中都会使用┅种 分页(paging) 技术在任何一台计算机上,程序会引用使用一组内存地址当程序执行

这条指令时,它会把内存地址为 1000 的内存单元的内容复制箌 REG 中(或者相反这取决于计算机)。地址可以通过索引、基址寄存器、段寄存器或其他方式产生

这些程序生成的地址被称为 虚拟地址(virtual addresses) 並形成虚拟地址空间(virtual address space),在没有虚拟内存的计算机上系统直接将虚拟地址送到内存中线上,读写操作都使用同样地址的物理内存在使用虛拟内存时,虚拟地址不会直接发送到内存总线上相反,会使用 MMU(Memory Management Unit) 内存管理单元把虚拟地址映射为物理内存地址像下图这样。

下面这幅圖展示了这种映射是如何工作的

在这个例子中我们可能有一个 16 位地址的计算机,地址从 0 - 64 K - 1这些是虚拟地址。然而只有 32 KB 的物理地址所以雖然可以编写 64 KB 的程序,但是程序无法全部调入内存运行在磁盘上必须有一个最多 64 KB 的程序核心映像的完整副本,以保证程序片段在需要时被调入内存

虚拟地址空间由固定大小的单元组成,这种固定大小的单元称为 页(pages)而相对的,物理内存中也有固定大小的物理单元称为 頁框(page frames)。页和页框的大小一样在上面这个例子中,页的大小为 4KB 但是实际的使用过程中页的大小范围可能是 512 字节 - 1G 字节的大小。对应于 64 KB 的虚擬地址空间和 32 KB 的物理内存可得到 16 个虚拟页面和 8 个页框。RAM 和磁盘之间的交换总是以整个页为单元进行交换的

程序试图访问地址时,例如執行下面这条指令

 会将虚拟地址 0 送到 MMUMMU 看到虚拟地址落在页面 0 (0 - 4095),根据其映射结果这一页面对应的页框 2 (8192 - 12287),因此 MMU 把地址变换为 8192 并紦地址 8192 送到总线上。内存对 MMU 一无所知它只看到一个对 8192 地址的读写请求并执行它。MMU 从而有效的把所有虚拟地址 0 - 4095 映射到了 8192 - 12287 的物理地址同样嘚,指令

虚拟地址 8192(在虚拟页 2 中)被映射到物理地址 24576(在物理页框 6 中)上

通过恰当的设置 MMU,可以把 16 个虚拟页面映射到 8 个页框中的任何一個但是这并没有解决虚拟地址空间比物理内存大的问题。

上图中有 8 个物理页框于是只有 8 个虚拟页被映射到了物理内存中,在上图中用 X 號表示的其他页面没有被映射在实际的硬件中,会使用一个 在/不在(Present/absent bit)位记录页面在内存中的实际存在情况

当程序访问一个未映射的页面,如执行指令

 将会发生什么情况呢虚拟页面 8 (从 32768 开始)的第 12 个字节所对应的物理地址是什么?MMU 注意到该页面没有被映射(在图中用 X 号表礻)于是 CPU 会陷入(trap)到操作系统中。这个陷入称为 缺页中断(page fault) 或者是 缺页错误操作系统会选择一个很少使用的页并把它的内容写入磁盘(如果它不在磁盘上)。随后把需要访问的页面读到刚才回收的页框中修改映射关系,然后重新启动引起陷入的指令有点不太好理解,举個例子来看一下 

例如,如果操作系统决定放弃页框 1那么它将把虚拟机页面 8 装入物理地址 4096,并对 MMU 映射做两处修改首先,它要将虚拟页Φ的 1 表项标记为未映射使以后任何对虚拟地址 4096 - 8191 的访问都将导致陷入。随后把虚拟页面 8 的表项的叉号改为 1因此在引起陷阱的指令重新启動时,它将把虚拟地址 32780 映射为物理地址(4096 + 12)

下面查看一下 MMU 的内部构造以便了解它们是如何工作的,以及了解为什么我们选用的页大小都昰 2 的整数次幂下图我们可以看到一个虚拟地址的例子

虚拟地址 8196 (二进制 0100)用上面的页表映射图所示的 MMU 映射机制进行映射,输入的 16 位虚拟哋址被分为 4 位的页号和 12 位的偏移量4 位的页号可以表示 16 个页面,12 位的偏移可以为一页内的全部 4096 个字节

可用页号作为页表(page table) 的索引,以得出對应于该虚拟页面的页框号如果在/不在位则是 0 ,则引起一个操作系统陷入如果该位是 1,则将在页表中查到的页框号复制到输出寄存器嘚高 3 位中再加上输入虚拟地址中的低 12 位偏移量。如此就构成了 15 位的物理地址输出寄存器的内容随即被作为物理地址送到总线。

在上面這个简单的例子中虚拟地址到物理地址的映射可以总结如下:虚拟地址被分为虚拟页号(高位部分)和偏移量(低位部分)。例如对於 16 位地址和 4 KB 的页面大小,高 4 位可以指定 16 个虚拟页面中的一页而低 12 位接着确定了所选页面中的偏移量(0-4095)。

虚拟页号可作为页表的索引用來找到虚拟页中的内容由页表项可以找到页框号(如果有的话)。然后把页框号拼接到偏移量的高位端以替换掉虚拟页号,形成物理哋址

因此,页表的目的是把虚拟页映射到页框中从数学上说,页表是一个函数它的参数是虚拟页号,结果是物理页框号

通过这个函数可以把虚拟地址中的虚拟页转换为页框,从而形成物理地址

下面我们探讨一下页表项的具体结构,上面你知道了页表项的大致构成是由页框号和在/不在位构成的,现在我们来具体探讨一下页表项的构成

页表项的结构是与机器相关的但是不同机器上的页表项大致相哃。上面是一个页表项的构成不同计算机的页表项可能不同,但是一般来说都是 32 位的页表项中最重要的字段就是页框号(Page frame number)。毕竟页表箌页框最重要的一步操作就是要把此值映射过去。下一个比较重要的就是在/不在位如果此位上的值是 1,那么页表项是有效的并且能够被使用如果此值是 0 的话,则表示该页表项对应的虚拟页面不在内存中访问该页面会引起一个缺页异常(page fault)。

保护位(Protection) 告诉我们哪一种访问是允許的啥意思呢?最简单的表示形式是这个域只有一位0 表示可读可写,1 表示的是只读

修改位(Modified) 和 访问位(Referenced) 会跟踪页面的使用情况。当一个頁面被写入时硬件会自动的设置修改位。修改位在页面重新分配页框时很有用如果一个页面已经被修改过(即它是 脏 的),则必须把咜写回磁盘如果一个页面没有被修改过(即它是 干净的),那么重新分配时这个页框会被直接丢弃因为磁盘上的副本仍然是有效的。這个位有时也叫做 脏位(dirty bit)因为它反映了页面的状态。

访问位(Referenced) 在页面被访问时被设置不管是读还是写。这个值能够帮助操作系统在发生缺頁中断时选择要淘汰的页不再使用的页要比正在使用的页更适合被淘汰。这个位在后面要讨论的页面置换算法中作用很大

最后一位用於禁止该页面被高速缓存,这个功能对于映射到设备寄存器还是内存中起到了关键作用通过这一位可以禁用高速缓存。具有独立的 I/O 空间洏不是用内存映射 I/O 的机器来说并不需要这一位。

在深入讨论下面问题之前需要强调一下:虚拟内存本质上是用来创造一个地址空间的抽象,可以把它理解成为进程是对 CPU 的抽象虚拟内存的实现,本质是将虚拟地址空间分解成页并将每一项映射到物理内存的某个页框。洇为我们的重点是如何管理这个虚拟内存的抽象

到现在我们已经虚拟内存(virtual memory) 和 分页(paging) 的基础,现在我们可以把目光放在具体的实现上面了茬任何带有分页的系统中,都会需要面临下面这两个主要问题:

  • 虚拟地址到物理地址的映射速度必须要快
  • 如果虚拟地址空间足够大那么頁表也会足够大

第一个问题是由于每次访问内存都需要进行虚拟地址到物理地址的映射,所有的指令最终都来自于内存并且很多指令也會访问内存中的操作数。

操作数:操作数是计算机指令中的一个组成部分它规定了指令中进行数字运算的量 。操作数指出指令执行的操莋所需要数据的来源操作数是汇编指令的一个字段。比如MOV、ADD 等。

因此每条指令可能会多次访问页表,如果执行一条指令需要 1 ns那么頁表查询需要在 0.2 ns 之内完成,以避免映射成为一个主要性能瓶颈

第二个问题是所有的现代操作系统都会使用至少 32 位的虚拟地址,并且 64 位正茬变得越来越普遍假设页大小为 4 KB,32 位的地址空间将近有 100 万页而  64 位地址空间简直多到无法想象。

对大而且快速的页映射的需要成为构建計算机的一个非常重要的约束就像上面页表中的图一样,每一个表项对应一个虚拟页面虚拟页号作为索引。在启动一个进程时操作系统会把保存在内存中进程页表读副本放入寄存器中。

最后一句话是不是不好理解还记得页表是什么吗?它是虚拟地址到内存地址的映射页表页表是虚拟地址转换的关键组成部分,它是访问内存中数据所必需的在进程启动时,执行很多次虚拟地址到物理地址的转换會把物理地址的副本从内存中读入到寄存器中,再执行这一转换过程

所以,在进程的运行过程中不必再为页表而访问内存。使用这种方法的优势是简单而且映射过程中不需要访问内存缺点是 页表太大时,代价高昂而且每次上下文切换的时候都必须装载整个页表,这樣会造成性能的降低鉴于此,我们讨论一下加速分页机制和处理大的虚拟地址空间的实现方案

我们首先先来一起探讨一下加速分页的问題大部分优化方案都是从内存中的页表开始的。这种设计对效率有着巨大的影响考虑一下,例如假设一条 1 字节的指令要把一个寄存器中的数据复制到另一个寄存器。在不分页的情况下这条指令只访问一次内存,即从内存取出指令有了分页机制后,会因为要访问页表而需要更多的内存访问由于执行速度通常被 CPU 从内存中取指令和数据的速度所限制,这样的话两次访问才能实现一次的访问效果,所鉯内存访问的性能会下降一半在这种情况下,根本不会采用分页机制

什么是 1 字节的指令?我们以 8085 微处理器为例来说明一下在 8085 微处理Φ,一共有 3 种字节指令它们分别是 1-byte(1 字节)、2-byte(2 字节)、3-byte(3 字节),我们分别来说一下: 1-byte:1 字节的操作数和操作码共同以 1 字节表示;操作数是内部寄存器并被编码到指令中;指令需要一个存储位置来将单个寄存器存储在存储位置中。没有操作数的指令也是 1-byte 指令 例如:MOV B,C 、LDAX B、NOP、HLT(这块鈈明白的读者可以自行查阅) 2-byte:  2 字节包括:第一个字节指定的操作码;第二个字节指定操作数;指令需要两个存储器位置才能存储在存储器Φ。 例如 MVI B, 26 H、IN 56 H 3-byte:  在 3 字节指令中第一个字节指定操作码;后面两个字节指定 16 位的地址;第二个字节保存低位地址;第三个字节保存 高位地址。指令需要三个存储器位置才能将单个字节存储在存储器中 例如 LDA 2050 H、JMP 2085 H

大多数程序总是对少量页面进行多次访问,而不是对大量页面进行少量訪问因此,只有很少的页面能够被再次访问而其他的页表项很少被访问。

基于这种设想提出了一种方案,即从硬件方面来解决这个問题为计算机设置一个小型的硬件设备,能够将虚拟地址直接映射到物理地址而不必再访问页表。这种设备被称为转换检测缓冲区(Translation Lookaside Buffer, TLB)囿时又被称为 相联存储器(associate memory) 。

TLB 通常位于 MMU 中包含少量的表项,每个表项都记录了页面的相关信息除了虚拟页号外,其他表项都和页表是一┅对应的

是不是你到现在还是有点不理解什么是 TLB,TLB 其实就是一种内存缓存用于减少访问内存所需要的时间,它就是 MMU 的一部分TLB 会将虚擬地址到物理地址的转换存储起来,通常可以称为地址翻译缓存(address-translation cache)TLB 通常位于 CPU 和 CPU 缓存之间,它与 CPU 缓存是不同的缓存级别下面我们来看一下 TLB 昰如何工作的。

当一个 MMU 中的虚拟地址需要进行转换时硬件首先检查虚拟页号与 TLB 中所有表项进行并行匹配,判断虚拟页是否在 TLB 中如果找箌了有效匹配项,并且要进行的访问操作没有违反保护位的话则将页框号直接从 TLB 中取出而不用再直接访问页表。如果虚拟页在 TLB 中但是违反了保护位的权限的话(比如只允许读但是是一个写指令)则会生成一个保护错误(protection

上面探讨的是虚拟地址在 TLB 中的情况,那么如果虚拟地址不再 TLB 中该怎么办如果 MMU 检测到没有有效的匹配项,就会进行正常的页表查找然后从 TLB 中逐出一个表项然后把从页表中找到的项放在 TLB 中。當一个表项被从 TLB 中清除出将修改位复制到内存中页表项,除了访问位之外其他位保持不变。当页表项从页表装入 TLB 中时所有的值都来洎于内存。

直到现在我们假设每台电脑都有可以被硬件识别的页表,外加一个 TLB在这个设计中,TLB 管理和处理 TLB 错误完全由硬件来完成仅僅当页面不在内存中时,才会发生操作系统的陷入(trap)

在以前,我们上面的假设通常是正确的但是,许多现代的 RISC 机器包括 SPARC、MIPS 和 HP PA,几乎所囿的页面管理都是在软件中完成的

精简指令集计算机或 RISC 是一种计算机指令集,它使计算机的微处理器的每条指令(CPI)周期比复杂指令集計算机(CISC)少

在这些计算机上,TLB 条目由操作系统显示加载当发生 TLB 访问丢失时,不再是由 MMU 到页表中查找并取出需要的页表项而是生成┅个 TLB 失效并将问题交给操作系统解决。操作系统必须找到该页把它从 TLB 中移除(移除页表中的一项),然后把新找到的页放在 TLB 中最后再執行先前出错的指令。然而所有这些操作都必须通过少量指令完成,因为 TLB 丢失的发生率要比出错率高很多

无论是用硬件还是用软件来處理 TLB 失效,常见的方式都是找到页表并执行索引操作以定位到将要访问的页面在软件中进行搜索的问题是保存页表的页可能不在 TLB 中,这將在处理过程中导致其他 TLB 错误改善方法是可以在内存中的固定位置维护一个大的 TLB 表项的高速缓存来减少 TLB 失效。通过首先检查软件的高速緩存操作系统 能够有效的减少 TLB 失效问题。

TLB 软件管理会有两种 TLB 失效问题当一个页访问在内存中而不在 TLB 中时,将产生 软失效(soft miss)那么此时要莋的就是把页表更新到 TLB 中(我们上面探讨的过程),而不会产生磁盘 I/O处理仅仅需要一些机器指令在几纳秒的时间内完成。然而当页本身不在内存中时,将会产生硬失效(hard miss)那么此时就需要从磁盘中进行页表提取,硬失效的处理时间通常是软失效的百万倍在页表结构中查找映射的过程称为 页表遍历(page table walk)。

上面的这两种情况都是理想情况下出现的现象但是在实际应用过程中情况会更加复杂,未命中的情况可能既不是硬失效又不是软失效一些未命中可能更软或更硬(偷笑)。比如如果页表遍历的过程中没有找到所需要的页,那么此时会出现彡种情况:

  • 所需的页面就在内存中但是却没有记录在进程的页表中,这种情况可能是由其他进程从磁盘掉入内存这种情况只需要把页囸确映射就可以了,而不需要在从硬盘调入这是一种软失效,称为 次要缺页错误(minor page fault)
  • 基于上述情况,如果需要从硬盘直接调入页面这就昰严重缺页错误(major page falut)。
  • 还有一种情况是程序可能访问了一个非法地址,根本无需向 TLB 中增加映射此时,操作系统会报告一个 段错误(segmentation fault) 来终止程序只有第三种缺页属于程序错误,其他缺页情况都会被硬件或操作系统以降低程序性能为代价来修复

还记得我们讨论的是什么问题吗(捂脸),可能讨论的太多你有所不知道了我再提醒你一下,上面加速分页过程讨论的是虚拟地址到物理地址的映射速度必须要快的问題还有一个问题是 如果虚拟地址空间足够大,那么页表也会足够大的问题如何处理巨大的虚拟地址空间,下面展开我们的讨论

第一種方案是使用多级页表(multi),下面是一个例子

32 位的虚拟地址被划分为 10 位的 PT1 域10 位的 PT2 域,还有 12 位的 Offset 域因为偏移量是 12 位,所以页面大小是 4KB公有 2^20 佽方个页面。

引入多级页表的原因是避免把全部页表一直保存在内存中不需要的页表就不应该保留。

多级页表是一种分页方案它由两個或多个层次的分页表组成,也称为分层分页级别1(level 1)页面表的条目是指向级别 2(level 2) 页面表的指针,级别2页面表的条目是指向级别 3(level 3) 頁面表的指针依此类推。最后一级页表存储的是实际的信息

下面是一个二级页表的工作过程:

在最左边是顶级页表,它有 1024 个表项对應于 10 位的 PT1 域。当一个虚拟地址被送到 MMU 时MMU 首先提取 PT1 域并把该值作为访问顶级页表的索引。因为整个 4 GB (即 32 位)虚拟地址已经按 4 KB 大小分块所鉯顶级页表中的 1024 个表项的每一个都表示 4M 的块地址范围。

由索引顶级页表得到的表项中含有二级页表的地址或页框号顶级页表的表项 0 指向程序正文的页表,表项 1 指向含有数据的页表表项 1023 指向堆栈的页表,其他的项(用阴影表示)表示没有使用现在把 PT2 域作为访问选定的二級页表的索引,以便找到虚拟页面的对应页框号

针对分页层级结构中不断增加的替代方法是使用 倒排页表(inverted page tables)。采用这种解决方案的有 PowerPC、UltraSPARC 和 Itanium在这种设计中,实际内存中的每个页框对应一个表项而不是每个虚拟页面对应一个表项。

虽然倒排页表节省了大量的空间但是它也囿自己的缺陷:那就是从虚拟地址到物理地址的转换会变得很困难。当进程 n 访问虚拟页面 p 时硬件不能再通过把 p 当作指向页表的一个索引來查找物理页。而是必须搜索整个倒排表来查找某个表项另外,搜索必须对每一个内存访问操作都执行一次而不是在发生缺页中断时執行。

解决这一问题的方式时使用 TLB当发生 TLB 失效时,需要用软件搜索整个倒排页表一个可行的方式是建立一个散列表,用虚拟地址来散列当前所有内存中的具有相同散列值的虚拟页面被链接在一起。如下图所示:

如果散列表中的槽数与机器中物理页面数一样多那么散列表的冲突链的长度将会是 1 个表项的长度,这将会大大提高映射速度一旦页框被找到,新的(虚拟页号物理页框号)就会被装在到 TLB 中。

当发生缺页异常时操作系统会选择一个页面进行换出从而为新进来的页面腾出空间。如果要换出的页面在内存中已经被修改那么必須将其写到磁盘中以使磁盘副本保持最新状态。如果页面没有被修改过并且磁盘中的副本也已经是最新的,那么就不需要进行重写那麼就直接使用调入的页面覆盖需要移除的页面就可以了。

当发生缺页中断时虽然可以随机的选择一个页面进行置换,但是如果每次都选擇一个不常用的页面会提升系统的性能如果一个经常使用的页面被换出,那么这个页面在短时间内又可能被重复使用那么就可能会造荿额外的性能开销。在关于页面的主题上有很多页面置换算法(page replacement algorithms)这些已经从理论上和实践上得到了证明。

需要指出的是页面置换问题在計算机的其他领域中也会出现。例如多数计算机把最近使用过的 32 字节或者 64 字节的存储块保存在一个或多个高速缓存中。当缓存满的时候一些块就被选择和移除。这些块的移除除了花费时间较短外这个问题同页面置换问题完全一样。之所以花费时间较短是因为丢掉的高速缓存可以从内存中获取,而内存没有寻找磁道的时间也不存在旋转延迟

第二个例子是 Web 服务器。服务器会在内存中缓存一些经常使用箌的 Web 页面然而,当缓存满了并且已经引用了新的页面那么必须决定退出哪个 Web 页面。在高速缓存中的 Web 页面不会被修改因此磁盘中的 Web 页媔经常是最新的,同样的考虑也适用在虚拟内存中在虚拟系统中,内存中的页面可能会修改也可能不会修改

下面我们就来探讨一下有哪些页面置换算法。

最优的页面置换算法很容易描述但在实际情况下很难实现它的工作流程如下:在缺页中断发生时,这些页面之一将茬下一条指令(包含该指令的页面)上被引用其他页面则可能要到 10、100 或者 1000 条指令后才会被访问。每个页面都可以用在该页首次被访问前所要执行的指令数作为标记

最优化的页面算法表明应该标记最大的页面。如果一个页面在 800 万条指令内不会被使用另外一个页面在 600 万条指令内不会被使用,则置换前一个页面从而把需要调入这个页面而发生的缺页中断推迟。计算机也像人类一样会把不愿意做的事情尽鈳能的往后拖。

这个算法最大的问题时无法实现当缺页中断发生时,操作系统无法知道各个页面的下一次将在什么时候被访问这种算法在实际过程中根本不会使用。

最近未使用页面置换算法

为了能够让操作系统收集页面使用信息大部分使用虚拟地址的计算机都有两个狀态位,R 和 M来和每个页面进行关联。每当引用页面(读入或写入)时都设置 R写入(即修改)页面时设置 M,这些位包含在每个页表项中就像下面所示:

因为每次访问时都会更新这些位,因此由硬件来设置它们非常重要一旦某个位被设置为 1,就会一直保持 1 直到操作系统丅次来修改此位

如果硬件没有这些位,那么可以使用操作系统的缺页中断和时钟中断机制来进行模拟当启动一个进程时,将其所有的頁面都标记为不在内存;一旦访问任何一个页面就会引发一次缺页中断此时操作系统就可以设置 R 位(在它的内部表中),修改页表项使其指姠正确的页面并设置为 READ ONLY 模式,然后重新启动引起缺页中断的指令如果页面随后被修改,就会发生另一个缺页异常从而允许操作系统設置 M 位并把页面的模式设置为 READ/WRITE。

可以用 R 位和 M 位来构造一个简单的页面置换算法:当启动一个进程时操作系统将其所有页面的两个位都设置为 0。R 位定期的被清零(在每个时钟中断)用来将最近未引用的页面和已引用的页面分开。

当出现缺页中断后操作系统会检查所有的頁面,并根据它们的 R 位和 M 位将当前值分为四类:

  • 第 0 类:没有引用 R没有修改 M
  • 第 1 类:没有引用 R,已修改 M
  • 第 2 类:引用 R 没有修改 M
  • 第 3 类:已被访問 R,已被修改 M

尽管看起来好像无法实现第一类页面但是当第三类页面的 R 位被时钟中断清除时,它们就会发生时钟中断不会清除 M 位,因為需要这个信息才能知道是否写回磁盘中清除 R 但不清除 M 会导致出现一类页面。

NRU(Not Recently Used) 算法从编号最小的非空类中随机删除一个页面此算法隐含的思想是,在一个时钟内(约 20 ms)淘汰一个已修改但是没有被访问的页面要比一个大量引用的未修改页面好NRU 的主要优点是易于理解并且能够有效的实现。

另一种开销较小的方式是使用 FIFO(First-In,First-Out) 算法这种类型的数据结构也适用在页面置换算法中。由操作系统维护一个所有在当前内存中的页面的链表最早进入的放在表头,最新进入的页面放在表尾在发生缺页异常时,会把头部的页移除并且把新的页添加到表尾

還记得缺页异常什么时候发生吗?我们知道应用程序访问内存会进行虚拟地址到物理地址的映射缺页异常就发生在虚拟地址无法映射到粅理地址的时候。因为实际的物理地址要比虚拟地址小很多(参考上面的虚拟地址和物理地址映射图)所以缺页经常会发生。

先进先出頁面可能是最简单的页面替换算法了在这种算法中,操作系统会跟踪链表中内存中的所有页下面我们举个例子看一下(这个算法我刚開始看的时候有点懵逼,后来才看懂我还是很菜)。

  • 初始化的时候没有任何页面,所以第一次的时候会检查页面 1 是否位于链表中没囿在链表中,那么就是 MISS页面1 进入链表,链表的先进先出的方向如图所示
  • 类似的,第二次会先检查页面 2 是否位于链表中没有在链表中,那么页面 2 进入链表状态为 MISS,依次类推
  • 我们来看第四次,此时的链表为 1 2 3第四次会检查页面 2 是否位于链表中,经过检索后发现 2 在链表中,那么状态就是 HIT并不会再进行入队和出队操作,第五次也是一样的
  • 下面来看第六次,此时的链表还是 1 2 3因为之前没有执行进入链表操作,页面 5 会首先进行检查发现链表中没有页面 5 ,则执行页面 5 的进入链表操作页面 2 执行出链表的操作,执行完成后的链表顺序为 2 3 5

苐二次机会页面置换算法

我们上面学到的 FIFO 链表页面有个缺陷,那就是出链和入链并不会进行 check 检查这样就会容易把经常使用的页面置换出詓,为了避免这一问题我们对该算法做一个简单的修改:我们检查最老页面的 R 位,如果是 0 那么这个页面就是最老的而且没有被使用,那么这个页面就会被立刻换出如果 R 位是 1,那么就清除此位此页面会被放在链表的尾部,修改它的装入时间就像刚放进来的一样然后繼续搜索。

这种算法叫做 第二次机会(second chance)算法就像下面这样,我们看到页面 A 到 H 保留在链表中并按到达内存的时间排序。

假设缺页异常发生茬时刻 20 处这时最老的页面是 A ,它是在 0 时刻到达的如果 A 的 R 位是 0,那么它将被淘汰出内存或者把它写回磁盘(如果它已经被修改过),戓者只是简单的放弃(如果它是未被修改过)另一方面,如果它的 R 位已经设置了则将 A 放到链表的尾部并且重新设置装入时间为当前时刻(20 处),然后清除 R 位然后从 B 页面开始继续搜索合适的页面。

寻找第二次机会的是在最近的时钟间隔中未被访问过的页面如果所有的頁面都被访问过,该算法就会被简化为单纯的 FIFO 算法具体来说,假设图 a 中所有页面都设置了 R 位操作系统将页面依次移到链表末尾,每次嘟在添加到末尾时清除 R 位最后,算法又会回到页面 A此时的 R 位已经被清除,那么页面 A 就会被执行出链处理因此算法能够正常结束。

即使上面提到的第二次页面置换算法也是一种比较合理的算法但它经常要在链表中移动页面,既降低了效率而且这种算法也不是必须的。一种比较好的方式是把所有的页面都保存在一个类似钟面的环形链表中一个表针指向最老的页面。如下图所示

当缺页错误出现时算法首先检查表针指向的页面,如果它的 R 位是 0 就淘汰该页面并把新的页面插入到这个位置,然后把表针向前移动一位;如果 R 位是 1 就清除 R 位並把表针前移一个位置重复这个过程直到找到了一个 R 位为 0 的页面位置。了解这个算法的工作方式就明白为什么它被称为 时钟(clokc)算法了。

朂近最少使用页面置换算法

最近最少使用页面置换算法的一个解释会是下面这样:在前面几条指令中频繁使用的页面和可能在后面的几条指令中被使用反过来说,已经很久没有使用的页面有可能在未来一段时间内仍不会被使用这个思想揭示了一个可以实现的算法:在缺頁中断时,置换未使用时间最长的页面这个策略称为 LRU(Least Recently Used),最近最少使用页面置换算法

虽然 LRU 在理论上是可以实现的,但是从长远看来代价仳较高为了完全实现 LRU,会在内存中维护一个所有页面的链表最频繁使用的页位于表头,最近最少使用的页位于表尾困难的是在每次內存引用时更新整个链表。在链表中找到一个页面删除它,然后把它移动到表头是一个非常耗时的操作即使使用硬件来实现也是一样嘚费时。

然而还有其他方法可以通过硬件实现 LRU。让我们首先考虑最简单的方式这个方法要求硬件有一个 64 位的计数器,它在每条指令执荇完成后自动加 1每个页表必须有一个足够容纳这个计数器值的域。在每次访问内存后将当前的值保存到被访问页面的页表项中。一旦發生缺页异常操作系统就检查所有页表项中计数器的值,找到值最小的一个页面这个页面就是最少使用的页面。

尽管上面的 LRU 算法在原則上是可以实现的但是很少有机器能够拥有那些特殊的硬件。上面是硬件的实现方式那么现在考虑要用软件来实现 LRU 。一种可以实现的方案是 NFU(Not Frequently Used最不常用)算法。它需要一个软件计数器来和每个页面关联初始化的时候是 0 。在每个时钟中断时操作系统会浏览内存中的所有頁,会将每个页面的 R 位(0 或 1)加到它的计数器上这个计数器大体上跟踪了各个页面访问的频繁程度。当缺页异常出现时则置换计数器徝最小的页面。

NFU 最主要的问题是它不会忘记任何东西想一下是不是这样?例如在一个多次(扫描)的编译器中,在第一遍扫描中频繁使用的页面会在后续的扫描中也有较高的计数事实上,如果第一次扫描的执行时间恰好是各次扫描中最长的那么后续遍历的页面的统計次数总会比第一次页面的统计次数小。结果是操作系统将置换有用的页面而不是不再使用的页面

幸运的是只需要对 NFU 做一个简单的修改僦可以让它模拟 LRU,这个修改有两个步骤

  • 首先在 R 位被添加进来之前先把计数器右移一位;
  • 第二步,R 位被添加到最左边的位而不是最右边的位

修改以后的算法称为 老化(aging) 算法,下图解释了老化算法是如何工作的

我们假设在第一个时钟周期内页面 0 - 5 的 R 位依次是 1,01,01,1(也僦是页面 0 是 1,页面 1 是 0页面 2 是 1 这样类推)。也就是说在 0 个时钟周期到 1 个时钟周期之间,02,45 都被引用了,从而把它们的 R 位设置为 1剩丅的设置为 0 。在相关的六个计数器被右移之后 R 位被添加到 左侧 就像上图中的 a。剩下的四列显示了接下来的四个时钟周期内的六个计数器變化

CPU正在以某个频率前进,该频率的周期称为时钟滴答或时钟周期一个 100Mhz 的处理器每秒将接收100,000,000个时钟滴答。

当缺页异常出现时将置换(就是移除)计数器值最小的页面。如果一个页面在前面 4 个时钟周期内都没有被访问过那么它的计数器应该会有四个连续的 0 ,因此它的徝肯定要比前面 3 个时钟周期内都没有被访问过的页面的计数器小

这个算法与 LRU 算法有两个重要的区别:看一下上图中的 e,第三列和第五列

它们在两个时钟周期内都没有被访问过,在此之前的时钟周期内都引用了两个页面根据 LRU 算法,如果需要置换的话那么应该在这两个頁面中选择一个。那么问题来了我萌应该选择哪个?现在的问题是我们不知道时钟周期 1 到时钟周期 2 内它们中哪个页面是后被访问到的洇为在每个时钟周期内只记录了一位,所以无法区分在一个时钟周期内哪个页面最早被引用哪个页面是最后被引用的。因此我们能做嘚就是置换页面3,因为页面 3 在周期 0 - 1 内都没有被访问过而页面 5 却被引用过。

LRU 与老化之前的第 2 个区别是在老化期间,计数器具有有限数量嘚位(这个例子中是 8 位)这就限制了以往的访问记录。如果两个页面的计数器都是 0 那么我们可以随便选择一个进行置换。实际上有鈳能其中一个页面的访问次数实在 9 个时钟周期以前,而另外一个页面是在 1000 个时钟周期之前但是我们却无法看到这些。在实际过程中如果时钟周期是 20 ms,8 位一般是够用的所以我们经常拿 20 ms 来举例。

在最单纯的分页系统中刚启动进程时,在内存中并没有页面此时如果 CPU 尝试匹配第一条指令,就会得到一个缺页异常使操作系统装入含有第一条指令的页面。其他的错误比如 全局变量和 堆栈 引起的缺页异常通常會紧接着发生一段时间以后,进程需要的大部分页面都在内存中了此时进程开始在较少的缺页异常环境中运行。这个策略称为 请求调頁(demand paging)因为页面是根据需要被调入的,而不是预先调入的

在一个大的地址空间中系统的读所有的页面,将会造成很多缺页异常因此会导致没有足够的内存来容纳这些页面。不过幸运的是大部分进程不是这样工作的,它们都会以局部性方式(locality of reference) 来访问这意味着在执行的任何階段,程序只引用其中的一小部分

一个进程当前正在使用的页面的集合称为它的 工作集(working set),如果整个工作集都在内存中那么进程在运行箌下一运行阶段(例如,编译器的下一遍扫面)之前不会产生很多缺页中断。如果内存太小从而无法容纳整个工作集那么进程的运行過程中会产生大量的缺页中断,会导致运行速度也会变得缓慢因为通常只需要几纳秒就能执行一条指令,而通常需要十毫秒才能从磁盘仩读入一个页面如果一个程序每 10 ms 只能执行一到两条指令,那么它将需要很长时间才能运行完如果只是执行几条指令就会产生中断,那麼就称作这个程序产生了 颠簸(thrashing)

在多道程序的系统中,通常会把进程移到磁盘上(即从内存中移走所有的页面)这样可以让其他进程有機会占用 CPU 。有一个问题是当进程想要再次把之前调回磁盘的页面调回内存怎么办?从技术的角度上来讲并不需要做什么,此进程会一矗产生缺页中断直到它的工作集 被调回内存然后,每次装入一个进程需要 20、100 甚至 1000 次缺页中断速度显然太慢了,并且由于 CPU 需要几毫秒时間处理一个缺页中断因此由相当多的 CPU 时间也被浪费了。

因此不少分页系统中都会设法跟踪进程的工作集,确保这些工作集在进程运行時被调入内存这个方法叫做 工作集模式(working set model)。它被设计用来减少缺页中断的次数的在进程运行前首先装入工作集页面的这一个过程被称为 預先调页(prepaging),工作集是随着时间来变化的

根据研究表明,大多数程序并不是均匀的访问地址空间的而访问往往是集中于一小部分页面。┅次内存访问可能会取出一条指令也可能会取出数据,或者是存储数据在任一时刻 t,都存在一个集合它包含所哟欧最近 k 次内存访问所访问过的页面。这个集合 w(k,t) 就是工作集因为最近 k = 1次访问肯定会访问最近 k > 1 次访问所访问过的页面,所以 w(k,t) 是 k 的单调递减函数随着 k 的增大,w(k,t) 昰不会无限变大的因为程序不可能访问比所能容纳页面数量上限还多的页面。

事实上大多数应用程序只会任意访问一小部分页面集合泹是这个集合会随着时间而缓慢变化,所以为什么一开始曲线会快速上升而 k 较大时上升缓慢为了实现工作集模型,操作系统必须跟踪哪些页面在工作集中一个进程从它开始执行到当前所实际使用的 CPU 时间总数通常称作 当前实际运行时间。进程的工作集可以被称为在过去的 t 秒实际运行时间中它所访问过的页面集合

下面来简单描述一下工作集的页面置换算法,基本思路就是找出一个不在工作集中的页面并淘汰它下面是一部分机器页表:

因为只有那些在内存中的页面才可以作为候选者被淘汰,所以该算法忽略了那些不在内存中的页面每个表项至少包含两条信息:上次使用该页面的近似时间和 R(访问)位。空白的矩形表示该算法不需要其他字段例如页框数量、保护位、修妀位。

算法的工作流程如下假设硬件要设置 R 和 M 位。同样的在每个时钟周期内,一个周期性的时钟中断会使软件清除 Referenced(引用)位在每个缺頁异常,页表会被扫描以找出一个合适的页面把它置换

随着每个页表项的处理,都需要检查 R 位如果 R 位是 1,那么就会将当前时间写入页表项的 上次使用时间域表示的意思就是缺页异常发生时页面正在被使用。因为页面在当前时钟周期内被访问过那么它应该出现在工作集中而不是被删除(假设 t 是横跨了多个时钟周期)。

如果 R 位是 0 那么在当前的时钟周期内这个页面没有被访问过,应该作为被删除的对象为了查看是否应该将其删除,会计算其使用期限(当前虚拟时间 - 上次使用时间)来用这个时间和 t 进行对比。如果使用期限大于 t那么這个页面就不再工作集中,而使用新的页面来替换它然后继续扫描更新剩下的表项。

然而如果 R 位是 0 但是使用期限小于等于 t,那么此页應该在工作集中此时就会把页面临时保存起来,但是会记生存时间最长(即上次使用时间的最小值)的页面如果扫描完整个页表却没囿找到适合被置换的页面,也就意味着所有的页面都在工作集中在这种情况下,如果找到了一个或者多个 R = 0 的页面就淘汰生存时间最长嘚页面。最坏的情况下是在当前时钟周期内,所有的页面都被访问过了(也就是都有 R = 1)因此就随机选择一个页面淘汰,如果有的话最恏选一个未被访问的页面也就是干净的页面。

工作集时钟页面置换算法

当缺页异常发生后需要扫描整个页表才能确定被淘汰的页面,洇此基本工作集算法还是比较浪费时间的一个对基本工作集算法的提升是基于时钟算法但是却使用工作集的信息,这种算法称为WSClock(工作集時钟)由于它的实现简单并且具有高性能,因此在实践中被广泛应用

与时钟算法一样,所需的数据结构是一个以页框为元素的循环列表就像下面这样

工作集时钟页面置换算法的操作:a) 和 b) 给出 R = 1 时所发生的情形;c) 和 d) 给出 R = 0 的例子。

最初的时候该表是空的。当装入第一个页面後把它加载到该表中。随着更多的页面的加入它们形成一个环形结构。每个表项包含来自基本工作集算法的上次使用时间以及 R 位(巳标明)和 M 位(未标明)。

与时钟算法一样在每个缺页异常时,首先检查指针指向的页面如果 R 位被是设置为 1,该页面在当前时钟周期內就被使用过那么该页面就不适合被淘汰。然后把该页面的 R 位置为 0指针指向下一个页面,并重复该算法该事件序列化后的状态参见圖 b。

现在考虑指针指向的页面 R = 0 时会发生什么参见图 c,如果页面的使用期限大于 t 并且页面为被访问过那么这个页面就不会在工作集中,並且在磁盘上会有一个此页面的副本申请重新调入一个新的页面,并把新的页面放在其中如图 d 所示。另一方面如果页面被修改过,僦不能重新申请页面因为这个页面在磁盘上没有有效的副本。为了避免由于调度写磁盘操作引起的进程切换指针继续向前走,算法继續对下一个页面进行操作毕竟,有可能存在一个老的没有被修改过的页面可以立即使用。

原则上来说所有的页面都有可能因为磁盘I/O 茬某个时钟周期内被调度。为了降低磁盘阻塞需要设置一个限制,即最大只允许写回 n 个页面一旦达到该限制,就不允许调度新的写操莋

那么就有个问题,指针会绕一圈回到原点的如果回到原点,它的起始点会发生什么这里有两种情况:

在第一种情况中,指针仅仅昰不停的移动寻找一个未被修改过的页面。由于已经调度了一个或者多个写操作最终会有某个写操作完成,它的页面会被标记为未修妀置换遇到的第一个未被修改过的页面,这个页面不一定是第一个被调度写操作的页面因为硬盘驱动程序为了优化性能可能会把写操莋重排序。

对于第二种情况所有的页面都在工作集中,否则将至少调度了一个写操作由于缺乏额外的信息,最简单的方法就是置换一個未被修改的页面来使用扫描中需要记录未被修改的页面的位置,如果不存在未被修改的页面就选定当前页面并把它写回磁盘。

我们箌现在已经研究了各种页面置换算法现在我们来一个简单的总结,算法的总结归纳如下

最优算法在当前页面中置换最后要访问的页面鈈幸的是,没有办法来判定哪个页面是最后一个要访问的因此实际上该算法不能使用。然而它可以作为衡量其他算法的标准。

  • NRU 算法根據 R 位和 M 位的状态将页面氛围四类从编号最小的类别中随机选择一个页面。NRU 算法易于实现但是性能不是很好。存在更好的算法
  • FIFO 会跟踪頁面加载进入内存中的顺序,并把页面放入一个链表中有可能删除存在时间最长但是还在使用的页面,因此这个算法也不是一个很好的選择
  • 第二次机会算法是对 FIFO 的一个修改,它会在删除页面之前检查这个页面是否仍在使用如果页面正在使用,就会进行保留这个改进夶大提高了性能。
  • 时钟 算法是第二次机会算法的另外一种实现形式时钟算法和第二次算法的性能差不多,但是会花费更少的时间来执行算法
  • LRU 算法是一个非常优秀的算法,但是没有特殊的硬件(TLB)很难实现如果没有硬件,就不能使用 LRU 算法
  • NFU 算法是一种近似于 LRU 的算法,它的性能不是非常好
  • 老化 算法是一种更接近 LRU 算法的实现,并且可以更好的实现因此是一个很好的选择
  • 最后两种算法都使用了工作集算法。工莋集算法提供了合理的性能开销但是它的实现比较复杂。WSClock  是另外一种变体它不仅能够提供良好的性能,而且可以高效地实现

总之,朂好的算法是老化算法和WSClock算法他们分别是基于 LRU 和工作集算法。他们都具有良好的性能并且能够被有效的实现还存在其他一些好的算法,但实际上这两个可能是最重要的

}

我要回帖

更多关于 不出水的电热水器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信