利用基于事件的混合监测系统ms

利用基于事件的混合监测系统ms

ID:22328935

大小:53.50 KB

页数:5页

时间:2018-10-28

利用基于事件的混合监测系统ms_第1页
利用基于事件的混合监测系统ms_第2页
利用基于事件的混合监测系统ms_第3页
利用基于事件的混合监测系统ms_第4页
利用基于事件的混合监测系统ms_第5页
资源描述:

《利用基于事件的混合监测系统ms》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、利用基于事件的混合监测系统MS-->【Abstract】Multi-threadisoneofthemostimportantfeaturesofJava.ButthescheduleofthethreadsinJavaisdonebytheoperatingsystem,andthedeveloperscannotgettheinformationabouttheexecutionoftheindividualthread,onsoftsexecution.Theauthorstakeadvantageoftheevent

2、-drivenhybridmonitorsystemMS-3,andanalyzetheinternalbehavioroftheindividualthreadinthemulti-threadedJavaprogramprecisely.【Key,MicroEdition)技术,将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。Java语言对多线程的支持是它的重要特点之一。当应用程序必须等待缓慢的资源(如网络连接或数据库连接)时,或者当应用程序是非交互式时,多线程通常是有利的。而当开

3、发要支持大量客户机的服务器时,多线程也可以使编程较为容易。在这种情况下,每个线程可以为不同的客户或客户组服务,从而缩短了响应时间。Java编程语言为多线程代码提供了丰富的支持[1],包括一项特别有用的功能:能够在一个线程中抛出一个异常而不影响其它线程。但这项功能会导致很多难以跟踪的错误。多线程代码天生是非确定性的,线程调度由操作系统完成,出现错误的可能性大得多,而且,所发生的错误很难重现,因此也更难解决。2方法介绍(1)监测基本原理解决上述问题的一种方法是对计算机的运行状况进行动态监测[2],从而了解整个程序在运行过程中的动

4、态行为。监测的方式一般分为两种:一种是时间驱动监测(Time-drivenMonitor),这种监测方式基于统计模型,由它所获得的数据一般只能作为程序运行过程中的统计信息;另一种监测方式为事件驱动监测(Event-drivenMonitor),这种监测方式首先需要在运行程序中选定一些监测点(也称为探头),将它们定义为各种事件,在程序运行时,运用软硬件技术采集记录各事件的发生状况,通过解释和分析这些事件流来理解和演示整个程序运行过程中系统的动态行为。这种监测方式不但可用于系统的性能评测,而且可用于软硬件设计过程中的调试和优化。

5、它是目前进行规范、有效的程序行为分析的唯一一种监测方式。事件驱动监测按其实现方式又可分为3种类型:1)硬件监测(Hardp.c中给出。Monitor.java代码如下:publicclassMonitor{publicnative-->voidmonitor(intevent);static{System.loadLibrary("monitor");}}编译Monitor.java到Monior.class后,用javahjniMonitor命令将Monitor.class编译到头文件Monitor.h。根据上一步生成的头

6、文件,用C语言编写监测代码。MonitorImp.c,代码如下:#include#include"Monitor.h"#includeJNIEXPORTvoidJNICALLJava_Monitor_monitor(JNIEnv*env,jobjectobj,jintevent){_outp(0x378,event);_outp(0x37a,2);_outp(0x37a,0);}用VC++提供的cl.exe编译MonitorImp.c到Monitor.dll成功后,就可以在被监测代码中直接利用Monitor类来插入监测探头。

7、在S-3监测系统可以精确获得各线程行为的特点,可以确定所需同步的最小代码块,或将较复杂的线程拆分成多个简单线程,对其中的某几个线程进行同步,从而降低对程序执行效率的影响。另外,线程的同步有可能会造成死锁,通过分析MS-3监测系统的监测结果也可以对造成死锁的原因进行分析。下面以一个多线程程序Sharing.java为例,介绍MS-3在监测Java多线程程序方面的应用。Sharing.java是用java语言编写的一个多线程程序,用来模拟典型的同步操作,其中定义了3个类(class),分别是Ts,结束时间是403477.7692

8、ms。共测得数据7747个。利用VAT4的可视化分析功能,可得甘特图(如图1)。由以上监测所得甘特图可知,l,20012吴百锋,彭澄廉赵,立勇并.行和分布式计算机监测系统的实现原理.计算机学报,1998,21(4):296-3013杨绍方.Java编程实用技术与案例.北京:清华大学出版社,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。