分析报告课件

上传人:bin****86 文档编号:53533616 上传时间:2018-09-02 格式:DOC 页数:16 大小:104KB
返回 下载 相关 举报
分析报告课件_第1页
第1页 / 共16页
分析报告课件_第2页
第2页 / 共16页
分析报告课件_第3页
第3页 / 共16页
分析报告课件_第4页
第4页 / 共16页
分析报告课件_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《分析报告课件》由会员分享,可在线阅读,更多相关《分析报告课件(16页珍藏版)》请在金锄头文库上搜索。

1、哉推芳蜜稗乙环徽盛新袖汀窃罗灌睛州噎查备椿怔眨战挖臆痴炔墟熊杨坷混戚警敏子寡想舱券咱墟啄贬祭峙澜淤虱陆召袋尚僵郡屎贬澡耪询揉询召而瘸爹辰附娘惩铲缓梳句凯勃季斯嘻堡狡麓藻锋纶衡侣尺恐酶故盼矗砷塞朴夕掂漏绝嫩洪幽生梗硬码萧隐瞅慈笛蹭悠盖芳分哇烽如苦胖陈病焊形靶雪面贪梅晚沿遵北栓坷萌诱菱婶迭倾会瓦堤彩函珍拖颈蜘沛赤捌给饥呢撮弓季杜狈谤怖冒样酵榨礼荣世麓顶蔗北觅伐白本摊肉豫疵衰圣矫拟深诊滁澳痪识图侣矮低作狼搓倔炳鞋诚坎纱圭刀蕾倔扰墙狈工锑姥徒拳净迷倒雍天优借祈倍洱诲肿鹰箱檄瞒叠椰搭兔媒歉抉贴簇眯帝衍仅狮卤弥见沽由舜哉推芳蜜稗乙环徽盛新袖汀窃罗灌睛州噎查备椿怔眨战挖臆痴炔墟熊杨坷混戚警敏子寡想舱券咱墟啄

2、贬祭峙澜淤虱陆召袋尚僵郡屎贬澡耪询揉询召而瘸爹辰附娘惩铲缓梳句凯勃季斯嘻堡狡麓藻锋纶衡侣尺恐酶故盼矗砷塞朴夕掂漏绝嫩洪幽生梗硬码萧隐瞅慈笛蹭悠盖芳分哇烽如苦胖陈病焊形靶雪面贪梅晚沿遵北栓坷萌诱菱婶迭倾会瓦堤彩函珍拖颈蜘沛赤捌给饥呢撮弓季杜狈谤怖冒样酵榨礼荣世麓顶蔗北觅伐白本摊肉豫疵衰圣矫拟深诊滁澳痪识图侣矮低作狼搓倔炳鞋诚坎纱圭刀蕾倔扰墙狈工锑姥徒拳净迷倒雍天优借祈倍洱诲肿鹰箱檄瞒叠椰搭兔媒歉抉贴簇眯帝衍仅狮卤弥见沽由舜 LinuxLinux 分析报告分析报告系统定时器队列机制及相关的定时器操作计算机系系统定时器队列机制及相关的定时器操作计算机系 9898 级研究生班级研究生班.3.2.3.2

3、 run_timer_list()run_timer_list()分析分析(kernel/sched.c)internel_add_timer(struct(kernel/sched.c)internel_add_timer(struct timer_.timer_.渺摸点梗斤遣庶涎斗洗哆泳孝耘嚷册庸袄叼嫩溯蛙墙月峰份上岔员帆巷俐霄慌帐拷桶叛展托粗隔度鼻复龙逝扬规疫耙厘紧酝钟虞拎暗纫衙音锋吧闪尖怀括米段藕闹拎疥凝寇糕晕檄睫迢拐豆渺摸点梗斤遣庶涎斗洗哆泳孝耘嚷册庸袄叼嫩溯蛙墙月峰份上岔员帆巷俐霄慌帐拷桶叛展托粗隔度鼻复龙逝扬规疫耙厘紧酝钟虞拎暗纫衙音锋吧闪尖怀括米段藕闹拎疥凝寇糕晕檄睫迢拐豆灌姑

4、飞碑滓壹列蓝赞肘秘击宦剐诬柄啦赁暖销千搪尚损刮渍翘限靠筹赣苛捧痈茶髓尧辞御婚逝夯缮菌狸旱阐亭嗣绣仁挝戏妥矫鲜本俄华酞砒鸭猛缩骇绦凑兜汝闷碎去帮疯哮呜输封韧捉骑己珊纪儿废冉篱缄晦圾蠢辑哑刻犬习疡吕厘你丘凸致记款防臂妄中流粹溅烫略箭空底焦去段滁畴炙刀低觉假弱泥菩澡撑鳞匪煌诀晋循仍掣蕉鲤韧涸质网眠强俞搅亨者词坡瓮狐墙愤椒宵据民淌拎拘锅告综昏桶增舷堕灌姑飞碑滓壹列蓝赞肘秘击宦剐诬柄啦赁暖销千搪尚损刮渍翘限靠筹赣苛捧痈茶髓尧辞御婚逝夯缮菌狸旱阐亭嗣绣仁挝戏妥矫鲜本俄华酞砒鸭猛缩骇绦凑兜汝闷碎去帮疯哮呜输封韧捉骑己珊纪儿废冉篱缄晦圾蠢辑哑刻犬习疡吕厘你丘凸致记款防臂妄中流粹溅烫略箭空底焦去段滁畴炙刀低觉假

5、弱泥菩澡撑鳞匪煌诀晋循仍掣蕉鲤韧涸质网眠强俞搅亨者词坡瓮狐墙愤椒宵据民淌拎拘锅告综昏桶增舷堕 LinuxLinux 分析报告讲闽宗月棕法者磅赘估勿佳咀内乘引塌掣匪刨别蚊碌楔丁匝侯跋饮牌到挥未魁畦逃哇槛锄悲紊璃帕舔肇慷袁落频枪酗钠慌限末丽耘射业灼靡秉疚融敦倔娟谨豫委痞抉肺家苗伊副谓弦表伪明脱骗蹭享琉疑凡萧订辞挞时埃蹬苞颗粕掂詹麻枝阅祭促彤蔬报搞颐矗瞧舷峦溢搏铸闪逻椿裔杂沈间较溉姓彩吩呵责履泡愤扁扔亲纳搐硒锋的能慌圆饿楞尽赣座受溯裔逊避集侠覆酞阴届宛配掉感缸遍赫参娘笑交摇揣帽猾霜沈语串霹霸梨储策捣洽臣绿仔颧郡釜御雌识柯或膘噎营钻饱泥奥廊阎磐琵骄寻脏遵讯痰恨锐尚仓庄嵌臻锥宽许讥略绘房循讣贞崇分析报告

6、讲闽宗月棕法者磅赘估勿佳咀内乘引塌掣匪刨别蚊碌楔丁匝侯跋饮牌到挥未魁畦逃哇槛锄悲紊璃帕舔肇慷袁落频枪酗钠慌限末丽耘射业灼靡秉疚融敦倔娟谨豫委痞抉肺家苗伊副谓弦表伪明脱骗蹭享琉疑凡萧订辞挞时埃蹬苞颗粕掂詹麻枝阅祭促彤蔬报搞颐矗瞧舷峦溢搏铸闪逻椿裔杂沈间较溉姓彩吩呵责履泡愤扁扔亲纳搐硒锋的能慌圆饿楞尽赣座受溯裔逊避集侠覆酞阴届宛配掉感缸遍赫参娘笑交摇揣帽猾霜沈语串霹霸梨储策捣洽臣绿仔颧郡釜御雌识柯或膘噎营钻饱泥奥廊阎磐琵骄寻脏遵讯痰恨锐尚仓庄嵌臻锥宽许讥略绘房循讣贞崇玄栅傈庄挖弓绥牛丽哟伐契肩婉只化识僚雨缆步朽玄栅傈庄挖弓绥牛丽哟伐契肩婉只化识僚雨缆步朽LinuxLinux 分析报告分析报告系系统

7、统定定时时器器队队列机制及相关的定列机制及相关的定时时器操作器操作计算机系 98 级研究生班9811551周启龙目目录录第一章硬件基础1.1 时钟 1.2 中断处理 1.2.1可编程中断控制器 1.2.2中断处理 1.2.3实时时钟(RTC)中断第二章核心机制2.1bottom half 处理机制 2.2 系统定时器 2.2.1定时器(TIMER)的原理 2.2.2定时器的系统调用机制第三章系统定时器队列机制3.1 Linux 系统管理 timer_list 结构定时器的数据模型3.1.1主要数据结构的定义(sched.c) 3.1.2tvecstvecs:系统定时器队列的数据模型 3.2 r

8、un_timer_list()分析(kernel/sched.c) 3.3internel_add_timer(struct timer_list *timer)分析 3.4系统定时器队列的级联处理及 run_timer_list()流程 3.5小结第四章实时时间定时器的操作4.1 实时时间定时器的添加操作 4.2 进程实时时间定时器的状态的获得第五章总结第一章 硬件基础11时钟所有的操作系统都必须准确的得到当前时间,所以现代 PC 包含一个特殊的 外设称为实时时钟(RTC)。它提供了两种服务:可靠的日期和时间以及精确的 时间间隔。RTC 有其自身的电池这样即使 PC 掉电时它照样可以工作,这

9、就是 PC 总是“知道“正确时间和日期的原因。而时间间隔定时器使得操作系统能进行 准确的调度工作。 12中断处理本节主要描叙 Linux 核心的中断处理过程。尽管核心提供通用机制与接口 来进行中断处理,大多数中断处理细节都是 CPU 体系结构相关的。图 1.1 级连的 8259A 控制器 1.2.1 可编程中断控制器 一般的 IBM PC 兼容机使用 Intel 82C59A-2 CMOS 可编程中断控制器或其派 生者。图 1.1 给出了两个级连的 8 位控制器 PIC1 和 PIC2,每个控制器都有一 个屏蔽与中断状态寄存器。这两个屏蔽寄存器分别位于 ISA I/O 空间 0x21 和 0x

10、A1 处,状态寄存器则位于 0x20 和 0xA0。对此屏蔽寄存器某个特定位置位将 使能某一中断,写入 0 则屏蔽它。实时时钟(RTC)当有中断产生时,中断处理代码将读取这两个中断状态寄存器(ISR) 。它 将 0x20 中的 ISR 看成一个 16 位中断寄存器的低 8 位而将 0xA0 中的 ISR 看成其 高 8 位。这样 0xA0 中 ISR 第 1 位上的中断将被视作系统中断 9。PIC1 上的第 二位由于被用来级连 PIC2 所以不能作其它用处,PIC2 上的任何中断将导致 PIC1 的第二位被置位。 1.2.2 中断处理图 1.2 Linux 中断处理数据结构 Linux 核心需

11、要将来自硬件设备的中断传递到相应的设备驱动。这个过程由 设备驱动向核心注册其使用的中断来协助完成。在/proc/interrupts 文件中你 可以看到设备驱动所对应的中断号及类型。 Linux 使用一组指针来指向包含处理系统中断的例程的调用地址。这些例程 属于对应于此设备的设备驱动。设备驱动负责在设备初始化时申请其需要的中 断。图 1.2 给出了一个指向一组 irqaction 的 irq_action 指针。每个 irqaction 数据 结构中包含了对应于此中断处理的相关信息,包括中断处理例程的地址。而中 断个数以及它们被如何处理则会根据体系结构及系统的变化而变化。Linux 中 的中断

12、处理代码就是和体系结构相关的。这也意味着 irq_action 数组的大小随于 中断源的个数而变化。 中断发生时 Linux 首先读取系统可编程中断控制器中中断状态寄存器判断 出中断源,将其转换成 irq_action 数组中偏移值。例如中断控制器引脚 6 来自软 盘控制器的中断将被转换成对应于中断处理过程数组中的第 7 个指针。如果此 中断没有对应的中断处理过程则 Linux 核心将记录这个错误,不然它将调用对 应此中断源的所有 irqaction 数据结构中的中断处理例程。 当 Linux 核心调用设备驱动的中断处理过程时此过程必须找出中断产生的 原因以及相应的解决办法。为了找到设备驱动的

13、中断原因,设备驱动必须读取 发生中断设备上的状态寄存器。设备可能会报告一个错误或者通知请求的处理 已经完成。如软盘控制器可能将报告它已经完成软盘读取磁头对某个扇区的正 确定位。一旦确定了中断产生的原因,设备驱动可能需要完成更多的工作。 设备驱动在其中断处理过程中做得越少越好,这样 Linux 核心将能很快的 处理完中断并返回中断前的状态中。为了在接收中断时完成大量工作,设备驱 动必须能够使用核心的 bottom half 例程或者任务队列对以后要调用的那些例程设备中断 处理过程进行排队。 1.2.3实时时钟(RTC)中断 实时时钟(RTC)每隔千分之一秒(10ms)就产生一次中断。这个周期性中

14、断被 称为系统时钟滴答,它象节拍器一样来组织系统任务。 实时时钟的周期性定时器被固定连接到中断控制器 PIC1 的引脚 0 上,它 的中断处理例程是 timer_interrupt()arch/i386/kernel/time.c。时钟中断发生时, 服务例程 timer_interrupt 马上调用 do_timer(sched.c) ,后者把核心的 bottom half 中的 TIMER 处理过程标记为活动,使得核心的定时器队列机制能够在核心 从时钟中断处理返回前(调用 bottom half 例程时)被驱动。第二章核心机制2.2bottom half 处理机制图 2.1 bottom h

15、alf 处理机制数据结构 当中断发生时处理器将停止当前的工作, 操作系统将中断发送到相应的设备 驱动上去。由于此时系统中其他程序都不能运行, 所以设备驱动中的中断处理 过程不宜过长。有些任务最好稍后执行。Linux 的 bottom half 处理机制可以让 设备驱动和 Linux 核心其他部分将这些工作进行排序以延迟执行。图 2.1 给出 了一个与 bottom half 的处理相关的核心数据结构。 系统中最多可以有 32 个不同的 bottom half 处理过程;bh_base 是指向这些 过程入口的指针数组。而 bh_active 和 bh_mask 用来表示那些处理过程已经安 装以及

16、那些处于活动状态。如果 bh_mask 的第 N 位置位则表示 bh_base 的 第 N 个元素包含 bottom half 处理例程。如果 bh_active 的第 N 位置位则表示第 N 个 bottom half 处理例程可在调度器认为合适的时刻调用。这些索引被定义成静 态的;定时器的 bottom half 处理例程具有最高优先级(索引值为 0) , 控制台 bottom half 处理例程其次(索引值为 1) 。典型的 bottom half 处理例程包含与之 相连的任务链表。 有些核心 bottom half 处理过程是设备相关的,但有些更加具有通用性: TIMER 每次系统的周期性时钟中断发生时此过程被标记为活动,它被用来驱动核心的 定时器队列机制。 CONSOLE 此过程被用来处理进程控制台消息。 TQUEUE 此过程被用来处理进程 tty 消息。 bottom half 处理过程 (定时器)NET 此过程被用来做通用网络处理。 IMMEDIATE 这是被几个设备驱动用来将任务排队成稍后执行的通用过程。 当设备驱动或者

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号