一些与中断相关的信息(收集整理的)



EOI(end of Interrupt):发送给可编程中断控制器的信号,指示当前中断已经处理完成。EOI信号在中断回调函数处理完成是被发送,或者PIC能够发送一个auto-Eoi在启动中断回调处理时。

APIC & 8259A

X86计算机的CPU中断只提供了两条外部引接:NMIINTRNMI(NonMaskable Interrupt)是不可屏蔽中断,通常用于电源掉电和物理存储器奇偶检验。INTR是可屏蔽中断,可以通过设置中断屏蔽位来屏蔽中断,主要用于接收外部硬件设备的中断信号。这些信号由中断控制器传递给CPU

常用的中断控制器有两种:

  1. 可编程中断控制器8259A

  2. 高级可编程中断控制器(APIC)

8259A只适合单CPU的情况,为了充分挖掘SMP体系架构的并行性,能够把中断传递给系统中的每个CPU。基于此,Intel引入了一种名为I/O高级可编程控制器的新组件来替代原有的8259A。该组件包含两大部分:一是APIC”,主要负责传递中断信号给指定的CPU;一个具有三个CPU的机器,则它须对应有三个本地APIC。另外一个重要的部分是I/O APIC,主要负责收集来自I/O装置的interrupt信号,系统中最多可拥有8I/O APIC

每个本地APIC都有32位的寄存器,一个内部时钟,一个本地定时设备及本地中断保留的两条额外的IRQ线LINT0LINT1。所有本地APIC都连接I/O APIC,形成一个多级APIC系统。如下图所示:

 

 

http://hi.csdn.net/attachment/201010/7/85277_1286451025Ny6z.jpg

目前大部分单处理器系统都包含了一个I/OAPIC芯片,可以通过如下两种方式对这种芯片进行配置:

  1. 作为一个标准的8259A工作方式。本地APIC被禁止,外部I/O APIC连接到CPU,两条LINT0LINT1分别连接到INTRNMI引脚;

  2. 作为一个标准外部I/O APIC。本地APIC被激活,且所有的外部中断都通过I/O APIC接收。

中断分类

中断可分为同步中断和异步中断:

  1. 同步中断是当指令执行时由CPU控制单元产生,之所有成为同步,是因为只有在一条指令执行完毕后CPU才会发出中断,而不是发生在代码指令执行期间,比如系统调用;

  2. 异步中断指由其他硬件设备依照CPU时钟信号随机产生,即意味着中断能够在指令之间产生,比如键盘中断。

根据Intel官方资料,同步中断成为异常(exception),异步中断被成为中断(interrupt)

中断可分为可屏蔽中断(MaskableInterrupt)和非屏蔽中断(Non Maskable interrupt)。异常分为故障(fault)、陷阱(trap)和终止(abort)

从广义上讲,中断可分为四类:中断、故障、陷阱和终止。

类型

原因

异步/同步

返回行为

中断

来自I/O设备的信号

异步

总是返回到下一条指令

故障

潜在可修复的错误

同步

返回到当前指令

陷阱

有意的异常

同步

总是返回到下一条指令

终止

不可恢复的错误

同步

不会返回

X86体系结构的每个中断都被赋予一个唯一的编号或者向量(8位无符号整数)。非屏蔽中断和异常向量是固定的,而可屏蔽中断向量可以通过中断控制器的编程来改变。

 

         中断描述表(InterruptDescriptor Table)IDT是一个系统表,它和每个中断或异常向量相关联,每个中断在表中存放的是相应的中断或者异常处理的入口地址。内核在允许中断产生前,也就是在系统初始化时,必须把IDT表的初始化地址装载到idtr寄存器中,初始化表中的每一项。

        

         Linux中断向量分布( fromarch/x86/include/asm/irq_vectors.h)

         Linux系统中,每个CPU Core256IDT项,每个项有8个字节。它们是CPU执行的跳转表,当一个中断向量被触发,包括中断、故障、陷阱和终止,CPU根据IDT的地址执行相应的跳转。

         Linux启动时,将设置每个中断向量的内核跳转地址,设置后在整个系统运行期间,不会做改动。下面是IDT项的普通分布表:

向量号

描述

备注

0 … 31

系统陷阱和故障

 

32 … 127

设备中断

 

128

Int 80H系统调用接口

 

129 …INVALIDATE_TLB_VECTOR_START-1

设备中断

INVALIDATE_TLB_VECTOR_START是什么?

INVALIDATE_TLB_VECTOR_START … 255

特殊中断

特殊中断什么意思?

         X86_64系统每个core都有一个IDT表,X86_32系统共享一个IDT表。

 

命令:dsquery http://technet.microsoft.com/en-us/library/cc755655.aspx 工具:oldcmp 使用OldCmp,你可以搜索、禁用或者删除非活动计算机账号。甚至更好的是,你可以创建一个简单的批处理文件来使这个过程自动化。当你用OldCmp来执行一个搜索的时候,你必须指定以下三种可能选项中的至少一种:-report(生成一张列有非活动计算机账号的HTML报告列表),-disable(禁用非活动计算机账号),-delete(删除非活动计算机账号)。如果你运行OldCmp时只加了-report选项,它会搜索你默认中所有计算机密码老化日期大于90天的计算机对象,并且把结果生成为一个HTML报告。如果你的非常大,并且里面有很多计算机账号,这条命令可能得花上一段时间来执行完毕。为了减少OldCmp的运行时间,你可以使用-b选项来指定一个特定的组织单元。OldCmp生成的HTML文件会被放到该工具的运行目录下,除非你用-file选项指定了一个替换位置。如果你包括了-sh选项,OldCmp会在生成HTML文件后自动打开它。如果你想定期地生成HTML报告,你所需要做地全部就是创建一个只包含两行代码的批处理(.bat)文件,如表1所示。其中第一行运行OldCmp,而第二行运行Blat。Blat是一个把文件内容通过电子邮件发送出去的工具,你可以从http://blat.net下载该工具。在第二行中,注意用-to选项设置你自己的电子邮件地址。另外,确认OldCmp和Blat都被放到了你的运行路径下(即在PATH环境变量中定义的路径)。建立了批处理文件之后,你需要创建一个计划任务。确认你为其指定了一个合适的账号和密码,使该脚本有足够的权限在中查询计算机对象。辨别非活动计算机账号很有帮助,但更可能的是,你有时候想清除那些账号。我的一般建议是先禁用那些非活动账号,然后经过一个星期或一个月的观察,再删除那些禁用了的账号。这样能保证确实没有人在使用我们删掉的那些账号。表2包含的批处理文件是用来删除禁用的计算机账号,以及禁用新发现的非活动计算机账号的。这个批处理文件有两段命令(注意不要交换次序)。第一段用OldCmp删除禁用了的计算机账号,并且创建deleted_comps.html报告,接着用Blat把该报告发送到XXX@XXX.com。第二段用OldCmp禁用所有计算机密码旧于180天的计算机账号,并且创建disabled_comps.html报告,接着用Blat发送该报告。在写OldCmp的时候,Joe考虑到人们可能会意外地删除或禁用数以千计的计算机账号,所以他加了一些预防措施,包括你所见到的在每个命令集中都有的-safety和-forreal选项。-safety选项用来限制脚本所能删除或者禁用账号数量。默认情况下,OldCmp不会删除或禁用超过10个账号。若把-safety选项值设为100,则OldCmp最多可以删除100个账号。-forreal选项用来真正删除或者禁用账号。如果不用-forreal选项,OldCmp只会报告它要删除或禁用账号,而不会真正地删除或者禁用它们。在使用表2中的批处理文件之前,你需要自定义在两行Blat命令中的电子邮件地址。此外切记,为了测试,你应该先去掉两行OldCmp命令中的-forreal选项,然后运行批处理文件来确定OldCmp将要删除或者禁用账号无误。表1:建立非活动计算机账号报告的批处理文件oldcmp -report -file c:\inactive.htmlblat c:\inactive.html -to XXX@XXX.com -html表2:删除被禁用的计算机账号禁用新发现的非活动计算机账号的批处理文件oldcmp -delete -onlydisabled -safety 100 -forreal -append -file c:\deleted_comps.htmlblat c:\deleted_comps.html -to XXX@XXX.com -htmloldcmp -disable -age 180 -safety 100 -forreal -append -file c:\disabled_comps.htmlblat c:\disabled_comps.html -to XXX@XXX.com -html
它能够根据你设置的条件过滤用户帐户或者计算机账户,然后你可以设置如何处置这些过期账户,是删除、移动、还是锁定 您需要在命令行环境下执行它,查询命令行的方式是 oldcmp /? 您可以参考下面的这篇文章,上面有详细的图文解说如何使用oldcmp清除旧的计算机帐户: 下面我举一个例子来说明使用OldCmp来清除中长时间不使用的计算机帐户。 将工具OldCmp.exe 复制 到C盘根目录,打开命令行窗口。接下来我要把AD中超过60天没有更新计算机账户密码的计算机账户挑选出来并禁用,等过一段时间,若没有用户报告出现问题,就可以统统从中清除了。 注:默认情况下,计算机账户密码每30天自动更新一次。那也就是说我可以认为60天没更新的计算机已经是无效的了。该工具默认是90天,当然您可以根据需要自己设定。 在命令行窗口定位到C:\> 然后运行下面的命令: oldcmp –age 60 –disable –unsafe –forreal 注释:运行了命令后在工具所在的目录内会出现一份html报告,内容非常详尽。下面介绍一下参数含义您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404552/ -age 60 :超过60天未更新计算机账户密码的的计算机账户 -disable :禁用计算机账户 -unsafe :比如你有100个符合条件的对象会被执行,但默认情况下只对前10个做了操作,加了这个参数后就是对所有符合条件的对象操作,这么做的目的只有一个,安全。 -forreal :加了这个参数,所有的操作才真正的执行。默认情况下你的操作都只是出现一份报告,告诉你操作的结果,让你可以有个了解。该工具的使用是需要非常小心的,所以该工具作者认为有必要多一个参数来保护。 命令运行后,刷新一下OU,你就发现符合条件的计算机账户都被禁用了。过了一段时间一切都运作正常,那么我就来删除当初禁用的这些电脑。 只需要运行下面的命令: oldcmp -onlydisabled -delete -unsafe -forreal 参数Onlydisabled就是仅仅对被禁用的计算机账户操作。您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404552/ 另外您还可以借助于脚本去查询并删除过期的计算机帐户。
08-30
使用OldCmp,你可以搜索、禁用或者删除非活动计算机账号。甚至更好的是,你可以创建一个简单的批处理文件来使这个过程自动化。当你用OldCmp来执行一个搜索的时候,你必须指定以下三种可能选项中的至少一种:-report(生成一张列有非活动计算机账号的HTML报告列表),-disable(禁用非活动计算机账号),-delete(删除非活动计算机账号)。如果你运行OldCmp时只加了-report选项,它会搜索你默认中所有计算机密码老化日期大于90天的计算机对象,并且把结果生成为一个HTML报告。如果你的非常大,并且里面有很多计算机账号,这条命令可能得花上一段时间来执行完毕。为了减少OldCmp的运行时间,你可以使用-b选项来指定一个特定的组织单元。OldCmp生成的HTML文件会被放到该工具的运行目录下,除非你用-file选项指定了一个替换位置。如果你包括了-sh选项,OldCmp会在生成HTML文件后自动打开它。如果你想定期地生成HTML报告,你所需要做地全部就是创建一个只包含两行代码的批处理(.bat)文件,如表1所示。其中第一行运行OldCmp,而第二行运行Blat。Blat是一个把文件内容通过电子邮件发送出去的工具,你可以从http://blat.net下载该工具。在第二行中,注意用-to选项设置你自己的电子邮件地址。另外,确认OldCmp和Blat都被放到了你的运行路径下(即在PATH环境变量中定义的路径)。建立了批处理文件之后,你需要创建一个计划任务。确认你为其指定了一个合适的账号和密码,使该脚本有足够的权限在中查询计算机对象。辨别非活动计算机账号很有帮助,但更可能的是,你有时候想清除那些账号。我的一般建议是先禁用那些非活动账号,然后经过一个星期或一个月的观察,再删除那些禁用了的账号。这样能保证确实没有人在使用我们删掉的那些账号。表2包含的批处理文件是用来删除禁用的计算机账号,以及禁用新发现的非活动计算机账号的。这个批处理文件有两段命令(注意不要交换次序)。第一段用OldCmp删除禁用了的计算机账号,并且创建deleted_comps.html报告,接着用Blat把该报告发送到XXX@XXX.com。第二段用OldCmp禁用所有计算机密码旧于180天的计算机账号,并且创建disabled_comps.html报告,接着用Blat发送该报告。在写OldCmp的时候,Joe考虑到人们可能会意外地删除或禁用数以千计的计算机账号,所以他加了一些预防措施,包括你所见到的在每个命令集中都有的-safety和-forreal选项。-safety选项用来限制脚本所能删除或者禁用账号数量。默认情况下,OldCmp不会删除或禁用超过10个账号。若把-safety选项值设为100,则OldCmp最多可以删除100个账号。-forreal选项用来真正删除或者禁用账号。如果不用-forreal选项,OldCmp只会报告它要删除或禁用账号,而不会真正地删除或者禁用它们。在使用表2中的批处理文件之前,你需要自定义在两行Blat命令中的电子邮件地址。此外切记,为了测试,你应该先去掉两行OldCmp命令中的-forreal选项,然后运行批处理文件来确定OldCmp将要删除或者禁用账号无误。表1:建立非活动计算机账号报告的批处理文件oldcmp -report -file c:\inactive.htmlblat c:\inactive.html -to XXX@XXX.com -html表2:删除被禁用的计算机账号禁用新发现的非活动计算机账号的批处理文件oldcmp -delete -onlydisabled -safety 100 -forreal -append -file c:\deleted_comps.htmlblat c:\deleted_comps.html -to XXX@XXX.com -htmloldcmp -disable -age 180 -safety 100 -forreal -append -file c:\disabled_comps.htmlblat c:\disabled_comps.html -to XXX@XXX.com -html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值