Patent Document

This application claims the benefit of DE 10 2005 045 904.8, filed Sep. 26, 2005, which is hereby incorporated by reference. 
     BACKGROUND 
     1. Field 
     The present embodiments relate to a data processor and to a method, both of which allow controlling the performance of the data processor. 
     2. Related Art 
     Data processing equipment (data processor), such as conventional personal computers (PC) or workstations have become more powerful. Nevertheless, application programs, hereinafter also simply called applications, require high performance, so that limitations in terms of computer hardware must still be tolerated. Utilization of the CPU (Central Processing Unit or microprocessor) in computation-intensive applications has limits, for example, the CPU is completely utilized. Utilization of the memory (i.e. RAM) is often completely utilized, and thus necessitates shifting memory to other memory devices, for example, hard drives. 
     Computation-intensive applications may be, for example, real-time simulations, image processing, or 3D simulations. Medical devices in radiology, for example, X-ray, CT, MR, PET, or ultrasound systems, perform computation-intensive applications. Control of this equipment is usually divided into two main components. One component makes the radiological scans, and another component controls the imaging equipment. Controlling the equipment involves various settings and making the actual images (scans) of a patient. 
     An essential task of imaging equipment in radiology is making a scan and then the ensuing image construction. Image construction includes the reconstruction of image data from the raw data obtained during the scan. Generally, image construction by reconstruction of image data has the greatest demands, for example, in terms of computer performance. Image construction often completely utilizes both the CPU and RAM. Full-capacity (complete) utilization of the CPU or RAM impairs the function of other applications running on the computer. 
     Phase delays and prolonged computation times for applications can occur during full-capacity utilization, for example, as in conventional PCs. Full-capacity utilization also affects controlling the scanning of a patient by the imaging equipment, for example, causes unintentionally lengthened exposure times. This leads to an unnecessarily increased radiation exposure for the patient. Repeat exposures are only desired, for example, to achieve the required scanning quality desired. Repeat exposure lead to additional loads on the patient and additional work for the medical personnel. 
     Comparable problems with more or less grave consequences may occur from overloading the particular computer and in other computation-intensive applications. 
     SUMMARY 
     The present embodiments relate to a data processor and method of controlling a data processor. The present embodiments may make it possible to control the power (performance) of a computer in such a way that obviates critical or threatening situations. 
     In one embodiment, a method for execution on a data processor on which at least two application programs are running, includes the following steps: A) monitoring a performance flag; B) outputting a stop command as a function of ascertaining a performance flag; and C) terminating at least one of the application programs as a function of outputting a stop command. 
     In another embodiment, a data processor includes a memory including at least two application programs that can be executed on the data processor, a performance module that is operable to monitor a performance flag and output a stop command as a function of the presence of the performance flag. The performance module generates a command for terminating at least one of the application programs as a function of the outputting of a stop command. In one embodiment, the performance flag can be in the form of a 0/1 piece of information, for example, by a single bit. Alternatively, the performance flag may also include additional information with respect to the application that has set the performance flag. Additional information may, for example, be provided by the position of the performance flag within a data word or data frame, or by adding a code that identifies the application in question. 
     Terminating one or more application programs includes, for example, forwarding a corresponding command to the application program, which “properly” shuts down the application, or by executing a kill command at the operating system level, which causes the immediate termination of the program, for example, in the worst case at the cost of data losses. Other ways of terminating applications are readily conceivable. 
     As broadly described herein, for example, the term “performance module” is an application program running at the operating system level or a higher level. For example, the performance module may also be a component of system management tools (SMS) or a component of an SMS, such as a managed node package (MNP). For example, the performance module may be implemented in a hardware component capable of assuring the capability of the module to function regardless of the CPU or memory utilization. The performance module is not limited to implementation into a hardware component, for example, other ways of implementing the performance module are conceivable. 
     In one exemplary embodiment, when forwarding a simple piece of information in the form of the performance flag, one or more application programs may be terminated intentionally in order to prevent a full-capacity utilization of the CPU or memory. For example, if a full-capacity utilization situation is detected, less-important applications are intentionally terminated in order to make the computer performance available for more-important, critical applications. For example, in medical equipment for radiology, the application for image construction by reconstruction of raw data is terminated to keep the computer power available for controlling the patient scan and thus preventing mistakes in the scan, such as excessive radiation doses. 
     In one exemplary embodiment, the performance flag is set as a function of the computer utilization, for example, by the performance module. In an alternative embodiment, the performance flag is set by an application that is critical and has sufficiently high priority to justify having other applications terminated. In another embodiment, depending on the application that has set a performance flag, applications depending on their importance or priority are terminated, while others are not terminated. For example, an application program of the highest priority may terminate all the applications by setting the performance flag, while an application program of lesser priority could terminate only a few application programs. 
     In one exemplary embodiment, the performance flag is set by an application program. The termination of applications may be a function of whether the critical program that is setting the performance flag is being started or is entering a critical phase, for example, performing a patient scan. 
     In one exemplary embodiment, the setting of the performance flag is a function of the outputting of the stop command. One or more application programs to be terminated are ascertained. The application programs to be ascertained may be in conjunction with setting of the performance flag or depend on outputting information that identifies the flag-setting application program. This creates greater flexibility because, depending on a priority or importance of the application program, certain application programs are terminated but others are not terminated. 
     In one embodiment, the method further includes: D) outputting a start command as a function of the deletion of a performance flag; and E) starting at least one of the application programs as a function of the outputting of a start command. 
     As broadly described herein, the term “deleting” is understood to mean resetting, restoration, or restoration of the status of the performance flag. For example, after the termination of a critical application, the termination of a critical application phase, or once it is no longer critical to keep computer performance available, a system status, having a critical application and also less-critical applications running, can be established or restored. 
     In one exemplary embodiment, after the deletion of the performance flag, one or more application programs to be started are ascertained as a function of the outputting of the start command. In one embodiment, the one or more application programs to be started are ascertained, optionally, as a function of information that identifies the application program that deletes the flag. A system status can be established that is typically meant to prevail after a phase in which computer performance had to be kept available is terminated. In an alternate embodiment, the system status is ascertained as a function of the application program that has deleted the performance flag, so a status that is typically supposed to prevail after the termination of that application program or a critical phase of that application program is established. For example, after the deletion of the performance flag, of restoring whatever system status prevailed before the performance flag was set. 
     The term “system status” is broadly defined herein as application programs that are currently active on the computer. A system status suitable for a particular workflow can also be established that is adapted to workflow steps which typically follow after the application program or the critical phase of the application program that has deleted the flag has been terminated because of the dependency on the application program that has deleted the flag. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a method when a performance flag is employed according to one embodiment; 
         FIG. 2  illustrates a method when a performance flag is employed as a function of an application program according to one embodiment; and 
         FIG. 3  illustrates a schematic data processor with a performance module. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  illustrates a method for using a performance flag. Once the method is started, for example, by detection of a full-capacity utilization situation or starting a critical application, a performance flag is set ( 1 ). The performance flag or its status is monitored by an agent, which reacts to changes in the flag. If the flag is found, a stop command is output (b). 
     Depending on the outputting of the stop command, the application is terminated (c), for example, by forwarding a corresponding command to the application or to the operating system. By terminating the application, computer performance, for example, CPU or RAM capacity is kept available. The available computer capacity is available, for example, to another, more-important or more-critical, application. 
     The performance flag is deleted or reset, or its status is reset ( 2 ). The performance flag is deleted, for example, after detection of the end of the full-capacity utilization situation or after termination of the application program or of a critical phase of the application program. The performance flag is monitored, and after it is found that it has been deleted a start command is output (d). 
     In one embodiment, an application is started as a function of the outputting of the start command (e). The starting of the application is performed by outputting a corresponding command to the operating system, or a start script intended for the purpose can be started. For example, upon execution of the corresponding command or start script, one or more application programs are started. 
     In one embodiment, as shown in  FIG. 2 , a method includes an application ( 11 ) that causes the performance flag to be set ( 1 ). Once the performance flag is found, a stop command is output (b). 
     One or more applications are ascertained as a function of the outputting of the stop command ( 3 ). In one embodiment, the one or more applications that are ascertained are also dependent on an interface ( 4 ), from which the one or more applications, or a list of applications, can be consulted. The interface ( 4 ) is described by the application ( 11 ) that previously set the performance flag, or is described as a function of the particular application. Using the interface ( 4 ), depending on the application ( 11 ) that is setting the flag, it is ascertained which other applications should be terminated. In an alternate embodiment, the interface ( 4 ) is dependent on the application ( 11 ) and other applications, so that when the flag is set by the other applications, other lists of applications to be terminated can logically be created. 
     In one embodiment, a stop script is written depending on the applications ascertained ( 5 ). The applications to be terminated are entered in the stop script. The stop script does not have to be separately written, except for the list of applications to be terminated. Alternatively, the stop script can be available from the very beginning. For example, the stop script can be generated by the performance module. 
     The applications to be terminated are terminated by execution of the stop script (c), for example, by forwarding a command to the application or to the operating system. In one exemplary embodiment, whether the particular application is “properly” shut down by forwarding a corresponding command or is abruptly interrupted by forwarding a kill command to the operating system is dependent on which application has set the performance flag. For example, in critical applications, it may be necessary to provide the highest possible computer performance available as fast as possible, while with less-critical applications it may be sufficient to make the computer performance available only after the time needed for shutting down the applications has elapsed. 
     In one embodiment, the application ( 11 ) causes the performance flag to be deleted again ( 6 ). This can be done for instance when the application ( 11 ) ends or when a critical phase of the application ( 11 ) has ended. For example, application ( 11 ) may be performing a patient scan using a radiation-based imaging system. In one embodiment, the performance flag is set at the beginning of a patient scan and deleted again once the scan is concluded. 
     In one embodiment, a start command is output depending on whether the performance flag has been deleted (d). One or more applications or a list of applications that are to be started is ascertained depending on the outputting of the start command ( 7 ). The list of applications to be started is dependent on the interface ( 4 ), which is described by the application ( 11 ) that causes the performance flag to be deleted. The list of applications to be started is thus dependent on application ( 11 ). For example, the application that sets the performance flag is identical to the application that deletes the performance flag. Alternatively, the flag is set by a first application but deleted by a second application. 
     The application or applications are written in a start script depending on the list of applications to be started that is ascertained ( 8 ). The start script, like the stop script, for example, can already be available from the beginning, so that only the applications to be started have to be entered. 
     The starting of the entered applications is brought about by executing, for example, the start script (e). This is done by forwarding corresponding commands to the operating system. 
     In one embodiment, as shown in  FIG. 3 , a data processor includes a performance module ( 40 ). The data processor includes a microprocessor (i.e. CPU) ( 10 ), in which applications ( 11 ,  12 ) are running. The microprocessor ( 10 ) is connected to a working memory (i.e. RAM) ( 20 ), in which application data for the applications ( 11 ,  12 ) are stored in the memory or buffer-stored. The microprocessor ( 10 ) is connected to a memory (i.e. ROM) ( 30 ), in which executable versions of the application programs ( 11 ,  12 ) are stored. 
     In one embodiment, the microprocessor ( 10 ) sets a performance flag ( 41 ,  41 ′,  41 ″ . . . ) depending on a corresponding call for one of the application programs ( 11 ,  12 ). For example, it may be sufficient for only a single performance flag with only 0/1 information to be available. In the exemplary embodiment shown in  FIG. 3 , a data word composed of a series of performance flags ( 41 ,  41 ′,  41 ″, . . . ) is used, and depending on which of the applications ( 11 ,  12 ) sets the flag, one of the various flags is set. The position of the flag set within the series of flags identifies the application ( 11 ,  12 ) that has set the flag. For example, flag ( 41 ) can be allocated to the application ( 11 ), and flag ( 41 ′) to the application ( 12 ). In this embodiment, for example, if flag ( 41 ) is set, it is clear that it was set by application ( 11 ) and if flag  41 ′ is set, it is clear that it was set by application ( 12 ). 
     In one embodiment, a performance module  40  monitors the flags ( 41 ,  41 ′,  41 ″ . . . ) to determine whether one of them has been set. If the performance module ( 40 ) finds a set performance flag ( 41 ,  41 ′,  41 ″ . . . ) then it reads out the interface ( 4 ) in order to obtain a list of applications to be terminated. The performance module ( 40 ) writes the applications to be terminated into the stop script ( 43 ) and causes the stop script ( 43 ) to be executed. The applications entered are terminated by execution of the stop script ( 43 ). 
     In one embodiment, if the performance module ( 40 ) finds that a performance flag ( 41 ,  41 ′,  41 ″ . . . ) has been deleted, then it reads out the interface to obtain a list of applications to be started. The performance module ( 40 ) then writes the applications to be started into the start script ( 42 ) and causes that script to be executed. By execution of the start script ( 42 ), the entered applications are started. 
     While the invention has been described above by reference to various embodiments, it should be understood that many changes and modifications can be made without departing from the scope of the invention. It is therefore intended that the foregoing detailed description be regarded as illustrative rather than limiting, and that it be understood that it is the following claims, including all equivalents, that are intended to define the spirit and scope of this invention.

Technology Category: g