A partitioner for creating logical partitions allows a user to specify maximum interactive performance in one partition independently of maximum interactive performance of other partitions to arrive at logical partitions that may be much different than the maximum overall interactive performance percentage of the computer system itself. first, the maximum interactive performance for a computer system is specified, and resources are allocated accordingly. Next, logical partitions may be created, which initially reflect the maximum interactive performance for the computer system as a whole. Finally, the maximum interactive performance can be specified for a partition independently of the interactive performance in other partitions. In this manner a computer system that is configured as a server system with low interactive and high batch performance can have two different partitions, one that has very low interactive performance and the other that balances interactive and batch processing. In this manner two partitions that have greatly different performance attributes can be defined within the limitations of the specified interactive and batch performance for the computer system as a whole.
|
7. A program product comprising:
a partitioner that specifies maximum interactive performance of one of a plurality of logical partitions independently of interactive performance of other of the plurality of logical partitions; and signal bearing media bearing the partitioner.
6. A computer-implemented method for creating at least one logical partition on a computer system, the method comprising the steps of:
creating a first logical partition that specifies a first maximum interactive performance specification; creating a second logical partition that specifies a second maximum interactive performance specification that is different than the first maximum interactive performance specification.
5. An apparatus comprising:
at least one processor; a memory coupled to the at least one processor; a plurality of logical partitions defined on the apparatus, each logical partition including a portion of the at least one processor and a portion of the memory, each logical partition specifying a maximum interactive performance; and means for specifying the maximum interactive performance of one of the plurality of logical partitions independently of the interactive performance of other of the plurality of logical partitions.
4. An apparatus comprising:
at least one processor; a memory coupled to the at least one processor; a plurality of logical partitions defined on the apparatus, each logical partition specifying a maximum interactive performance; a first of the plurality of logical partitions having a first maximum interactive performance specification; and a second of the plurality of logical partitions having a second maximum interactive performance specification that is different than the first maximum interactive performance specification.
1. An apparatus comprising:
at least one processor; a memory coupled to the at least one processor; a plurality of logical partitions defined on the apparatus, each logical partition including a portion of the at least one processor and a portion of the memory, each logical partition specifying a maximum interactive performance; and a partitioner that specifies the maximum interactive performance of one of the plurality of logical partitions independently of the interactive performance of other of the plurality of logical partitions.
2. The apparatus of
3. The apparatus of
10. The program product of
11. The program product of
|
This patent application is related to the following patent applications: U.S. patent application RO999-022, entitled "Processor Reset Generated via Memory Access Interrupt," Ser. No. 09/314,769 filed May 19, 1999 by Armstrong et al., now U.S. Pat. No. 6,467,007; U.S. Pat. application RO999-023, entitled "Management of a Concurrent Use License in a Logically-Partitioned Computer," Ser. No. 09/314,324 filed May 19, 1999 by Armstrong et al.; U.S. patent application RO999-024, entitled "Event-Driven Communications Interface for Logically-Partitioned Computer," Ser. No. 09/314,187 filed May 19, 1999 by Armstrong et al.; and U.S. patent application RO999-025, entitled "Logical Partition Manager and Method," Ser. No. 09/314,214 filed May 19, 1999 by Armstrong et al.
1. Technical Field
This invention generally relates to data processing, and more specifically relates to logical partitioning in a computer system.
2. Background Art
Since the dawn of the computer age, computer systems have evolved into extremely sophisticated devices that may be found in many different settings. Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
The combination of hardware and software on a particular computer system defines a computing environment. Different hardware platforms and different operating systems thus provide different computing environments. In recent years, engineers have recognized that it is possible to provide different computing environments on the same physical computer system by logically partitioning the computer system resources to different computing environments. The AS/400 computer system developed by IBM is an example of a computer system that supports logical partitioning. If logical partitioning on an AS/400 is desired, partition manager code (referred to as a "hypervisor" in AS/400 terminology) allows defining different computing environments on the same platform. The partition manager manages the logical partitions to assure that they can share needed resources in the computer system while maintaining the separate computing environments defined by the logical partitions.
A logical partition is defined by a set of computer resources that are allocated to the partition. These resources typically include processors, main memory, and input/output (I/O) devices. Some partitions may be defined along hardware boundaries. For example, in a system with six processors, two processors could be allocated to a first logical partition, and the remaining four could be allocated to a second logical partition. However, it is also possible to allocate partitions along logical boundaries that do not directly coincide with hardware boundaries. For example, if the total computing power in a system is measured in cycles, a certain percentage of cycles could be allocated to a first logical partition and the remaining cycles could be allocates to a second logical partition. The partition manager is then responsible to assure that processor cycles are allocated to the partitions in the specified percentages.
Many computer systems may be customized to perform specialized tasks. For example, an engineering workstation typically has a much different configuration than a server on a network. The performance of a computer system may be measured by specifying the maximum interactive performance allowed on the computer system, thereby providing sufficient batch performance when needed. Interactive performance relates to how well the computer system handles interactive jobs that require input from a user. Batch performance relates to how well the computer system handles jobs that can be run in the background and that do not require user intervention, such as processing payroll checks or generating reports. Some computer systems allow interactive performance to be traded off against batch performance to arrive at a desired performance goal for a computer system, depending on the application. For the AS/400 computer system developed by IBM, the maximum interactive performance can be adjusted to suit particular applications.
A traditional AS/400 does not limit interactive performance, so the interactive performance can comprise any portion of the total performance, from 0 to 100%. The portion of total performance that is not currently being used for interactive performance may be used for batch performance. For an AS/400 that is used as a server on a network, it may be desirable to cap the interactive performance to a relatively small percentage of the total performance to provide adequate batch performance for the network server. In this case, the interactive performance would be relatively small compared to the batch performance, because servers run most of their jobs without user intervention or input. In fact, IBM often sells AS/400 computer systems that specify the maximum interactive performance, with the rest of the computer system performance being dedicated to batch performance. Note that batch performance may also occupy any portion of the specified maximum interactive performance that is not currently being used for interactive performance. Thus, if the maximum interactive performance is 10%, and only 5% is being used in interactive performance, the computer system can use the remaining 95% for batch processing. However, if the computer system needs to increase its interactive performance from 5% to 7%, the interactive performance will take precedence over the batch performance, up to the specified maximum interactive performance.
A problem arises when a computer system that has been tuned to a desired interactive and/or performance level is logically partitioned. If the total system is 25% maximum interactive performance, using known techniques to create two equal partitions would result in two partitions that each have 25% maximum interactive performance. However, it is foreseeable that some users may want to install different types of partitions on the same computer system If the maximum interactive performance is specified for a server, there is no way to define one partition that has more interactive performance than another partition. While specifying maximum interactive performance for a computer system is known in the art, there is currently no way to specify interactive performance for a partition that is different than the maximum interactive performance for the computer system as a whole. Without a mechanism and method for creating logical partitions in a way that provides the user more flexibility in allocating interactive performance within partitions, the computer industry will continue to suffer from logical partitions that must reflect the overall performance of the computer system.
According to the present invention, a partitioner for creating logical partitions allows a user to specify maximum interactive performance in one partition independently of maximum interactive performance of other partitions to arrive at logical partitions that may be much different than the maximum overall interactive performance percentage of the computer system itself. First, the maximum interactive performance for a computer system is specified, and resources are allocated accordingly. Next, logical partitions may be created, which initially reflect the maximum interactive performance for the computer system as a whole. Finally, the maximum interactive performance can be specified for a partition independently of the interactive performance in other partitions. In this manner a computer system that is configured as a server system with low interactive and high batch performance can have two different partitions, one that has very low interactive performance and the other that balances interactive and batch processing. In this manner two partitions that have greatly different performance attributes can be defined within the limitations of the specified interactive and batch performance for the computer system as a whole.
The foregoing and other features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings.
The preferred embodiments of the present invention will hereinafter be described in conjunction with the appended drawings, where like designations denote like elements, and:
According to preferred embodiments of the present invention, a computer system that supports logical partitioning includes a partitioner that specifies maximum interactive performance in a partition independently from the interactive performance in other partitions. Referring to
Main memory 120 contains data 121, a partitioner 122, and multiple logical partitions (such as partitions 124 and 126 in FIG. 1). Data 121 represents any data that serves as input to or output from any program in computer system 100. Partitioner 122 is used to create multiple logical partitions, represented in
The partitions 124 and 126 are shown in
Computer system 100 utilizes well known virtual addressing mechanisms that allow the programs of computer system 100 to behave as if they only have access to a large, single storage entity instead of access to multiple, smaller storage entities such as main memory 120 and DASD device 155. Therefore, while data 121, partitioner 122 and the partitions 124 and 126 are shown to reside in main memory 120, those skilled in the art will recognize that these items are not necessarily all completely contained in main memory 120 at the same time. It should also be noted that the term "memory" is used herein to generically refer to the entire virtual memory of computer system 100.
Each processor 110 may be constructed from one or more microprocessors and/or integrated circuits. Each processor 110 executes program instructions stored in main memory 120. Main memory 120 stores programs and data that processors 110 may access. When computer system 100 starts up, a processor 110 initially executes the program instructions that make up the partitioner 122. Partitioner 122 is a sophisticated program that contains low-level code to manage the resources of computer system 100. Some of these resources are processors 110, main memory 120, mass storage interface 130, terminal interface 140, network interface 150, and system bus 160. In addition, partitioner 122 is used to create and manage logical partitions (e.g., 124 and 126 of FIG. 1), to control the resources of computer system 100, and to perform tasks requested by the operating systems in the logical partitions.
Although computer system 100 is shown to contain only a single system bus, those skilled in the art will appreciate that the present invention may be practiced using a computer system that has multiple buses. In addition, the interfaces (called input/output processors in AS/400 terminology) that are used in the preferred embodiment each include separate, fully programmed microprocessors that are used to off-load compute-intensive processing from processors 110. However, those skilled in the art will appreciate that the present invention applies equally to computer systems that simply use I/O adapters to perform similar functions.
Terminal interface 140 is used to directly connect one or more terminals 165 to computer system 100. These terminals 165, which may be non-intelligent (i.e., dumb) terminals or fully programmable workstations, are used to allow system administrators and users to communicate with computer system 100. Note, however, that while terminal interface 140 is provided to support communication with one or more terminals 165, computer system 100 does not necessarily require a terminal 165, because all needed interaction with users and other processes may occur via network interface 150.
Network interface 150 is used to connect other computer systems and/or workstations (e.g., 175 in
At this point, it is important to note that while the present invention has been and will continue to be described in the context of a fully functional computer system, those skilled in the art will appreciate that the present invention is capable of being distributed as a program product in a variety of forms, and that the present invention applies equally regardless of the particular type of signal bearing media used to actually carry out the distribution. Examples of suitable signal bearing media include: recordable type media such as floppy disks and CD ROM (e.g., 195 of FIG. 1), and transmission type media such as digital and analog communications links.
A logical partition includes specific resources within computer system 100. Each logical partition has a corresponding partition memory 126 within main memory that is separate and distinct from the memory used for any other partition, and has a predetermined number of processors 110 or a predetermined number of percentage of processing cycles allocated to it. The specific allocation of system resources to specific partitions is not discussed herein because these concepts are known to one skilled in the art, and will vary greatly according to the specific hardware on the computer system being partitioned. The present invention relates to the allocation of interactive performance independently from the interactive performance in other partitions. For this reason the preferred embodiments are discussed below in terms of specified percentages of total processing power. Note that the figures below assume that the total processing power of a computer system is being used. In reality, there would likely be portions of unused processor performance that could be dynamically allocated to either interactive processing or batch processing depending on the specified maximum interactive performance and the current interactive performance. However, by assuming that the total processing power of the computer system (or partition) is being used, the discussion of the concepts of the invention are simplified. The reader will readily understand that a portion of the total processing power may be unused, and may be allocated to batch processing if needed, or may be allocated to interactive processing if adding the unused portion does not cause the interactive performance to exceed the specified maximum.
Referring to
Referring now to
Referring to
Referring now to
Referring now to
The present invention as described above comprises a partitioner and method for specifying maximum interactive performance in a logical partition independently of the interactive performance in other partitions. One very simplified example is now presented to illustrate the concepts discussed in the preferred embodiments. We assume that we are dealing with a computer system that has twelve processors. We also assume that the interactive and batch processing for the system is initially allocated as shown in
When the system of
The preferred embodiments discussed above discuss partitioning in a static context, meaning that partitions are defined when the partitions are initially setup, and these partitions are enforced during run-time. However, the present invention also extends to dynamic allocation of interactive performance at run-time. The partitioner of the present invention may include a run-time portion that analyzes interactive performance needs of each partition, and dynamically allocates the interactive performance between partitions as programs are executing.
One skilled in the art will appreciate that many variations are possible within the scope of the present invention. Thus, while the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that these and other changes in form and details may be made therein without departing from the spirit and scope of the invention.
Armstrong, William Joseph, Scheel, Jeffrey Jay, McMahon, Lynn Allen
Patent | Priority | Assignee | Title |
7120694, | Oct 22 1999 | Verizon Laboratories | Service level agreements and management thereof |
7448079, | Jul 03 2000 | Ernst & Young LLP | Method and apparatus for providing computer services |
7761867, | Jul 29 2005 | LENOVO INTERNATIONAL LIMITED | Method and system for creation of operating system partition table |
7979562, | Oct 22 1999 | Verizon Laboratories Inc. | Service level agreements and management thereof |
8209668, | Aug 30 2006 | International Business Machines Corporation | Method and system for measuring the performance of a computer system on a per logical partition basis |
8261277, | Apr 10 2006 | General Electric Company | System and method for dynamic allocation of resources in a computing grid |
8806501, | Mar 31 2010 | International Business Machines Corporation | Predictive dynamic system scheduling |
9146760, | Mar 16 2006 | Microsoft Technology Licensing, LLC | Fast booting a computing device to a specialized experience |
9323640, | Aug 30 2006 | International Business Machines Corporation | Method and system for measuring the performance of a computer system on a per logical partition basis |
9898304, | Mar 16 2006 | Microsoft Technology Licensing, LLC | Fast booting a computing device to a specialized experience |
Patent | Priority | Assignee | Title |
3641505, | |||
4511964, | Nov 12 1982 | Hewlett-Packard Company | Dynamic physical memory mapping and management of independent programming environments |
4601008, | Jun 30 1982 | Fujitsu Limited | Data processing system |
4843541, | Jul 29 1987 | International Business Machines Corporation | Logical resource partitioning of a data processing system |
4924378, | Jun 13 1988 | Bankers Trust Company | License mangagement system and license storage key |
5129088, | Nov 30 1987 | International Business Machines Corporation | Data processing method to create virtual disks from non-contiguous groups of logically contiguous addressable blocks of direct access storage device |
5204897, | Jun 28 1991 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Management interface for license management system |
5253344, | Sep 05 1991 | International Business Machines Corp.; INTERNATIONAL BUSINESS MACHINES CORPORATION A CORP OF NEW YORK | Method and apparatus for dynamically changing the configuration of a logically partitioned data processing system |
5263158, | Feb 15 1990 | International Business Machines Corporation | Method and system for variable authority level user access control in a distributed data processing system having multiple resource manager |
5297287, | Mar 02 1992 | S-MOS SYSTEMS, INC | System and method for resetting a microprocessor system |
5345590, | Aug 31 1990 | International Business Machines Corporation | Method and apparatus for cross-partition control in a partitioned process environment |
5365514, | Mar 01 1993 | IBM Corporation | Event driven interface for a system for monitoring and controlling a data communications network |
5375206, | Mar 11 1991 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Method for licensing software |
5446902, | Apr 27 1990 | Sun Microsystems, Inc. | Method for implementing computer applications in an object oriented manner using a traditional non-object oriented programming language |
5465360, | Feb 09 1993 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Method and apparatus for independently resetting processors and cache controllers in multiple processor systems |
5526488, | Jan 26 1994 | CISCO TECHNOLOGY, INC , A CORPORATION OF CALIFORNIA | Dynamic switching system for switching between event driven interfaces in response to switching bit pattern including in data frame in a data communications network |
5550970, | Aug 31 1994 | International Business Machines Corporation | Method and system for allocating resources |
5566337, | May 13 1994 | Apple Inc | Method and apparatus for distributing events in an operating system |
5574914, | Jan 04 1993 | Unisys Corporation | Method and apparatus for performing system resource partitioning |
5600805, | Jun 15 1992 | International Business Machines Corporation | Pass-through for I/O channel subsystem call instructions for accessing shared resources in a computer system having a plurality of operating systems |
5659756, | Mar 31 1995 | International Business Machines Corporation | Method and system for providing access to logical partition information on a per resource basis |
5659786, | Oct 19 1992 | International Business Machines Corporation | System and method for dynamically performing resource reconfiguration in a logically partitioned data processing system |
5671405, | Jul 19 1995 | International Business Machines Corporation | Apparatus and method for adaptive logical partitioning of workfile disks for multiple concurrent mergesorts |
5675791, | Oct 31 1994 | International Business Machines Corporation | Method and system for database load balancing |
5684974, | Mar 17 1994 | Hitachi, Ltd. | Method and apparatus for controlling reconfiguration of storage-device memory areas |
5687363, | Mar 30 1994 | Siemens Stromberg-Carlson | Distributed database architecture and distributed database management system for open network evolution |
5692174, | Oct 05 1995 | International Business Machines Corporation | Query parallelism in a shared data DBMS system |
5692182, | Oct 05 1995 | International Business Machines Corporation | Bufferpool coherency for identifying and retrieving versions of workfile data using a producing DBMS and a consuming DBMS |
5742757, | May 30 1996 | Mitsubishi Electric & Electronics USA, Inc | Automatic software license manager |
5784625, | Mar 19 1996 | CALLAHAN CELLULAR L L C | Method and apparatus for effecting a soft reset in a processor device without requiring a dedicated external pin |
5799149, | Jun 17 1996 | International Business Machines Corporation | System partitioning for massively parallel processors |
5819061, | Jul 25 1994 | International Business Machines Corporation | Method and apparatus for dynamic storage reconfiguration in a partitioned environment |
5828882, | Mar 15 1996 | EMC Corporaton | Event notification facility |
5845146, | Sep 05 1995 | Hitachi, Ltd. | Extending system of input/output channel |
5923890, | Jul 30 1997 | Internatinonal Business Machines Corporation | Method and apparatus for optimizing the handling of synchronous requests to a coupling facility in a sysplex configuration |
5948065, | Mar 28 1997 | International Business Machines Corporation | System for managing processor resources in a multisystem environment in order to provide smooth real-time data streams while enabling other types of applications to be processed concurrently |
5978857, | Jul 22 1997 | WINNOV, LP | Multimedia driver having reduced system dependence using polling process to signal helper thread for input/output |
5996026, | Sep 05 1995 | Hitachi, Ltd. | Method and apparatus for connecting i/o channels between sub-channels and devices through virtual machines controlled by a hypervisor using ID and configuration information |
6021438, | Jun 18 1997 | SAFENET, INC | License management system using daemons and aliasing |
6061695, | Dec 06 1996 | Microsoft Technology Licensing, LLC | Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document |
6075938, | Jun 10 1997 | The Board of Trustees of the Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
6148323, | Dec 29 1995 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | System and method for managing the execution of system management |
6173337, | Mar 08 1996 | Apple Inc | Method and apparatus for relaying events intended for a first application program to a second application program |
6199179, | Jun 10 1998 | Hewlett Packard Enterprise Development LP | Method and apparatus for failure recovery in a multi-processor computer system |
6219728, | Apr 22 1996 | AVAYA Inc | Method and apparatus for allocating shared memory resources among a plurality of queues each having a threshold value therefor |
6247109, | Jun 10 1998 | Hewlett Packard Enterprise Development LP | Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space |
6263359, | May 22 1997 | International Business Machines Corporation | Computer resource proportional utilization and response time scheduling |
6269391, | Feb 24 1997 | Oracle International Corporation | Multi-processor scheduling kernel |
6269409, | Sep 02 1997 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Method and apparatus for concurrent execution of operating systems |
6282560, | Mar 28 1997 | International Business Machines Corporation | Managing processor resources in a non-dedicated computer system |
6496847, | May 15 1998 | VMware, Inc.; VMWARE, INC | System and method for virtualizing computer systems |
JP10111797, | |||
JP10301795, | |||
JP62283496, | |||
JP63183700, | |||
JP7200492, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 19 1999 | International Business Machines Corporation | (assignment on the face of the patent) | / | |||
May 19 1999 | ARMSTRONG, WILLIAM JOSEPH | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009976 | /0482 | |
May 19 1999 | MCMAHON, LYNN ALLEN | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009976 | /0482 | |
May 19 1999 | SCHEEL, JEFFREY JAY | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009976 | /0482 |
Date | Maintenance Fee Events |
Jul 13 2007 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jul 15 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Jun 30 2015 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jan 20 2007 | 4 years fee payment window open |
Jul 20 2007 | 6 months grace period start (w surcharge) |
Jan 20 2008 | patent expiry (for year 4) |
Jan 20 2010 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 20 2011 | 8 years fee payment window open |
Jul 20 2011 | 6 months grace period start (w surcharge) |
Jan 20 2012 | patent expiry (for year 8) |
Jan 20 2014 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 20 2015 | 12 years fee payment window open |
Jul 20 2015 | 6 months grace period start (w surcharge) |
Jan 20 2016 | patent expiry (for year 12) |
Jan 20 2018 | 2 years to revive unintentionally abandoned end. (for year 12) |