(计算机应用技术专业论文)嵌入式系统下共享数据一致性的研究.pdf_第1页
(计算机应用技术专业论文)嵌入式系统下共享数据一致性的研究.pdf_第2页
(计算机应用技术专业论文)嵌入式系统下共享数据一致性的研究.pdf_第3页
(计算机应用技术专业论文)嵌入式系统下共享数据一致性的研究.pdf_第4页
(计算机应用技术专业论文)嵌入式系统下共享数据一致性的研究.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 随着以计算机和软件为核心的数字化技术的迅猛发展,多媒体技术与因特网的应 用迅速普及,传统的信息服务方式逐步被信息通信计算机网络所代替,数据共享成为 一种必然要求。实现数据共享,可以使更多的人更充分地使用已有数据资源,减少重复 性劳动和相应费用。对于嵌入式平台下的共享数据的存储,当用户修改共享数据时, 由于操作的并发性,可能会造成数据的不一致。对于这种情况下的共享数据的修改, 研究了其一致性的处理方法。 文章首先介绍了嵌入式系统,论述了嵌入式系统的概念、特点及其发展情况,接 着分析了数据一致性的概念;其次介绍了操作系统的事务的概念、特性,论述了锁机 制的作用和目标,包括三种常用加锁机制和死锁的检测及处理;再次介绍了文件共享 技术,着重论述了文件共享机制的实现方法、分布式系统中的文件共享语义、存储网 络的文件共享;然后介绍了x m l 技术;最后用了一个系统实例说明了嵌入式系统下共 享数据一致性的实现方式。 具体采取的处理方法为:在嵌入式系统下的数据库中,对应数据表的共享数据字 段都设置相应的标志字段。当发生不一致性的事务处理时,相应的标志字段由默认的 开锁状态变为锁存状态,接着客户端提取相应的共享字段值修改后在原数据字段后追 加记录,再复制非共享字段和其余未修改的共享字段至追加记录的其余字段,保证了 事务的完整性。 为了体现嵌入式系统下的数据共享机制,保持共享数据的一致性,编写了一个简 单的公文处理系统实例。采用l a m p 平台进行模拟,并采用删l 作为数据传输方式, 在该x m l 中标记相应共享字段的锁标志位。不同用户对共享字段操作时,通过标记 字段的判别对不同的共享信息进行处理,在完整的系统中实现了共享数据一致性。 关键词:嵌入式系统,共享数据,一致性,x m l ,锁 a b s j r ra ( 了t 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 to fd i 西t a lt e c h n o l o g ya st h ec o r eo ft h ec o m p u t e ra n d s o f t w a r ea n dt h er a p i dp o p u l a r i z a t i o no fm u l t i m e d i at e c h n o l o g ya n di n t e r n e t sa p p l i c a t i o n , t h et r a d i t i o n a li n f o r m a t i o ns e r v i c ew a yh a sb e e ng r a d u a l l yr e p l a c e db yc o m p u t e rn e t w o r k o fi n f o r m a t i o nc o m m u n i c a t i o n d a t as h a r i n gb e c o m e san e c e s s a r yr e q u i r e m e n t d a t a s h a r i n gc a l lm a k eg o o du s eo fe x i s t i n gd a t ar e s o u r c e st or e d u c er e p e a t e dw o r ka n dr e l a t e d e x p e n s e sf o rp e o p l e b e c a u s eo ft h eo p e r a t i n gc o n c u r r e n c y , i tc a nc a u s ed a t ai n c o n s i s t e n c y w h e nu s e r sm o d i f ys h a r i n gd a t ab a s e do ne m b e d d e dp l a t f o r mf o rs h a r i n gd a t as t o r a g e f o r t h i sc a s e ,t h ep a p e rr e s e a r c h e st h ep r o c e s s i n gm e t h o do fc o n s i s t e n c y t h ep a p e rf i r s ti n t r o d u c e st h ee m b e d d e ds y s t e m ,a n dd i s c u s s e st h ec o n c e p t ,t h e c h a r a c t e r i s t i c sa n di t sd e v e l o p m e n to fe m b e d d e ds y s t e m t h e nt h ep a p e ra n a l y z e so ft h e c o n c e p to fd a t ac o n s i s t e n c y s e c o n d ,i ti n t r o d u c e st h ec o n c e p ta n dt h ec h a r a c t e r i s t i c so f t r a n s a c t i o nf o ro p e r a t i n gs y s t e m t h e ni te l a b o r a t e st h ef u n c t i o na n dt h eg o a lo fl o c k i n g m e c h a n i s m ,i n c l u d i n gt h r e ek i n d s c o m m o nl o c k i n gm e c h a n i s ma n de x a m i n a t i o na n d p r o c e s s i n gf o rd e a d l o c k t h i r d ,t h ep a p e ri n t r o d u c e st h ef i l es h a r i n gt e c h n o l o g y i t e m p h a s i z e sr e a l i z a t i o no ff i l es h a r i n gm e c h a n i s m ,f i l es h a r i n gs e m a n t i c si nd i s t r i b u t i o n a l s y s t e ma n df i l es h a r i n gf o rm e m o r yn e t w o r k n e x tt h ep a p e ri n t r o d u c e st h ex m l t e c h n o l o g y f i n a l l yi tu s e sa ne x a m p l et oe x p l a i nt h er e a l i z a t i o no fs h a r i n gd a t ac o n s i s t e n c y b a s e do ne m b e d d e ds y s t e m 1 1 1 ep r o c e s s i n gm e t h o di s :d a t a s h e e t ss h a r ed a t af i e l di ss e tt h ec o r r e s p o n d i n ga t t r i b u t e f i e l du n d e re m b e d d e ds y s t e m w h 髓t h ei n c o n s i s t e n tt r a n s a c t i o n h a p p e n s ,t h e c o r r e s p o n d i n ga t t r i b u t ef i e l db e c o m e sl o c ks t a t u sf r o md e f a u l tu n l o c ks t a t u s a f t e rt h a tt h e c l i e n te x t r a c t st h ec o r r e s p o n d i n gv a l u eo ft h es h a r ef i e l da n dm o d i f i e si tt oa d dr e c o r da f t e r o r i g i n a ld a t af i e l d ,a n dd u p l i c a t e st h en o n - s h a r i n gf i e l da n do t h e ru n m o d i f i e ds h a r ef i e l dt o o t h e rf i e l d so f r e c o r d t h u s ,i tc a l lm a k et h ec o n s i s t e n c yo ft r a n s a c t i o n i no r d e rt om a n i f e s td a t as h a r i n gm e c h a n i s mu n d e re m b e d d e ds y s t e m ,t h ep a p e r c o m p i l e sa ne x a m p l eo fd o c u m e n tp r o c e s s i n gs y s t e m i tu s e st h el a m pp l a t f o r mt oc a l t y o nt h es i m u l a t i o n ,a n du s e sx m lt ot a k et h ed a t at r a n s m i s s i o nw a y i tm a r k st h e c o r r e s p o n d i n gs h a r i n gf i e l dt h el o c kf l a gb i ti nx m l w h e nt h ed i f f e r e n tu s e ro p e r a t e st h e s h a r ef i e l d ,t h eu s e rp r o c e s s e sd i f f e r e n ts h a r ei n f o r m a t i o nb yf l a gf i e l d t h e ni tr e a l i z e st h e s h a r ed a t ac o n s i s t e n c yi nt h ec o m p l e t es y s t e m a b s t r a c t k e yw o r d s :e m b e d d e ds y s t e m ,s h a r ed a t a , c o n s i s t e n c y , x m l ,l o c k i i i 学位论文版权使用授权书 本人完全了解北京信息科技大学关于收集、保存、使用学位论文的 规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子 版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供本 学位论文全文或者部分的阅览服务;学校有权按有关规定向中国科学技 术信息研究所等国家有关部门或者机构送交论文的复印件和电子版;在 不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用 于学术活动。 学位论文作者签名:潘藩 2 圆c | 年l 其j s b 经指导教师同意,本学位论文属于保密,在年解密后适用本授 权书。( 注:论文属公开论文的,作者及导师本处不签字) 指导教师签名:学位论文作者签名: 年月 日年 月 日 硕士学位论文原创性声明 本人郑重声明:所呈交的论文题目为嵌入式系统下共享数据一致 性的研究学位论文,是本人在导师指导下,进行研究工作所取得的成 果。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果 不包含任何他人创作的、已公开发表或者没有公开发表的作品的内容。 对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以 明确方式标明。本学位论文原创性声明的法律责任由本人承担。 作者签字: 潘裔 2 帕 年只| 6e i 第1 章前言 第1 章前言 1 1 本课题研究的背景 随着以计算机和软件为核心的数字化技术的迅猛发展,多媒体技术与因特网的应 用迅速普及,以信息技术为先导的高技术产业突飞猛进,电子计算机不断渗透到传统 工业的各个领域,推动国民经济迅速发展。不同部门、不同地区间的信息交流逐步增 加,信息的交换、存储、处理和利用将更多地通过计算机进行。当大量的数据出现在 网络上,如何让这些数据为不同行业、不同部门所使用,这其实就是数据共享问题。 简单地说,数据共享就是让在不同地方使用不同计算机、不同软件的用户互相转让数 据资源并进行各种操作运算和分析。 传统的信息服务方式逐步被信息通信计算机网络所代替,数据共享成为一种必然 要求。实现数据共享,可以使更多的人更充分地使用已有数据资源,减少重复性劳动和 相应费用,而把精力重点放在开发新的应用程序及系统集成上。 对于嵌入式平台下的共享数据的存储,当用户修改共享数据时,由于操作的并发 性,可能会造成数据的不一致。对于这种情况下的共享数据的修改,研究了其一致性 的处理方法,并以一个实例系统来说明其共享数据一致性的问题。 1 2 嵌入式系统 1 2 1 嵌入式系统概述 世界上自第一台计算机问世,计算机技术得到了迅猛发展。伴随着计算机技术的 进步,被用到了许多行业中。随着半导体技术的发展和信息技术以及数字化产品的普 及,i n t e m e t 被广泛深入地应用。从工业设计到m p 3 、p d a 等消费类电子产品都使用 着现代计算机的高新技术。 嵌入式系统是继i t 网络技术之后,又一个新兴的技术发展方向。由于嵌入式系 统具有体积小、性能强、功耗低、可靠性高、以及面向行业应用的突出特征,目前已 被广泛应用于军事国防、消费电子、网络通信、工业控制和装备制造业等各个领域。 随着电子集成技术、计算机技术、软件工程技术等的日趋成熟和完善,嵌入式系统正 向社会各个领域渗透,已成为继p c 和互联网之后的又一个研发热点【l 】。 关于嵌入式系统的定义,一般认为嵌入式系统是以应用为中心,以计算机技术为 基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严 格要求的专用计算机系统【2 】。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作 第1 章前言 系统和用户应用程序等四个部分组成。可以实现对其他设备的控制、监视或管理等功 能。 嵌入式系统由嵌入式处理器、相关支撑硬件和软件组成,相关支撑硬件主要包括 显示设备、存储设备和各种接口等,软件是实现应用目标的关键,随着功能变得越来 越复杂,操作系统也成为嵌入式系统中的一个基本部件【3 1 。 图i 1 嵌入式系统的结构图 1 2 2 嵌入式系统的特点 与通用型计算机系统相比,嵌入式计算机系统具有以下特点: 1 嵌入式系统通常是面向特定应用的。嵌入式c p u 与通用型的最大不同之处就 是嵌入式c p u 大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积 小、集成度高等特点,能够把通用c p u 中许多由板卡完成的任务集成在芯片内部, 从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,与网络的耦合也越来越 紧密。 2 嵌入式系统是将计算机技术、半导体技术和电子技术与各个行业的具体应用 相结合后的产物,是一门综合技术学科。由于空间和各种资源相对不足,嵌入式系统 的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上 实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。 3 嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同 步进行的,因此嵌入式系统产品一旦进入市场,就具有较长的生命周期。 4 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器 芯片或单片机本身中,而不是存储于磁盘等载体中。 5 嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也不能对 其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。 2 第1 章前言 1 2 3 嵌入式系统的发展现状 随着电子技术的发展,各种各样的数字化电子设备在工业、军事国防、商业、消 费类电子产品领域得到了广泛的应用。嵌入式系统和与之密切不可分的嵌入式操作系 统,经历了由简单到复杂的发展历程。数字技术的普及发展,要求嵌入式系统具有更 多的智能化功能、更加亲切友好的用户接口及操作界面、更强的网络支持和多媒体处 理能力。嵌入式操作系统的技术重点也由早期的硬件控制转到了如何更加有效地支持 上述应用发展上来;嵌入式系统的发展主要经历了以下几个阶段: 第一阶段是简单的嵌入式系统:其特点是以单片机为核心,外设单一、没有操作 系统支持、处理效率低,由系统控制程序、应用与控制程序一体化、针对性极强,针 对特定的外部设备; 第二阶段是有较为独立操作系统的复杂嵌入式系统:其特点是操作系统内核精 小、效率高,并支持高度的模块化和扩展性能;具有文件、任务管理功能,以及应用 界面和大量接口程序;专用性较强,但系统移植性较差; 第三阶段是具有网络、多媒体、微内核操作系统支持的嵌入式系统:其特点在于 系统与i n t e r n e t 相结合,具有微内核结构,便于系统移植和裁减;采用多层体系结构, 具有固定的程序结构;系统重组需重新编译【4 】; 进入2 0 世纪9 0 年代,嵌入式技术全面展开,目前已成为通信和消费类产品的共 同发展方向。在通信领域,数字技术正在全面取代模拟技术。在广播电视领域,美国 已开始由模拟电视向数字电视转变,欧洲的d v b ( 数字电视广播) 技术已在全球大 多数国家推广。数字音频广播( d a b ) 也已进入商品化试播阶段。而软件、集成电路 和新型元器件在产业发展中的作用日益重要。所有上述产品中,都离不开嵌入式系统 技术。在个人领域中,嵌入式产品将主要是个人商用,作为个人移动的数据处理和通 讯软件。由于嵌入式设备具有自然的人机交互界面,g u i 屏幕为中心的多媒体界面给 人很大的亲和力。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像 已取得初步成效。 目前些先进的p d a 在显示屏幕上已实现汉字写入、短消息语音发布,日用范 围也将日益广阔。对于企业专用解决方案,如物流管理、条码扫描、移动信息采集等, 这种小型手持嵌入式系统将发挥巨大的作用。自动控制领域,不仅可以用于a t m 机, 自动售货机,工业控制等专用设备,和移动通讯设备结合、g p s 、娱乐相结合,嵌入 式系统同样可以发挥巨大的作用。 1 2 4 未来嵌入式系统的发展趋势 信息时代、数字时代使得嵌入式产品获得了巨大的发展契机,为嵌入式市场展现 了美好的前景,同时也对嵌入式生产厂商提出了新的挑战,可以看出未来嵌入式系统 3u 第1 章前言 的几大发展趋势【5 j 【6 j : 1 嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软 硬件系统本身,同时还需要提供强大的硬件开发工具和软件包支持。 2 网络化、信息化的要求随着因特网技术的成熟、带宽的提高日益提高,使得 以往单一功能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构更加复杂。 这就要求芯片设计厂商在芯片上集成更多的功能,为了满足应用功能的升级,设 计师们一方面采用更强大的嵌入式处理器如3 2 位、6 4 位r i s c 芯片或信号处理器d s p 增强处理能力,同时增加功能接口,如u s b ;扩展总线类型,如c a nb u s ;加强对 多媒体、图形等的处理,逐步实施片上系统( s o c ) 的概念。软件方面采用实时多任 务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质 量和缩短开发周期。 3 网络互联成为必然趋势。 未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信 接口。传统的单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌网络 接口,除了支持t c p i p 协议,还有的支持i e e e l 3 9 4 、u s b 、c a n 、b l u e t o o t h 或i r d a 通信接口中的一种或者几种,同时也需要提供相应的通信组网协议软件和物理层驱动 软件。软件方面系统内核支持网络模块,甚至可以在设备上嵌入w e b 浏览器,真正 实现随时随地用各种设备上网。 4 精简系统内核、算法,降低功耗和软硬件成本。 未来的嵌入式产品是软硬件紧密结合的设备,为了减低功耗和成本,需要设计者 尽量精简系统内核,只保留和系统功能紧密相关的软硬件,利用最低的资源实现最适 当的功能,这就要求设计者选用最佳的编程模型和不断改进算法,优化编译器性能。 5 提供友好的多媒体人机界面 嵌入式设备能与用户亲密接触,最重要的因素就是它能提供非常友好的用户界 面。图像界面,灵活的控制方式,使得人们感觉嵌入式设备就象是一个熟悉的老朋友。 这方面的要求使得嵌入式软件设计者要在图形界面,多媒体技术上痛下苦功。手写文 字输入、语音拨号上网、收发电子邮件以及彩色图形、图像都会使使用者获得自由的 感受。 1 3 数据一致性 数据的一致性牵扯的概念很广,它主要是指数据库内部的数据在用户进行操作时 的数据的正确性。由于一些外部原因,可能会造成操作的突然中断,那么就有可能使 数据库中的一些数据和与它相关的另一些数据产生矛盾,而保持数据的一致性就是要 防止这些错误的出现。数据的致性所面临的更重要的问题是由于许多用户同时对数 4 第1 章前言 据库进行操作所导致的数据之间的不一致【7 1 。 对于单用户的数据库来说,使用事务就可以很好的维护数据的一致性;而对于多 用户系统来说,必须使用事务和锁来共同维护数据的一致性。在多用户系统中会面临 如下问题: ( i ) 有损失更新问题:主要是因为几个事务共同对某一行修改而引起的数据不一致问 题。 ( 2 ) 未提交数据问题:在一个事务未提交的情况下,第二个事务就对该事务的更改数 据进行了操作,从而引起数据不一致性。 ( 3 ) 不相容数据问题:主要是指用户在同一事务中进行两次相同的查询操作,得到结 果却不相同。 对于多用户的数据库系统来说,必须防止同时进行的事务相互影响。为了使同时 运行的事务能顺利执行,必须保证事务之间完全隔离。要实现事务的隔离,主要就是 利用锁来管理事务,这时的锁不单单和对象有关,还和用户事务息息相关。 1 4 课题主要研究内容 本文首先分析了数据一致性问题,重点探讨了各种锁机制和类型、事务以及文件 共享技术;接着研究了作为数据传输载体的x m l 特性,重点是通过d o m 的解析的关键 技术及其实现原理过程,然后将数据一致性机制与数据库机制有效的结合,最后结合 了一个具体的公文处理系统模型将这种共享数据一致性的解决过程通过实例来实现。 1 5 论文组织结构 本文分为七个章节进行讨论: 第1 章前言 本章为全文的引言,说明课题研究背景及相关工作。确定论文的主要研究内容。 第2 章事务的锁机制 本章主要介绍了锁机制和事务的问题,首先介绍了操作系统的事务的概念,分析 了事务的特性和完整性控制;其次介绍了锁机制的作用和目标,介绍了三种常用的加 锁机制和用户加锁权限:分析了死锁后的检测和处理。 第3 章文件共享 本章首先介绍了文件共享的控制和实现,其次介绍了操作系统和分布式系统中的 文件共享问题,最后介绍了存储网络的文件共享技术。 第4 章x m l 技术 本章首先对x m l 进行了简要的概述,说明了x m l 的结构和它的特点;其次介 5 第1 章前言 绍了x m l 解析器的相关概念;最后详细介绍了x m l 解析技术,d o m 及s a x 。 第5 章系统配置环境 本章详细介绍了系统的开发平台,包括平台的配置及用到的操作系统、服务器和 数据库。 第6 章共享数据一致性的系统模型 本章是全文的核心部分,主要设计了共享数据一致性的系统模型及其各部分功能 的实现。 第7 章总结与展望 本章是全文的结束语,对所设计的整个系统进行了总结,分析了系统后续开发中 需要深入研究的问题和进一步的工作。 6 第2 章事务的锁机制 2 1 事务 第2 章事务的锁机制 2 1 1 操作系统的事务的概念 从线程到事务是现代操作系统管理发展的一个必然过程。线程由于其高并发和并 行性,被广泛应用于操作系统的设计和实现中。另一个方面,宏观上又需要对共享的 数据体进行操作,而事务就是对于共享数据的一组操作的集合,这组操作可以作为单 个操作,即具有一定的封闭性。事务管理就是确保正常的事务操作而提供的服务。在 操作过程中,发生意外或者失败、操作的中间状态被隔离开等原因都可能导致无法保 持事务管理一致性。在分布式操作系统中,所谓事务( t r a n s a c t i o n ) 是指个操作系列, 使数据从一种状态变换到另一种状态,要求含在该系列中的操作要么都被完成,要么 都未被完成。为确保数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它 全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应 全部视为错误,所有从起始点以后的操作应全部回退到开始状态。即保证事务对数据 操作的原孑性【8 】【9 1 。 2 1 1 1 简单分布事务与嵌套事务 ( 1 ) 简单分布式事务:一个客户事务请求多个服务器服务,但每个服务器不再因此 调用其他的服务器进行操作。 ( 2 ) 嵌套事务:一个客户事务请求多个服务器服务,这些服务器中至少有一个需要 调用其他的服务器进行操作才能完成相应任务。 2 1 1 2 事务管理的动机 ( 1 ) 更新遗失 更新遗失是指不正确地处理了数据操作,以致某一动作的结果遗失了。 ( 2 ) 检索不一致 我们希望返回正确的数据值,但是如果没有事务管理对数据的所有拷贝进行正确 处理,就不一定成立了。即存在恢复不一致的内容。恢复不一致包含了检索到的数据 不能反映最新的事务操作情况,当共享数据的修改操作不是原子性时,不但更新遗失 问题发生,而且恢复不一致的问题也会发生。如果数据有多个拷贝,而且这些拷贝也 不是原子性的更新时,这个问题就容易发生了。与更新遗失不同的是,恢复不一致可 7 第2 章事务的锁机制 能在事务开始后任何时间发生,只要数据的拷贝没有在另一个动作取得数值之前更 新。 事务管理用来保证分布式系统中文件管理和目录服务中数据操作的正常进行,要 保证事务管理的成功,就需要在系统发生故障的时候能够回复并继续运作,即它具有 容错性。为了同时保证数据的一致性,要求事务处理模型具有丰富的参数传递方式。 2 1 2 事务的特性 1 原子性f l o 】 事务是数据库的逻辑工作单位,事务中包括的所有操作要么都做,要么都不做,是 一个不可分离的整体。它是保证数据库中数据一致性的有效手段,是数据库编写程序 和数据库进行恢复时的最小的逻辑单位,不可再分。 2 一致性 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此 当数据库只包含成功的事务提交的结果时,就说数据库处于一致性状态。如果数据库 系统运行中发生故障,有些正在运行的事务尚未完成操作而被迫中断,这些未完成事务 对数据库所做的修改有一部分可能已经写入物理数据库,这时数据库就处于一种不正 确的状态,或者说是不一致的状态。因为事务还没有完全结束,对数据库后面的修改还 没有完成。所以此时就要对中断的事物做撤消处理,撤消事物对数据库所修改的那部 分数据,使数据恢复到事务修改前的状态。 3 隔离性 一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其 他并发事务是隔离的,并发事物的各个事务之间不能相互干扰。数据库中数据的不一 致性,就是因为事物的隔离性遭到破坏。 4 持久性 是指一个事务一旦对数据库中的数据提交它对数据库中数据的改变就应该是永 久的。接下来的其他操作或故障不应该对其执行结果有任何的影响。 2 1 3 事务的完整性控制 事务是一个工作单元,一个事务内的所有语句被作为不可分割的整体执行,遇到错 误时,可以回滚事务,取消事务内所做的所有改变,从而保证数据的一致性、完整性和可 恢复性。单用户单数据源时,数据的一致性比较容易实现,只需保证事务内的操作一致 就可以。例如,一个小型图书馆的图书管理系统,只有一台借还书的客户机。借出一本 书,借书记录表中插入一条借书记录的同时,库存图书表中对应这本图书的库存量n 应 更新为n 1 ,那么将多个库表的同时更新操作视为一个事务,当某一个库表的更新操作 r 第2 章事务的锁机制 出现问题,则整个数据库的数据回滚到未更新前的状态,这样才能保证数据的一致性、 完整性和可恢复性,这就是事务的完整性控制。 事务的完整性控制有两种技术,一种是程序本身完成控制,另一种是通过存储过程 或触发器完成。相比之下,第一种形式灵活,移植性好;第二种则充分利用了事务处理 器的事务完整性功能【】。 2 2 锁机制的作用和目标 在数据库管理系统的设计过程中,锁管理系统的设计占据着很重要的位置。因为 在数据库管理系统运行过程中,为防止发生导致非可串行化调度的动作顺序,必须有 一个调度器。而调度器最常用的就是使用封锁协议( 即需要一个锁管理系统) 。锁管理 系统在数据库元素上维护“锁”,以防止非可串行化的行为。 锁机制是作为调度器的技术基础,提供给上层事务管理系统使用以防止非可串行 化调度的。所以,锁机制的目标就是: 保证并发事务产生可串行化的调度; 做到高并发性和低系统开销的合理平衡。 2 3 用户加锁的权限 对于多用户操作系统来说,多个用户从多个地方共同设计一个问题。如果没有良 好的控制机制来解决并发的问题,它必将引起设计结果的不一致。必须建立一个有效 的协同机制来处理不一致的问题f 1 2 】【1 3 】。 把设计对象分解成多个部分,称为子部分,让不同的用户对不同的子部分进行操 作,是并发控制的基本原则。在探讨部分的加锁机制前,由于任何一个部分都是它的 父部分的一个组成成分,所以对它的任何改动,包括增加和删除,都是对其父部分的 修改。还要指出的是,如果x 是y 的父部分,那么拥有修改x 的权限,也就意味着 拥有修改y 的权限。 用户希望对设计问题进行设计,并且不会带来整个设计的不一致,要满足两个条 件: ( 1 ) 用户有对该设计对象操作的权限; ( 2 ) 设计对象的当前状态是允许被该用户操作。 这里就涉及到权限问题和设计对象的加锁内容。 比如在工程设计中,首先限定只有在该对象本身所带有的设计者集合中注册过的 人( 处于设计者集合中) 才有对该对象进行读和写的权限。其次,位于父对象类设计者 集合的人对其下的子对象类自动拥有读和写的权限。这样就避免了设计者在结点下的 9 第2 章事务的锁机制 部分的设计者集合中重复注册,从而浪费资源的情况出现。 如果一个用户能够拥有一个对象类的权限,而他又不在该对象类本身所带有的设 计者集合( 物理设计者集合) 中,那么他就处于该对象类的逻辑设计者集合中【9 】。 对象类中的设计者拥有对该对象类及其子类的读、写权限,在对其子类的操作中 设计者不需要再加入到子类的设计者集合中去。 在对一个对象操作过程中,如果加锁的动作都在所有释放锁的动作之前,则称该 项操作为两段操作,上述的加锁的限制称为两段锁定协议( t w o p h a s el o c k i n gp r o t o c o l , 简称2 p l 协议) 。用户对对象的操作,遵循先加锁,后操作的原则,该操作称为合式 ( w e l l f o r m e d ) 操作【1 4 j 。 2 4 常用加锁机制及其缺点 2 4 1x 锁 在这种加锁协议中,只有一种锁,即x 锁。它既用于写操作,又用于读操作。 一个用户对某设计对象加锁后,其它用户就不能再对这个设计对象加锁。也就是说这 种锁是排它性的( e x c l u s i v e ) ,所以称为x 锁【1 3 1 。 加锁协议可以用一个矩阵表示,称为相容矩阵( c o m p a t i b i l i t ym a t r i x ) 的情况,n l 表示无锁( n ol o c k ) ,x 表示已加x 锁,行表示锁请求,x 表示申请x 锁。如果锁请 求可以获准,则在矩阵中填y ( y e s ) ;如果锁请求不能获准,则在矩阵中填n ( n o ) 。如 果锁的请求没有获准,则申请的用户须等待其它用户释放其拥有的锁。图2 1 是x 锁 的相容矩阵。 锁 请 求 其他用户拥有的锁 n lx x yn 图2 1x 锁的相容矩阵 x 锁对于系统的一致性要求完全可以满足,但系统的并行性却为之严重降低。 2 4 2 ( s ,x ) 锁 在该加锁机制中共有两种锁存在: s 锁( s h a r i n gl o c k s ) 用于读访问; x 锁( e x c l u s i v el o c k s ) 用于写访问。 l o 第2 章事务的锁机制 相容矩阵如图2 2 所示。由于s 锁只用于读,故s 锁与s 锁是相容的,即同一个 数据对象可允许多个用户并行读,从而比单一的x 锁提高了并行度。若某数据对象 加了s 锁,这时若有其他用户申请对它的x 锁,则须等待。但此时若有其他用户申 请对它的s 锁,可以获准。 如果不断有事务申请对此对象的s 锁,以致它始终被s 锁占有,而x 锁的申请 迟迟不能获准,这种现象叫做活锁( 1 i v el o c k ) 。活锁对系统的性能有不良影响。为了 避免活锁,在加锁协议中应规定“先申请,先服务”( f i r s tc o m e ,f i r s ts e r v e d ) 的原则。 这样,比x 锁后申请的s 锁就不会先于x 锁获准。 其他用户拥有的锁 锁 请 求 图2 2 ( s 冯锁的相容矩阵 2 4 3 ( s ,u ,x ) 锁 在该加锁机制中共有三种锁存在: s 锁( s h a r i n gl o c k s ) 用于读访问; x 锁( e x c l u s i v el o c k s ) 用于写访问; u 锁。 其他用户拥有的锁 锁 请 求 图2 3 ( s ,u ,) ( ) 锁相容矩阵 设计对象在做更新操作时,一般先读出旧的内容,在用户本地模型中修改后,再 在总体模型中写入修改后的内容,在此过程中,除最后的写入阶段外,被更新的数据 对象仍可被其他用户访问。u 锁就是为此目的而设置。用户在更新一个设计对象时, 首先申请对它的u 锁,数据对象加了u 锁后,仍允许其它用户对它加s 锁。待最后 1 l 第2 章事务的锁机制 写入时,用户再申请把u 锁升级为x 锁。 ( s ,u ,x ) 锁相容矩阵见图2 3 。 2 5 死锁的检测和处理 一个用户如果对一个设计部分申请锁而未获准,则需等待其他用户释放对该部分 的锁。这就形成了用户对设计部分加锁的等待关系。当出现循环等待时,如果不加干 预,则会一直等待下去,这叫死锁( d e a dl o c k ) 。死锁应尽可能及时发现,及时处理。 死锁的检测方法有下列两种:超时法和等待图法。 2 5 1 超时法 如果一个用户对设计部分加锁的等待时间超过某时限,则认为发生死锁,这种发 现死锁的方法虽然简单,但死锁发生后,需等待一定时间( 能被发现,而且用户因其 它原因( 如系统负荷太重,通讯受阻等) 而使等待时间超过时限,也可能被误判为死锁。 如果时限设定的太小,则这种误判的死锁会增多;如果时限设定的太大,则发现死锁 的滞后时间会过长。时限须根据系统运行情况通过试验确定。 2 5 2 等待图法 等待匿 ( w a i t f o rg r a p h ) 是一个有向图g = ( w j u ) 。其中,w 是节点的集合,w = t i i t i 是系统中当前存在的锁,i _ l ,2 , - - , n ) ,u 是边的集合,u = ( t i ,t j ) i t i 等待z j ,i j ) 。系 统根据申请和加锁的情况,动态地维护一个等待图。当且仅当等待图中出现回路时, 死锁才发生。当存在的锁比较多时,维护等待图和检测回路的开销比较大。如果一个 新的等待时间发生后,都要检测一次,固然可以及时发现死锁,但开销太大,影响系 统的性能。比较合理的方法是周期性的进行死锁检测。因为只有两个用户访问同一数 据且其中至少有一个用户进行写操作时才会发生冲突而导致等待。这在一般的应用环 境中,不是频发的事件。由于用户循环等待而导致死锁,在正常情况下应是小概率事 件,不值得为小概率事件而频繁的检测。死锁检测周期长,虽可节省检测代价,但因 死锁不能及时发现而招致的损失也增大,一般用试验方法确定一个最佳值( 见图2 4 ) 。 1 2 第2 章事务的锁机制 代价 一检测代价 由于死锁遮发现 掰付出的代价 2 5 3 死锁的处理 瑕佳检测周期检测周期 图2 4 死锁检测周期的研究 发现死锁后,靠用户本身无法打破死锁,必须由系统干预。系统一般对死锁作下 列处理: 在循环等待的用户中,选择其中一个用户作为牺牲者( v i c t i m ) ,给其他用户让 路, 释放用户的锁,取消该用户对本地模型在该锁的锁定过程中的修改, 将释放的锁让给等待它的其他用户。 牺牲了一个用户,可以打破循环等待,解除死锁。被牺牲的事务做如下处理:系 统发一个消息给有关用户,告诉它因死锁,操作暂时无法向总体模型提交。否则可能 发生再死锁。有下面两种方法选择用户作为牺牲者: 选择最迟交付申请的用户作为牺牲者; 选择撤销代价最小的用户作为牺牲者。 2 6 本章小结 本章首先介绍了操作系统的事务的概念,包括事务的特性和它的完整性控制;其 次说明了锁机制的作用和目标、用户加锁的权限;再次分析了几种常用的加锁机制及 它们的优缺点;最后介绍了死锁的检测和处理方法。 1 3 第3 章文件共享 第3 章文件共享 文件共享是指多个用户( 进程) 访问同一个文件。无论是个人机还是全球性的网际 网,文件共享都非常重要。同一个项目小组的各成员之间需要共享应用程序文件,大 家又同时需要共享操作系统文件、常用例程或函数。现代计算机技术的发展进一步扩 大了文件共享的范围,使全球的各计算机用户之间都能共享文件。文件的共享大大地 节约了存储空间【1 5 1 。 3 1 文件共享的控制 文件共享的有效控制涉及到两个方面:同时存取( s i m u l t a n e o u sa c c e s s ) 和存取权 限( a c c e s sr i g h t s ) 。多个用户共享文件可能会同时访问文件。允许多个用户同时读文 件内容,但不允许同时修改,或同时读且修改文件内容。共享用户之一修改文件内容 时,可以将整个文件作为临界资源,锁定整个文件,不允许其他共享用户同时读或写 文件。也可以仅仅锁定指定的一条记录,允许其他共享用户读写该文件的其他记录。 后者的并发性能更好【16 】【1 7 ”5 1 。 控制存取权限就是控制授权用户以合法的方式访问文件。一般,为共享用户设置 的存取权限包括以下几类: 1 无( n o n e ) 用户不知道文件的存在。用户无法获知该文件的目录信息,更不会知道文件的内 容。 2 探知( k n o w l e d g e ) 用户可以检测文件的存在和文件的文件主,还可以向文件申请增加对该文件的存 取权限。 3 执行( e x e c u t i o n ) 用户可以装载并执行指定程序,但不允许复制程序内容。 4 读( r e a d i n g ) 允许用户读文件内容,包括复制文件和执行文件。但是,某些系统严格地将浏览 文件内容和复制权限分开,可以控制文件只能被浏览( 显示) ,不能被复制。 5 追加( a p p e n d i n g ) 允许用户向文件添加数据,通常只能将数据添加到文件尾。但是,不能修改或删 除文件内容。 1 4 第3 章文件共享 6 更新( u p d a t i n g ) 允许用户修改、删除、增加文件内容。包括创建文件、重写文件的全部或部分内 容、移动文件的全部或部分数据等操作。 7 更改权限( c h a n g i n gp r o t e c t i o n ) 允许用户修改赋予其他用户的存取权限,一般只有文件主才能更改共享该文件的 其他用户对该文件的存取权限。有些系统允许文件主将更改文件存取权限赋予其他某 个用户,但必须限制授权用户更改的权限范围,否则,可能使文件主失去对自己文件 的拥有权利。 8 删除( d e l e t i o n ) 允许用户删除文件。 3 2 文件共享的实现 实现文件共享的实质就是可以从不同地方打开同一个文件,而打开文件的首要步 骤是找到文件的目录项,读取文件在外存的起始地址。共享文件的用户( 进程) 就必须 通过某种手段与被共享文件建立联系,最主要的手段就是与被共享文件的目录项或记 载其起始地址的索引节点关联。根据实现文件共享的方式不同,可以分为以下几种实 现方法:利用链接目录项实现法、利用基本文件目录实现法、利用索引节点实现法以 及利用u r l 实现法等【l 8 1 。 3 2 1 实现文件共享的关键问题 1 、安全访问机制和可靠的数据通信【1 9 】 网络应采用何种控制技术保证安全访问而绝对禁止非法者进入,已经成为任何网 络建设及安全的重大对策问题。而且因存储网络功能问题而造成的数据丢失,恢复的 可能性很小。 2 、文件保护锁定机制 锁定主要用于让用户或应用程序保留访问或更新数据的能力,它的基本思想是: 当一个用户正在使用某些数据时,就阻止其他用户访问或更新数据。 锁定机制的提供者称为锁管理器,它负责管理对锁定数据的访问,以及回应对锁 定数据作出的访问请求。 大多数文件组织系统都能提供一定级别的锁定机制,一般,文件组织系统的锁管 理器可提供下面几种锁定: 1 5 第3 章文件共享 目录级:只允许一个应用更新一个目录中的所有文件。 文件级:只允许一个应用更新某些文件。 字节级:锁定一个文件中的某个字节范围。 3 、语义的集成 语义集成主要解决不同操作系统中文件操作之间的差异。例如:不同的

温馨提示

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

评论

0/150

提交评论