欢迎来到天天文库
浏览记录
ID:34170225
大小:185.46 KB
页数:4页
时间:2019-03-03
《操作系统中读者写者算法的改进与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据第5期遗传算法优化分布式数据库查询如窑∞基20×l+憾’l钠6赫●舱j冀-簟口:2口曩奇。●.1●_冀▲^▲.^:12468'O12,4强悖cs嘲卸图l实验l的结果图所推荐的遗传算法的另一个特性就是它的稳健性。然而多点搜索却是对查询形式和规模的改变非常敏感。一些实验揭示了它比多点搜索高出5%的优势。但是还需要更多的工作去证实。4结论表l实验l的结果分布式数据查询优化属于组合优化问题。在本论文中,遗传算法被用来优化半连接模型,而此半连接模型能降低分布式关系数据库中树查询的所有关系。遗传算法使用编制操作的树结构数据模型,这样就避免了最新算法重新评定适应度函数的必要。
2、为了满足应用的实时I生,遗传算法增加了局部搜索阶段,在实验里,遗传算法比测试用的交替技术要好。多点搜索在查询的最初阶段运行的比较好,但是在集合的初期就比较脆弱并且对查询的形式和规模比较敏感。推荐的遗传算法稳健性很好,在查询的初期运行的比较好,并能优化改进算法。实验已经表明使用遗传算法获得费用缩减。参考文献[1】K.Bennett,M.C.Ferris,Y.E.0ioanni(1is.AGeneticA190rithmforDatab鹊eQl】ery0ptimization【M1,Proc.F0u汕IntemationalConf.onGeneticAlg()rithms
3、,1991,400一407.【2]C.J.Date.AnIntroductiontoDatabaseSystems[M】.AddisonWesley,ReadingMA,1995.【3]D.E.G01dherg.GeneticAlgorithmsinSearch,Optimisation肌dMachineI。eaming[M】,Addison—We8ley,ReadingMA,1989.[41B.Groselj,Q.M.Malluhi.combinatorial叩timization0fdistributedquedes[J1,IEEETr丑ns.ofKnowledge
4、andDataEngineering'1995,(7):915—927.GeneticAIgOrithmOptimiSatiOnOfDlStr-butedDatabaseQuerieSPENGWen—bin(QiqiharUniversityInfo硼ationDeparcment,HeilongjiangQiqihar1610D6,China)AbStract:Distributedrelationaldatabasequeryoptimisationisacombinatorialoptimisationpmblem.Thispaperreponsonaniniti
5、alinVest培ationint0thepotentialforageneticalgorithm(GA)tooptimisationdistributedqueries.万方数据第5期操作系统中读者写者算法的改进与实现·79·进程工作。下面,用信号量S实现读者与写者或写者之间的互斥,其初值为1;用信号量Sn限制系统中最多有n个进程,初值为n。其改进的算法如下:读者进程Pi(i_1,2,⋯,n):写者进程Pj0=1,2,...,k):he{;inheginP(s);7P(s);P(Sn);fori:=1tond(1P(Sn);V(S);write6le;read矗le
6、;fori:=1tondoV(Sn);V(Sn)V(S);产nr
7、end3基于管程机制的改进与实现方案管程机制是用于解决进程同步问题的一种最行之有效的方法。其基本思想是将共享变量和对它们的操作集中在一个模块(过程)中,操作系统由这样的模块构成,模块之间相互关联,易于维护和修改,易于保证进程执行的正确性。管程作为一个模块,它的类型定义如下:monitor_name=MONITOR;共享变量说明;de6ne本管程内部定义、外部可调用的函数名表;use本管程外部定义、内部可调用的函数名表;内部定义的函数说明和函数体{共享变量初始化语句;)为了保证共享变量的数据一致性,管程应互
8、斥使用。管程通常是用于管理资源的,因此管程中有进程等待队列和相应的等待和唤醒操作。在管程人口有一个等待队列,称为人口等待队列。当一个已进入管程的进程等待时,就释放管程的互斥使用权;当已进入管程的一个进程唤醒另一个进程时,两者必须有一个退出或停止使用管程。在管程内部,由于执行唤醒操作,可能存在多个等待进程(等待使用管程),称为紧急等待队列,它的优先级高于人口等待队列。因此,一个进程进人管程之前要先申请,一般由管程提供一个enter过程;离开时释放使用权,如果紧急等待队列不空,则唤醒第一个等待者,一般也由管程提供外部过程leave。管程内部有
此文档下载收益归作者所有