已阅读5页,还剩55页未读, 继续免费阅读
(控制理论与控制工程专业论文)基于linux的嵌入式操作系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 暇入式操作系统是嵌入式蒜统的核心部分,是系统功能的外在表现,它 甓裁衰整个系缝簿鬟露囊漂著提塞嚣发瘫爱黎痔涎羹醛。交予王辍g x 捺馋系 统所鼠有的糟= f = 优良特点,例如,源代码免费、内核稳定高效,使樽熬于 l s r r a x 瓷疆究灏入式攥佟系统蠛为一静藤徐、懑效率戆,蒡虽枣壤羲鼹广翅 的研究策略。本文就是在此基础上,深入分析了h n u x 内核的体系结椅,给 窭了见转羧造方寒,饕遂分辑y 实慈系缝实对性改造熟落于算法,并且套缨 了重新编译系统内核静方法。 l i n u x 豹幽拨是一个软传资源十分睾富,劝跳完蛰,工作稳定的系统内 缓,本文对萁键或模块淹聿亍了深a 懿羚轿,蔷黉蘩褥了海菝静内存营鬻罐头 和进程镫理模块,介缨了虚拟文件系统模块、谶程通信模块、网络接口模块 稳王露藤莲,淹怼l i n a x 窍蔽避孑改造藏定了颦实静疆谚蓥磷。 划+ l i n u x 谶行实时性改造怒其应用于嵌入式系统的关键部分,这也是本 文熬羹煮爨在。奉文锗黠不藏戆鑫蘩瑟岔拳娶求,撵交了蔑释安薅黎跛遗方 案,并在实时性调度鞯法上做了大量研究,对镥种算法进行了分析、襄现和 恁蓑,薅釜务谶蹙菸爵行缝避孬了搽讨,著巍褥了一魏麟耋骜熊溪度器憝实 现方案。 本文最嚣奔缝tl i l m x 蠹梭嚣编译辩舅级方法,对基予u n u x 豹敬入式 搡作悉统的研究方法的发展方向迸彳亍了分析鞠展望。 本文舞徼熊王穆对嵌入式攥 车系统的实时性改造具霄一寇的促进作用, 嚣i a n u x 静内棱研究遗育一定秘意义。 关键警:褒天式瘵俘琴缓,l i n u x ,交蔽,实辩淫 a b s t r a c t t h ee m b e d d e d o p e r a t i n g s y s t e m i st h ec o r ea n d t h ef u n c t i o n a l r e p r e s e n t a t i o no f t h ee m b e d d e d s y s t e m ;t t c o n t r o l sa l lt h er e s o u r c e so fm e s y s t e m a n do f f e r st h ep l a t f o r mf o ra na p p l i c a t i o n t h e r ea t em a n ye x c e l l e n tc h a r a c t e r s w i t hl i n 黼o s ( o p e r a t i n gs y s t e m s u c ha st h ef l e ec o d e s t e a d ya n de f f e c t i v e k e r n e l s o , t h er e s e a r c ho nt h ee m b e d d e do sb a s e do nl i n u xi sc h e a p e r , m o r e e f f e c t i v ea n dm a r k e t a b l e 。a s 魏r e s u l t , t h i sp a p e ra n a l y s e st h ea r c h i t e c t u r e 醴 l i n u xk e m e t d e e p i y ,b r i n g sf o r w a r ds o m e m e a s u r e so fr e c o n s t r u c t i o n sf o rl i n u x , t a k e sm u c he m p h a s e so nt h e a l g o r i t h m s a b o u t i r a p r o v i n g t h e r e a l - t i m i n g c h a r a c t e ra n di n t r o d u c e st h ew a yo n c o m p i l i n g t h en e wk e r n e l t h el i n u xk e r n e lp o s s e s s e st h er i c hs o f t 释a r er e s o u r c e s ,m a t u r ef u n c t i o n s , s t e a d yw o r k i n gb e h a v i o r t h i sp a p e rc l a r i f i e st h em o d u l e st h a tm a k eu pt h e k e r n e l , e s p e c i a l l ya n a l y s e st h em e m o r ym a n a g e m e n tm o d u l ea n dt h ep r o c e s s m a n a g e m e n tm o d u l e ,i n t r o d u c e st h ev i r t u ef i l es y s t e mm o d u l e ,t h ei n t e rp r o c e s s c o m m u n i c a t i o nm o d u l ea n dt h en e t w o r km o d u l e 。s ow eh a v et h ed e e pt h e o r y f o u n d a t i o nt or e c o n s t r u c tt h ek e r n e l i m p r o v i n g t h er e a l - t i m eo fl i n u xi st h ek e yo fi t sa p p l 耗a t i o n 捻t h e e m b e d d e ds y s t e m 。s o , t h i sp a p e rd o e sm u c hw o r ko ni t 。a c c o r d i n gt od i f f e r e n t c o m m a n d sa n ds i t u a t i o n s ,t h i sp a p e rb r i n g su ps o m em e a s u r e st oi m p r o v et h e l i n u xr e a l t i m e w h 甜sm o r e , t h r o u 曲i m p l e m e n t i n ga n dc o m p a r i n gv a r i o u s a l g o r i t h m s ,t h i sp a p e rd r a w s ac o n c l u s i o no nt h e f e a s i b i l i t y a b o u tt h et a s k s c h e d u l ea n dd i s c u s s e st h ed e s i g no f an e w i n t e l l i g e n ts c h e d u l e r a tl a s t , t h i sp a p e ri n t r o d u c e st h ew a yo fc o m p i l i n ga n du p g r a d i n gt h ek e r n e l , l o o kf o r w a r dt ot h e s t u d y o nt h ee m b e d d e d0 sb a s e do nl i n u x 。 t h i sp a p e rw i l la c c e l e r a t et h es p e e do ft h es t u d yo nt h ee m b e d d e do sa n d b o o s tt h er e s e a r c ho nt h er e a l * t i m er e c o n s t r u c t i o nt os o m e e x t e n t k e y w 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 l , r e a l - t i m e 戴寝瑗工夫学醺1 学蹙论文 。 课题研究背景 第1 章绪论 嵌入式系统是指以应用为中心,以计算机拽术为基础,软硬件可剪裁, 透应应翔系统对凌髭、霹黎溪、袋零、体积、确耗严格葵塞憨专爝诗赣辊系 统。 亩予暇入式系统昊有镁莉瑟溪、犍徐,疣高、嵌入筏镬、系襞稳滋释蜜对 性强等特点,可以嵌入猁现霄任何信息家电和工业控制系统中。并且融经在 各个领域敬缮广泛豹瘦薄。魏餐能工控设备、a t m 瓿、犯卡、p d a 、牵载 g p s 等。可以断言,嵌入武系统在生活、娱乐、军事、工业领域中的i 陂用潜 力是基大魏。 瑟嵌入式捺终系统 筝魏系绫中懿菝;盘,惫瑟绞凌戆戆多 在表瑰,窀控裁 簧整个添统熬资滚著提供开袋斑塌程序豹基磁,占摇嚣常重要熊媳德。 许多嵌入式系统的软件设计均是采用整体式结构,即把对礤件的管理和 其体应髑功能合并在一起,撼各个功能模块按顺艨救在一个大循环中,通过 执行祭份语句逐个查询来选择功熊模块。这种结构对予动能复杂的嵌入式系 凌来落,有霾大薅蘸蠢,疆侉卒骞移接缝羞,不然支菏多饪务,髌予徽戮实 时性,不能升级,不提供编程接口。所疆应借撩骥代撩作系统盼理论,寻求 程序设计嬲模块傀,屡次化。 _ 耐l i n u x 怒现代操作系统的典型代表,具祷炙活幢高、移植性强、可靠 性好,支持多种硬彳孛体系结构、源代码开放等特点,所以在l i n u x 的籀础上, 豢鉴它瓣崽惩、缝穆,对蒸避行改造寒羧建焱入式搽嚣系统是一个嘲耱之攀。 1 2l i n u x 特性简介 l i n u x 自发布以来,在嵌入式颚城取得了飞遴发鼹,目前程开发黪嵌入 式系统中,4 9 戆项霆选耩l i n u x 雩# 委强入式掇终系统。l i n u x 之联苏藐在 1 一些坚翌王奎堂塑主兰垡逢墨 嵌入式系统市场上取得如就使的发展,与它蠢身的优良特性有着不可分潮的 关系【1 1 : 1 ) 秀敞滚弼,丰富豹软转炎滚 l i n u x 怒目出的操作系统,它的开放源代粥使耀户获得了最大的胬由度。 l i n u x 上| | l l 较传资滚卡分李塞,每秘逶趱程序程l i n u x 土罄可叛找到,并 且每天都在增加。在h n u x 歼发程序往往不需骥从头做超,而是先选择个 类似的自由软件,进行二次开发。这就大大节省了开发工作量,缩短了开发 辩溺。 2 ) 功能强大懿内核,健畿赢效、稳定、多任努 l i n u x 憝逡孩菲霉稳定。它懿藩效彝稳定靛已经在各个领域,笼箕在溺 络服务器领域得到了事实的验证,而且l i n u x 内核小巧灵活,易于剪裁。遮 使l i n u x 能通台嵌入式系统的应用。 3 ) 支持多耱嚣系结撬 l i n u x 能支持x 8 6 、a r m 、m i ls 、a l p h a 、s p a r c 等多种体系结构。 嚣懿,l i n u x 溅被移禳猁羧十静磷件平台主,趸乎鞭鸯流行匏c p ul i n u x 都 支持。现在,l i n u x 已经可以在没有m m u 的处理器上运行了。遮就进一步 促进了h n u x 在嵌入式系统中的应用。 4 ) 完渗靛鼹络透信、醋形翻文佟管理枫割 l i n u x 自产生之日趣戴与网络密不可分,嘲络是l i n u x 的强项。努辨, l i n u x 支持e x t 2 、f a t l 6 、f a t 3 2 、r o m f s 等多耱文律系统,有的文佟系统葵鸯 防断电特性。在图形系统方面,l i n u x 上既有成熟的xw i n d o w ,也有 e m b e d d e dq t 等嵌入式g u l 。 5 ) 支捺大蕊的周边硬件设备,蕊动丰富 l i n u x 上豹驱动已嚣鬻丰鬻了,支持各种主流硬件设备和最颏硬拌技术, 而黾随糟l i n u e x 的广泛应用,许多芯片厂家晓开始褥供l i n u x 一匕靛驱动。这 进一步促进了h n u x 各种硬件平台上的应用。 6 ) 大小功匏鄂哥定割 2 武汉理工大学硕士学位论文 l i n u x 继承了u n i x 的优秀设计思想,内核与用户界面是完全独立的。 它非常灵活,各部分的可定制性都很强,能适合多种需求,是硬件资源有限 的嵌入式系统的首选。 正是嵌入式操作系统的特殊要求,为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 一般是按照嵌入式目标系统的要求而设计,由一个体积很小的内 核及一些可以根据需要进行剪裁的系统模块组成。一般来说,整个系统所占 用的空间不会超过几兆大小。 1 3 研究现状 目前,国外不少大学、研究机构和知名公司都加入了嵌入式l i n u x 的开 发工作,较成熟的嵌入式l i n u x 产品不断涌现,如r t - l i n u x 、e m b e d i x 、u c l i n u x 等。下面就来简要介绍些嵌入式l i n u x 系统。 1 ) r t - l i n u x 这是由美国新墨西哥理工学院开发的基于标准l i n u x 的嵌入式操作系 统。截至目前为止,r t - l i n u x 已成功地应用于航天飞机的数据采集、科学仪 器测控和电影特技图像处理等广泛的应用领域。r t - 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 下现有的丰富软 件资源。 2 ) e m b e d i x e m b e d i x 是由嵌入式l i n u x 行业主要厂商之一l i n e o 推出的,是根据嵌 入式应用系统的特点重新设计的l i n u x 发行版本。e m b e d i x 提供了超过2 5 种的l i n u x 系统服务,包括w e b 服务器等。系统需要最小8 m 内存,3 m r o m 或快闪内存。e m b e d i x 基于l i n u x 2 2 核心,并已成功地移植到了i n t e lx 8 6 和p o w e r p c 处理器系列上。如其他l i n u x 的发行版本一样,e m b e d i x 可以免 3 武救理工大学联学蕴论文 赞获得。l i n e o 公司还发布了另个重耍的产品,它可以让在w i n d o w sc e 搡作系蠛上运行的程序麓够在e m b e d i x 系统一i 逡行。l i n e o 还将计鲻援密 e m b e d i x 的开发调试工具包,鉴于图形的浏览器镣。可以说,e m b e d i x 是一 瓣较竞熬鹣l i n u x 嫠莰方案。 3 ) x i i n u x x l i n u x 是蠢荚国丽廉公弼攘整,圭娶开发密麟是c i h 病毒豹孛# 港 台湾的天才少年陈盈毫。x l i n u x 号称是1 犍界上最小的嵌入式l i n u x 系统,核 心哭有1 4 3 k 字节,露虽还程不鞭撼,l 、。 4 ) 缎旗嵌入式l i n u x 这怒洳趁旗公司接密,墩跫爨内鼗翡跑较好豁畿天式l a n u x ; 露湔,中科院计算所岛行开发的开放源码的嵌入式操作系统e a s y e m b e d d e d o s 瞧已舅始进入燕震除段。该嵌入式绦撵系统重点支撼p j a 髓, 系统目标方面是小型化,一方面能重用l i n u x 的驱动和其他模块。由于中 辩院计算掰麴强天辩繇力量激鑫詹,该系统有攘发展或为功裴宠蓥、稳定、 零囊装鬻产嵌a 箴撩终慧绞乎念。 可以说,嵌入式系统燕信崽产盈走岛2 l 谶鳃知识经济薅代的嘏辍要静 经济增长点之一。这是个不可蓬断的工业,对中国的信息产蛾来说充满了 祝遇翻挑拨。嵌入式工她的蒸磷怒以瘦翅为中心的芯片设计和聪向殿髑龅软 件开发。实对多任务操作系统避入嵌入式系统工救酶意义,不甄予历史土梳 躐工鼗袋躜三橇鋈技术惹魏茨疑。霹嵌入式软 夸鹣檬途诧黧期逮麓谈翎瑟是 一个墨耩薅。网对,嵌入式l i n u x 的巨大优越性让我们将嚣巍帮投两它的隽 上。嵌入式l i n u x 操作系统必褥有光明的前途。 毒 武漩理工夫学醺土学链论支 第2 章l i n u x 内核体系结构 l i n u x 内孩囱瘸户遗耧穗供了令纛藩瓤器棱雒。缡写进纛懿时缀舅:不 需要知道诗算祝上安装了哪熬秘理硬终“n l l x 海核会把所奁豹疆襻糖象 成统一冉勺虚拟接口。此外,l i n u x 以对用户透明的方式支持多任务:每个进 程工幸譬辩藏豫它蹩诗舅辍上瞧一翡遂嚣,簿像越独占霞瘸了主存秽葵纯暌斧 资源一徉。内梭实甄上醚时运霉亍许多个滋程,并受爨对硬释瓷源豹阕接访蠲, 这样霹叛僳证务令进程游阏瓣公平淫,并攥谖遗稷漓蘸安全整。 2 。1 内核结构概述 l i n u x 斑棱巍5 令主要静予繁绫掩盛: 1 ,遴程溺囊茬彦( s c h e d ) 受责懿毒l 送程谤蠡毒c p u 。诿痰程黪瓣疆矮 豹策略可以保诞遵程麓够公平熊谚阕c p u ,丽时僚涟连孩可戳漆对执行一些 必需的惘件操作。 2 。内竣营瑷程序( m m ) 镁多个进程可以安全地共事机器的圭露系统。 姥夕 ,内梭管璁程序支持虚拟内存。纛拟内存缆褥l i n u x 可戳支持谶疆使用 超过系绕中茨疼存数羹麓肉襻。暂对嗣不羞懿移瓣醢惠胃跌交换滋内存,存 放蓟使糟文件系统静永久链存储器上,然后在辩甏它稻的时候译交撩醚来。 3 墩拟文传系统( v f s ) 。通过提供一个所谢设备的公共文件接阴,v f s 抽象了不同硬件设备的细节。此外,v f s 支持与熊他操作系统兼容的不同的 文于牛系继格式。 4 。瓣络竣隧f 嘲缝馁了对诲多建辩标准釉疆终襞释熬访溜。 5 避程闽逶信( 强国予系统为单个l i n u x 系绫上进疆与逶稳之蠲酶遴信 提供了些机制 图2 - 1 是l i n u x 内榱的黼缎分解,豳中线段的箭头是从依赖别人的子系 统指内髓依赖豹子系绕。麸鬻申可我藉窭,最嚣鬻靛予系统是避程溺漤程净: 荬毯辑煮瓣子黎统罄绞簸予避摆调度援穿,这是灏为所有的子系统都= ;雾簧中 s 武汉理工大学硕士学位论文 断和恢复避稳的执行。一般来浇予系统会中断鄢婪等待硬件操作究成的避 程,同时恢复那些操作已经完成了的进程。 圈2 。1 内核模块关系图 例如,当蘩进程试图邋过网络发送消息蹿,嗣络接口可能需臻中断该避 程,纛到硬件成功完成了港惑豹发送。当满意发送完黻螽( 或者磷释返强密 错信号) ,则网终接口将用返网弼来恢复该避猩。返则码显示了操作是成功 完或逐楚失效。鬟貔予系统( 内存管理程序、纛毅文终系统、蔽及遗疆瓣遴 信) 都是由于相似的原因而必须依赖于进程调度程序。 榴比之下,其他的依赖关系麟不那样明鼹,但是它们也同样濑要; 1 。在懑纛後复季 l e 李亍鼹,逡稷谲澄程序将铰掰遗程餐毽程痔寒调整硬传滤 存映射。 2 + 遴耩瘸邋售子系统猿羧予内存管理纛黪寒支持共享痰存通蘩毒莲铡。遴 程除了可以访问它们通常的私有内存外,共攀内存通信机制将使它们可以访 问一个公共的内存区。 3 。建攘文搏系统蕊露溺臻较翻寒支持爨络文转系统( n f s ) ,它还使瘸 内存管璇程序来提供r a m d i s k 设备。 4 + 痣孬辫理程序搜黑发 薹l 文佟系统寒支持交换。这是内存管理程序之掰 默依赖于进程调度程序的唯一原因。当某避稷访问的文件当前已经被交换蹬 内存时,内存管理程序请求文件累统从永久性存储设备中取出该文件,并中 颧该滋趱。 6 武汉理工大学颁士学位论文 除了显式的依赖关系以外,内核中所有的子系统还依赖于一些在任何子 系统中都没有显示出来的公共资源。它们包括:所有内核子系统用于分配和 释放内核所使用内存的过程,打印警告或错误信息的过程,以及系统调试过 程等等。 2 2 内存管理模块 内存管理子系统是操作系统最重要的部分之。从早期计算机开始,系 统的内存大小就难以满足人们的需要。为了解决这个问题,可利用虚拟内存。 虚拟内存通过当需要时在竞争的进程之间共享内存,使系统显得有比实际上 更多的内存空间。 虚拟内存不仅仅使机器上的内存变多,内存管理子系统还提供以下功 能: 1 大地址空间操作系统使系统显得它有比实际上大得多的内存。虚拟 内存可以比系统中的物理内存大许多倍。 2 保护系统中每个进程有自己的虚拟地址空间。这些虚拟地址空间相 互之间完全分离,所以运行一个应用的进程不能影响其他的进程。同样,硬 件的虚拟内存机制允许内存区域被写保护。这样保护了代码和数据不被恶意 应用重写。 3 内存映射内存映射用来把映像和数据文件映像到一个进程的地址 空间。在内存映射中,文件的内容被直接链接到进程的虚拟地址空间。 4 公平物理内存分配内存管理子系统给予系统中运行的每个进程公 平的一份系统物理内存。 5 共享虚拟内存尽管虚拟内存允许进程拥有分隔的( 虚拟) 地址空间, 有时你会需要进程共享内存。例如系统中可能会有几个进程运行命令解释 s h e l lb a s h 。最好是在物理内存中只有一份b a s h 拷贝,所有运行b a s h 的进程 共享它;而不是有几份b a s h 拷贝,每个进程虚拟空间一个。动态库是另一 个常见的几个进程共享执行代码的例子。 共享内存也可以被用作进程间通信( i p c ) 机制,两个或更多进程通过 共有的内存交换信息。l i n u x 支持u n i x ( t m ) s y s t e mv 的共享内存i p c 。 1 武汉理二( = 大学硕十学位论文 2 2 ,1 虚拟内存 巍处理嚣运行一个程序时,它从内存中读取条指令并解码。在解码该 据令避疆书它可能需要敬融戏存放内存菜个像黉懿内容。建瑾器然纛羧行该 指令并移动誊g 褪序中下一条搬令。这样处理器总是访船内存来取指令或存墩 数掇。 在虚拟内存系统中以上所有的地址都是虚拟地址而不是物理地址。处理 器基于l ;妇= 操作系统维护的组表中的信息,将虚拟地址转换成物理地址。 为了傻这秘交豢容易一些,纛羧内存露貔灌凌毒帮羧分灸合逡大小豹浚 b q 傲“页( p a g e ) ”。这蠛贾都有同样的大小。a l p h a a x p 系统上l i n u x 使熙 8 k b 字节大套戆夏,i n t e lx 8 6 系统上镬羯4 k b 字节大小豹页。在这鍪夏中 每一个都有一个唯一的号码:愿帧号( p a g ef r a m en u m b e r , p f n ) 。在这种分 页模觏中,一个虚拟地址由两部分组成:一个偏移和个虚拟页帧号。如果 茭大小怼4 k b 字节,霆数逡皱熬l l 至0 笾氛禽镶移鞠发熬员顿号。每当处 理器砸临一个虚拟地琏时,它必须析取出偏移芹畦虚拟页峻号。处瑷瓣必须将 蠹拟熨犊号转换残物理的茨犊号,然嚣在该物理荧中正确的镶移像鬣上进孝亍 访问。为了完成这些处璃瓣要使用页表。 图2 2 展示了两个谶程的虚拟地址空间,进程x 和进程y ,每个都肖自 己豹炎表。 这些页裘将每个进程酶瀣拟煲映射至内窬中的物璞更。图2 - 2 箍示避程 x 的纛拟页顿号0 映射剽淡襻中糖理页帧号1 ,遴稷y 的虚拟页帧号1 缺射 到物臻蹑帧号4 。理论上瀚页表中每一项包含下残僚憨: 1 有效标志,用来指示该页寝项是否有效。 2 。本颈掇攒述的物理页帧号。 3 。访闻撩涮信惠。它撼述该鬣可鼓妻l 褥佼蠲。它跫否可鼓被写,怒孬毯 含可执行代码。 8 武淡壤z 大学礞士学健论文 邀 毂 送穗y 计f 辩7 f n 7 v p 辩黪l 鞭f 粥 谨勰 辚警嚣5 硐喇¥秘粼 i v p f 粥 冉嘲嘲 v p f n 0 跚 硐撵斟2链唾嗽2 p f 瓤2划 磁擞 礤i较霉箨i 净 p 融船 g p f i 鼢翠p 融潞 窳拟肉i 筝物理内释臆拟陶稃 强2 2 嶷越蜓蛙窭l 物联地蟪映射秘撼象横型 为了将一个虚拟域垃转换成物理地址,处理嚣雷先必须得至壤拟德址燹 皎号衽在该虚损页中懿镶移。遴遥选取页大小荛2 躲溪,这可蔽键容弱建群 菠秘移稼缮潮。翅图2 * 2 ,设茨大小是o x 2 0 0 0 字节f 郯十进制8 1 9 2 ) ,y 进稷 虚拟地址空间中一个蛾址为0 x 2 1 9 4 ,则处理器将把该地址转换为虚拟贸帧 号1 媳镳移0 x 1 9 4 。 处瑕器使孀虚拟页桢弩作为进程页表的索萼 来检索它的页袭鞭。翅栗该 滚移怒瑟淡壤骜效,蹙璐器穆获该颂取凄秘骥瑟竣号。翔采该烫袭磺悉效, 说嗡处爨嚣访润了虚拟内存中不寄在的区域。在这种情况下,婕瑾器不键鹪 祈该地娥,并且必须搬控制传给操作系统来解决闷题。 处理器如何通知操作系统个正确的进程试图访问一个没有肖效转换 鲍廉织魄| 盛,这是依处溪器不黼褥不同的。笼论韵舞鲶淫器能够处瑗它,遨 教稼露“爱数p 誊( p a g e 糖h l ”。攥终系统玻蛰麴教簿鹣纛掇盘塾蟪鞠散簿缀霹。 如果访问的是有效的焚袭项,处理器取l 物联页帧号,并将它乘以涎的 大小阻得到物薅内存中该焚的蒺戆垃。最藤,怒璞器褥偏移蕊到耩需瓣强令 或数据的地址。 群以上褥静铡子为翻,逡程y 秘虚蘩燹犊号l 浚瓣蘩耪瑗焚羧号4 ,怒 坌 武汉莲t 大学硕士学健论文 始予o x 8 0 0 0 ( 4 x o x 2 0 0 0 ) 。加上0 x 1 9 4 字节的偏移,鼹后得到物理地址o x8 1 9 4 。 遇过愆这秘方式获射廛激缝缝秘物理逡蟪,建拟内存l 够以任秘次垮被 映射割系统物理页。例如,猩图2 。2 中进程x 晦嬗撅燹顿号0 被欧瓣到秘遴 页顿号1 ,丽虚拟页顿号7 被映射到物理页顿号0 ,尽管在虚拟内存中它比 虚揿页顿号0 爱高。这谈蹰了虚锨内存的一个有趣的耐作焉:纛羧凑存趸不 必以任何特定次序出现在物理内存中。 2 。2 。2 请求调页 嚣为物理凌存比纛搬内狂小褥多,揉 筝系绫必须小心以高效她列粥貔毽 内存。一种节约物理内存昭方法怒只装载被飘行的程序当前正在使用的纛羧 页。例如:一个数据库应阁程序可能被运行来焱询一个数据库。遮种情况下, 著j # 数据痒数全部邦需要被裟入内存,丽只怒装入那些被检查龅数据记最。 翅桑数据库森询是一个搜索查询,那么把楚联添翔新记录的代磷觚数据撵程 序中装躐进来蹩毫无意义瀚。这种只在被访问丑寸恕虚拟页装入内存的技巧叫 请求诵页。 当进程试图访问一个当前不在内存中的虚拟地址时,处理器将不能为被 弓| 用的虚拟预找到页表项。例如:图2 。2 中,进楗x 的页表中没露虚拟页帧 号2 酶页表项,所良当x 试餮觚震羧页椟号2 中读个逢垃辩,处理鼹将 不能搬该地戢转换成物理地址。潺对处理器通知操侮系统发生了页故障。 翔鬃放簿瓣虚羧琏壤毒羧,稳它所弓l 嚣魏获当蘸不在蠹存审,操 筝系绫 就必颁从映像中将适当的瞰取到内存中,相对来说,磁盘访问需要很长时间, 所以进程必须等待一会儿赢到该叛被取出。如果还肖蕻他可以迢行的进糨, 搽俸系统褥逡箨其中一个来运行。被取崮戆炎会投麓翻一令空阕豹黪疆茭 帧,该斑拟页帧号的页表项也被加入封进程页液中。然后进程从出现内存敞 障匏壤爨搔令疑重薪开戆。这次邋行虚掇内存谤秘薅,处理器鼹够遴季予纛攮 地蠊到物理地址的转换,进程将继续执行。 l i n u x 使用请求调页把可执行映像装入进程虚拟内存中。每当一个命令 被撬弦羹亨,氛含该鑫令豹文释被努开,它载逡蜜狻浚瓣蜀送程纛熬窆翔。这 武汉理工大学硕+ 学位论文 是通过修改描述进程内存映射的数据结构来完成的,被称作“内存映射”。 然后,只有映像的开始部分被实际装入物理内存,映像其余部分留在磁盘上。 随着进程的执行,它会产生页故障,l i n u x 使用进程内存映射以决定映像的 哪一部分被装入内存去执行。 2 2 3 交换 如果一个进程想将一个虚拟页装入物理内存,而又没有可使用的空闲物 理页,操作系统就必须淘汰物理内存中的其他页来为此页腾出空间。 如果从物理内存中被淘汰的页来自于一个映像或数据文件,并且还没有 被写过,则该页不必被保存,它可以被丢掉。如果有进程再需要该页时就可 以把它从映像或数据文件中取回内存。 然而,如果该页被修改过,操作系统必须保留该页的内容以便晚些时候 再被访问。这种页称为“脏( d 刀r t y ) ”页,当它被从内存中删除时,将被 保存在一个称为交换文件的特殊文件中。相对于处理器和物理内存的速度, 访问交换文件要很长时间,操作系统必须在将页写到磁盘以及再次使用时取 回内存的问题上花费心机。 如果用来决定哪一页被淘汰或交换的算法( 交换算法) 不够高效的话,就 可能出现称为“抖动”的情况。在这种情况下,页面总是被写到磁盘又读回 来,操作系统忙于此而不能进行真正的工作。例如,如果图2 - 2 中物理页帧 号1 经常被访问,它就不是一个交换到硬盘上的好的候选页。一个进程当前 正使用的页的集合叫做“工作集( w o r k i n gs e t ) ”。一个有效的交换算法将确保 所有进程的工作集都在物理内存中。 l i n u x 使用“最近最少使用( l e a s tr e c e n t l yu s e d ,l r u ) ”页面调度技巧来 公平地选择哪个页可以从系统中删除。这种设计中系统中每个页都有一个 “年龄”,年龄随页面被访问而改变。页面被访问越多它越年轻;被访问越 少越年老也就越陈旧。年老的页是用于交换的最佳候选页。 2 2 4 共享虚拟内存 虚拟内存使得几个进程共享内存变得容易。所有的内存访问都是通过页 武汉理工犬学硕士学位论文 表述行,并飘每个进程都肖窝邑的独立的页表。为了便两个进程共率一物理 页内存,该物理页帧号必须在它们两个的页表中都出王见。 翔2 - 2 显示了共享物壤萸羧号4 匏两个遗艇。对进程x 来说怒蠼熬熨嫉 号4 ,掰对遂獠y 来说怒趱叛炎峻号6 。这说鹱了共窜页有趣静一点:共攀 物理页不必存在于共享它的进程的虚拟内存的棚燃位鼹。 2 2 5 访问控制 缀袭颚中瞧包含访阕接期壤慰。因为处理器簧搜臻茭表项寒撼滋穆寝熬 逸缝欧瓣到物理地址,它可以方便避使用访闻控铡倍感泉检查并僳谖遴程没 有戳其不盛该采用的方式米访闷内存。 有许多原函导致限制访问内存区域。存黧内存,如那些包含胃孤行代鹬 的,自然就是只读内存;操作系统不应该允许进程将数据写到它的可执行代 码中。耱菠,镪含数据区域的筵| j 可以被写入,但越将它当雩# 指令来执行就会 失败。大部分处理器至少有掰稀疑行模式:竭户态( 蔫户模式) 帮孩。念( 核心 模式。我们不希望核心代鹤被用户执行或棱心数据结构被访问,除非处理 器运行在核心惫下。 访问控制信息保留在p t e ( 页表项) 中,并鼠是处理器相关的。图2 - 3 短 示了a l p h a a x p 的p t e 。熊各字段意义如下: 图2 - 3a l p h aa x p 页表项 1 。v 肖效毽。磐采蒌谴粼p 羊基有效。 或攫鞣王 学颈上学垃论文 2 f o e 执行时故障,当试图执行本页中的指令时,处理器报告页故障并将 控制传给操作系统。 3 f o w 写时故障,当试图写本页时发出如上页故障。 4 f o r 读辩故障,当试图读本甄拜亨发邂魏上页簸漳。 5 a s m 地址空间匹配,当操作系统想疆仅清除转换缓冲区中些项时用 疑。 6 k r e 运行于核心态的代码可以读此页。 7 。u r e 运行予瓣户态黪代码哥隧读鼗燹。 8 g h 粒度暗示,当用个而不是多个转换缓冲区项映射一整块时用到。 9 ,k w e 运行予核心态斡代码露叛写致廷。 1 0 u w e 运行于用户态的代码可以写此页。 1 1 p f n 页赣号。对予v 位嚣位戆pt 嚣,本字段包捶憋理夏蛟号;对予无 效p t e ,如果本字段非0 ,则包含本页在交换文件中的位置的信息。 下瑟蘧令整在l i n u x 中凝定义著使曩: 1 2 p a g ed i r t y 如果置位,此页需要被写到交换文件中。 1 3 p a g ea c c e s s e dl i m i x 用寒标识一个其已经被谚闷过。 2 。3 进程管理 进程执行操作系统中的任务。一个程序是保存在一个磁盘的可执行映像 中的机器代码指令和数据的集合,并且,实际上是一个被动实体;一个进程 可以被认为是个执行中的计算机程序。它是个动态实体,总是随着机器 代码指令随处瑷器的执行而处于变住之中。除了程序静指令和数据,进程还 包括程序计数糕和所有c p u 寄存器,以及含有例程参数、返回地址和保存 的变量等临时变量的避程栈( s t a c k ) 。当前正砉l i 【行的程序绒说进程,包含所有 处理器当前的行为。l i n u x 是一个多进程操作系统。进程是独立的任务,有 自己的权利和责任。若一个速程崩溃并不会弓l 越系统中舅一个进程臻滚。每 个单独的进程运行在自己的虚拟地址空间,并且只能通过安全的内核管理机 制和箕他送程交互。 在进程的生存期( 1 i f et i m e ) 内将使用许多系统资源。它将使用系统的c p u 1 3 斌援琏王a 学礤士学叠论文 寐运行内己的指令并使用系统的物理内存来保存国己和自己的数据;它将打 开和谈潮文件予系统中豁文 串并壹接躐闻挨圭氇往弼系统中静镑磷澄器。 l i n u x 必须跟踪进程本身和它拥肖的系统资源,来保证它能公平地管理饿进 整霹系统孛其麓逶程。絮莱一个遴程夔蠡占有系缝申翡夫熬努魏璎癍毒茂英 c p u ,对系统中葵谴送稷寒诞褥是不公平懿。 2 , 3 1l i n u x 进程数据结构 为了锼l i n u x 可以管瓒焱绫中酌遗程,每个谶疆递过一个t a s ks t r u c t 数 攥结枣冬装示。强建自量怒一个摆葱系统中斯有t a _ s k _ s t r u c t 数据绪糖靛搔赞数 缍。这豢昧着系绕中最大避稷受限于t a s k 自量骢大小,谈省蜻嚣下它奢5 1 2 颁。当滋糨被创建时,从系统内存中分配一个新的t a s ks t m c t 并撒它加入到 t a s k 向爨中。为了便予套筏,警# 运行淘送稔滋c u r r e n t 撵赞泉臻囱。 除了普通类型的进程,l i n u x 还支持实时j 挫程。这些进程必须对外部 凄磬爱应逐蘧f 觚嚣簿懿名字“实落”,著虽它髑禳谣凌器嚣戮予嚣邋翅户 避程对德。尽蛰t a s ks t r u c t 数穰绥构穰太摄复祭,毽它静字爱霹弑被分菠豆 个功熊隧。 1 ,状态随着进程执行,它根据其环境改褒状态。l i n u x 谶程有以下状 态; a 。运行进程正在运行之中( 宅是系统中的当髓进程) 或是已经撒餐努运 嚣f 等待被分鬣蠲磊统戆一个c p u 土。 b 等待进程正在等待一个事件或一个资源。l i n u x 区分两种类型的进 程;霹l 棼薮戆窝不可中爨麴。可中叛等特进程可以皱绩号中断,恧不可中断 等待谶稷短接等待硬件条件,并且在任何环蟪下都不会被中断。 a 终止进程箨壹了,邋鬻是通过接收一个髅号。一个正农被调试豹进 程哥懿麓予蓐l 囊装态。 d 骶亡这是一令被终止麓进程,囱予菜释藤滏,仍在t a s k 向爨中骜一 个t a s ks t r u c t 数据结构,正像熊名字那样,它憨一个死去的进程。 2 。辍度德惠调度嚣霈接这些信息以公平地决定系统中哪个谶程最值 蒋运行。 l 莲 武汉理工丈学硕士学位论文 3 标识系统中每个进程有个进程标t 嫒。送稔标识不是t a s k 向鬣的 索引,它只是一个简单的数。每个进程还有用户和组标识,这些被用来控制 本避程对系统中文磐亵设奄熬访嬲。 毒。进程闻通信l i n u x 支持缀燕的u n i x t mi p c 穰铺妇信号、餐遂j 鞋 信号灯,以及s y s t e m v i p c 机蠢8 翔共享内存、僚号灯翻消息队列。 5 。链搂在l i n u x 系统中没有嚼s 个进程与其绝遴程完全独立。除了褪始 进程,系统中每个进程都肖个父进程,新的进程不鼹被创建,它们是从先 嚣的滋程被复制f 或说克袋) 。每一个表示一个进程的t a s ks t r u c t 郝簿指钟糖 向冀父邋程凝其冗弟遴程( 鞫它凝有耱两父滋程懿遴狴) 敷及它囊潞懿予篾l 程。体w 以孀p t r e e 命令森瓣l i n u x 系统中运行的遴穆之间的家族荚系: 菇舞系统中掰有酶瀵程部绦存在一个双两键表中,它熬较怒i n i t 遗稷戆 t a s ks t r u c t 数据结构。这个链表使得l i n u x 可以查看繇统中每一个进程,它 需要这样来为一些命令如p s 或k i l l 提供支持。 6 瓣阕藕辩锌雨竣记霞逡翟瓣翻建辩阉戳及在它生存麓疼滂裁貔 c p u 时间。& 次时钟“滴蛰”时,内核更新傈懋在j i f f i e s 中的时间量,表示 当蔻遂簇藏赞瓷系统稻溺户卷下瓣时阕。l i n u x 遂支跨送程稷关熬阉骚定辩 器。进程可以用系统调用泉设鬻定时器,以便当定时器超时后给进程自己发 送信号。定时器可以是一次触发的或周期性多发的。 7 。文佟系统避稷在篱瑟浆嚣蒺霹黻打牙零羹关露文;进程黪 t a s ks t r u c t 毹含每个打开的支件的描述符指针以及两个v f s 索孽l 节点酾指 针。镣拿v f s 索芎| 节焱暌一撼撼述文赞系绫中豹一个文 孛或霾袋,并提供 一一个底层文件系统的统一接口。两个v f s 索弓l 节点指针第一个稽向进糨的 根目录,第二个指向其当前的或称p w d 目录。p w d 从u n i x 命令p w d 一打 印王俸器录( p r i n tw o r k i n g 镬f e c 娜,纛来。这疆个v f s 素弓 节点蔹羹己戆 c o u n t 字段ff i e l d ) 递增来表示个或多个遴稷在弓l 蹋它们。这就怒为什么不 l 剿滁被个进程设或p w d 鲍溪录静原因。趱撵豹艨因,也不镱测除它的 子融聚。 8 虚拟内存大多数进程有些虚拟内存( 内核线程和守护进程没有) , 势曩l i n u x 必须跟踪虚拟内存如簿浃射到系绫物理内存。 9 处理器相关上下文一个进程可戳被认为楚系统当前状淼船总鞠n 簿 1 5 武汉理工大学硕上学位论史 当一个进程运行时,它要使用处理器的寄存器、栈等等,这是进程的上下文 ( c o n t e x t ) 。并且,每当个进程被暂停时,所有的c p u 相关上下文必须被保 存在该进程的t a s k _ s t m c t 中。当进程被调度器重新启动时其上下文将从这里 恢复。 2 3 2 进程调度与切换 在多进程的操作系统中,进程调度是一个全局性的、关键性的问题,它 对系统的总体设计、系统的实现、功能设置以及各方面的性能都有决定性的 影响。根据调度结果所作的进程切换的速度,也是衡量一个操作系统性能的 重要指标。进程调度机制的设计,还对系统复杂性有着极大的影响,常常会 由于实现的复杂度而在功能与性能方面作出必要的权衡和让步。l i n u x 的进 程调度机制,兼顾了三种不同应用的需要: 1 交互式应用。在这种应用中,着重于系统的响应速度,使共用一个系 统的各个用户都能感觉自己是独占的使用一个系统。 2 批处理应用。批处理应用往往是作为后台作业运行的,所以对响应速 度并无要求,但是完成一个作业所需的时间仍是一个重要的因素,考虑的是 平均速度。 3 实时应用。这是时间性最强的应用,不仅要考虑响应速度,也要考虑 执行时限。 操作系统同时还需考虑到公平性和防止死锁的问题。可以说,进程调度 的研究是整个操作系统理论的核心。一个进程调度机制必须考虑的主要问题 主要有2 】: ( 1 1 调度的时机:在什么情况下、什么时候进行调度。 ( 2 ) 调度的“政策”( p o l i c y ) :根据什么准则挑选下一个进入运行的进 程。 ( 3 ) 调度的方式:是“可剥夺”( p r e e m p t i v e ) 还是“不可剥夺” ( n o n p r e e m p t i v e ) 。当正在运行的进程并不愿暂时放弃对c p u 的使 用权时,是否可以强制性剥夺使用权,停止其运行而给其他的进程 一个机会。如果是“可剥夺”,那么是否在任何条件下都可剥夺, 武汉理= 大学硕士学位论文 有没有例外? 遨三个问题,特别是第一和第三个问题,楚紧密结合在一起的。例如, 妻疆累溺发的性矮是绝对媳不可裂夺,那么调度熬时枫媳藏基本决定了,只辘 在裔一个避程爨愿调度的时嫉才麓进行谣度。 缡合图2 - 4 ,对l i n u x 鹃调度枫制进行说鞠。 强2 4 遴程凝恋转羧黼 首先,嗣愿的调度随时都可以进行。在肉核里谣,个进程可以通过 s c h e d u l e 0 寝璐一次调度,受然氇胃戮在诿攥s 馥瓣h l 哟之嚣,貉本遴疆豹获 态设臀为t a s ki n t e r r u p t i b l e 或t a s ku n i n t e r r u p t i b l e ,暂时放 弃运行丽进入睡眠。在周户空间中,则可以通过系统调用p a u s e ( ) 来到达同 棰瓣瓣嚣。 除此之外,调度还可以非自愿地,即强制性地发生在每次从系统凋躏返 露豹藏夕,以及每次扶中凝戴髯露楚理返回刘燃户空阉的翦夕。稳这哭楚发 生调腰的必骚条件,而不魑充分条件。是否发生调度,还要看以下情况的发 生:当前进程通过系统调用自愿让出运行以及在系统调用中因菜种原因受 隧,邈萦耱驻因瑟唉醒了瑟努一个送程,殴及# 雩镑中黻程亭发瑷警蠹誊遴稷已 武汉理工大学硕上学位论文 经连续运行太久。以上情况都可能导致调度的发生。 l i n u x 的调度方式可是说是“有条件的可剥夺”方式。当进程在用户空 间运行时,不管自愿不自愿,一旦有必要( 例如已经运行了足够长的时间) , 内核就可以暂时运行而调度其他
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高一化学教学设计:食品添加剂的科学认知与安全评价
- 高中一年级数学基本不等式第二课时教学设计
- 初中八年级数学《二次根式的运算》教学设计(沪教版五四制上册)
- 小学五年级心理健康教育《我心中的友谊》教学设计
- 高中一年级地理“乡村与城镇”期中复习教学设计
- 高中化学必修一《原子结构与元素周期表》第二课时教学设计:电子排布与周期性规律的深度建构
- 高三生物教学设计:聚焦“进化与生物多样性”大概念突破“自然选择与物种形成”微专题
- 初中美术七年级上册第四单元第十一课生态和谐新景观教学设计
- 小学科学二年级下册《认识常见的植物》基于核心素养的单元整体教学设计
- 安全运动和游戏
- 军品生产现场管理制度
- 2026年辽宁铁道单招测试题附答案
- 汽车吊装作业风险识别与管控
- 中国急性缺血性脑卒中诊疗指南(2025年)
- 离退休老干部专题党课筑思想防线葆党员本色
- 读后续写题型讲解课件-高中英语人教版第一册
- 铁路防断培训课件
- 反对本本主义解读课件
- 公司融资风险管理制度
- 麻醉睡眠治疗
- 《步辇图》美术鉴赏课件
评论
0/150
提交评论