会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 6. 发明申请
    • High Performance, Lock-Free Virtual Storage Manager
    • 高性能,无锁的虚拟存储管理器
    • US20090100243A1
    • 2009-04-16
    • US11872821
    • 2007-10-16
    • Donald F. AultPeter J. RelsonJames H. MulderElpida TzortzatosPaula M. Spens
    • Donald F. AultPeter J. RelsonJames H. MulderElpida TzortzatosPaula M. Spens
    • G06F12/02
    • G06F12/023
    • A virtual storage technique is provided to manage a cell pool or a set of cell pools which can be used to satisfy variable-size storage requests. The algorithm uses no locks and relies on an atomic compare-and-swap instruction to serialize updates to the fields that can be simultaneously requested by multiple threads or processes. A free chain is used to manage cells which have already been obtained and freed, while there is an active extent that is used to hand out cells which have not previously been obtained. The algorithm is based on all cell pool extents being the same size, which allows the control information for the extent to be easily located on the extent boundary (e.g. at a 1 MB boundary). Control information for each cell is stored independently of the cell storage in a control array that resides at the head of the extent, along with other control information. This avoids cell overrun from damaging the cell pool control information. The result is a high performance storage manager with good serviceability characteristics.
    • 提供虚拟存储技术来管理可用于满足可变大小的存储请求的单元池或一组单元池。 该算法不使用锁,并且依赖于原子比较和交换指令来将更新序列化到可由多个线程或进程同时请求的字段。 使用自由链来管理已经获得和释放的细胞,而存在用于递送以前未获得的细胞的活性程度。 该算法基于所有的相同大小的单元池区段,这允许控制信息的范围容易地位于范围边界(例如,1MB边界)处。 每个单元的控制信息与其他控制信息一起存储在驻留在扩展头的控制阵列中的单元存储单元。 这避免了细胞溢出损坏细胞池控制信息。 结果是一个高性能的存储管理器具有良好的可维护性。
    • 7. 发明授权
    • Method and apparatus for serializing a message queue in a multiprocessing environment
    • 在多处理环境中串行化消息队列的方法和装置
    • US06976260B1
    • 2005-12-13
    • US09404903
    • 1999-09-24
    • Donald F. AultDavid R. CardallDonald W. Schmidt
    • Donald F. AultDavid R. CardallDonald W. Schmidt
    • G06F3/00G06F9/46
    • G06F9/546G06F9/3004
    • A single atomic instruction is used to change up to four disjoint areas in memory concurrently in an extended compare and swap operation, replacing traditional locks for serialization and providing recovery for all queue manipulations. Use count-based responsibility passing is employed so that any number of tasks can read the various message queue chains, concurrent with queue updates being made. A summary queue update sequence number is maintained to provide concurrent chain update detection, so that any number of tasks can add elements to the end, or remove elements from the middle (i.e. any where in the chain) concurrently. Concurrent footprinting is used with chain manipulation, so that all (or none) of the chaining indicators and a footprint are set with a single, non-interruptible instruction, making it possible for recovery to always take the correct action. One such use of concurrent footprinting is the concurrent footprinting of use count changes, while another is the transfer of ownership of message queue control blocks. In a preferred embodiment on an IBM S/390 platform, the Perform Locked Operation (PLO) instruction is used to perform the extended compare and swap operations.
    • 单个原子指令用于在扩展的比较和交换操作中同时更改内存中的四个不相交的区域,替代传统的锁来进行序列化,并为所有队列操作提供恢复。 使用基于计数的责任传递,以便任意数量的任务可以读取各种消息队列链,同时进行队列更新。 维护汇总队列更新序列号以提供并发链更新检测,以便任意数量的任务可以向终端添加元素,或从中间(即链中的任何位置)同时移除元素。 并发足迹用于链接操作,因此链接指示器和占用空间的全部(或无)以及单独的不可中断指令进行设置,从而使恢复始终可以采取正确的操作。 并发占用空间的一个这样的使用是使用计数更改的并发占用空间,而另一个是消息队列控制块的所有权的传输。 在IBM S / 390平台的优选实施例中,执行锁定操作(PLO)指令用于执行扩展比较和交换操作。
    • 8. 发明授权
    • Method and apparatus for performing a semaphore operation
    • 用于执行信号量操作的方法和装置
    • US06237019B1
    • 2001-05-22
    • US09040722
    • 1998-03-18
    • Donald F. AultJohn M. Forsythe
    • Donald F. AultJohn M. Forsythe
    • G06F900
    • G06F9/52G06F9/30087
    • A semaphore for controlling access to a shared resource in an information handling system is implemented using an atomic operation that compares an operand with a comparison value and, if the operand is equal to the comparison value, replaces the compared operand and up to three additional operands with replacement values. The semaphore has a first semaphore field containing a value and a sequence count and a second semaphore field containing a pointer to a queue for the semaphore. The queue has zero or more entries corresponding to waiters for the semaphore, each entry with a next entry having a pointer to that next entry. To implement the semaphore, a previous value of the first semaphore field is saved as a comparison value. A first replacement value containing an incremented sequence count is generated for the first semaphore field as a first operand in accordance with the specified operation. A second replacement value for the second semaphore field and a third replacement value for one of the queue entries are generated as second and third operands if the queue is being modified. The current value of the first semaphore field is thereafter compared with the comparison value including the sequence count to see if the current value matches the comparison value. If it does, then, atomically with the comparing step, the first operand is replaced with the first replacement value and, if the queue is being modified, one or both of the second and third operands are replaced with their corresponding replacement values. If the current value of the first semaphore field does not match the comparison value, the semaphore operation is retried, using a newly saved value of the semaphore field as a comparison value.
    • 使用将操作数与比较值进行比较的原子操作来实现用于控制对信息处理系统中的共享资源的访问的信号量,并且如果操作数等于比较值,则替换比较操作数和最多三个附加操作数 具有替换值。 信号量具有包含值和序列计数的第一信号量字段和包含指向信号量队列的指针的第二信号量字段。 队列具有对应于信号量的等待者的零个或多个条目,每个条目具有下一条目,该条目具有指向该下一条目的指针。 要实现信号量,第一个信号量字段的先前值将保存为比较值。 根据指定的操作,将第一个信号量字段作为第一个操作数生成包含递增序列计数的第一个替换值。 如果队列被修改,则第二信号量字段的第二替换值和其中一个队列条目的第三替换值被生成为第二和第三操作数。 此后,将第一信号量字段的当前值与包括序列计数的比较值进行比较,以查看当前值是否与比较值匹配。 如果是,则原子地与比较步骤相反,第一个操作数被替换为第一个替换值,如果队列被修改,第二个和第三个操作数中的一个或两个都被替换为相应的替换值。 如果第一个信号量字段的当前值与比较值不匹配,则会使用信息量字段的新保存值作为比较值重试信号量操作。
    • 9. 发明授权
    • Cross address space thread control in a multithreaded environment
    • 在多线程环境中交叉地址空间线程控制
    • US5632032A
    • 1997-05-20
    • US192929
    • 1994-02-07
    • Donald F. AultErnest S. BenderJon K. FranksSteven Walkowiak
    • Donald F. AultErnest S. BenderJon K. FranksSteven Walkowiak
    • G06F9/46G06F9/48G06F11/28G06F11/36G06F9/44G06F11/00
    • G06F11/3664
    • A method of controlling the execution of the threads of a first application such as a user application from a second application such as a debugger application running in a different address space. After initializing trace mode for the user application, the debugger waits for an event to occur on one of the threads of the user application. Upon the occurrence of an event on one of the user application threads, an event handler obtains control of the thread execution. The event handler suspends execution of the remaining threads in the application, posts the debugger and then suspends its own execution. When the debugger application has completed its debugging operations, it posts the event handler, which resumes execution of the suspended threads and returns control to the thread on which the event occurred. If a subsequent event occurs on one thread while a previous event on another thread is being processed, the event handler for the subsequent event places it in a deferred event queue for deferred processing. Events consisting of breakpoints are redriven rather than being placed on the deferred queue. The debugger application may hold selected threads in a suspended state following resumption of the remaining threads by setting hold flags associated with those threads.
    • 一种控制诸如用户应用程序的第一应用程序的线程从诸如在不同地址空间中运行的调试器应用程序的第二应用程序执行的方法。 在为用户应用程序初始化跟踪模式之后,调试器等待在用户应用程序的一个线程上发生事件。 在一个用户应用程序线程上发生事件时,事件处理程序获得线程执行的控制。 事件处理程序暂停执行应用程序中的其余线程,发布调试器,然后挂起自己的执行。 当调试器应用程序完成其调试操作时,它会发布事件处理程序,该处理程序将恢复挂起的线程的执行,并将控件返回给发生事件的线程。 如果在一个线程上发生后续事件,而另一个线程上的先前事件正在处理中,则后续事件的事件处理程序会将其放入延迟事件队列中以进行延迟处理。 由断点组成的事件被重新划分,而不是放在延期队列中。 通过设置与这些线程相关联的保持标志,调试器应用程序可以在恢复剩余线程之后将所选线程保持在暂停状态。
    • 10. 发明授权
    • Method, system and computer program product for testing computer programs
    • 方法,系统和计算机程序产品用于测试计算机程序
    • US07546585B2
    • 2009-06-09
    • US11041630
    • 2005-01-24
    • Donald F. Ault
    • Donald F. Ault
    • G06F9/44G06F11/00
    • G06F11/3688
    • A method for testing computer programs including defining one or more selected force stop points for a target computer program. For each of the selected force stop points the target computer program is executed in a force stop mode and executed again in a non-force stop mode. Input to execution in the force stop mode includes the selected force stop point. The target program is terminated as a result of execution in the force stop mode when the selected force stop point has been reached. Executing in the force stop mode results in a residual environment. The target computer program is executed in a non-force stop mode in the residual environment. Output from executing in a non-force stop mode includes test result data. For each of the selected force stop points it is determined if the test result data is consistent with expected test results.
    • 一种用于测试计算机程序的方法,包括为目标计算机程序定义一个或多个所选的力停止点。 对于每个所选择的停止点,目标计算机程序以强制停止模式执行并且以非强制停止模式再次执行。 在强制停止模式下执行的输入包括所选的力停止点。 当达到所选择的力停止点时,作为执行强制停止模式的结果,终止目标程序。 在强制停止模式下执行会导致残留环境。 目标计算机程序在残留环境中以非强制停止模式执行。 在非强制停止模式下执行的输出包括测试结果数据。 对于每个选定的力停止点,确定测试结果数据是否与预期的测试结果一致。