(水利水电工程专业论文)嵌入式操作系统在工业控制中的应用.pdf_第1页
(水利水电工程专业论文)嵌入式操作系统在工业控制中的应用.pdf_第2页
(水利水电工程专业论文)嵌入式操作系统在工业控制中的应用.pdf_第3页
(水利水电工程专业论文)嵌入式操作系统在工业控制中的应用.pdf_第4页
(水利水电工程专业论文)嵌入式操作系统在工业控制中的应用.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(水利水电工程专业论文)嵌入式操作系统在工业控制中的应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华北水利水电学院硕士学位论文 嵌入式操作系统在工业控制中的应用 摘要 随着以计算机技术和通信技术为主的信息技术的快速发展以及 互联网的广泛应用,嵌入式软件及嵌入式软件系统已成为世界软件业 的新热点。l i n u x 操作系统是一种性能优良、源码公开且被广泛应用 的免费嵌入式操作系统,可以作为研究实时操作系统和非实时操作系 统的典范。l i n u x 的高度模块化使添加部件非常容易,由于l i n u x 的 内核容量较少,可以作为智能设备、智能仪器仪表的嵌入式操作系统。 本文针对嵌入式操作系统的特点,在研究嵌入式l i n u x 的基础 上,根据s 3 c 2 4 1 0 xa r m 微处理器的特点及其硬件结构进行了l i n u x 内核的裁剪及移植、交叉开发及编译;并进行了m i n i g u i 的交叉编译、 安装及配置和移植。结合轻型友好图形用户界面系统- m i n i g u i ,利用 主机一目标机开发系统设计了一个小型模拟工业控制系统。研究表明, 嵌入式l i n u x 操作系统的稳定性、实时性、灵活性、嵌入性等特点, 使得它适合于应用在工业控制、通信设备、远程监控等诸多领域;基 于m i n i g u i t h r e a d s 的程序,采用了线程机制,所有的应用程序都 运行在同一个地址空问,每个线程有不同的功能和任务,程序之间的 通讯效率提高,适合实时性要求非常高的工业控制系统。 关键词:嵌入式操作系统l i n u x内核移植交叉编译工业控 制m i n i g u i 华北水利水电学院硕士学位论文 t h ea p p l i c a t i o no fe m b e d d e do p e r a t i n g s y s t e m i ni n d u s t r i a lc o n t r o l a b s t r a c t w i t ht h er a p i dd e v e l o p m e n ta n dw i d ea p p l i c a t i o no fi n f o r m a t i o n t e c h n o l o g y , e m b e d d e ds o f ta n de m b e d d e ds o f ts y s t e mh a sb e e nn e wh o t t o p i ci nt h ef i e l do fw o r l ds o f t w a r e a saf r e ee m b e d d e do so fe x c e l l e n t p e r f o r m a n c ea n do p e ns o u r c ec o d e ,l i n u xo sh a sb e e nw i d e l yu s e da n d b e c o m et h em o d e li nr e a l - t i m eo sa n dn r t o s h i g h l ym o d u l e dm a k e s i t v e r ye a s yt oa d dc o m p o n e n t sf o rl i n u x b e c a u s eo fi t ss m a l lk e r n e l s p a c e ,i t c a nb eu s e da se m b e d d e do so fi n t e l l i g e n te q u i p m e n ta n d i n t e l l i g e n ti n s t r u m e n t t h i sp a p e ra i m sa tt h ec h a r a c t e r i s t i c so ft h ee m b e d d e do p e r a t i n g s y s t e m ,b a s i n go nt h er e s e a r c ho ft h ee m b e d d e dl i n u x ,a c c o r d i n gt o c h a r a c t e r i s t i c sa n di t sh a r d w a r es t r u c t u r e so ft h e m i c r o p r o c e s s o r o f s 3 c 2 410 xa r m ,c a r r i e so nc l i p p i n ga n dt r a n s p o r to fl i n u xk e m e l ,c r o s s e x p l o i t i n g a n d c o m p i l a t i o n o fl i n u x ;i ta l s oc o m b i n e s p e r f e c t l y c o m p i l a t i o n , i n s t a l l a t i o na n dc o n f i g u r ea n d t r a n s p o r to fm i n i g u i c o m b i n i n g t h el i g h tf r i e n d l yg r a p h i cu s e ri n t e r f a c es y s t e m - m i n i g u i ,a n d m a k i n gu s eo ft h eh o s t - t a r g e tm a c h i n ed e v e l o p m e n ts y s t e mt h i sp a p e r d e s i g n sas m a l ls c a l e de m u l a t i o ni n d u s t r yc o n t r o ls y s t e m t h i sr e s e a r c h 华北水利水电学院硕士学位论文 i n d i c a t et h a tt h ec h a r a c t e r i s t i c so f e m b e d d e dl i n u x o s s t a b i l i t y , r e a l - t i m e ,f l e x i b i l i t y , e m b e d d i n ga n ds oo n ,m a k ei ts u i t a b l ef o rt oa p p l y t ot h ea r e ao fi n d u s t r i a lc o n t r o l ,c o m m u n i c a t i o ne q u i p m e n t s ,t h er e m o t e m o n i t o re t c t h ep r o g r a ma c c o r d i n gt ot h em i n i g u i - t h r e a d s ,a d o p t s t h et h r e a d sm e c h a n i s m ,a l la p p l y i n gp r o g r a mc i r c u l a t ei nt h es a m eo f a d d r e s ss p a c e ,e a c ht h r e a dc o n t a i nd i f f e r e n tf u n c t i o na n dm i s s i o n ,a n d r a i s e st h ec o m m u n i c a t i o ne f f i c i e n c yb e t w e e np r o c e d u r ea n di ti ss u i to f t h ev e r yh i g hr e a lt i m er e q u e s t si n d u s t r yc o n t r o ls y s t e m k e yw o r d s :e m b e d d e do p e r a t i n gs y s t e m ,l i n u x ,k e r n e lt r a n s p o r t c r o s s c o m p i l i n g ,i n d u s t r i a lc o n t r o l ,m i n i g u i 独立完成与诚信声明 本人的学位论文是在导师指导下独立撰写并完成 的,学位论文没有剽窃、抄袭等违反学术道德、学术 规范的侵权行为,否则本人愿意承担由此产生的一切 法律责任和法律后果,特此郑重声明。 学位论文作者:杨雅量 沙娼年月 日 华北水利水电学院硕士学位论文 第一章绪论 1 1 课题的提出及国内外研究现状 随着以计算机和通信技术为主的信息技术的快速发展以及互联网的广泛 应用,嵌入式软件及嵌入式软件系统已成为世界软件业的新热点。2 1 世纪移动 计算机将无所不在,而嵌入式技术将使其成为可能。尽管嵌入式操作系统有功 能丰富和稳定性好等优点,但大部分的嵌入式系统仍然继续采用控制程序而没 有采用操作系统。产生这种现象,除了功能需求和硬件方面的限制因素以外, 还主要有如下两条原因: 首先,有不少嵌入式系统是逐步发展起来的,每一步改动都比较小。这种 在原有系统上修改的代价,要小于改用操作系统所需付出的代价,从而使工作 人员很难下决心换用嵌入式操作系统。另外,即使是一个从头,千始的项目,也 会由于工作人员已经习惯了熟悉的手段和工具,再加上还会受到时间和经费的 限制等原因,要换一个全新的嵌入式操作系统的确需要慎重考虑。 其次,尽管控制程序在丌发成本和可靠性等方面都有缺点,但它最大的好 处之一就是没有那些在商业化嵌入式操作系统中所用不着的功能。虽然到目前 为止,几乎每一个嵌入式操作系统都号称可以根据应用的需要进行裁剪,可是 大多都是静态裁剪,也就是用不同的模块编译链接成不同的系统。这种裁剪使 嵌入式操作系统的稳定性大大降低,而且它的可靠性还需要实践的检验。 虽然由于上述的因素使得许多嵌入式系统仍然沿用控制程序,但控制程序 近来在有些应用领域已经越来越力不从心了,需要嵌入式操作系统的取代。例 如,高性能的手持没备、移动设备和复杂的工业控制装置( 例如数控机床和机 器人等) 如果继续采用自己的控制程序,就意味着需要用户自己来做一个专用 操作系统,冈为设备管理、内存管理和进程管理等都是必不可少的,而精通控 制程序的人很难同时又是一个操作系统的专家,会因此而导致用户的减少。 从2 0 世纪8 0 年代起,国际上就有一些i t 组织、公司进行商用嵌入式操 作系统和专用操作系统的研发,其中涌现了一些著名的嵌入式操作系统,如 m i c r o s o f t 公司的w i n c e 和w i n d r i v e ts y s t e m 公司的v x w o r k s 就分别是非实时 和实时嵌入式操作系统的代表。但是商用产品的造价都十分昂贵,用于一般用 华北水利水电学院硕士学位论文 途会因产品成本过高而失去竞争力,于是人们就把目光集中到了l i n u x 操作系 统上:l i n u x 是一个完全公开的操作系统,源代码开放,可以免费获得它的所 有源代码,可以随时得到专家的帮助;l i n u x 功能足够强大,具有大量的开发 工具,支持几乎所有的外围设备;l i n u x 还不是十分庞大,经过裁剪,其复杂 度还能够把握 i , 2 , 3 , 4 1 。于是,很多专业人员便开始了对l i n u x 操作系统的分析 研究工作。 1 2 课题研究的意义及来源 l i n u x 操作系统是用一种性能优良、源码公开且被广泛应用的免费操作系 统,可以作为研究实时操作系统的典范。目前在工业控制领域,控制接口软件 ( 包括组态软件) 大多基于w i n d o w s 平台,因此在产品发布及应用均涉及到其 操作平台的知识产权,而且系统的稳定性存在一定的缺陷。 采用丌放式操作系统,丌发具有中国自主产权的嵌入式操作系统,包括 l i n u x ,一直是国家重点鼓励和支持的研究工作,l i n u x 的免费、源代码开放、 支持多种c p u 等多种优点使得使用l i n u x 作为底层操作系统,对它进行裁剪和 定制,并在其基础上搭建嵌入式操作平台,成为日益流行的嵌入式操作系统解 决方案。并且与传统的实时操作系统相比,l i n u x 的开放源码性使得l i n u x 开 发团体会比商业实时操作系统的供应商更快地支持新的i p 协议和其他协议。 l i n u x 的高度模块化使添加部件非常容易,由于l i n u x 的内核容量较少,可以 作为智能设备、智能仪器仪表的嵌入式操作系统,同时研究基于嵌入式操作系 统并符合工业标准的应用接口及软件h 6 即】,对国民经济的发展和国家安全都 具有重要的意义。 1 。3 论文主要内容及工作安排 ( 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 操作系统 中串口通讯的实现,熟悉目标机j x a r m 9 2 4 i 0 系统的硬件资源,为论文的下一 华北水利水电学院硕七学位论文 步工作打好基础。 ( 2 ) 在深入研究图形用户界面系统m i n i g u i 的基础上,为嵌入式系统建 立m i n i g u i 应用程序编译环境,配置并编译m i n i g u i 库,进行m i n i g u i 下程序 的编写及交叉编译。 ( 3 ) 结合a r m 微处理器的结构,研究$ 3 c 2 4 1 0 xa r m 微处理器,实现了把 把经过裁剪编译好的l i n u x 内核和经过编译的m i n i g l j l 资源下载到a r m 处理器 中。 ( 4 ) 研究步进电机的驱动原理和控制方法,分析了步进电机的使用控制 现状,分析其利弊,提出了在嵌入式操作系统下驱动步进电机的方法,并编写 了基于嵌入式l i n u x 和m i n i o u i 的步进电机运行控制系统,实现了对步进电机 的驱动。 华北水利水电学院硕士学位论文 第二章嵌入式操作系统概述 2 1 嵌入式系统 嵌入式系统【1 0 1 。”1 是以嵌入式计算机为核心,面向用户、面向产品、面向 应用,软硬件可裁剪的,适用于对功能、可靠性、体积、成本、功耗等综合性 能有严格要求的计算机系统。嵌入式系统主要由嵌入式处理器、相关支撑硬件、 嵌入式操作系统及应用软件系统等组成,它是集软硬件于一体的可独立工作的 “器件”。嵌入式处理器主要由一个单片机或微控制器( m c i j ) 组成。相关支撑 硬件包括显示卡、存储介质、通信设备、输入输出设备等。多年以来,嵌入式 系统一直被广泛应用于各种设备当中,大到车、船和卫星,小到家用电器。大 部分的嵌入式系统并不需要操作系统。首先是因为没有必要,例如洗衣机和微 波炉等等,它们的功能有限。这样的系统只需要一道控制程序管好几个按键、 指示灯和数码管就可以了。其次是因为条件不允许,它们采用4 位或8 位的微 处理器,有的内存少得不到1 k b ,根本没有操作系统生存的空间。即使要完成 些比较复杂的任务,也只能依靠程序员的技巧去弥补硬件条件的不足。 2 2 嵌入式实时操作系统 嵌入式实时操作系统”3 1 “川( r e a l - t i m ee m b e d d e do p e r a t i n gs y s t e m ,r t o s ) 是一种实时的、支持嵌入式系统应用的操作系统,它是嵌入式系统( 包括硬、 软件系统) 非常重要的一个组成部分,通常包括底层驱动软件、系统内核、设 备驱动接口、通信协议、图形界面、标准化浏览器等。与通用平台操作系统不 同,r t o s 往往嵌入到机器或设备内部运行,一般用户无法看到它的运行界面, 因而又被称为嵌入式操作系统。 早期的硬件设备很简单,软件的编程和调试工具也很原始,程序编写大都 采用宏汇编语占,程序调试也很麻烦。而随着硬件的发展,嵌入式系统的应用 领域日益扩大,提供的应用功能也越来越多,当初的控制程序被随之加入了许 多功能,而这些功能有很多是可以由操作系统来提供的。因此很自然地会让人 想到为嵌入式系统做一个嵌入式的操作系统。由此可见,嵌入式操作系统是由 4 华北水利水电学院硕十学位论文 于工程实践的需要而诞生的。而嵌入式操作系统所使用的技术,基本上是从台 式计算机操作系统下推而来的。随着系统越来越复杂,操作系统就显得很必要。 市场上出现的几个著名商业嵌入式操作系统,包括v x w o r k 、n e c u l e u s 、q n x 和w i n d o w sc e 等,都提供了具有良好性能的开发环境,提高了应用系统的开 发效率。 与其他非嵌入式操作系统相比,对嵌入式操作系统有如下要求: ( 1 ) 结构紧凑,体积小。嵌入式系统不具备像硬盘那样大容量的存储介 质,大多使用闪存( f l a s hm e m o r y ) 作为存储介质。因此要求嵌入式操作系统 只能运行在有限的内存中,中断的使用也受到限制。因此,嵌入式操作系统必 须结构紧凑,体积微小。 ( 2 ) 实时性。大多数嵌入式系统都是实时系统,而且多是强实时多任务 系统,要求相应的嵌入式操作系统也必须是实时操作系统( r t o s ) 。实时操作系 统作为操作系统的一个重要分支已成为研究的一个热点,主要探讨实时多任务 调度算法和可调度性、死锁解除等问题。 ( 3 ) 开发调试环境特殊。研究表明大量正在开发的各种智能化机器、信 息家电和控制系统对嵌入式操作系统开发调试环境的需求极其巨大,提供完整 的集成开发环境是每一个嵌入式系统开发人员所希望的。一个完整的嵌入式系 统的集成开发环境一般需要提供的工具是编译连接器、内核调试跟踪器和集 成图形界面开发平台。其中的集成图形界面丌发平台包括编辑器、调试器、软 件仿真器和监视器等m 】。 伴随嵌入式发展过程,嵌入式操作系统经过了4 个比较明显的发展阶段。 第一阶段是无操作系统的嵌入式算法阶段,在这一阶段,系统结构和功能 都相对单一,处理效率较低,存储容量较小,用户接口较少。由于这种嵌入式 系统使用简便、价格较低,在国内工业领域应用较为普遍,但是随着技术的发 展它已经适应不了高效的、需要大容量存储介质的现代化工业控制和新兴的信 息家电等领域的需求。 第二阶段是以简单操作系统为核心的嵌入式系统。在这一阶段系统,嵌入 式c p u 种类多,通用性差;系统开销小,效率高:一般配备系统仿真器,操作 系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友好;系统 华北水利水电学院硕士学位论文 圭餮臻寒控毒l 系绞受蕊菝及篮控瘟焉程序运雩亍。 第三阶段是嵌入式实时操作系统阶段,是以嵌入式揲佟系统为核心的嵌入 式系统。在这一阶段,嵌入式操作系统可以运行在不同类型的微处理器上,兼 容性好:操作系统内核小、效率高,并脯鼹有高度的模块化和扩展性;具有文 拳系统管理、设备支蛰、多任务、嬲络支撩、图形塞口敷及瘸户赛瑟等殛毙; 疑有大量的应曩程序接口( a p i ) ,开发应用程穿筒单;嵌入式艇蠲软 孛丰富。 第四阶段是基于i n t e r n e t 嵌入式繇统,这是一个正在迅速发展的阶段。 目前大多数嵌入式系统还独立于i n t e r n e t 之外,但随着i n t e r n e t 的发展以及 i n t e r n e t 技术与信息家电、工业控制技术的目益密切结会,嵌入式设备与 i n t e r n e t 豹结合褥代表蔫嵌入式技术静真燕未寒l ”1 嵌入式实时操作系统川9 1 在目前的嵌入式应用中越来越广泛,尤其在功能 数杂、系统庞大的应用中显得愈来愈重鞭。 酋先,嵌入式实瓣操 乍系统提高了系绞蛉开发效率,缩短了系统的开发趱 期。在嵌入式实对攮俸系统琢凌下,嚣发令复杂静应鞠程窿,逶常可越按照 软件工程中的解稻原则将整个程序分解为多个任务模块,每个任务模块的调 试、修改几乎不影响其他模块。 其次,嵌入式实时操作系统提高了系统的可靠性。提离系统的可靠性就踅 健系统尽可巍| 冬少滋数障,帮捷窭瑰数簿象旋在最短款时溺爨掺复。实时搽馋 系统管理的系统,幽予它的模块化功能,应用程序被分割成饕于独立的任务模 块,使得原来对整个系统造成的干扰在此只是引起若干进程中的一个被破坏, 可以通过系统运行的监控进程对其进行修复。 再次,嵌入式实时擐 乍系绞充分发撂了3 2 位c p u 鲶多任务潜力。3 2 位c p u 比8 、1 6 位c p u 抉,采用穗于提高系统可纛往和稳定往弱设嚣+ ,丽且它就是为 遮行多用户、多任务操作系统而设计的,适合于运行多任务实时系统。 在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变 褥容易,将应用程序分割成若干独立蛇任务模块,使应用程摩的设计过程大为 麓亿,不需要大熬浚动虢可以增麴毅戆功麓。两置对实露彀簧求蔫蘩豹事 孛氇 能得到快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系 统资源得到更好的利用。 6 华北水利水电学院硕士学位论文 2 3 嵌入式系统在工业控制中的应用 在工业控制领域,嵌入式设备已被广泛应用,工业生产领域需要完成智能 化、数字化改造,军用领域的仿真、数掘采集等都要求嵌入式操作系统的支持, 为嵌入式系统提供了很大的市场。因此,研究和开发基于嵌入式操作系统并符 合工业控制的应用接口及软件是极具现实意义的。 集散型控制系统( d c s ) 2 0 1 是当今工业过程控制的主流系统,它是由多台 计算机和现场终端机联接组成。通过网络将现场控制站、监测站和操作管理站、 控制管理站及工程师站联接起来,共同完成分散控制和集中操作、管理的综合 控制系统。d c s n 0 重于连续性生产过程控制。 系统的组成及其框图如下: 图2 3 1 该系统的基本特点是: 采用分级分布式控制。系统按不同功能组成分级分布子系统,各子系 统执行自己的控制程序,处理现场输入输出信息,减少了对系统的信息传输量, 使系统应用程序较为简单。 在物理上实现了真正的分散控制,使整个系统的危险性分散,系统可靠 性较高。 系统的软、硬件资源丰富,可以适应各种特殊的要求。 响应时间短,实时性较好。 应用软件的编程工作量较大,对开发和维护人员要求较高,开发周期较 长。 华j 求剽永嚷学院碾士学位论文 有较好的扩展能力。借助网络技术,可以完成纵向和横向通讯及向商层 的管理机通讯,系统的扩展方便。 d c s 系统其骞鞍高豹可靠毪及照姆躲扩震能力,注爨珐缆分教瑷求危险分 数,霹校据嗣户篱理体系静需要帮掰户功髭要求,缓成缀晦分散的罄次纯张横 向分散的功能化的各类系统,借助于网络技术,完成纵向和横向的通信,或向 上层管理机构通信。在软件方面,有面向过程控制的支持软件和功能软件觎, 以便于过程控制工程师摆脱软件人员两独立编程( 生成应用程序) 。 华北水利水电学院硕十学位论文 第三章建立嵌入式开发环境 3 1 嵌入式l i n u x 概况 3 1 1l i n u x 简介 l i n u x 丌发始于1 9 9 1 年,来自芬兰的l i n u sb e n e d i c tt o r v a l d s 正式对 外发布一套u n i x 系统兼容操作系统,此套系统是提供给3 8 6 或4 8 6 a t 兼容计 算机使用的。源代码被放在芬兰网上最大的f t p 站点,由一个名为l i n u x 的目 录存放,于是l i n u x 的名称就这样被定下来了。由于l i n u x 属于g n u 软件,所 以使用者必须注意一些事项,包括任何人都可以拷贝丌放软件基金会( f s f ) 产品,但不可牵涉到商业行为,同时,发布软件的人也有必要将源代码一起交 给别人。总之,任何人都可以拷贝、传播、发展这个系统程序。l i n u x 是集体 创作的结晶,而且它还在不断地完善和发展 2 1 , 2 2 , 2 3 , 2 4 。l i n u x 是个与生俱来的 网络操作系统,成熟而且稳定。 3 1 。2l i n u x 内核 内核是操作系统的灵魂,包括内核抽象和对硬件资源的间接访问,它负责 管理文件、内存,负责启动系统并运行程序,负责从网络上接收和发送数据包 等口目。简言之,内核实际上是抽象的资源操作到具体硬件操作细节之间的接口。 l i n u x 内核有自己的结构体系,主要由进程管理、内存管理、文件系统、进程 间通信等几部分组成,其中进程管理、内存管理和文件系统是其最基本的3 个 子系统【2 6 1 。图3 卜l 简单表示了它的框架。用户进程可直接通过系统调用或者 函数库内核来访问资源。 华北水利水电学院硕士学位论文 3 1 2 1 进程管理 用户进程 函数库 系统调用 进崔霄理f 文件系统f l 内存管理 图3 1 1l i n u x 内核的结构 进程是具有一定功能的程序关于一个数据集合的运行活动,是处于活动状 态的计算机程序。它是一个随执行过程不断变化的实体。在多处理操作系统中, 进程具有独立的权限和职责。每个进程运行在各自的虚拟地址空间,通过一定 的通讯机制,相互间才能发生联系 3 2 1 。 任何在l i n u x 系统下运行的程序都是进程,l i n u x 系统中包括下面几种类 型的进程: 1 交互进程 该类进程是由s h e l l 控制和运行的,既可以在前台运行也可以在后台运行。 2 批处理进程 该类进程不属于某个终端,它被提交到一个队列中以便顺序执行。 3 守护进程 该类进程在需要时才被唤醒在后台运行,一般在l i n u x 启动时丌始执行。 l i n u x 是个多进程的操作系统,每个时刻只能有一个进程占有c p u ,当这 个正在运行的进程等待其它的系统资源时,l i n u x 内核将取得c p u 的控制权, 并根据调度算法将c p u 分配给其它丁f 在等待队列中优先级最高的进程。 从系统内核的角度看来,一个进程仅仅是进程控制表( p r o c e s st a b l e ) 中的一项。进程控制表中的每一项都是一个t a s k s t r u c t 结构,而t a s k s t r u c t 华北水利水电学院硕士学位论文 结构本身是在i n c l u d e 1 i n u x s c h e d h 中定义的。在t a s k s t r u c t 结构中存储各 种低级和高级的信息,包括从一些硬件设备的寄存器拷贝到进程的工作目录的 链接点。 进程控制表既是一个数组,又是一个双向链表,同时又是一个树。其物理 实现是一个包括多个指针的静态数组。此数组的长度保存在i n c l u d e l i n u x t a s k s h 定义的常量n rt a s k s 中,其缺省值为1 2 8 ,数组中的结构则保存在系 统预留的内存页中。链表是由n e x t t a s k 和p r e v t a s k 两个指针实现的,而树 的实现则比较复杂。 系统启动后,内核通常作为某一个进程的代表。指向t a s k s t r u c t 的全局 指针变量c u r r e n t 用来记录正在运行的进程,变量c u r r e n t 只能由k e r n e l s c h e d c 中的进程调度改变。当系统需要查看所有的进程时,则调用 f o r e a c h t a s k ,这比系统搜索数组的速度要快。 进程只能运行在用户方式( u s e rm o d e ) 或内核方式( k e r n e lm o d e ) 下。 用户程序运行在用户方式下,而系统调用运行在内核方式下。在这两种方式下 所用的堆栈不一样:用户方式下用的是一般的堆栈,而内核方式下用的是固定 大小的堆栈( 一般为一个内存页的大小) 。 l i n u x 的调度函数是s c h e d u l e ,定义在k e r n e l s c h e d c 中。该函数完成以下 工作: ( 1 ) 定义两个指针 p r e y 足当前进程;n e x t 是下一个要运行的进程,这两个进程可能相同。 ( 2 ) 处理调度任务队列 l i n u x 有一个通用的机制,能把任务排列在队列中,延迟到稍后的时间处 理,这种机制叫任务队列。系统中有多个预先建立的任务队列,其中在任务队 列t q s c h e d u l e r 中排列的是由调度程序直接处理的任务。调度程序每次运行, 都首先检查该任务队列,如果其中有待处理的任务,则顺序处理其中的每一个 任务,而后将队列清空。 ( 3 ) 检查是否在中断处理中 如果目前在中断处理程序中,则不做调度,直接返回。 ( 4 ) 底半处理 华北水利水电学院硕士学位论文 底半处理是中断处理的后半部分。这部分工作可以推迟到系统认为合适的 时机再处理。通常,一个底半处理程序所对应的就是一个任务队列。因为任务 队n t q s c h e d u l e r 没有对应的底半处理,而且该任务队列必须由调度程序处 理,因此在调度程序的丌始先处理任务队列t q s c h e d u l e r 。 ( 5 ) 调整运行进程队列 i 。i n u x 不像别的系统那样将可运行进程按其优先级分成多个队列,而是把 系统中所有的可运行进程( 状态为t a s k r u n n i n g ) 都排在同一个队列中,该队 列称为运行进程队列。初始进程i n i t t a s k 总在该队列中,它的下一个进程 ( n e x t r u n ) 是第一个进程,它的前个进程( p r e y _ r u n ) 是最后一个进程。 因为调度程序每次都从i n i t t a s k 的下一个进程开始搜索,直到它的前一个进 程为止,所以i n i t t a s k 是队列的头。新进程入队时插在对头( i n i t t a s k ) 后。 运行进程队列的排队情况如图3 2 所示: 图3 卜2 运行进程队歹0 ( 6 ) 选择下一个要运行的进程 从i n i t t a s k n e x t _ r u n 丌始,顺序搜索系统的运行进程队列,直到 i n i t t a s k 。对其中的每一个进程计算其w e i g h t 值,选择w e i 曲t 值最大的进程 作为下一个要运行的进程。 w e i g h t 值的计算规则是: ( d 如果当前进程明确声明要放弃c p u ,则;e w e i g h t 2 0 。 ( d 如果进程是实时进程,则w e i g h t 2 r t p r i o r i t y 十1 0 0 0 。 ( d 如果进程的c o u n t e r 值为o ,则w e i g h t = 0 。 如果进程的c o u n t e r 值不为o ,则w e i g h t = c o u n t e r + p r i o r i t y :如果进 程是当前进程,将其w e i g h t 值再d h l ,即当前进程优先。 1 , 华北水利水电学院硕士学位论文 ( 7 ) 切换 如果选择的下一个要运行的进程( n e x t ) 就是当前进程( p r e y = = n e x t ) , 则不需要进行切换,调度程序简单返回,当前进程照常运行。如果选择的下一 个要运行的进程不是当前进程,则当前进程必须让出c p u ,以便新的进程能够 运行。为了让当前进程在下一次被选中时还能接着运行,必须将处理器的当前 状态保存起来。为了让新进程从它上次停止的位置接着运行,必须根据新进程 的t s s 恢复处理器的状态。这个工作就是进程切换。 3 。1 2 2 内存管理 l i n u x 采用页式存储管理机制,每个页面的大小随处理器芯片而不同,页 面大小的选择对地址变换算法和页表结构,以及对存储器的利用率都有影响。 内存管理子系统负责控制进程对系统硬件内存资源的访问 3 3 1 。这是通过硬 件内存管理实现的。该系统提供进程对内存的应用与计算机物理内存间的映 射。这样,两个进程就可以访问同。个虚拟内存地址,而实际使用的是不同物 理内存地址。内存管理子系统还支持交换,它把暂时不用的内存页调出内存, 使计算机获得比实际内存更多的虚拟内存。内存管理提供的功能有:扩大地址 空间;进程保护;内存映射:公平的物理内存分配:共享虚拟内存。 l i n u x 将内存管理的工作划分开,实现了不同的内存管理器。它们是:物 理内存管理器,内核内存管理器,虚拟内存管理器,内核虚拟内存管理器和用 户空间内存管理器。其中物理内存管理器是基础,虚拟内存管理器是核心,而 各个内存管理器又都离不丌内核内存管理器的支持。几个内存管理器之间的关 系如图3 卜3 所示。 图3 卜3 内存管理器之间的关系 华北水利水电学院硕士学位论文 内存管理提供两级接口:用户使用系统调用的接口以及其它内核子系统所 用的接口。系统调用接口有m a l l o c 0 f r e e 0 、m m a p 0 m u n m a p 0 等,而内核的 接口有k m a l l o c 0 k f r e e 0 、v e r i f ya r e a ( ) 等。 3 1 2 3 文件系统 e 至要三e 三茎三 华北水利水电学院硕士学位论文 统,更使得计算机可以在任意的物理设备上挂载一个任意逻辑文件系统的接 口,而v f s 给所有的逻辑文件提供统一的接口。 l i n u x 的内核有三种类型的设各驱动程序:字符型、块型和网络型。与系 统文件相关的是字符设备和块设备。设备驱动程序实际上是处理或操作硬件控 制器的软件,是在内核中有高级特权的、驻留内存的、可共享的底层硬件处理 程序 3 h 。 3 1 2 4 进程闻通信 l i n u x 系统中的进程和系统内核之间,以及各个进程之间需要相互通信才 能实现协调运行。l i n u x 系统支持多种内部进程通信机制( i p c ) ,其中最为常用 的是信号、管道以及u n i x 系统支持的s y s t e mvi p c 机制【3 3 】。 信号在软件层次上是对中断机制的模拟,一个进程收到一个信号与处理器 收到一个中断请求是一样的。信号与中断的区别在于信号的实时性不如中断, 若在允许中断的情况下,中断可以打断任务的执行,而信号则必须在特定的时 间点才能被处理。信号可以由各种异步事件产生。s h e l l 也可以使用信号将作 业控制命令传递给它的子进程。信号( s i g n a l ) 机制是u n i x 系统中最为古老 的进程之间的通信机制。它用于在个或多个进程之问传递异步信号。 进程使用k i l l0 、r a i s e0 、s i g q u e u e0 等函数发送特定的信号给指定的 进程和进程组。发送进程有一定的权限要求。例如,发送进程必须和接收进程 有相同的所有者,或者发送进程的所有者是超级用户。 管道是一种单向的字符流,它将一个进程的标准输出送到另一个进程的标 准输入中。进程本身并不需要知道有关重定向的命令,只需正常执行。进程之 间临时的管道是由s h e l l 建立起来的。在l i n u x 系统中,管道通过两个文件数 据结构,同时指向一个相同临时v f s 索引节点来实现。原始u n i x 管道被称为 匿名管道,f i f o 由于在文件系统的基础上给管道操作提供命名服务而被称为 命名管道。匿名管道只在操作期间存在于内存,而f i f o 存储于磁盘。f i f o 管 道通常用于下面两种情况:f i f o 由s h e l l 命令使用,可以将某个程序的输出作 为输入送往另一个程序,这样就可以不用创建中间临时文件:f i f o 用于客户一 华北水利水电学院硕士学位论文 服务器应用程序中,作为相互传送数据的通道。 i p c ( i n t e r n e tp r o c e s sc o n n e c t i o n ) 是共享”命名管道”的资源,它是为了 让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限 在远程管理计算机和查看计算机的共享资源时使用。l i n u x 系统支持三种类型 的i p c 机制,它们是消息队列,信号量和共享内存。 l i n u x 的一个较好的特征就是它可以在运行的时候扩展内核代码,也就是 况在系统运行的时候t ,j 以增加系统的功能。每个可以增加到内核中的代码称为 一个模块。将模块链接到内核如图3 卜5 。模块只是预先注册自己以便服务于 将来的请求,函数i n i tm o d u l e ( 模块的入口点) 是为以后调用模块预备,函数 c l e a n u pm o d u l e 在模块即将卸载前调用。 图3 卜5 模块与内核图 l i n u x 内核支持很多模块类型( 或“类”) ,不仅只局限于设备驱动程序。 每个模块由目标代码组成( 没有连接成完整的可执行文件) ,通过i n s m o d 程序 它们可以动态连接到运行着的内核中,而通过r m m o d 程序就可以去除这些模块。 每个模块通常只实现一个功能,n # l 是可以分类的。例如,字符设备模块,或 块设备模块。将模块分成不同的类型或类并不是固定不变的,可以选择在单独 一整块代码中创建一个模块实现不同的驱动程序【3 ”。 3 1 3l i n u x 作为嵌入式操作系统的原因 i 。in u x 作为嵌入式操作系统的原因主要有以下几点 华j 隶利承电学院颈士学位论文 ( 1 ) l i n u x 是一个和u n i x 相似、以内核为基础的、具有完全的内存访问 控制、支持大激硬件等特性的一种通用操作系统。源码全部公开,任何人可以 修改并在g n u 通震公共许可证下发孬。l i n u x 可以辘意配置等。这些帮搜缮莱 焉l i n u x 乍为绦作系统不会遥裂强傅关予版权验纲纷。毖然会节誊大量豹开发 费用。这样,开发人员可以对操作系统进行定制,邋应其特殊需要。 ( 2 ) 可运行于多种硬件平台。l i n u x 已经被移植到多种硬件平台,谗对于 经费、时闽受限制豹研究与开发项目都很有吸引力。滕型先在标准平台上开发 嚣霉移接到爨铬戆硬 孛之上,麴浚了软尊与硬 孛麴秀笈过程。l i n u x 采蠲一个 统一的框架对磺件进行管理,在硬件平台之问的改动与上层应用无关。 ( 3 ) l i n u x 带有u n i x 用户熟悉的完善的开发工鼠,几乎所有的u n i x 系 统的应用软件都移植到了l i n u x 二。l i n u x 还提供了强大的网络功能,本身内 置网络支持,有多静可选择窗口繁淫嚣( xw i n d o w s ) 。l i n u x 的高度模块纯馒添 杰妥部l 宰j 常蜜翳,箕强大夔语言缡译嚣g c c ,e + + 等凌可以穰容易褥裂,不餐藏 熟完善,而且使用方便。 因此,l i n u x 作为嵌入式系统新的选择,是非常有发展前途的口3 i 。 3 。嘎。4 嵌入式l i n u x 麓特点 实时性是嵌入式系统的基本爱求,其次,还要求体积小,速度快,可嚣性 高。嵌入式l i n u x ( e m b e d d e dl i n u x ) 是指对l i n u x 缀过裁剪小型化后,可固 纯在存姥器或单片规中,应用予特定嵌入式场合的专翊l i n u x 操季# 系统 3 4 , 3 5 j 。 嵌入式l i n u x 泌开发和研究已经成为蓬蔚操作系统领域静一个热点。与其它嵌 入式操作系统相比( 详见表3 - 1 ) ,嵌入式l i n u x 的特点如下: 栽3 l 专用嵌入式实时操作系统与嵌入式l i n u x 的比较 嵌入式l i n u x 操作系统商州嵌入式实时操作系统 软中 移糖荽 我璃开放)较娥( 封蕊系统) 舨权赞免费付费 技术支持 全世界自由敬僻:开发者提供 歼发商提供 网络特性 免费且性能优良 另外付费 产品开发周期短,有兔赞代码参考移植长,参考代码有限 实时性能要用r 1 1 _ l i n u x 模块弥补 好 | 稳定性较好,羽于辩蛙能系统霉改进较好 华北水利水电学院硕士学位论文 第一,l i n u x 系统是层次结构且其内核源代码完全开放 3 6 , 3 7 】。l i n u x 是由 很多体积小且性能高的微内核系统组成。嵌入式l i n u x 实际上是把b i o s 层的 功能实现在l i n u x 的d r i v e r 层。l i n u x 代码的开放性主要体现在源代码可获得 上,开发者可以任意选择并按自己的意愿开发新的产品。在内核代码完全开放 的前提下,不同领域和不同层次的用户可以根据自己的应用需要对内核进行改 造,低成本设计和开发出满足自己需要的嵌入式系统。 第二,强大的网络支持功能。l i n u x 支持所有标准因特网协议,因此可以 利用l i n u x 的网络协议栈将其丌发成为嵌入式的t c p i p 网络协议栈。 第三,l i n u x 具备一整套工具链i 可自行建立嵌入式系统的开发环境和交 叉运行环境,跨越嵌入式系统开发中仿真工具的障碍。l i n u x 也符合i e e e p o s i x 1 标准,使应用程序具有较好的可移植性。 第四,嵌入式l i n u x 与硬件芯片的紧密结合。s o c 系统( s y s t e mo nc h i p ) 的发展就是软硬件紧密结合的证明1 3 8 1 。l i n u x 具有广泛的硬件支持特性,能运 行在多种处理器芯片上。l i n u x 支持各种主流硬件设备和最新硬件技术,甚至 可以在没有存储管理单元( 删u ) 的处理器上运行。这意味着嵌入式l i n u x 将 具有更广泛的应用前景 2 1 1 。 嵌入式l i n u x 和商用专用r t o s 一样,需要编写b s p ( b o a r ds u p p o r t p a c k a g e ) 3 9 , 4 0 , 4 1 , 4 2 1 ,这相当于编写p c 的b i o s 。这不仅仅是嵌入式l i n u x 的难 点,也是使用商用专用r t o s 开发的难点。嵌入式系统的发展,必然导致软硬 件无缝结合的趋势,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论