已阅读5页,还剩70页未读, 继续免费阅读
(光学工程专业论文)基于uclinux的大用户用水管理系统设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于u c l in u x 的大用户用水管理系统设计 捅晏 进入2 l 世纪以来,随着社会的进步、工业的发展,水作为社会生产、人民 生活所必需的最重要的资源之一供需要求逐年紧张。而在供水公司计量系统中, 大表计量部分占到了总供水量的很大部分,尤其在大中城市和工业发达地区,所 占比例更高。为了解决这一全世界普遍存在的水资源供、需矛盾,结合远程监测 和数据分析系统、多方位地管理大用户用水计量成为当今迫切需要解决的问题。 本文介绍了一种基于u c l i n u x 的大用户用水管理系统,该系统主要由数据采 集,数据通信,数据处理分析和用水情况监控等几部分组成,本课题利用g p r s 网络通信实现数据的实时和高速传输,可准确的计量累计用水量,瞬时用水量; 根据用水量绘出流量曲线图;还具有强大的数据分析及数据存储功能;紧急情况 报警、欠费通知以及电压检测;通过无线上网随时进行软件升级等功能。在软件 开发中,充分利用u c l i n u x 作为多任务操作系统的特点,实现了系统中多进程之 间的协调运行。 本文首先论述了大用户用水管理系统的研究背景及研究意义。在此基础上, 结合了大用户用水系统的特点,提出了该系统的软、硬件实现方案,详细阐明了 该系统的硬件和软件实现方案。重点介绍了系统的硬件构成,u c l i n u x 下g p r s 拨号上网的实现、文件系统的搭建、硬件驱动程序编写、软件架构、应用程序实 现等,并详细说明了系统实现中采用的一些软件技术和策略。 本文所设计的基于u c l i n u x 大用户用水管理系统具有功能完善,计量准确 通信可靠的优点。随着自动化技术、通信技术和计算机技术的发展,利用g p r s 公共网络方式进行远距离控制和数据传输,成本会越来越低,通信也更加可靠, 该系统将会有更加广泛的应用前景。 关键词: a r m ;u o li n u x ;g p r s ;t c p j p ;短消息 d e sig no fm a n a g e m e n ts y s t e mf o rl a r g ew a t e rc o n s u m e r b a s e do n u ci in u x a b s t r a c t s i n c e21t hc e n t u r y , i th a sb e e nm o r ea n dm o r ed i f f i c u l tt om e e tt h en e e d sf o rt h e w a t e rw h i c hi so n et h ee s s e n t i a lr e s o u r c e si np e o p l e sl i v e sa st h ed e v e l o p m e n to ft h e i n d u s t r ya n dw h o l es o c i e t y i nt h eq u a n t i t a t i v es y s t e mo ft h ew a t e rs u p p l y i n g c o m p a n i e s ,l a r g ew a t e rc o n s u m e ra c c o u n t sm o s ti nt h ew h o l ew a t e rs u p p l y i tw o u l d b ee v e nm o r ei nb i ga n dm e d i u m s i z e dc i t i e so rd e v e l o p e di ni n d u s t r ya r e a s t h el a r g e w a t e rc o n s u m e rs h o u l d b em a n a g e ds y s t e m a t i c a l l ya n ds y n t h e t i c a l l yw i t h l o n g d i s t a n c em o n i t o r i n ga n dd a t aa n a l y z i n gt om e e tt h en e e d sf o rw a t e ro ft h ew h o l e w o r l d t h em a n a g e m e n ts y s t e mf o rl a r g ew a t e rc o n s u m e rb a s e do nu c l i n u xi s i n t r o d u c e di nt h i sp a p e r a n di tc o n s i s t so fd a t ac o l l e c t i n g ,c o m m u n i c a t i o n , d a t a p r o c e s s i n ga n da n a l y z i n g ,a n dm o n i t o r i n g t h er e a l - t i m ea n dh i g h - s p e e dd a t a c o m m u n i c a t i o ni sr e a l i z e dw i t hg p r sn e t w o r kc o m m u n i c a t i o n t h es y s t e mc o u l d m e a s u r ew a t e ru s a g ea c c u r a t e l y , g e n e r a t et h ec u l v e g r a p h s ,a l a r mu n d e ru r g e n t c i r c u m s t a n c e s ,s t o r ea n da n a l y z ed a t a a n dt h ef u n c t i o no fa r r e a r sn o t i c ea n dv o l t a g e d e t e c t i n g i sa l s oi n c l u d e d i tc o u l db e u p d a t e dt h r o u g hw i r e l e s sn e t w o r k t h e m u l t i p r o c e s sc o m m u n i c a t i o ni sr e a l i z e di ns o f t w a r ed e v e l o p m e n tf o ru c l i n u xi st h e m u l t i t a s ko p e r a t i n gs y s t e m t h er e s e a r c hb a c k g r o u n da n ds i g n i f i c a n c eo ft h em a n a g e m e n ts y s t e mf o rl a r g e w a t e rc o n s u m e ra r ef i r s t l yi n t r o d u c e d a c c o r d i n gt ot h ec h a r a c t e r i s t i co ft h es y s t e m ,a s c h e m ei sg i v e nt oi l l u s t r a t et h ep r o je c te l e m e n t am o r ed e t a i ls p e c i f i c a t i o no f h a r d w a r ea n ds o f t w a r ei sb r o u g h tf o r w a r d i ts t r e s so nt h es y s t e m sc o n f i g u r a t i o no f h a r d w a r e ,g p r sc o m m u n i c a t i o nt r a d e ru c l i n u x ,f i l es y s t e me s t a b l i s h m e n t ,h a r d w a r e d r i v ep r o g r a m ,s o f t w a r ea r c h i t e c t u r ea n dt h ea p p l i c a t i o np r o g r a me t c s o m ei m p o r t a n t s o rt e c h n i c a la n dp o l i c yi ss u p p l i e d t h em a n a g e m e n ts y s t e mf o rl a r g ew a t e rc o n s u m e rb a s e do nu c l i n u xi sf e a t u r e d w i t hp e r f e c tf u n c t i o n s ,a c c u r a t em e a s u r e m e n ta n dr e l i a b l ec o m m u n i c a t i o n w i t ht h e d e v e l o p m e n to fa u t o m a t i ct e c h n o l o g y , c o m p u t e rt e c h n o l o g ya n dc o m m u n i c a t i o n t e c h n o l o g y , t h ec o s tw i l lb el o w e r , t h ec o m m u n i c a t i o nw i l lb em o r e r e l i a b l eb yt h eu s e o fg p r sp u b l i cn e t w o r kt ot r a n s f e ra n dr e c e i v ed a t a t h eq u a n t i t a t i v es y s t e mo fw a t e r s u p p l yb a s e d0 1 1g p r s w i l lh a v eap r o s p e r o u sp r o s p e c t k e y w o r d s :a r m ;u c ii n u x ;g p r s ;t c p i p ;s m s 独创声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写 过的研究成果,也不包含未获得 ( 逵;垫遗查墓丝盂墨挂墨4 童暇 数:奎拦互窒2 或其他教育机构的学位或证书使用过的材料。与我一同工作的同志对本研 究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名: 签字日期:2 0 四年乡月;1 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留,使用学位论文的规定,有权保留并向国家有 关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权学校可以将学 位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手 段保存、汇编学位论文。同时授权中国科学技术信息研究所将本学位论文收录到中国学 位论文全文数据库,并通过网络向社会公众提供信息服务。( 保密的学位论文在解密后适 用本授权书) 导师签 签字日期:历碣年j 月乡e 1 日 n也伢h 打 吗 象月 孓 名 年 签 凡 糍 毗 作 哆 文 期 论 日 位 字 学 签 基于u c l i n u x 的大用户用水管理系统设计 第1 章绪论 1 1 引言 水是社会生产、人民生活所必需的最重要的资源之一。进入2 1 世纪以来全 国用水供需逐年紧张。据统计【1 1 ,在供水公司计量系统中,大表计量的部分占到 了总供水量的很大一部分,在大中城市和工业发达地区,大表计量所占比例更是 高达6 0 8 0 。如某大城市,7 0 0 0 台大表计量的水量占总供水量的6 9 ,而这 些大表的数量只占总计量表的1 9 6 ,除去消防用表,其中有2 0 0 0 台表计量的 水量占总供水量的6 0 ,由此可看出,只要把这些表( 其数量不到总计量表量的 o 5 ) 管理好,最大限度降低计量损失,就基本能保证6 0 的供水回收。可以 说这是小投入大回报,事半功倍的手段。 由于大用户用水大多数都是用大表计量,在结算中,大表往往是最具争议的。 而且,对于临时突发的情况,如爆管、偷水等所造成的经济损失,大表最为严重, 所以结合远程监测和数据分析系统地、多方位地管理大用户用水计量成为迫切需 要解决的问题。 参考先进国家给出的解决水损的推荐解决方案中我们可以看到,降低漏损率 的技术手段最终可以归纳至一个命题:建立用户供水管理系统及s c a d a t 2 】系统, 实现大客户远程自动抄表,提高用水监测及负荷管理水平,为供水需求管理提供 完整的数据支持。 一个有效的,合理的大用户用水管理系统应当具备以下几种功能: l 、数据自动采集:自动定时采集各大客户计量点瞬时流量、累计流量、用 水事件、以及在条件许可的情况下( 成本和供电以及设备安全性) 采集压力、供 水质量等供水数据,实现数据采集的准确性、完整性、及时性和可靠性,为水量 结算提供准确依据。 2 、计量装置监测:远程监测流量计运行信息,分析计量故障、窃水等信息, 及时发现用户用水异常。 3 、负荷控n - 动态监测用户负荷,为用水政策执行管理提供准确、及时的 负荷数据,根据需要通知客户选取更换更合适计量表计并进行关断控制。 基于u c l i n u x 的大用户用水管理系统设计 4 、统计分析:配合三级计量体系的建立( 新建项目如果有小区自动抄表系 统可以实现四级计量体系) ,实现各大客户计量点分时水量统计、负荷分析、水 损统计与分析,水损点逼近等。 大用户用水管理的重要性事实上在很久以前就已经有人提出,但一直没有很 好的解决方案,其原因是系统实施面临的两个重要难题没有得到有效地解决:供 电和长距离传输。目前这两个问题基本上可通过电池供电和g s m g p r s 实时监 测得以解决。 系统的意义在于: ( 1 ) 管理模型掌控全局 当供水企业对区域内大用户全面采取时实监控后,管理人员只要在办公室即 能看到各主要管网的流量和压力状况,从而保证合理调配,提高服务水平。 ( 2 ) 人为因素彻底消除 因整个远传过程均为系统自动生成,可克服很多人为因素对计量的干扰, 对管理还不十分规范的自来水公司来说意义深远。 ( 3 ) 计量失准原因诊断 通过监控软件的数据分析可初步判断水表在检定周期内何时开始失准,确保 公正计量。 ( 4 ) 异常状况及时发现 通过远传监控可准确判断流量和压力的在线状态是否正常,软件会及时发现 并处理主要供水设施的异常情况,保障用户用水安全,最大限度降低功用双方的 损失。 ( 5 ) 管道配表趋于合理 通过远传回来的瞬时流量,及时发现“大表小流量”和“小表大流量”的情况, 有利于更加合理地配置表具。 ( 6 ) 加快收费指日可待 只要将该系统与银行是水费收缴系统正常对接,即可实现每天的水费代扣, 不仅可增加一笔可观的利息收入,而且还可有效规避长期收不到水费带来的风 险。 2 基于u c l i n u x 的火用户用水管理系统设计 1 2 功能简介 1 2 1 概述 本系统实现了两种方式水表读数检测,既光电读数和脉冲读数;光电读数方 式准确快捷,但是无法得到用水流量曲线图。增加脉冲读数方式很好地解决了此 问题,可以更科学,准确地了解用水情况。另外,系统实现了大容量数据存储功 能和g p r s 无线数据传输,适应了抄表系统发展的需要。 1 2 2i 0 配置 光电读数检测:1 路输入,6 路输出; 脉冲读数输入:2 路正负脉冲输入; s i m 3 0 0 通信:r x 接收,t x 发射,d t r 控制,p w r k e y 电源控制; 电压检测输入:1 路低压报警输入。 1 2 3 基本功能 系统采用了两种计量方式进行测量,即光电检测设备和韦根传感器,两种计量 方式相互补充和完善,大大提高了数据的准确性,还可防止偷水情况的发生。 通过g p r s 通讯网络掌握用水户信息,免去了人为,路程等特殊因素的 影响,对用水户做到真正意义上的“远程监督”。 系统具有强大的数据分析功能,可及时发现设备现场的异常情况,为用户及 时发现异常,减小损失赢得时间,通过及时掌握用水户的用水规律以提升管 理水平和服务质量。 系统强大的数据存储能力,可保存最近3 个月的用水记录,防止通信线路等 异常问题引起的数据丢失,提高了数据安全性。 系统具有g s m 报警功能,可提醒用户供电不足,欠费,或者漏水等异常情 况的发生,用户也可设置定期查询用水情况。 系统具有g p r s 远程升级功能,方便快捷,提高了系统的可维护性。 系统采用电池供电,安装简单,使用安全。 基于u c l i n u x 的人用户用水管理系统设计 1 3 系统示意图 图1 1 显示了整个系统框架,大用户用水计量装置检测当地用水情况,将 异常信息及用电信息上报到主站及相关人员。客户可以通过手机接收停水通知, 异常报警,用水分析等服务。管理中心可下达用水控制命令,系统与管理中心 采用g s m g p r s 和i n t e r n e t 网络进行通讯。 i 坦 一,一、厂y 、, ,j 侈盂j l ,联通公网: g s m ( : r s、 c d i a 卜 、 _ 、一,一卜 r 。i c 一 短信援入 g p r s 蔹入| 丽耐 c d a 趴接入 i - - - - - - - - - - - - - - _ - - - - - - - - - - _ - 一 | 宽带接入 _ 。_ _ - _ _ 。_ _ 。- - _ _ - _ _ _ _ _ - _ _ _ 一 图1 - 1 系统示意图 4 基于u c l i n u x 的大用户用水管理系统设计 1 4 嵌入式系统设计 1 4 1 嵌入式系统基本概念和特征 嵌入式系统( e m b e d d e ds y s t e m ) 是以应用为中心、以计算机技术为基础、软 件硬件可裁减,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 是一类在硬件上采用专用( 相对于通用的x 8 6 0 来说) 的高性能处理器( 通常为3 2 位) ,在软件上以一个多任务操作系统为基础的专用系统。一方面,它与计算机 有着本质的区别( 软硬件可裁减) ;另一方面,又于以前的单片机有着本质区别, 因为单片机几乎无法移植操作系统,而3 2 位嵌入式处理设备能够很便捷的移植 操作系统。 嵌入式系统一般包含嵌入式微处理器、外围硬件设备、嵌入式操作系统和应 用程序4 个部分。嵌入式领域已经有丰富的软硬件资源可以选择,涵盖了通信、 网络、工业控制、消费电子、汽车电子等各种行业。 嵌入式系统于通用的计算机系统相比一般有一下特点 ( 1 ) 嵌入式系统是面向特定系统应用的。一般是包含各种外围设备的 片上系统。 ( 2 ) 嵌入式系统涉及计算机技术、微电子技术、电子技术、通信和软 件等各行各业。它是一个技术密集、资金密集、高度分散、不断 创新的知识集成系统。 ( 3 ) 嵌入式系统的硬件和软件都必须具备高度可定制性。只有这样才 能适用嵌入式系统应用的需要,在产品价格性能等方面具备竞争 力。 ( 4 ) 嵌入式系统的周期相当长。 ( 5 ) 嵌入式系统不具备本地系统开发能力,通常需要有一套专门的开 发工具和环境。 1 4 23 2 位嵌入式微处理器 m o t o r o l a 传统的6 8 k 结构仍是3 2 位c p u 的主流,虽然它起源于8 0 年代初, 但在1 9 9 7 年依然销售了8 0 0 0 万个,并基本上是传统6 8 0 x x 芯片( 0 0 、2 0 、4 0 酗。 基于u c l i n u x 的大用户用水管理系统设计 另外就是6 8 3 x x ( 6 0 、0 2 、3 2 、2 8 k ) 以及c o l d f i r e 。 6 8 k 嵌入式微处理器最大的挑战者是m i p s 的授权制造商。众所周知,m i p s 属于s g i 公司,而m i p s 主要做嵌入式系统。紧跟在m i p s 后的另一个r i s c 芯 片制造商是h i t a c h i 的s h ,s h 主要在远东销售( 日本最多) ,北美则很少有人使 用。 a r m 是另外一种近年来在嵌入式系统有影响力的微处理器,a r m 的设计非 常适合于小的电源供电系统。a p p l e 在n e w t o n 手持计算机中使用a r m ,另外有 几款数字无线电话也在使用a r m 。 除m i p s 、s h 和a r m 之外,就数p o w e r p c 和x 8 6 了。这两款微处理器 在桌面系统用量极大,但在嵌入式系统中的影响却不够大。考虑到功耗、成本等 原因,本系统采用的是a r m 架构的m c u :s a m s u n g 公司生产的s 3 c 4 4 b 0 芯片。 1 4 3 嵌入式操作系统 据调查,目前全世界的嵌入式操作系统已经有二百多种。从2 0 世纪8 0 年 代开始,出现了一些商用嵌入式系统,它们大部分是为专有系统而开发的。随着 嵌入式领域的发展,各式各样的嵌入式操作系统相继问世。有许多商业的嵌入式 操作系统,也有大量开放源代码的嵌入式操作系统。其中著名的嵌入式操作系统 有:u c o s 、v x w o r k s 、n e c u l e u s 、l i n u x 和w i n d o wc e 等。下面介绍一下主流 的嵌入式系统。 ( 1 ) l i n u x 在所有的操作系统种,l i n u x 是一个发展最快、应用最为广泛的操作系统。 l i n u x 本身的种种特性使其成为嵌入式开发的首选。在进入市场的头两年中,嵌 入式l i n u x 设计通过广泛应用获得了巨大的成功。嵌入式l i n u x 版本还用很多变 体。r t l i n u x 通过改造内核实现了适时的l i n u x ;r t a i 、k u r t 和l i n t t x r k 也提 供了实时能力;还有u c l i n u x 支持没有m m u 的处理器等。 ( 2 )u c o s u c o s 是一个典型的实时操作系统。目前流行的是第2 个版本,即 u c o si i 。它的特点是:公开源代码,代码结构清晰,注释详尽,组织有条 理,可移植性好;可裁减,可固化;抢占式内核,最多可以管理6 0 个任务。 6 基于u c l i n u x 的大用户用水管理系统设计 该系统短小精悍,是研究和学习实时操作系统的首选。 ( 3 ) w i n d o w sc e w i n d o w sc e 是微软的产品,它从整体上为有限资源的平台设计的多线 程、完整优先权、多任务的操作系统。w i n d o w sc e 采用模块化设计,并允许 它对于从掌上电脑到专用电子设备进行定制。操作系统内核至少需要2 0 0 k b 的r o m 。 ( 4 ) v x w o r k s v x w o r k s 是w i n d r i v e r 公司专门为实时嵌入式系统设计开发的操作系统 软件,为程序员提供了高效的实时人物调度、中断管理、实施系统资源以及 实时的任务间通信。该系统主要应用在单片机、数据网络、通信系统等方面、 ( 5 ) q n x 这也是一款实时操作系统,由加拿大q n x 软件系统有限公司开发。广泛应 用于自动化控制、机器人科学、电信、数据通信、航空航天、计算机网络、医疗 仪器设备、交通运输等任务关键型应用领域。q n x 世界上是第一个遵循 p o s i x l 0 0 3 1 标准从零设计的微内核,具有非常好的可移植性。 在比较以上各种常见的嵌入式操作系统后,决定使用u c l i n u x ,不仅因为它 在网络及文件系统等方面的优秀表现,更重要的是它公开内核源代码,为我们了 解它的内部实现机制以更好的发挥它的功能创造了条件。 基于u e l i n u x 的大用户用水管理系统设计 2iin u x 开发基础及相关网络协议 2 1 中断处理 中断使得硬件得以与处理器进行通信。不同的设备对应的中断不同,而每个 中断都通过一个唯一的数字标识。在响应一个特定中断的时候,内核会执行一个 函数,该函数叫做中断处理程序( i m e r r u p th a n d l e r ) 或中断服务例程( i n t e r r u p t s e r v i c er o u t i n e ) 。中断处理函数与其他内核函数的真正区别在于:中断处理程序 是被内核调用来响应中断的,它们运行于中断上下文。注册中断处理程序是驱动 程序的组成部分。每一设备都有相关的驱动程序,如果设备使用中断,那么相应 的驱动程序就注册一个中断处理程序。 驱动程序可以通过下面的函数注册并激活一个中断处理程序: i n t r e q u e s t _ i r q ( u n s i g n e di n ti r q ,i r q r e t u m _ t ( 幸h a n d l e r ) ( i n t ,v o i d * , s t r u c tp t _ r e g s 奉) , u n s i g n e dl o n gi r q f l a g s ,c o n s tc h a r 木d e v n a m e ,v o i d d e v - i d ) 通过下面的函数释放中断处理程序: f i e e i r q ( u n s i g n e di n ti r q ,v o i d 幸d e v - i d ) ,必须从进程上下文中调用该函数。 典型的中断处理声明: s t a t i ci r q r e t u m _ ti n t r _ h a n d l e r ( i n ti r q ,v o i d 宰d e v i d ,s t r u c tp t r e g s + r e g s ) ; d e v i d 是一个通用指针,它与在中断处理程序注册是传递给r e q u e s s t _ i r q o 的参数d e vi d 必须一致。如果该值有唯一的确定性,那么它相当与一个c o o k i e , 可以用来区分共享同一个中断处理程序的多个设备,d e v i d 可能指向中断处理程 序中使用的一个数据结构。 整个中断处理流程分为两部分,第一部分就是上述的中断处理程序( 上半 部) ,内核通过对它的异步执行完成对硬件中断的即时响应,另一部分就是下半 部,它的任务就是执行与中断处理密切相关但中断处理程序本身不执行的工作。 内核提供了三种机制来实现将工作推后执行:软中断,t a s k l e t 和工作队列。 t a s k e t 通过软中断实现,而工作队列与它们完全不同。 基于u c l i n u x 的大用户用水管理系统设计 ( 1 ) 软中断 一个软中断由下面的数据结构表示: s t r u c ts o f f i r q _ a c t i o n v o i d ( 木a c t i o n ) ( s t r u c ts o f l i r q _ _ a c t i o n ) : v o i d * d a t a ; : k e m e l s o f f i r q c 中定义了一个包含有3 2 个该结构体的数组 s t a t i cs t r u c ts o f t i r q _ a c t i o ns o f f i r q _ v e c 3 2 ; 每个被注册的软中断都占据该数组的一项。因此最多可能有3 2 个软中断。唯一 可以抢占软中断的是中断处理程序。在下列地方软中断会被检查和执行: 在一个硬件中断代码处返回时; 在k s o f i r q d 内核线程中; 在那些显示检查和执行待处理软中断的代码中。 不管用什么办法唤起,软中断都要在d o _ s o f f i r q ( ) 执行。如果有待处理的软 中断,d o s o f t i r q 0 会循环遍历每一个,调用它们的处理程序。 注册处理程序: v o i do p e n s o f l i r q ( i n tn r , v o i d ( a c t i o n ) ( s t r u c ts o f l i r q _ _ a c t i o n 书) ,v o i d 奉d a t a ) 。 触发软中断: r a i s es o f t i r q ( n e t - - t x _ s o f t i r q ) :该函数在触发之前先要禁止中断。触发后再 恢复原来的状态。如果中断本来就禁止,可以调用r a i s e _ s o f i i r q _ i r q o f t ( 2 ) t a s k l e t t a s k l e t 是通过软中断实现的,本身也是软中断。t a s k l e t 有两类软中断代表 h i _ s o f t i r q 和t a s k l e t _ s o f t i r q 。唯一区别优先级不同。 s t m c tt a s k l e t s t r u c t s t r u c tt a s k l e t s t r u c t 奉n e x t ; u n s i g n e dl o n gs t a t e ; a t o m i ctc o u n t ; 9 基于u c l i n u x 的大用户用水管理系统设计 v o i d ( 幸f u n c ) ( u n s i g n e dl o n g ) ; u n s i g n e dl o n gd a t a ; ) ; t a s k l e t 由t a s k l e t _ s c h e d u l e 0 nt a s k l e th is c h e d u l e 0 函数进行调度,它们接受 一个指向t a s k l e t s t r u c t 结构的指针作为参数。大多情况下,为了控制一个寻常的 硬件设备,t a s k l e t 机制都是实现你自己下半部的最佳选择。 t a s k l e t 函数必须符合规定的函数类型:v o i dt a s k e t _ h a n d l e r ( u n s i g n e dl o n g d a t a ) ;通过调用t a s k l e t _ s c h e d u l e 0 函数并传递给它相应的t a s k l e t s t r u c t 的指针, 该t a s k l e 就会调度以便执行。 ( 3 ) 工作队列 工作队列( w o r kq u e u e ) 是另外一种将工作推后执行的形式。工作队列可以 把工作推后,交由一个内核线程去执行这个下半部分总是会在进程上下文执 行。如果推后执行的任务需要睡眠就选择工作队列。 所有的工作队列都是用普通的内核线程实现的。它们都要执行w o r k t h r e a d 函数。在初始化完以后,这个函数执行一个死循环并开始休眠。当有操作被插入 到队列里的时候,线程被唤醒以便执行这些操作。当没有剩余的操作时,它又会 继续休眠。工作用 中定义的w o r ks t r u c t 结构体表示。 创建工作队列: 静态创建d e c l a r ew o r k ( n a m e ,v o i d ( 宰f u n e ) ( v o i d 宰) ,v o i dd a t a ) ; 运行时创建i n i t _ w o r k ( s t r u c tw o r k s t r u c t 掌w o r k ,v o i dpf u n c ) ( v o i d ) , v o i d d a t a ) : 对工作队列进行调度: s c h e d u l e _ _ w o r k ( & w o r k ) ; s c h e d u l e _ d e l a y e d _ w o r k ( & w o r k ,d e l a y ) ; 2 2 系统调用 外部中断是使c p u 被动地、异步地进入系统空间的一种手段,系统调用是 c p u 主动地、同步地进入系统空间的手段。a r m 是通过软中断实现的,中断号为 o x 0 8 ,通过s w i 指令进入系统模式。 l o 基于u c l i n u x 的大用户用水管理系统设计 在l i n u x 每个系统调用赋予一个系统调用号【3 1 。l i n u x 有一个“未实现”的系 统调用s y s _ n i _ s y s c a l l 0 ,除了返回e n o s y s 外不作任何其他工作,这个错误号 是专门针对无效地系统调用而设的。 内核记录了系统调用表中所有已注册过的系统调用的列表,存储在 s y s _ c a l l _ t a b l e 中。它与体系有关,a r m 在c a l l s 中定义。 # i f n d e fn r _ s y s c a l l s # d e f i n en r _ s y s c a u s2 5 6 1 0 n gs y m b o l _ n a m e ( s y s _ _ n i s y s c a l l ) 1 0 n gs y m b o l _ n a m e ( s y s _ e x i t ) 1 0 n g s y m b o l _ n a m e ( s y s _ f o r k _ w r a p p e r ) 1 0 n gs y m b o l _ n a m e ( s y s r e a d ) 1 0 n gs y m b o l _ n a m e ( s y s _ w r i t e ) # e n d i f 系统调用号定义在 中 # d e f i n e n r :s y s c a l l b a s e o x 9 0 0 0 0 0 # d e f i n e m te x i t( n rs y s c a l l _ b a s e + 1 ) # d e f i n en rf o r k ( 邴s y s c a l l _ b a s e + 2 ) # d e f i n e r e a d( 邯s y s c a l l _ b a s e + 3 ) # d e f i n e n r w r i t e( 卜瓜s y s c a i ,i ,b a s e + 4 ) # d e f i n e o p e n( 冰s y s c a l l b a s e + 5 ) # d e f i n e c l o s e( n rs y s c a l l b a s e + 6 ) # d e f i n e n rw a i t p i d( n rs y s c a l l _ b a s e + 7 ) # d e f i n ea r mn ru s r 3 2 ( a r mn rb a s e + 4 ) 通常,系统调用靠c 库支持。用户程序通过包含标准头文件并和c 库链 接,就可以使用系统调用。l i n u x 本身提供了一组宏,用于直接对系统调用 访问。这些宏是_ s y s c a l l n o 其中n 的范围是从0 到6 。代表需要传递给系统 调用的参数个数。例如o p e n ( ) 系统调用定义为: l o n go p e n ( c o n s tc h a r 宰f i l e n a m e ,i n tf l a g s ,i n tm o d e ) ; 直接调用此宏的形式为: # d e f i n e 翼9 p e n 5 l l 基于u c l i n u x 的大用户用水管理系统设计 _ s y s c a l l 3 ( 1 0 n g ,o p e n ,c o n s tc h a r 木,f i l e n a m e ,i n t ,f l a g s ,i n t ,m o d e ) ; 这样应用程序就可以直接使用o p e n ( ) : 2 3 定时器和时间管理 1 节拍率:h z 系统定时器频率( 节拍率) 是通过静态预处理定义的,也就是h z ( 赫兹) 在系统启动时按照h z 值对硬件进行设置。体系结构不同,h z 的值也不同。内 核在 中定义了h z 的实际值,a r m 中定义为1 0 0 。 2 j i 伍e s 全局变量j i f f i e s 用来记录自系统启动以来产生节拍的总数。启动时,内 核将改变量初始化为0 ,此后,每次时钟中断处理程序都会增加该变量的值。 系统运行时间以秒为单位计算,就等于j i f f i e s h z 。 3 体系结构提供了两种设备进行计时,一种是系统定时器,另一种是实时时钟。 ( 1 )实时时钟( r t c ) 是用来持久存放系统时间的设备,即便系统关机以 后,也可以靠主板上的微型电池提供的电力保持系统的计时。实时时 钟最主要的作用是在启动时初始化x t i m e 变量。 ( 2 )系统定时器是内核定时机制中最为重要的角色。尽管不同体系结构中 的定时器实现不尽相同,但是系统定时器的根本思想并没有区别 提供一种周期性触发中断机制。 4 时钟中断处理程序咖 中断服务服务程序主要通过调用与体系结构无关的历程d o 执行下timer() 面的工作: ( 1 ) 给j i f f i e s 一6 4 变量增加l ; ( 2 ) 更新资源消耗的统计值,比如当前进程所消耗的系统时间和用户时间; ( 3 ) 执行已经到期的动态定时器; ( 4 ) 执行s c h e d u l e r t i c k ( ) 函数: ( 5 ) 更新墙上时间,该时间存放在x t i m e 变量中; ( 6 ) 计算平均负载值。 5 定时器 1 2 基于u c l i n u x 的大用户用水管理系统设计 定时器有结构t i m el i s t 表示,定义在文件 s t r u c t t i m e r l i s t s t r u c t l i s t h e a de n t r y ; u n s i g n e dl o n ge x p i r e s ; s p i n l o c k _ _ t l o c k ; v o i d ( 奉f u n c t i o n ) ( u n s i g n e dl o n g ) ; u n s i g n e dl o n gd a t a ; s t r u c t t v e c t b a s e s 书b a s e ; ) ; 定时器相关接口声明在文件 中,大多接口在文件k e r n e l t i m e r c 中 实现。 创建定时器需要先定义它: s t r u c t t i m e r 1 i s tm y _ t i m e r ; 需要通过一个辅助函数初始化定时器数据结构的内部值:i n i t _ t i m e r ( & m y _ t i m e r ) ; 处理函数必须符合下面的函数原型:v o i dm y _ t i m e r _ f u n c t i o n ( u n s i g n e dl o n gd a t a ) ; 激活定时器:a d d _ t i m e r ( & m y _ t i m e r ) ; 改变指定的定时器超时时间:m o d _ t i m e r ( & m y _ t i m e r , j i f f i e s + n e w _ d e l a y ) ; 停止定时器:d e l _ t i m e r ( & m y _ t i m e r ) ,d e l _ t i m e r _ s y n c ( & m y _ f i m e r ) ; 6 延迟执行 ( 1 ) 忙等待 延迟的时间是节拍的整数倍,精确度不高。 u n s i g n e dl o n gd e l a y = j i f f i e s + l o ; w h i l e ( t i m e _ b e f o r e ( ji f f i e s ,d e l a y ) ) ; ( 2 ) 短延迟 内核提供了两个可以处理微妙和毫秒级别的延迟函数,他们都定义在 中: v o i du d e l a y ( u n s i g n e dl o n gu s e c s ) ; v o i dm d e l a y ( u n s i g n e dl o n gm s e c s ) ; 基于u c l i n u x 的大用户用水管理系统设计 2 4 进程间通信 1 管道 4 】 父进程或子进程之间,或者两个兄弟进程之间,可以通过系统调用建立起一 个单向的通信管道。这种管道只能由父进程来创建,对于子进程是静态的。一个 管道实际上就是一个无形的( 只存在内存中) 的文件【4 1 ,每个文件都是由i n o d e 结构代表的,所以需要在创建管道时临时创建起一个i n o d e 数据结构。管道的两 端不能共享同一个f i l e 数据结构,而要为之各分配一个f i l e 数据结构。从管道所 传递数据的角度看,两端的两个进程之间是一种典型的生产者消费者的关系。 p i p e 系统调用i n tp i p e ( i n tp f d 2 ) ,可以创建无名管道,是由p f d 数组返回的 两个文件描述符表示的一个通信信道。向p f d 1 中写是往管道输入数据;从p f d 0 】 中读是从管道取出数据。 管道的读写规则: 从管道中读取数据时,如果管道的写端不存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中药茶剂工安全理论测试考核试卷含答案
- 凹版印刷员班组协作竞赛考核试卷含答案
- 光学镜头装配调试工安全演练评优考核试卷含答案
- 脂肪酸酰化及酯化操作工标准化水平考核试卷含答案
- 2026年新科教版初中九年级科学下册第一单元生物遗传规律练习卷含答案
- 钽电解电容器赋能、被膜工岗前保密意识考核试卷含答案
- 玻璃灯工岗前安全宣教考核试卷含答案
- 钢琴共鸣盘制作工安全知识竞赛能力考核试卷含答案
- 肉品分级员班组考核考核试卷含答案
- 火锅料理师班组评比考核试卷含答案
- AI在药物研发中的应用
- 新人教版七至九年级英语单词表
- 中医病证诊断疗效
- 关键施工技术、工艺与工程项目实施的重点、难点和解决方案
- 2023年环境卫生(正高)考试历年难点与易错点考核试题3答案解析
- 50套普通话测试题与答案
- GB/T 4325.23-2013钼化学分析方法第23部分:氧量和氮量的测定惰气熔融红外吸收法-热导法
- GB/T 2970-2016厚钢板超声检测方法
- 中小学生励志主题班会课件《告诉你孩子:几年的放纵-换来的是一生卑微和坎坷》
- 022pet热灌装饮料生产工艺及品质控制
- 二年级上册语文课件-《登鹳雀楼》人教部编版 (共18张PPT)
评论
0/150
提交评论