摘要:分析了影响同步电动机矢m:控制电流控制环动态特性的主要因索.指出同步电动机反电动势是 其中最重要的{一扰因索针对通常采用的F I(比例一积分)电流调 y器因下作频带的限制无法在较高转速时 抑制反电动势的影响.提出了前馈补偿和变电流环增益的设计方法.少}应用于基于数-f_信写处理器的矢m:控 制系统给出了系统结构及软硬件设计方案实验结果表明.该系统硬件简的一控制精l夏高.动态}h I能良好(.caj)
上传时间: 2016-05-22
上传用户:奇奇奔奔
Ex4-22 单射函数问题 « 问题描述: 设函数f将点集S = {0,1, , n -1}映射为f (S) = { f (i) | iÎ S} Í S 。单射函数问题要 从S中选取最大子集X Í S 使f (X )是单射函数。 例如,当n=7, f (S) = {1,0,0,2,2,3,6} Í S 时, X = {0,1,6} Í S 是所求的最大子集。 « 编程任务: 对于给定的点集S = {0,1, , n -1}上函数f,试用抽象数据类型队列,设计一个O(n)时 间算法,计算f的最大单射子集。 « 数据输入: 由文件input.txt 提供输入数据。文件的第1 行有1 个正整数n,表示给定的点集 S = {0,1, , n -1}。第2 行是f (i)的值,0 £ i < n。 « 结果输出: 程序运行结束时,将计算出的f的最大单射子集的大小输出到output.txt中。 输入文件示例 输出文件示例 input.txt 7 1 0 0 2 2 3 6 output.txt 3
上传时间: 2016-05-28
上传用户:tyler
已知斐波那契数列的定义:F(1)=1,F(2)=1,F(i)= F(i-1)+ F(i-2) (i>=3),编写求该数列前n项的子程序 实现了输入一个数,然后将计算的结果保存在存储器中
上传时间: 2013-12-21
上传用户:风之骄子
(一) 求a~b 之间各个数的约数个数之和。(其中包括a和b在内) ans = sigma(f(i)) , (a <= i <= b) , 其中f(i)表示i的约数的个数
上传时间: 2016-12-31
上传用户:daoxiang126
本附录介绍一些新的A P I函数,有了这些函数,便可在自己的计算机上对I P协议统计情况 进行查询和管理。它们有助于获得下面的能力: ■ I p c o n f i g . e x e(或适用于微软Windows 95的Wi n i p c f g . e x e):显示I P配置信息,允许释放 和更新D H C P分配的I P地址。 ■ N e t s t a t . e x e:显示T C P连接表、U D P监听者表以及I P协议统计情况。 ■ R o u t e . e x e:显示并处理网络路由表。 ■ A r p . e x e:显示并修改供“地址解析协议”(A R P)使用的I P到物理地址翻译表。
标签: 函数
上传时间: 2014-01-12
上传用户:569342831
九.输入/输出保护为了支持多任务,80386不仅要有效地实现任务隔离,而且还要有效地控制各任务的输入/输出,避免输入/输出冲突。本文将介绍输入输出保护。 这里下载本文源代码。 <一>输入/输出保护80386采用I/O特权级IPOL和I/O许可位图的方法来控制输入/输出,实现输入/输出保护。 1.I/O敏感指令输入输出特权级(I/O Privilege Level)规定了可以执行所有与I/O相关的指令和访问I/O空间中所有地址的最外层特权级。IOPL的值在如下图所示的标志寄存器中。 标 志寄存器 BIT31—BIT18 BIT17 BIT16 BIT15 BIT14 BIT13—BIT12 BIT11 BIT10 BIT9 BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 00000000000000 VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF I/O许可位图规定了I/O空间中的哪些地址可以由在任何特权级执行的程序所访问。I/O许可位图在任务状态段TSS中。 I/O敏感指令 指令 功能 保护方式下的执行条件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 设置EFLAGS中的IF位 CPL<=IOPL IN 从I/O地址读出数据 CPL<=IOPL或I/O位图许可 INS 从I/O地址读出字符串 CPL<=IOPL或I/O位图许可 OUT 向I/O地址写数据 CPL<=IOPL或I/O位图许可 OUTS 向I/O地址写字符串 CPL<=IOPL或I/O位图许可 上表所列指令称为I/O敏感指令,由于这些指令与I/O有关,并且只有在满足所列条件时才可以执行,所以把它们称为I/O敏感指令。从表中可见,当前特权级不在I/O特权级外层时,可以正常执行所列的全部I/O敏感指令;当特权级在I/O特权级外层时,执行CLI和STI指令将引起通用保护异常,而其它四条指令是否能够被执行要根据访问的I/O地址及I/O许可位图情况而定(在下面论述),如果条件不满足而执行,那么将引起出错码为0的通用保护异常。 由于每个任务使用各自的EFLAGS值和拥有自己的TSS,所以每个任务可以有不同的IOPL,并且可以定义不同的I/O许可位图。注意,这些I/O敏感指令在实模式下总是可执行的。 2.I/O许可位图如果只用IOPL限制I/O指令的执行是很不方便的,不能满足实际要求需要。因为这样做会使得在特权级3执行的应用程序要么可访问所有I/O地址,要么不可访问所有I/O地址。实际需要与此刚好相反,只允许任务甲的应用程序访问部分I/O地址,只允许任务乙的应用程序访问另一部分I/O地址,以避免任务甲和任务乙在访问I/O地址时发生冲突,从而避免任务甲和任务乙使用使用独享设备时发生冲突。 因此,在IOPL的基础上又采用了I/O许可位图。I/O许可位图由二进制位串组成。位串中的每一位依次对应一个I/O地址,位串的第0位对应I/O地址0,位串的第n位对应I/O地址n。如果位串中的第位为0,那么对应的I/O地址m可以由在任何特权级执行的程序访问;否则对应的I/O地址m只能由在IOPL特权级或更内层特权级执行的程序访问。如果在I/O外层特权级执行的程序访问位串中位值为1的位所对应的I/O地址,那么将引起通用保护异常。 I/O地址空间按字节进行编址。一条I/O指令最多可涉及四个I/O地址。在需要根据I/O位图决定是否可访问I/O地址的情况下,当一条I/O指令涉及多个I/O地址时,只有这多个I/O地址所对应的I/O许可位图中的位都为0时,该I/O指令才能被正常执行,如果对应位中任一位为1,就会引起通用保护异常。 80386支持的I/O地址空间大小是64K,所以构成I/O许可位图的二进制位串最大长度是64K个位,即位图的有效部分最大为8K字节。一个任务实际需要使用的I/O许可位图大小通常要远小于这个数目。 当前任务使用的I/O许可位图存储在当前任务TSS中低端的64K字节内。I/O许可位图总以字节为单位存储,所以位串所含的位数总被认为是8的倍数。从前文中所述的TSS格式可见,TSS内偏移66H的字确定I/O许可位图的开始偏移。由于I/O许可位图最长可达8K字节,所以开始偏移应小于56K,但必须大于等于104,因为TSS中前104字节为TSS的固定格式,用于保存任务的状态。 1.I/O访问许可检查细节保护模式下处理器在执行I/O指令时进行许可检查的细节如下所示。 (1)若CPL<=IOPL,则直接转步骤(8);(2)取得I/O位图开始偏移;(3)计算I/O地址对应位所在字节在I/O许可位图内的偏移;(4)计算位偏移以形成屏蔽码值,即计算I/O地址对应位在字节中的第几位;(5)把字节偏移加上位图开始偏移,再加1,所得值与TSS界限比较,若越界,则产生出错码为0的通用保护故障;(6)若不越界,则从位图中读对应字节及下一个字节;(7)把读出的两个字节与屏蔽码进行与运算,若结果不为0表示检查未通过,则产生出错码为0的通用保护故障;(8)进行I/O访问。设某一任务的TSS段如下: TSSSEG SEGMENT PARA USE16 TSS <> ;TSS低端固定格式部分 DB 8 DUP(0) ;对应I/O端口00H—3FH DB 10000000B ;对应I/O端口40H—47H DB 01100000B ;对用I/O端口48H—4FH DB 8182 DUP(0ffH) ;对应I/O端口50H—0FFFFH DB 0FFH ;位图结束字节TSSLen = $TSSSEG ENDS 再假设IOPL=1,CPL=3。那么如下I/O指令有些能正常执行,有些会引起通用保护异常: in al,21h ;(1)正常执行 in al,47h ;(2)引起异常 out 20h,al ;(3)正常实行 out 4eh,al ;(4)引起异常 in al,20h ;(5)正常执行 out 20h,eax ;(6)正常执行 out 4ch,ax ;(7)引起异常 in ax,46h ;(8)引起异常 in eax,42h ;(9)正常执行 由上述I/O许可检查的细节可见,不论是否必要,当进行许可位检查时,80386总是从I/O许可位图中读取两个字节。目的是为了尽快地执行I/O许可检查。一方面,常常要读取I/O许可位图的两个字节。例如,上面的第(8)条指令要对I/O位图中的两个位进行检查,其低位是某个字节的最高位,高位是下一个字节的最低位。可见即使只要检查两个位,也可能需要读取两个字节。另一方面,最多检查四个连续的位,即最多也只需读取两个字节。所以每次要读取两个字节。这也是在判别是否越界时再加1的原因。为此,为了避免在读取I/O许可位图的最高字节时产生越界,必须在I/O许可位图的最后填加一个全1的字节,即0FFH。此全1的字节应填加在最后一个位图字节之后,TSS界限范围之前,即让填加的全1字节在TSS界限之内。 I/O许可位图开始偏移加8K所得的值与TSS界限值二者中较小的值决定I/O许可位图的末端。当TSS的界限大于I/O许可位图开始偏移加8K时,I/O许可位图的有效部分就有8K字节,I/O许可检查全部根据全部根据该位图进行。当TSS的界限不大于I/O许可位图开始偏移加8K时,I/O许可位图有效部分就不到8K字节,于是对较小I/O地址访问的许可检查根据位图进行,而对较大I/O地址访问的许可检查总被认为不可访问而引起通用保护故障。因为这时会发生字节越界而引起通用保护异常,所以在这种情况下,可认为不足的I/O许可位图的高端部分全为1。利用这个特点,可大大节约TSS中I/O许可位图占用的存储单元,也就大大减小了TSS段的长度。 <二>重要标志保护输入输出的保护与存储在标志寄存器EFLAGS中的IOPL密切相关,显然不能允许随便地改变IOPL,否则就不能有效地实现输入输出保护。类似地,对EFLAGS中的IF位也必须加以保护,否则CLI和STI作为敏感指令对待是无意义的。此外,EFLAGS中的VM位决定着处理器是否按虚拟8086方式工作。 80386对EFLAGS中的这三个字段的处理比较特殊,只有在较高特权级执行的程序才能执行IRET、POPF、CLI和STI等指令改变它们。下表列出了不同特权级下对这三个字段的处理情况。 不同特权级对标志寄存器特殊字段的处理 特权级 VM标志字段 IOPL标志字段 IF标志字段 CPL=0 可变(初POPF指令外) 可变 可变 0 不变 不变 可变 CPL>IOPL 不变 不变 不变 从表中可见,只有在特权级0执行的程序才可以修改IOPL位及VM位;只能由相对于IOPL同级或更内层特权级执行的程序才可以修改IF位。与CLI和STI指令不同,在特权级不满足上述条件的情况下,当执行POPF指令和IRET指令时,如果试图修改这些字段中的任何一个字段,并不引起异常,但试图要修改的字段也未被修改,也不给出任何特别的信息。此外,指令POPF总不能改变VM位,而PUSHF指令所压入的标志中的VM位总为0。 <三>演示输入输出保护的实例(实例九)下面给出一个用于演示输入输出保护的实例。演示内容包括:I/O许可位图的作用、I/O敏感指令引起的异常和特权指令引起的异常;使用段间调用指令CALL通过任务门调用任务,实现任务嵌套。 1.演示步骤实例演示的内容比较丰富,具体演示步骤如下:(1)在实模式下做必要准备后,切换到保护模式;(2)进入保护模式的临时代码段后,把演示任务的TSS段描述符装入TR,并设置演示任务的堆栈;(3)进入演示代码段,演示代码段的特权级是0;(4)通过任务门调用测试任务1。测试任务1能够顺利进行;(5)通过任务门调用测试任务2。测试任务2演示由于违反I/O许可位图规定而导致通用保护异常;(6)通过任务门调用测试任务3。测试任务3演示I/O敏感指令如何引起通用保护异常;(7)通过任务门调用测试任务4。测试任务4演示特权指令如何引起通用保护异常;(8)从演示代码转临时代码,准备返回实模式;(9)返回实模式,并作结束处理。
上传时间: 2013-12-11
上传用户:nunnzhy
当许多编程人员从事这项工作但又不使用源代码管理工具时,源代码管理几乎不可能进行。Visual SourceSafe是Visual Basic的企业版配备的一个工具,不过这个工具目的是为了保留一个内部应用版本,不向公众发布(应当说明的是,M i c r o s o f t并没有开发Visual SourceSafe,它是M i c r o s o f t公司买来的) 。虽然Visual SourceSafe有帮助文本可供参考,但该程序的一般运行情况和在生产环境中安装 Visual SourceSafe的进程都没有详细的文字说明。另外,Visual SourceSafe像大多数M i c r o s o f t应用程序那样经过了很好的修饰,它包含的许多功能特征和物理特征都不符合 Microsoft Wi n d o w s应用程序的标准。例如,Visual SourceSafe的三个组件之一(Visual SourceSafe Administrator)甚至连F i l e菜单都没有。另外,许多程序的菜单项不是放在最合适的菜单上。在程序开发环境中实现Visual SourceSafe时存在的复杂性,加上它的非标准化外观和文档资料的不充分,使得许多人无法实现和使用 Visual SourceSafe。许多人甚至没有试用 Vi s u a l S o u r c e S a f e的勇气。我知道许多高水平技术人员无法启动Visual SourceSafe并使之运行,其中有一位是管理控制系统项目师。尽管如此,Visual SourceSafe仍然不失为一个很好的工具,如果你花点时间将它安装在你的小组工作环境中,你一定会为此而感到非常高兴。在本章中我并不是为你提供一些指导原则来帮助你创建更好的代码,我的目的是告诉你如何使用工具来大幅度减少管理大型项目和开发小组所需的资源量,这个工具能够很容易处理在没有某种集成式解决方案情况下几乎无法处理的各种问题。
上传时间: 2013-10-24
上传用户:lgd57115700
结合单片机和M a t l a b 两者的优点,基于事件驱动的中断通信机制,提出一种Matlab 环境下PC 机与 单片机实时串行通信及数据处理的方法;完成单片机数据采集系统与PC 机的RS-232/RS-485 串行通 信及其通信数据的分析处理、文件存储、F I R 滤波及图形显示;简化系统开发流程,提高开发效率。 该方法已成功应用于一个P I C 1 6 F 8 7 6 单片机应用系统实例之中
标签: 单片机
上传时间: 2014-01-19
上传用户:yzy6007
基于J2EE的物流信息系统的设计与实现 介绍了J2EE 体系结构、Mv c模式等相关概念和技术,并重点探讨了 目 前比 较受欢迎的三种开源框架( s t r ut s框架、S Pr i n g框架和H i b e m a t e 框架)。 分析了他们的体系结构、 特点和优缺点。 根据J ZE E的分层结构,结合We b应用 的特点, 将三种框架进行组合设计, 即表现层用S t r ut s框架、 业务逻辑层用S P ri n g 框架、持久层用比b ema t e 框架,从而来构建物流信息系统。这种整合框架使各 层相对独立, 减少各层之间的祸合程度,同时加快了系统的开发过程,增强了系 统的可维护性和可扩展性,初步达到了分布式物流信息系统的设计目标。 经过以上分析,结合物流系统的业务需求,进行了相关的实现。最后,系统 运用先进的A ja x技术来增强Ui层与服务器的异步通信能力, 使用户体验到动态 且响应灵 敏的桌 面级w e b应用程序。 通过江联公司的试运行结果,系统达到了 渝眯。 并 且 对 江 联 公 司 提 出 了 基 于 R F I D 的 解 决 方 案 的 实 施 计 划 。
上传时间: 2016-06-01
上传用户:ynsnjs
动态规划的方程大家都知道,就是 f[i,j]=min{f[i-1,j-1],f[i-1,j],f[i,j-1],f[i,j+1]}+a[i,j] 但是很多人会怀疑这道题的后效性而放弃动规做法。 本来我还想做Dijkstra,后来变了没二十行pascal就告诉我数组越界了……(dist:array[1..1000*1001 div 2]...) 无奈之余看了xj_kidb1的题解,刚开始还觉得有问题,后来豁然开朗…… 反复动规。上山容易下山难,我们可以从上往下走,最后输出f[n][1]。 xj_kidb1的一个技巧很重要,每次令f[i][0]=f[i][i],f[i][i+1]=f[i][1](xj_kidb1的题解还写错了)
上传时间: 2014-07-16
上传用户:libinxny