构件化操作系统的跟踪调试方法
更新时间:2023-06-09 03:25:01 阅读量: 实用文档 文档下载
- 操作系统的构件有哪些推荐度:
- 相关推荐
操作系统
第34卷
V01.34
第17期
No.17
文章编号t
计算机工程
ComputerEngineering
2008年9月
September2008
文献标识码-A
中圈分类号 TP316
软件技术与数据库
100忙3428(2008)17—_0068一_03
构件化操作系统的跟踪调试方法
许康,李■,羹育昌
(中国科学技术大学计算机科学技术系,合肥230027)
■蔓:为了适应分布式构建化操作系统对性能调试的需求,采用了对构件化对象建立日志服务和增加构件化系统调用对进程的访问控制
的方法,从而为构件化操作系统设计出一种兼具逻辑性调试和性能调试功能的跟踪调试构件。该调试构件的设计已经在实验室开发出的一
个具有构件化概念的系统中得到了具体的实现,并体现出良好的功能扩展性和可移植性。关健词:构件化操作系统;跟踪调试;日志服务
Track—debugging
Method
for
ComponentOS
andTechnologyofChina,Hefei230027)
both
XUKang,LIXi,GONGYu-chang
(DepartmentofComputerScienceandTechnology,UniversityofScience
[AbstractlThecomponentoftrack—debuggingforcomponentOperationSystem(OS),whichhas
debuggingfunction,isproposedinthispaper.Thelogserviceforcomponentcomponentoftrack—debugging
call
logicdebuggingfunction
are
andperformance
setup,SOthatthis
andthecontrolofprocessbycomponentsyscall
adaptcomponentoperation
system’Sneedindistributionalapplication.Thiscomponentisimplementedin
laboratoryandrepresentsgoodcharacteristicforextendingandtransplanting.
[Keywords]componentOperationSystem(OS);track—debugging;logservice
1概述
构件化的开发方式,为搭建具有灵活内核以及动态可扩展特性的操作系统提供了实现依据。目前,已出现了许多以结构灵活、内核可定制为特点的构件化嵌入式操作系统…。随着分布式应用的扩大,构件化的分布式操作系统也在研究之中。在基于构件的操作系统里,内核所具有的各种基本功能,如进程的创建和调度、内存分配管理、设备管理等都是通过内核构件对象接I:1的形式来体现的,从而呈现出高度的模块化。构件化的系统对象和系统调用规范是这类系统的基本特征。系统所提供的构件库以及用户开发的应用程序构件都遵循相同的构件技术规范,都通过系统接口与内核交互,从这个意义上说,他们处于同样的地位。由于各构件间的耦合度较低,使构件的结构和功能对程序的运行性能会产生较大的影响,因此为构件化操作系统设计跟踪调试手段的时候也需要考虑性能因素。
目前的构件化操作系统还是以嵌入式应用为主,所以,其跟踪调试还集中在对串行程序的逻辑性调试上,随着系统向分布式方向的发展,其调试功能也有必要进行性能调试的扩展。本文即针对构件化操作系统设计出一种基于构件的性能调试方法。该方法将构件作为新的跟踪调试对象,能够加快在构件化系统上进行软件开发的效率,同时帮助提高系统的整体性能。
为收集表征程序运行状况的大量数据,并对其进行分析,进而优化程序结构,提高程序在该系统上的运行性能。
性能调试一般有基于事件跟踪和基于进程跟踪2种方法:(1)基于事件跟踪是将程序的执行过程看作是一个不断产生事件的过程,程序的一次执行产生的事件构成一张事件图,对程序的调试就是收集这张事件图,与预计的结果进行比较,看是否一致口J。其缺点是生成的事件种类和数量较多,所以会加大实现的难度及降低调试的效率。(2)基于进程跟踪是将一个程序的执行对应到系统中的一个进程或者多个进程组成的一个进程簇,对程序的调试就是对相应一个或多个进程的运行数据进行收集pJ。其缺点是忽视了多个程序之间的相互关联性,不利于实现对系统整体性能的跟踪。
在构件化操作系统里,一个程序的行为可以由一个构件化的系统调用序列来刻画,如图1所示。
2构件化系统的跟踪调试方法设计要点
2.1逻辑性调试
逻辑性调试是指调试程序中的错误,在构件化操作系统中,使用传统的进程调试手段即可完成对程序的逻辑性调试。2.2性能调试
性能调试是在传统的逻辑性调试基础上提出的。其方法
圈1构件化操作系统程序运行结构
因此,在构件处设置跟踪点收集每个构件化系统调用的作者筒介:许康(1983一),男,硕上研究生,主研方向:操作系统;
李曦,副教授;龚育昌,教授、博士生导师收藕日期:2007 10—10
E-mail:xukang@mail.ustc.edu.ca
—_68一
万方数据
操作系统
执行信息,就可以实现对程序运行状态数据的收集。2.3性能调试设计的关键技术
2.3.1
日志服务在构件化对象上的建立
为了完成在构件处对程序运行数据的收集,就需要为系
统的每个构件提供统一的日志服务功能,以记录系统调用的使用情况。
建立日志服务的作用有如下2点:
(1)实现对系统整体性能的统计,查找系统的性能瓶颈。衡量系统性能的2个最重要指标是系统响应时间和系统吞吐率。前者表现为系统上完成单个程序运行所花费的时间;后者表现为系统支持同时运行的最大程序个数。
在构件化系统中,程序的运行可以视为系统调用请求在多个构件间的流动,那么系统对程序的响应时间和吞吐率可以表示如下:
响应时间=每个构件对程序的响应时间+
系统调用请求在构件间流动所消耗的时间
吞吐率=min{各个构件能同时响应的程序个数}
系统各构件之间的通信采用统一的通信机制,所以构件间的通信效率在大部分时间里应该是稳定的,只有在采用多机互联的系统里可能受到网络不稳定等因素的影响。
因此,对于构件化操作系统I面言,影响系统性能的因素就被划分到一个或多个构件里,只要比较一下每个构件处的日志记录,就能找出影响系统性能的构件,再通过在构件化系统调用上设置断点,就能将系统性能瓶颈准确定位到构件的系统调用接口上,从而弥补进程跟踪在性能方面的不足,加快系统性能的提高和高效率程序的开发。
(2)记录程序的运行轨迹,实现程序的重放。对于具有不可重现特性的程序进程,采用传统的进程跟踪调试手段,无法完成错误的定位,而日志功能则会将程序前次执行的过程记录下来,只要日志记录足够完善,就可以通过日志记录重放前次程序的执行,从而实现对不可重现程序的调试。2.3.2通过构件化系统调用对进程运行状态的控制
在传统的进程跟踪调试里,对程序运行的控制粒度可以根据需要进行改变,如从最细的指令级到系统调用级最后到源代码上的函数级。在基于构件的跟踪调试里,对程序运行的控制粒度有构件级和构件化系统调用级2级。编程人员通过在某一构件处设置断点即可使被调试进程在请求该构件服务时被停止下来,从而实现对构件的功能和性能调试。相比传统的进程调试,编程人员不必去源代码中查找请求该构件的函数调用,从而加快调试的效率。编程人员通过对程序使用构件化系统调用跟踪,即可将错误或性能瓶颈定位到具体的系统调用入El上。
通过增加对构件及构件化系统调用的控制可以实现以下2个功能:
(1)控制系统上单个或多个程序的运行。传统的进程调试模式是由一个进程去控制另一个进程,这样进程间的相互关系对调试结果影响很大,比如一个进程不能同时被2个进程所跟踪,被跟踪进程如果再去尝试调试跟踪进程,将会导致2个进程相互等待而僵死。这也是许多反跟踪技术产生的原因。
通过构件实现肘进程的控制可以将跟踪进程和被跟踪进程彻底隔离开来,从而消除两者之间的相互影响。增加构件对进程的控制功能后,要实现一个进程同时跟踪多个进程,只需要在构件处为多个被跟踪进程没置相应的跟踪点即可。
万
方数据多个进程甚至可以跟踪调试同一个进程,在这种情况下,被跟踪进程的状态由多个跟踪进程的调试命令联合决定,只要有一个跟踪进程发出了停止命令,被跟踪进程就将处于停止状态,只有当所有跟踪进程都允许运行时,被跟踪进程才继续运行。因此,基于构件的跟踪方法能够很容易地实现对多个并发程序的跟踪调试。
(2)控制整个系统的运行状态。通过同步控制系统里所有构件的系统调用,就能实现控制整个系统的运行状态。当所有的系统级构件都关闭对应用程序的服务时,系统里仅有内核进程运行,可以进行系统内核的调试。同时,如果系统支持并行程序的运行,那么此状态就对应到多个并行程序运行时的停止状态,从而可以实现对并行程序的跟踪调试。2.4性能调试设计的关健结构2.4.1构件性能日志
为了查看系统的运行性能,每个构件上将维护一个简单的日志,负责记录调用该构件系统调用的进程及其时间消耗、资源占用比例等情况。结构如表1所示。
衰1构件性能日意
数据项
描述进程ID号
m要
构件化系统调用号
流入日f问流出时间资源占J{J比例
由于同一个进程有可能多次调用同一个构件化系统调用,因此记录中的进程ID号和构件化系统调用号都是允许重复的。程序被运行一次后,通过统计对应进程在每个构件内运行的总时间占程序运行总时间的比例就可以确定影响程序执行时间的构件。通过统计记录表中有流入时间但流出时间为空的记录条数就能得到当前构件内的总进程数。如果要实现日志一重放的功能,则还需要对该表进行扩充,记录详细的运行上下文情况。
2.4.2构件化系统调用控制表
为了控制系统里所有的构件化系统调用是否对指定进程服务,系统必须负责维护一张全局的系统调用表,如表2所示。当表中Server属性被设为否时,一旦进程发出调用对应系统调用的服务请求,该系统调用所在构件将会发出信号使进程STOP下来,当Server属性被重新设为是时,又由该构件发Continue信号给进程,恢复进程的执行。
袭2全局系统调用控钊表
数据项
描述
’
Syscall—ID
构件化系统调用号
PID
进程ID号Server
是否服务
系统实现上是通过一个监控进程随时扫描该控制表,一旦发现有新的记录插入或旧的记录被修改即发送相应的处理信号给受控进程。
2.5基于构件的跟踪流程
有了前面结构和功能的支持,就可以进行基于构件的跟踪调试操作。其跟踪流程如下:(1)Attach进程,使该进程被打上被跟踪标志以区别于普通进程。(2J构件处设断点,根据调试的需要在某构件处设置断点。(3)恢复进程运行。(4)当进程请求设有断点构件的系统调用服务时被该构件中断。用户可以查看和修改进程调用构件服务前的资源情况。(5)恢复进程运行状态,开放系统调用对该进程的服务。(6)进程执行构
—-69-一
操作系统
件内的功能代码。此时编程用户可以根据需要随时暂停进程供传统进程调试的函数调用接口外还增加了构件级、构件化的执行并查看其在构件内的资源分配情况及数据处理结果。系统调用级的跟踪函数。同时提供一组查看构件及系统性能(7)进程退出构件后被中断。用户可以查看构件对数据的处理状况的系统调用接口。
结果以及控制进程是否被允许请求下一次的构件化系统
图2所示的跟踪调试构件已经在实验室开发出的一个具调用。
有构件概念的系统一一Minicore系统[4-5]上得到了具体的实2.6基于构件性能调试的优点
现,并通过一系列测试证明了基于构件的调试手段对分析系以系统里的构件作为跟踪对象进行性能调试的优点统的工作性能和开发高效率程序能起到有效的帮助作用。下如下:(1)可以同时实现对系统构件和用户开发构件的调试。一步的工作是进一步完善构件的日志功能,从而实现在分布(2)有利于观察系统的整体运行情况,帮助查找系统的性能瓶式构件化操作系统上进行跟踪调试的目的。
颈。(3)在比较完善的日志功能帮助下可以实现对具有不可重4结束语
现性程序的重放调试。(4)可移植性强,针对多处理器的操作本文在总结并行程序性能调试方法的基础上,针对构件系统可通过同时控制多个构件的系统调用实现对多任务的跟化操作系统设计出基于构件的性能调试方法。该调试方法具踪调试。(5)可扩展性好,针对分布式的应用,只需要将系统有调试对象隔离性好、移植性强、扩展性好等特点。该调试中构件的日志服务功能分布化到各个节点即可完成其上并行方法作为进程调试在构件化系统上的必要补充,被测试证明程序的性能调试。
能起到有效的辅助开发作用。研究的工作还在继续进行之中,3跟踪调试构件的设计
下一步还将针对分布式的应用需求对构件的日志功能进行完跟踪调试件的结构设计如图2所示。
善,增加日志一重放功能,将构件日志功能分布到多个节点上跟踪调试构件
实现,从而设计出适合分布式构件化操作系统下并行程序开发的调试手段。
性能统计
日志摩放
参考文献
而鬲习l
三型I
窀笔
【I】杜永文,何华灿,陈榕.基于灵活内核的构件化驱动程序【J】.
小型微璎计算机系统,2004,25(4):587—589.I
I系统调用
【2】王
忠,王宏力,邓方林.CHY—III的并行仿真程序性能调试工
具【J】.系统仿真学报,1999,l1(1):24—29.
竿型…一生O等SL.蔓半
【3】刘建,余宏亮,沈美明.Linux机群系统并行程序调试器的设
计与实现【J】.计算机工程,2002,28(4):7-9.
【4】李宏,龚育昌,赵振西,等.服务体模型与操作系统内核设计
圈2跟踪调试构件的鳍构设计
技术[J】计算机研究与发展,2005,42(7):1272—1276.
由于性能调试的实现也是基于进程跟踪的,因此能够很【5】龚育昌,李宏.基于服务体/执行流模型的操作系统:中国,
容易地将系统的逻辑性调试功能和性能调试功能合并在一起CN200410080994.9【P】.2005—09—1412007—09—201.中华人民共和组成构件化操作系统上的跟踪调试构件。该调试构件除了提
国发明专利公报.
(上接第67页)
120
参考文献
100
[1】AnkerstM,BreunigMM,KriegelHP’eta1.OrderingPoints
tO
童80
删
Identify
theClustering
Structure[C]//Proc.ofACMSIGMOD
蒹60
InternationalConferenceon
ManagementofData.Philadelphia,
联40
USA:ACMPress.1999.
20
[2】BrecheisenS,KriegelHP’KrogerE
et
a1.VisuallyMiningThrough
0
ClusterHierarchies[C]//Proc.ofSIAMInt’1Conf.on
Data
Mining.
站点个数
站点个数
Orlando,USA:【S.n.】,2004.
(a)改进算法聚类与子站点的关系(b)DBDC算法聚类与子站点的关系
【3】EsterM,Kriegel
HPSanderJ,eta1.IncrementalClusteringfor
圈7算法聚类质量与子站点羹目关系比较
Miningin
a
Datawarehousing
Environment[C]//Proc.ofthe24th
5结束语
Int’1Conf.On
Very
LargeDatabases.New
York,USA:【S.n.】.1998.
本文研究基于密度的分布式聚类算法并提出改进算法。【4】Ester
M,KriegelHP,SanderJ,et
a1.A
Density—basedAlgorithmfor本文算法引入了定量的对象代表性分析指标,用于获取特殊DiscoveringClusters
in
Large
Spatial
Databaseswith
核心对象并计算其代表性。形成局部聚类模型后,在传递给Noise[C]//Proc.ofthe2ndInt’1ConL
on
KnowledgeDiscoveryand
主站点的模型中附带r特殊核心对象的覆盖半径、覆盖点数,DataMining.Portland.USA:AAAIPress,1996.
全局聚类算法利用这些信息形成全局聚类模型。
【5】JanuzajE。KriegelHP'PfeifleM.Density—basedDistributed
笔者在下一步工作中,将考虑多维数据模型及增量分布Clustering[C]//Proc.ofthe9thInt’1Conf.OilExtendingDatabase式聚类算法。
Technology.Heraklion,Greece:【S.n.】,2004.
一7伊~
万
方数据
操作系统
构件化操作系统的跟踪调试方法
作者:作者单位:刊名:英文刊名:年,卷(期):
许康, 李曦, 龚育昌, XU Kang, LI Xi, GONG Yu-chang中国科学技术大学计算机科学技术系,合肥,230027计算机工程
COMPUTER ENGINEERING2008,34(17)
参考文献(5条)
1.龚育昌;李宏 基于服务体/执行流模型的操作系统 2007
2.李宏;龚育昌;赵振西 服务体模型与操作系统内核设计技术[期刊论文]-计算机研究与发展 2005(07)3.刘建;余宏亮;沈美明 Linux机群系统并行程序调试器的设计与实现[期刊论文]-计算机工程 2002(04)4.王忠;王宏力;邓方林 CHY-Ⅲ的并行仿真程序性能调试工具[期刊论文]-系统仿真学报 1999(01)5.杜永文;何华灿;陈榕 基于灵活内核的构件化驱动程序[期刊论文]-小型微型计算机系统 2004(04)
本文链接:/Periodical_jsjgc200817025.aspx
正在阅读:
构件化操作系统的跟踪调试方法06-09
做手工作文200字07-07
我国会计电算化存在的问题及对策探讨04-10
小学美术《线条的魅力》教案与说课稿11-23
C语言中常见的判断题12-07
急救护理学习题05-16
第三章 领悟人生真谛 创造人生价值习题05-25
计算机网络 姚宇(B)01-05
医院院内感染管理相关制度目录06-26
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 构件
- 调试
- 跟踪
- 操作系统
- 方法
- 2021年河北教师资格小学教育教学知识与能力考点预测归纳精髓教案的具体内容
- 四大四小汽车集团
- 2021年教师资格《小学综合素质》考前冲刺题答案六
- 马铃薯花粉离体萌发及花粉管生长影响因子分析
- “名士达”杯第五届油友大赛试题讲解
- 李营街道小学小课题参考题目
- 景观工程监理规划及细则
- 第5章+衍射的运动学理论
- 妊娠期补钙预防妊娠高血压综合征的Meta分析
- 16工程招标控制程序
- 高一乒乓球选修课教案
- 上消化道出血的健康教育
- 英语写作常用副词形容词
- 2019年油缸制造业分析报告
- 2014内蒙古选调生考试公共基础知识:民法的七条线
- 设计院给房产商做的初步设计1-请在放映模式下欣赏
- XXXX年第一次生产技能人员标准化岗位考试(答案)试卷
- 17.1.2反比例函数的图像和性质第3课时
- 北方地区修改上课用
- 2015年度广州地区化工实验室研究员岗位薪酬调查报告(招聘版)