- 1、本文档共76页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
f.若进程消耗总时间超过最大时间界限,则向进程发送SIGKILL信号,强行杀死进程 h.若进程定义有virtual定时器,则根据消耗的用户态时间处理它 i.若进程定义有prof定时器,则根据消耗的用户态和核心态时间处理它 定时器 在进程运行时,系统提供的virtual和prof定时器可以实现定时 为了在任何时候都能够定时,LINUX提供两类根据系统时间定时且与进程状态无关的定时器: 老定时器和新定时器 老定时器 结构 struct timer_struct{ unsigned long expires;//终止时间 void(*fn)(void);//到期要执行的函数 } 最多有32个老定时器 系统定义一个位图timer_active来标识已注册并处于活动状态的定时器,如果某位被置1则相应的定时器活动 通过以下函数在底半处理中检查并处理老定时器: run_old_timers 顺序有哪些信誉好的足球投注网站位图,发现某位被设置就检查是否到期。如果到期就清除位图中该定时器的标记,表示处理完成;执行定时器指定操作tp-fn();每处理一个定时器就开一次中断sti() 新定时器 新定时器结构 struct timer_list{ struct timer_list *next; struct timer_list *prev; unsigned long expires;//终止时间 unsigned long data; void(*function)(unsigned long); }; 其中data是传给处理函数function的参数next和prev两个指针将定时器连成双向链表 tvecs tv5 tv4 tv3 0 1 2 3 4 index index timer_list timer_list timer_list timer_list …… …… 0-7(0-255) 8-13(256-383) 14-19 20-25 26-30 新定时器被分别组织在5个结构(tv1,tv2,tv3,tv4,tv5)中,每个结构中都有一个定时器结构(timer_list)的指针数组,用来对待处理的定时器排队。一个定时器被放置到哪个队列中,取决于它的终止时间。 结构timer_vec_root由一个索引和一个指针数组组成,指针数组的大小为512.变量tv1是一个timer_vec_root结构,vecs[0]是指向该结构的指针。 结构timer_vec由一个索引和一个指针数组组成,指针数组的大小为64。变量tv2,tv3,tv4,tv5是4个timer_vec结构,vecs[1], tvecs[2],tvecs[3], tvecs[4]是分别指向这4个结构的指针。假设定时器的终止时间为expires,它与当前时间的差额为idx(单位为滴答),称idx为时间间隔,根据该时间间隔决定一个定时器应 该在定时器队列中的位置,详见p112-p113. 为了集中管理这些没有个数限制的新定时器,采用另两个数据结构:timer_vec和timer_vec_root 定时器初始化:init_timer,将定时器两个指针设为空 定时器入队:add_timer a.若定时器prev指针不空,则提示错误,返回 b.加锁,调用internal_add_timer(timer)函数完成定时器入队 定时器出队: 函数detach_timer用于将一个定时器从队列中摘下; 函数del_timer用于从队列中删除一个定时器; 函数mod_timer用于修改一个定时器的终止时间,因而也改变它所处的队列;后两个函数都需要调用detach_timer函数 定时器处理: run_timer_list,其作用是执行到期的定时器上注册的操作 定时器被广泛使用,比如进程睡眠函数sleep_on_timeout和interruptible_sleep_on_timeout;许多设备驱动程序也大量使用定时器,TCP协议的实现上也使用定时器 时间间隔定时器 LINUX提供三种时间间隔定时器:Real、Virtual、Profile,它们都是为用户进程定时的 Real根据系统时间定时,Virtual根据进程消耗的用户时间定时,而Profile根据进程消耗的时间(不管是用户还是系统时间)定时 数据结构 定时器的设置 用户进程调用函数sys_setitimer来启动时间间隔定时
您可能关注的文档
- HTML学习下题库.ppt
- HTML与XML题库.ppt
- HTML语言与网页设计题库.ppt
- Linux操作系统题库.ppt
- html专题4案例1题库.ppt
- Linux操作系统详解题库.ppt
- SANGFOR基本功能介绍题库.ppt
- linux操作系统之二题库.ppt
- Linux程序设计第6章题库.ppt
- Linux程序设计第7章题库.ppt
- 执业药师之《药事管理与法规》检测卷讲解含答案详解(必威体育精装版).docx
- 执业药师之《药事管理与法规》全真模拟模拟题及答案详解(全国通用).docx
- 2025年执业药师之《西药学综合知识与技能》模拟试题附参考答案详解(突破训练).docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库含答案详解(培优a卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题精选附答案详解(名师推荐).docx
- 执业药师之《药事管理与法规》强化训练模考卷带答案详解.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺测试卷包附参考答案详解(b卷).docx
- 2025年执业药师之《西药学综合知识与技能》模考模拟试题及参考答案详解(夺分金卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题含答案详解【b卷】.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库带答案详解(b卷).docx
文档评论(0)