Linux内核编程实验报告3.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux内核分析实验报告 实验题目:内核定时器 实验目的:练>]怎样编写调用内核的吋间测量功能为应用程序测量和精确定吋, 通过这个实验:可以进一步了解Linux内的的定时机制以及数据结果以及怎样从 用户空间去访问内核控件的时间数据 硬件环境:内存1G以上 软件环境:Linux (Ubuntu) 2-6 实验步骤: -:实验原理简介: 在每一个用户进程的主耍执行动作前设定时间,主要动作完成以后,获 取时间,如此得到了主要动作的执行时间,系统总共有三种类型的时间 ITIMER_REAL, ITIMER.VIRTUAL, ITIMER_PROF,三种类型的数据分别记录了程序 执行的实际吋间,程序执行的虚拟吋间,程序执行的CPU吋间。其屮: 程序的用户态吋间=ITI MRT_PROF得到的吋间 程序的系统态时间=ITIMRT_PROF得到的时间(CPU时间)- ITI MER_V IRTUAL得到的时间(用户态时间) 在这里使用了 f ibonacci函数测验。因为f ibonacci函数运行的吋间相 对较长,实验结果明显。测验相关函数时,可以运用一个for循环达到相同的效 果。 二:主要数据结构: 时问结构: struct timeval{ long tv_sec; 1970+1开始经历的秒数 long tv_usec;//从上一秒到现在经历的微秒数 } theTime; 要想得到现在的具体时问,需要经过和应的转换 吋间设置结构: struct itimerval{ struct timeval it_interval: struct timeval it_vaIue }; it_interval当吋钟到吋后吋钟设的初始值; i t_va I ue 调用get i timer函数后,吋间值存储在这个结构中 三:主要函数介绍 1:系统调用函数 (1) getitimer ( int timerType , const struct itimerval *va I ue) 函数说明:得到指定类型的的吋间值,得到的给过放在value 结构中 : (2) setitimer(int timerType , const struct itimerval *value, struct itimerval *oldValue ) 函数说明:设置指定类型的时间的时间值,设置的标准时 value结构巾指定的值。 (3) sighandler_t signal (int signum,sighandler_t handler); 函数说明:将指定的信号类型与指定的函数相关联。 2:自定义函数: static void psig_real(void); 函数说明:每当父进程实呩执行时问达到1秒,就把 p_real_secs (记录父进程实际执行的秒数)变量加1?两 个子进^同理。 static void psig_virtual(void); 函数说明:每当父进程虚拟执行时间达到1秒,就把 p_virt_secs (记录父进程实呩执行的秒数)变量加1。两 个子ii程同理。 static void psig_prof(void); 函数说明:每当父进程prof执行时间达到1秒,就把 p」eal_secs (记录父进程实际执行的秒数)变量加1。两 个子进同理。 四:程序流程: 父子程序的执行流程基本相同,满足:设置计算 获取。具体代码如下:(见图3-1)94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 111 112 113 114 115 116 117 118 119 121 clclclclreaU.it interval..tv sec =0;//定时器到0时候.重新设置成十抄钟 realt.it_interval.tv usee = 999999; realt.it value.tv sec =0; cl cl cl cl clvirtt.itinterval.tv_sec=0; cl virtt.it interval.tv usec=999999; cl virtt.it value.tv sec=o; cl virtt.it value.tv usec=999999; cl proft.it interval.tv sec=0; cl proft.it interval.tv_usec=999999; cl proft.it value.tv sec=0; cl proft.it value.tv usec=999999; setitimer(ITIMER REAL,c1 realt.NULL); set it ime r(ITIMERVIRTUA

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档