US6681240B1 - Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions - Google Patents

Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions Download PDF

Info

Publication number
US6681240B1
US6681240B1 US09/314,541 US31454199A US6681240B1 US 6681240 B1 US6681240 B1 US 6681240B1 US 31454199 A US31454199 A US 31454199A US 6681240 B1 US6681240 B1 US 6681240B1
Authority
US
United States
Prior art keywords
performance
interactive performance
partitions
maximum
interactive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US09/314,541
Inventor
William Joseph Armstrong
Lynn Allen McMahon
Jeffrey Jay Scheel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US09/314,541 priority Critical patent/US6681240B1/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ARMSTRONG, WILLIAM JOSEPH, MCMAHON, LYNN ALLEN, SCHEEL, JEFFREY JAY
Priority to TW089103448A priority patent/TW581969B/en
Priority to KR10-2000-0023858A priority patent/KR100369280B1/en
Priority to JP2000143102A priority patent/JP3628590B2/en
Application granted granted Critical
Publication of US6681240B1 publication Critical patent/US6681240B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Definitions

  • This invention generally relates to data processing, and more specifically relates to logical partitioning in a computer system.
  • Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs).
  • hardware e.g., semiconductors, circuit boards, etc.
  • software e.g., computer programs
  • 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.
  • 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.
  • the interactive performance would be relatively small compared to the batch performance, because servers run most of their jobs without user intervention or input.
  • 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.
  • 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 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.
  • the maximum interactive performance for a computer system is specified, and resources are allocated accordingly.
  • logical partitions may be created, which initially reflect the maximum interactive performance for the computer system as a whole.
  • the maximum interactive performance can be specified for a partition independently of the interactive performance in other partitions.
  • 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.
  • 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.
  • FIG. 1 is a block diagram of a computer apparatus that supports logical partitioning in accordance with the preferred embodiments
  • FIG. 2 is a block diagram showing how total processing power can be allocated between interactive performance and batch performance in a computer system to achieve a traditional processing configuration that does not constrain interactive performance;
  • FIG. 3 is a block diagram showing how interactive performance can be capped in a computer system below a specified maximum to achieve a server processing configuration that has substantially more dedicated batch performance than available interactive performance;
  • FIG. 4 is a block diagram showing the creation of two logical partitions for the server model shown in FIG. 3;
  • FIG. 5 is a block diagram showing the dynamic specification of maximum interactive performance independent from the interactive performance in other partitions.
  • FIG. 6 is a flow diagram of a method for specifying maximum interactive performance in a partition independently from the interactive performance in other partitions according to the preferred embodiments.
  • 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.
  • a computer system 100 is an enhanced IBM AS/400 computer system, and represents one suitable type of computer system that supports logical partitioning in accordance with the preferred embodiments.
  • computer system 100 comprises one or more processors 110 connected to a main memory 120 , a mass storage interface 130 , a terminal interface 140 , and a network interface 150 . These system components are interconnected through the use of a system bus 160 .
  • Mass storage interface 130 is used to connect mass storage devices (such as a direct access storage device 155 ) to computer system 100 .
  • One specific type of direct access storage device is a CD-ROM drive, which may read data from a CD-ROM 195 .
  • 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 FIG. 1 by partitions 124 and 126 .
  • the first partition 124 includes an operating system 125
  • the Nth partition 126 includes an operating system 127 .
  • Operating systems 125 and 127 are each preferably a multitasking operating system known in the industry as OS/400; however, those skilled in the art will appreciate that the spirit and scope of the present invention is not limited to any one operating system. Any suitable operating system can be used.
  • Operating systems 125 and 127 are each sophisticated programs that contains low-level code to manage the resources of computer system 100 . Some of these resources are processor 110 , main memory 120 , mass storage interface 130 , terminal interface 140 , network interface 150 , and system bus 160 .
  • the operating system 127 the Nth partition 126 may be the same as the operating system 125 in partition 124 , or may be a completely different operating system. Thus, partition 124 can run the OS/400 operating system, while partition 126 can run another instance of OS/400, possibly a different release, or with different environment settings (e.g., time zone).
  • the operating system 127 in the Nth partition 126 could even be different than OS/400, provided it is compatible with the hardware. In this manner the logical partitions can provide completely different computing environments on the same physical computer system.
  • partitions 124 and 126 are shown in FIG. 1 to reside within the main memory 120 .
  • a logical partition typically specifies a portion of memory, along with an assignment of one or more processors and other system resources.
  • partition 124 could be defined to include two processors and a portion of memory 120 , along with one or more I/O processors that can provide the functions of mass storage interface 130 , terminal interface 140 , network interface 150 , or interfaces to other I/O devices.
  • Partition 126 could then be defined to include three other processors, a different portion of memory 120 , and one or more I/O processors.
  • the partitions are shown in FIG. 1 to symbolically represent logical partitions, which would include system resources outside of memory 120 within computer system 100 .
  • 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 .
  • 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.
  • 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.
  • interfaces called input/output processors in AS/400 terminology
  • AS/400 terminology each include separate, fully programmed microprocessors that are used to off-load compute-intensive processing from processors 110 .
  • processors 110 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 FIG. 1) to computer system 100 across a network 170 .
  • the present invention applies equally no matter how computer system 100 may be connected to other computer systems and/or workstations, regardless of whether the network connection 170 is made using present-day analog and/or digital techniques or via some networking mechanism of the future.
  • many different network protocols can be used to implement a network. These protocols are specialized computer programs that allow computers to communicate across network 170 .
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • 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.
  • the total processing power for a computer system can be divided into the interactive performance and the batch performance of the computer system.
  • the interactive performance is not constrained, which corresponds to a traditional AS/400 computer system.
  • the interactive performance is given precedence over batch processing.
  • the interactive performance can range from 0 to 100% of the total system performance. This is represented in FIG. 2 by the arrows and phantom lines, indicating that the dividing line between interactive and batch performance can move up or down anywhere along the continuum of total processing power.
  • FIG. 3 we can make the AS/400 better suited to a server environment by specifying that interactive performance has a maximum value of 33%.
  • a maximum interactive performance of 33% 67% of the total processing power is dedicated to batch performance.
  • the division of interactive and batch performance shown in FIG. 3 is more suitable to a server environment, where batch processing is much more prevalent than interactive processing.
  • a computer system can be customized by specifying a maximum interactive performance to tune a computer system's performance to a desired application. By dedicating 67% of the total processing power to batch performance and specifying a 33% maximum for interactive performance, the resulting computer system is better-suited to be a network server than the traditional model shown in FIG. 2 .
  • the arrow and phantom lines in FIG. 3 show that the size of the interactive performance can be reduced, but cannot be enlarged greater than the maximum specified value.
  • each partition will initially reflect the same maximum interactive performance for the overall machine. For the system of FIG. 4, this means that essentially two identical server partitions are created. While this may be very useful in some situations, it may be very desirable in other situations to define both a traditional partition and a server partition on the same computer system.
  • the partitioner 122 of FIG. 1 makes this possible by specifying the maximum interactive performance of a partition independently from the interactive performance in other partitions.
  • partitioner 122 creates the first partition with a maximum interactive performance of 50%, which is approximately three times greater than the interactive performance of the second partition. Partitioner 122 then creates the second partition, as shown in FIG. 5, that has a 17% maximum for the interactive performance, with the rest being dedicated to batch performance. In this manner the first partition of FIG.
  • the second partition can be used as a server partition.
  • the total amount of interactive performance is constrained by the maximum 33% interactive performance specified in the initial system configuration of FIG. 3 .
  • This 33% interactive performance is allocated among the two partitions as shown in FIG. 5, with 75% of the maximum interactive performance being allocated to the first partition and 25% of the maximum interactive performance being allocated to the second partition.
  • the present invention thus allows different types of partitions to be defined on the same computer system by allocating interactive performance for a logical partition independently of the interactive performance of other logical partitions.
  • a method 600 for specifying maximum interactive performance for multiple partitions begins by specifying a maximum interactive performance for the computer system as a whole (step 610 ).
  • Step 610 creates the initial maximum percentage allocation to interactive performance, as shown in FIG. 3, using methods known in the art.
  • logical partitions are defined (step 620 ).
  • One suitable example for creating logical partitions in step 620 is shown by the two logical partitions in FIG. 4 .
  • a maximum value for the interactive performance is specified for each partition independently of the interactive performance in the other partitions (step 630 ).
  • a suitable example of this allocation is shown in FIG. 5, where the maximum interactive performance for the first partition is 50% while the maximum interactive performance for the second partition is 17%.
  • 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.
  • the interactive and batch processing for the system is initially allocated as shown in FIG. 3, with up to 33% of the performance allocated to interactive performance and 67% of the performance dedicated to batch performance. If partitioning is performed along processor boundaries, this means that four of the twelve processors are allocated to interactive performance, and eight of the twelve are dedicated to batch performance.
  • the four processors allocated to interactive performance may also be used for batch performance if the interactive performance is less than its specified maximum.
  • the interactive performance is split equally between partitions, and the batch performance is split equally between partitions.
  • the batch performance is split equally between partitions.
  • two processors are allocated to the interactive performance of the first partition, four processors are allocated to the batch performance of the first partition, two processors are allocated to the interactive performance of the second partition, and four processors are allocated to the batch performance of the second partition.
  • two identical partitions have been created that both mirror the maximum interactive performance of the system as a whole.
  • FIG. 5 if we assume that the first partition needs a maximum of 50% of its performance to be interactive performance, one of the four dedicated batch processors can be allocated to providing interactive performance as well.
  • the interactive performance of the partition can be satisfied with one of the two processors previously allocated to interactive performance, thereby freeing up one processor that is now dedicated to batch performance.
  • the first partition has up to three processors for its interactive performance and three processors dedicated to its batch performance, while the second partition has one processor for its interactive performance and five processors dedicated to its batch performance.
  • This simplified example shows how partitioner 122 of FIG. 1 can specify maximum interactive performance in a partition independently from the interactive performance in other partitions.
  • allocation between interactive and batch performance can occur on a percentage basis that does not correspond to hardware boundaries, and the present invention expressly extends to any method for allocating between interactive and batch performance.
  • 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.
  • 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.

Abstract

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.

Description

RELATED APPLICATIONS
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.
BACKGROUND OF THE INVENTION
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.
DISCLOSURE OF INVENTION
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.
BRIEF DESCRIPTION OF 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:
FIG. 1 is a block diagram of a computer apparatus that supports logical partitioning in accordance with the preferred embodiments;
FIG. 2 is a block diagram showing how total processing power can be allocated between interactive performance and batch performance in a computer system to achieve a traditional processing configuration that does not constrain interactive performance;
FIG. 3 is a block diagram showing how interactive performance can be capped in a computer system below a specified maximum to achieve a server processing configuration that has substantially more dedicated batch performance than available interactive performance;
FIG. 4 is a block diagram showing the creation of two logical partitions for the server model shown in FIG. 3;
FIG. 5 is a block diagram showing the dynamic specification of maximum interactive performance independent from the interactive performance in other partitions; and
FIG. 6 is a flow diagram of a method for specifying maximum interactive performance in a partition independently from the interactive performance in other partitions according to the preferred embodiments.
BEST MODE FOR CARRYING OUT THE INVENTION
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 FIG. 1, a computer system 100 is an enhanced IBM AS/400 computer system, and represents one suitable type of computer system that supports logical partitioning in accordance with the preferred embodiments. Those skilled in the art will appreciate that the mechanisms and apparatus of the present invention apply equally to any computer system that supports logical partitions. As shown in FIG. 1, computer system 100 comprises one or more processors 110 connected to a main memory 120, a mass storage interface 130, a terminal interface 140, and a network interface 150. These system components are interconnected through the use of a system bus 160. Mass storage interface 130 is used to connect mass storage devices (such as a direct access storage device 155) to computer system 100. One specific type of direct access storage device is a CD-ROM drive, which may read data from a CD-ROM 195.
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 FIG. 1 by partitions 124 and 126. The first partition 124 includes an operating system 125, and the Nth partition 126 includes an operating system 127. Operating systems 125 and 127 are each preferably a multitasking operating system known in the industry as OS/400; however, those skilled in the art will appreciate that the spirit and scope of the present invention is not limited to any one operating system. Any suitable operating system can be used. Operating systems 125 and 127 are each sophisticated programs that contains low-level code to manage the resources of computer system 100. Some of these resources are processor 110, main memory 120, mass storage interface 130, terminal interface 140, network interface 150, and system bus 160. The operating system 127 the Nth partition 126 may be the same as the operating system 125 in partition 124, or may be a completely different operating system. Thus, partition 124 can run the OS/400 operating system, while partition 126 can run another instance of OS/400, possibly a different release, or with different environment settings (e.g., time zone). The operating system 127 in the Nth partition 126 could even be different than OS/400, provided it is compatible with the hardware. In this manner the logical partitions can provide completely different computing environments on the same physical computer system.
The partitions 124 and 126 are shown in FIG. 1 to reside within the main memory 120. However, one skilled in the art will recognize that a partition is a logical construct that includes resources other than memory. A logical partition typically specifies a portion of memory, along with an assignment of one or more processors and other system resources. Thus, partition 124 could be defined to include two processors and a portion of memory 120, along with one or more I/O processors that can provide the functions of mass storage interface 130, terminal interface 140, network interface 150, or interfaces to other I/O devices. Partition 126 could then be defined to include three other processors, a different portion of memory 120, and one or more I/O processors. The partitions are shown in FIG. 1 to symbolically represent logical partitions, which would include system resources outside of memory 120 within computer system 100.
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 FIG. 1) to computer system 100 across a network 170. The present invention applies equally no matter how computer system 100 may be connected to other computer systems and/or workstations, regardless of whether the network connection 170 is made using present-day analog and/or digital techniques or via some networking mechanism of the future. In addition, many different network protocols can be used to implement a network. These protocols are specialized computer programs that allow computers to communicate across network 170. TCP/IP (Transmission Control Protocol/Internet Protocol) is an example of a suitable network protocol.
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 FIG. 2, the total processing power for a computer system (such as computer system 100 of FIG. 1) can be divided into the interactive performance and the batch performance of the computer system. In the example shown in FIG. 2, the interactive performance is not constrained, which corresponds to a traditional AS/400 computer system. The interactive performance is given precedence over batch processing. Thus, by not constraining the interactive performance in the system of FIG. 2, the interactive performance can range from 0 to 100% of the total system performance. This is represented in FIG. 2 by the arrows and phantom lines, indicating that the dividing line between interactive and batch performance can move up or down anywhere along the continuum of total processing power.
Referring now to FIG. 3, we can make the AS/400 better suited to a server environment by specifying that interactive performance has a maximum value of 33%. By specifying a maximum interactive performance of 33%, 67% of the total processing power is dedicated to batch performance. The division of interactive and batch performance shown in FIG. 3 is more suitable to a server environment, where batch processing is much more prevalent than interactive processing. As discussed in the background section, a computer system can be customized by specifying a maximum interactive performance to tune a computer system's performance to a desired application. By dedicating 67% of the total processing power to batch performance and specifying a 33% maximum for interactive performance, the resulting computer system is better-suited to be a network server than the traditional model shown in FIG. 2. Note that the arrow and phantom lines in FIG. 3 show that the size of the interactive performance can be reduced, but cannot be enlarged greater than the maximum specified value.
Referring to FIG. 4, if the total performance of the server computer system represented in FIG. 3 is now partitioned into two equal partitions, each partition will initially reflect the same maximum interactive performance for the overall machine. For the system of FIG. 4, this means that essentially two identical server partitions are created. While this may be very useful in some situations, it may be very desirable in other situations to define both a traditional partition and a server partition on the same computer system. The partitioner 122 of FIG. 1 makes this possible by specifying the maximum interactive performance of a partition independently from the interactive performance in other partitions.
Referring now to FIG. 5, two partitions have been created in accordance with the preferred embodiments to allocate the unneeded interactive performance on one partition to the other partition. Let's assume that when the partitions were initially created as shown in FIG. 4, that the first partition needs to have a maximum of 50% interactive performance, while the second partition only needs to have a maximum of 17% interactive performance. In this situation, partitioner 122 creates the first partition with a maximum interactive performance of 50%, which is approximately three times greater than the interactive performance of the second partition. Partitioner 122 then creates the second partition, as shown in FIG. 5, that has a 17% maximum for the interactive performance, with the rest being dedicated to batch performance. In this manner the first partition of FIG. 5 can be used as a more traditional partition, while the second partition can be used as a server partition. Note that the total amount of interactive performance is constrained by the maximum 33% interactive performance specified in the initial system configuration of FIG. 3. This 33% interactive performance is allocated among the two partitions as shown in FIG. 5, with 75% of the maximum interactive performance being allocated to the first partition and 25% of the maximum interactive performance being allocated to the second partition. The present invention thus allows different types of partitions to be defined on the same computer system by allocating interactive performance for a logical partition independently of the interactive performance of other logical partitions.
Referring now to FIG. 6, a method 600 for specifying maximum interactive performance for multiple partitions begins by specifying a maximum interactive performance for the computer system as a whole (step 610). Step 610 creates the initial maximum percentage allocation to interactive performance, as shown in FIG. 3, using methods known in the art. Next, logical partitions are defined (step 620). One suitable example for creating logical partitions in step 620 is shown by the two logical partitions in FIG. 4. Finally, a maximum value for the interactive performance is specified for each partition independently of the interactive performance in the other partitions (step 630). A suitable example of this allocation is shown in FIG. 5, where the maximum interactive performance for the first partition is 50% while the maximum interactive performance for the second partition is 17%.
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 FIG. 3, with up to 33% of the performance allocated to interactive performance and 67% of the performance dedicated to batch performance. If partitioning is performed along processor boundaries, this means that four of the twelve processors are allocated to interactive performance, and eight of the twelve are dedicated to batch performance. Of course, the four processors allocated to interactive performance may also be used for batch performance if the interactive performance is less than its specified maximum.
When the system of FIG. 3 is partitioned into two equal partitions as shown in FIG. 4, the interactive performance is split equally between partitions, and the batch performance is split equally between partitions. This means that two processors are allocated to the interactive performance of the first partition, four processors are allocated to the batch performance of the first partition, two processors are allocated to the interactive performance of the second partition, and four processors are allocated to the batch performance of the second partition. Thus, two identical partitions have been created that both mirror the maximum interactive performance of the system as a whole. Now, in referring to FIG. 5, if we assume that the first partition needs a maximum of 50% of its performance to be interactive performance, one of the four dedicated batch processors can be allocated to providing interactive performance as well. If the second partition only needs half of the specified interactive performance for the system (17%), the interactive performance of the partition can be satisfied with one of the two processors previously allocated to interactive performance, thereby freeing up one processor that is now dedicated to batch performance. The result is that the first partition has up to three processors for its interactive performance and three processors dedicated to its batch performance, while the second partition has one processor for its interactive performance and five processors dedicated to its batch performance. This simplified example shows how partitioner 122 of FIG. 1 can specify maximum interactive performance in a partition independently from the interactive performance in other partitions. Of course, as explained above, allocation between interactive and batch performance can occur on a percentage basis that does not correspond to hardware boundaries, and the present invention expressly extends to any method for allocating between interactive and batch performance.
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.

Claims (11)

We claim:
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 claim 1 wherein the partitioner specifies the maximum interactive performance of the plurality o logical partitions when the plurality of logical partitions are initially created and configured.
3. The apparatus of claim 1 wherein the partitioner dynamically specifies the maximum interactive performance of the plurality of logical partitions at run-time.
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.
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.
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.
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.
8. The program product of claim 7 wherein the signal bearing media comprises recordable media.
9. The program product of claim 7 wherein the signal bearing media comprises transmission media.
10. The program product of claim 7 wherein the partitioner specifies the maximum interactive performance of the plurality logical partitions when the plurality of logical partitions are initially created and configured.
11. The program product of claim 7 wherein the partitioner dynamically specifies the maximum interactive performance of the plurality of logical partitions at run-time.
US09/314,541 1999-05-19 1999-05-19 Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions Expired - Lifetime US6681240B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US09/314,541 US6681240B1 (en) 1999-05-19 1999-05-19 Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions
TW089103448A TW581969B (en) 1999-05-19 2000-02-29 Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions
KR10-2000-0023858A KR100369280B1 (en) 1999-05-19 2000-05-04 Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions
JP2000143102A JP3628590B2 (en) 1999-05-19 2000-05-16 Apparatus and method for specifying the maximum interactive performance of a logical partition of a computer system regardless of the maximum interactive performance of other partitions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/314,541 US6681240B1 (en) 1999-05-19 1999-05-19 Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions

Publications (1)

Publication Number Publication Date
US6681240B1 true US6681240B1 (en) 2004-01-20

Family

ID=23220365

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/314,541 Expired - Lifetime US6681240B1 (en) 1999-05-19 1999-05-19 Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions

Country Status (4)

Country Link
US (1) US6681240B1 (en)
JP (1) JP3628590B2 (en)
KR (1) KR100369280B1 (en)
TW (1) TW581969B (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020069369A1 (en) * 2000-07-05 2002-06-06 Tremain Geoffrey Donald Method and apparatus for providing computer services
US20020116632A1 (en) * 2001-02-22 2002-08-22 Hitachi, Ltd. Tamper-resistant computer system
US20030187966A1 (en) * 1999-10-22 2003-10-02 Himanshu S. Sinha Service level agreements and management thereof
WO2006121211A1 (en) * 2005-05-13 2006-11-16 Sony Computer Entertainment Inc. Methods and apparatus for resource management in a logically partitioned processing environment
US20070028230A1 (en) * 2005-07-29 2007-02-01 International Business Machines Corporation Method and system for creation of operating system partition table
KR100737303B1 (en) 2003-03-31 2007-07-09 인터내셔널 비지네스 머신즈 코포레이션 Apparatus and Method for Virtualizing Interrupts in a Logically Partitioned Computer System
US20070240161A1 (en) * 2006-04-10 2007-10-11 General Electric Company System and method for dynamic allocation of resources in a computing grid
US20080059121A1 (en) * 2006-08-30 2008-03-06 International Business Machines Corporation Method and System for Measuring the Performance of a Computer System on a Per Logical Partition Basis
US20080195447A1 (en) * 2007-02-09 2008-08-14 Eric Bouillet System and method for capacity sizing for computer systems
US20110247003A1 (en) * 2010-03-31 2011-10-06 International Business Machines Corporation Predictive Dynamic System Scheduling
WO2012034793A1 (en) 2010-09-13 2012-03-22 International Business Machines Corporation Real address accessing in a coprocessor executing on behalf of an unprivileged process
US9146760B2 (en) 2006-03-16 2015-09-29 Microsoft Technology Licensing, Llc Fast booting a computing device to a specialized experience

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7290260B2 (en) 2003-02-20 2007-10-30 International Business Machines Corporation Dynamic processor redistribution between partitions in a computing system

Citations (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3641505A (en) 1969-06-25 1972-02-08 Bell Telephone Labor Inc Multiprocessor computer adapted for partitioning into a plurality of independently operating systems
US4511964A (en) 1982-11-12 1985-04-16 Hewlett-Packard Company Dynamic physical memory mapping and management of independent programming environments
US4601008A (en) 1982-06-30 1986-07-15 Fujitsu Limited Data processing system
JPS62283496A (en) * 1986-05-31 1987-12-09 Canon Inc Management system for of number of times of writing programmable read only memory
JPS63183700A (en) * 1987-01-26 1988-07-29 Mitsubishi Electric Corp Eeprom access method
US4843541A (en) 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US4924378A (en) 1988-06-13 1990-05-08 Prime Computer, Inc. License mangagement system and license storage key
US5129088A (en) 1987-11-30 1992-07-07 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
US5204897A (en) 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
US5253344A (en) 1991-09-05 1993-10-12 International Business Machines Corp. Method and apparatus for dynamically changing the configuration of a logically partitioned data processing system
US5263158A (en) 1990-02-15 1993-11-16 International Business Machines Corporation Method and system for variable authority level user access control in a distributed data processing system having multiple resource manager
US5297287A (en) 1992-03-02 1994-03-22 S-Mos Systems, Incorporated System and method for resetting a microprocessor system
US5345590A (en) 1990-08-31 1994-09-06 International Business Machines Corporation Method and apparatus for cross-partition control in a partitioned process environment
US5365514A (en) 1993-03-01 1994-11-15 International Business Machines Corporation Event driven interface for a system for monitoring and controlling a data communications network
US5375206A (en) 1991-03-11 1994-12-20 Hewlett-Packard Company Method for licensing software
JPH07200492A (en) 1993-12-29 1995-08-04 Csk Corp Management system for right of using software on network
US5446902A (en) 1990-04-27 1995-08-29 Sun Microsystems, Inc. Method for implementing computer applications in an object oriented manner using a traditional non-object oriented programming language
US5465360A (en) 1989-11-03 1995-11-07 Compaq Computer Corp. Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5526488A (en) 1994-01-26 1996-06-11 International Business Machines Corporation Dynamic switching system for switching between event driven interfaces in response to switching bit pattern including in data frame in a data communications network
US5550970A (en) 1994-08-31 1996-08-27 International Business Machines Corporation Method and system for allocating resources
US5566337A (en) 1994-05-13 1996-10-15 Apple Computer, Inc. Method and apparatus for distributing events in an operating system
US5574914A (en) 1993-01-04 1996-11-12 Unisys Corporation Method and apparatus for performing system resource partitioning
US5600805A (en) 1992-06-15 1997-02-04 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
US5659786A (en) 1992-10-19 1997-08-19 International Business Machines Corporation System and method for dynamically performing resource reconfiguration in a logically partitioned data processing system
US5659756A (en) 1995-03-31 1997-08-19 International Business Machines Corporation Method and system for providing access to logical partition information on a per resource basis
US5671405A (en) 1995-07-19 1997-09-23 International Business Machines Corporation Apparatus and method for adaptive logical partitioning of workfile disks for multiple concurrent mergesorts
US5675791A (en) 1994-10-31 1997-10-07 International Business Machines Corporation Method and system for database load balancing
US5684974A (en) 1994-03-17 1997-11-04 Hitachi, Ltd. Method and apparatus for controlling reconfiguration of storage-device memory areas
US5687363A (en) 1994-03-30 1997-11-11 Siemens Stromberg-Carlson Distributed database architecture and distributed database management system for open network evolution
US5692182A (en) 1995-10-05 1997-11-25 International Business Machines Corporation Bufferpool coherency for identifying and retrieving versions of workfile data using a producing DBMS and a consuming DBMS
US5692174A (en) 1995-10-05 1997-11-25 International Business Machines Corporation Query parallelism in a shared data DBMS system
US5742757A (en) 1996-05-30 1998-04-21 Mitsubishi Semiconductor America, Inc. Automatic software license manager
JPH10111797A (en) 1996-10-08 1998-04-28 Nec Corp Network license management system
US5784625A (en) 1996-03-19 1998-07-21 Vlsi Technology, Inc. Method and apparatus for effecting a soft reset in a processor device without requiring a dedicated external pin
US5799149A (en) * 1996-06-17 1998-08-25 International Business Machines Corporation System partitioning for massively parallel processors
US5819061A (en) 1994-07-25 1998-10-06 International Business Machines Corporation Method and apparatus for dynamic storage reconfiguration in a partitioned environment
US5828882A (en) 1996-03-15 1998-10-27 Novell, Inc. Event notification facility
JPH10301795A (en) 1997-04-28 1998-11-13 Hitachi Ltd Virtual computer system
US5845146A (en) 1995-09-05 1998-12-01 Hitachi, Ltd. Extending system of input/output channel
US5923890A (en) 1997-07-30 1999-07-13 International Business Machines Corporation Method and apparatus for optimizing the handling of synchronous requests to a coupling facility in a sysplex configuration
US5948065A (en) 1997-03-28 1999-09-07 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
US5978857A (en) 1997-07-22 1999-11-02 Winnov, Inc. Multimedia driver having reduced system dependence using polling process to signal helper thread for input/output
US5996026A (en) 1995-09-05 1999-11-30 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
US6021438A (en) 1997-06-18 2000-02-01 Wyatt River Software, Inc. License management system using daemons and aliasing
US6061695A (en) 1996-12-06 2000-05-09 Microsoft Corporation Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document
US6075938A (en) 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6148323A (en) 1995-12-29 2000-11-14 Hewlett-Packard Company System and method for managing the execution of system management
US6173337B1 (en) 1996-03-08 2001-01-09 Apple Computer, Inc. Method and apparatus for relaying events intended for a first application program to a second application program
US6199179B1 (en) 1998-06-10 2001-03-06 Compaq Computer Corporation Method and apparatus for failure recovery in a multi-processor computer system
US6219728B1 (en) * 1996-04-22 2001-04-17 Nortel Networks Limited Method and apparatus for allocating shared memory resources among a plurality of queues each having a threshold value therefor
US6247109B1 (en) 1998-06-10 2001-06-12 Compaq Computer Corp. Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space
US6263359B1 (en) 1997-05-22 2001-07-17 International Business Machines Corporation Computer resource proportional utilization and response time scheduling
US6269391B1 (en) 1997-02-24 2001-07-31 Novell, Inc. Multi-processor scheduling kernel
US6269409B1 (en) 1997-09-02 2001-07-31 Lsi Logic Corporation Method and apparatus for concurrent execution of operating systems
US6282560B1 (en) 1997-03-28 2001-08-28 International Business Machines Corporation Managing processor resources in a non-dedicated computer system
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4811216A (en) * 1986-12-22 1989-03-07 American Telephone And Telegraph Company Multiprocessor memory management method
KR100191269B1 (en) * 1996-08-23 1999-06-15 윤종용 A computer system testing method using hard disk
JPH113270A (en) * 1997-06-10 1999-01-06 Hitachi Ltd Flash memory unit and method for writing data to flash memory
US6032239A (en) * 1997-10-15 2000-02-29 Dell Usa, L.P. System and method for updating partition mappings to logical drives in a computer memory device
US6041395A (en) * 1997-12-03 2000-03-21 Dell Usa, L.P. System and method for changing partition mappings to logical drives in a computer memory

Patent Citations (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3641505A (en) 1969-06-25 1972-02-08 Bell Telephone Labor Inc Multiprocessor computer adapted for partitioning into a plurality of independently operating systems
US4601008A (en) 1982-06-30 1986-07-15 Fujitsu Limited Data processing system
US4511964A (en) 1982-11-12 1985-04-16 Hewlett-Packard Company Dynamic physical memory mapping and management of independent programming environments
JPS62283496A (en) * 1986-05-31 1987-12-09 Canon Inc Management system for of number of times of writing programmable read only memory
JPS63183700A (en) * 1987-01-26 1988-07-29 Mitsubishi Electric Corp Eeprom access method
US4843541A (en) 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US5129088A (en) 1987-11-30 1992-07-07 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
US4924378A (en) 1988-06-13 1990-05-08 Prime Computer, Inc. License mangagement system and license storage key
US5465360A (en) 1989-11-03 1995-11-07 Compaq Computer Corp. Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5263158A (en) 1990-02-15 1993-11-16 International Business Machines Corporation Method and system for variable authority level user access control in a distributed data processing system having multiple resource manager
US5446902A (en) 1990-04-27 1995-08-29 Sun Microsystems, Inc. Method for implementing computer applications in an object oriented manner using a traditional non-object oriented programming language
US5345590A (en) 1990-08-31 1994-09-06 International Business Machines Corporation Method and apparatus for cross-partition control in a partitioned process environment
US5375206A (en) 1991-03-11 1994-12-20 Hewlett-Packard Company Method for licensing software
US5204897A (en) 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
US5253344A (en) 1991-09-05 1993-10-12 International Business Machines Corp. Method and apparatus for dynamically changing the configuration of a logically partitioned data processing system
US5297287A (en) 1992-03-02 1994-03-22 S-Mos Systems, Incorporated System and method for resetting a microprocessor system
US5600805A (en) 1992-06-15 1997-02-04 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
US5659786A (en) 1992-10-19 1997-08-19 International Business Machines Corporation System and method for dynamically performing resource reconfiguration in a logically partitioned data processing system
US5574914A (en) 1993-01-04 1996-11-12 Unisys Corporation Method and apparatus for performing system resource partitioning
US5365514A (en) 1993-03-01 1994-11-15 International Business Machines Corporation Event driven interface for a system for monitoring and controlling a data communications network
JPH07200492A (en) 1993-12-29 1995-08-04 Csk Corp Management system for right of using software on network
US5526488A (en) 1994-01-26 1996-06-11 International Business Machines Corporation Dynamic switching system for switching between event driven interfaces in response to switching bit pattern including in data frame in a data communications network
US5684974A (en) 1994-03-17 1997-11-04 Hitachi, Ltd. Method and apparatus for controlling reconfiguration of storage-device memory areas
US5687363A (en) 1994-03-30 1997-11-11 Siemens Stromberg-Carlson Distributed database architecture and distributed database management system for open network evolution
US5566337A (en) 1994-05-13 1996-10-15 Apple Computer, Inc. Method and apparatus for distributing events in an operating system
US5819061A (en) 1994-07-25 1998-10-06 International Business Machines Corporation Method and apparatus for dynamic storage reconfiguration in a partitioned environment
US5550970A (en) 1994-08-31 1996-08-27 International Business Machines Corporation Method and system for allocating resources
US5675791A (en) 1994-10-31 1997-10-07 International Business Machines Corporation Method and system for database load balancing
US5659756A (en) 1995-03-31 1997-08-19 International Business Machines Corporation Method and system for providing access to logical partition information on a per resource basis
US5671405A (en) 1995-07-19 1997-09-23 International Business Machines Corporation Apparatus and method for adaptive logical partitioning of workfile disks for multiple concurrent mergesorts
US5996026A (en) 1995-09-05 1999-11-30 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
US5845146A (en) 1995-09-05 1998-12-01 Hitachi, Ltd. Extending system of input/output channel
US5692174A (en) 1995-10-05 1997-11-25 International Business Machines Corporation Query parallelism in a shared data DBMS system
US5692182A (en) 1995-10-05 1997-11-25 International Business Machines Corporation Bufferpool coherency for identifying and retrieving versions of workfile data using a producing DBMS and a consuming DBMS
US6148323A (en) 1995-12-29 2000-11-14 Hewlett-Packard Company System and method for managing the execution of system management
US6173337B1 (en) 1996-03-08 2001-01-09 Apple Computer, Inc. Method and apparatus for relaying events intended for a first application program to a second application program
US5828882A (en) 1996-03-15 1998-10-27 Novell, Inc. Event notification facility
US5784625A (en) 1996-03-19 1998-07-21 Vlsi Technology, Inc. Method and apparatus for effecting a soft reset in a processor device without requiring a dedicated external pin
US6219728B1 (en) * 1996-04-22 2001-04-17 Nortel Networks Limited Method and apparatus for allocating shared memory resources among a plurality of queues each having a threshold value therefor
US5742757A (en) 1996-05-30 1998-04-21 Mitsubishi Semiconductor America, Inc. Automatic software license manager
US5799149A (en) * 1996-06-17 1998-08-25 International Business Machines Corporation System partitioning for massively parallel processors
JPH10111797A (en) 1996-10-08 1998-04-28 Nec Corp Network license management system
US6061695A (en) 1996-12-06 2000-05-09 Microsoft Corporation Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document
US6269391B1 (en) 1997-02-24 2001-07-31 Novell, Inc. Multi-processor scheduling kernel
US5948065A (en) 1997-03-28 1999-09-07 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
US6282560B1 (en) 1997-03-28 2001-08-28 International Business Machines Corporation Managing processor resources in a non-dedicated computer system
JPH10301795A (en) 1997-04-28 1998-11-13 Hitachi Ltd Virtual computer system
US6263359B1 (en) 1997-05-22 2001-07-17 International Business Machines Corporation Computer resource proportional utilization and response time scheduling
US6075938A (en) 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6021438A (en) 1997-06-18 2000-02-01 Wyatt River Software, Inc. License management system using daemons and aliasing
US5978857A (en) 1997-07-22 1999-11-02 Winnov, Inc. Multimedia driver having reduced system dependence using polling process to signal helper thread for input/output
US5923890A (en) 1997-07-30 1999-07-13 International Business Machines Corporation Method and apparatus for optimizing the handling of synchronous requests to a coupling facility in a sysplex configuration
US6269409B1 (en) 1997-09-02 2001-07-31 Lsi Logic Corporation Method and apparatus for concurrent execution of operating systems
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6199179B1 (en) 1998-06-10 2001-03-06 Compaq Computer Corporation Method and apparatus for failure recovery in a multi-processor computer system
US6247109B1 (en) 1998-06-10 2001-06-12 Compaq Computer Corp. Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space

Non-Patent Citations (17)

* Cited by examiner, † Cited by third party
Title
"Microsoft Computer Dictionary," Microsoft Press, 4th Edition, 1999.
"S/390 Parallel Enterprise Server -Generation 3, S/390 Coupling Facility Model C04, System Overview," Publication GA22-7150-00, IBM Japan, 1997.
Abstract for JAPIO Application No. 92-348434, T. Imada et al., Dec. 3, 1992, "Virtual Computer System."
Abstract for JAPIO Application No. 94-103092, T. Imada et al., Apr. 15, 1994, "Virtual Computer System."
Gomes, Lee, "Desktops to get OS freedom of choice," Wall Street Journal Online, Mar. 26, 1999.
Hauser, "Does Licensing Require New Access Control Techniques?", Nov. 1994, Communications of the ACM, v37n11, pp. 84-55, dialog copy pp. 1-10.
IBM Technical Disclosure Bulletin, Baskey et al., "Highly Parallel Coupling Facility Emulator/Router with Shadowed Link Buffers," vol. 39, No. 12, pp. 123-124, Dec. 1996.
IBM Technical Disclosure Bulletin, Kreulen, "OS/2 Raw FileSystem," vol. 40, No. 05, pp. 177-190, May 1997.
Inspec Abstract No. C9408-6110P-022, A. B. Gargaro et al., Mar. 1994, "Supporting Distribution and Dynamic Reconfiguration in AdaPT."
McGilton et al., "Introducing the UNIX System," 1983, R.R. Donnelley & Sons Company, pp. 515-521.
U.S. patent application RO999-022, "Processor Reset Generated via Memory Access Interrupt," filed May 19, 1999, Armstrong et al.
U.S. patent application RO999-023, "Management of a Concurrent Use License in a Logically-Partitioned Computer," filed May 19, 1999, Armstrong et al.
U.S. patent application RO999-024, "Event-Driven Communications Interface for Logically-Partitioned Computer," filed May 19, 1999, Armstrong et al.
U.S. patent application RO999-025, "Logical Partition Manager and Method," filed May 19, 1999, Armstrong et al.
VMWare 1.0.x for Linux Changelog Archive (1999).
VMWare Virtual Platform-Technology White Paper, http:vmware.com/products/virtualplatform.html (1999).
VMWare Virtual Platform—Technology White Paper, http:vmware.com/products/virtualplatform.html (1999).

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070088819A1 (en) * 1999-10-22 2007-04-19 Verizon Laboratories Inc. Service level agreements and management thereof
US20030187966A1 (en) * 1999-10-22 2003-10-02 Himanshu S. Sinha Service level agreements and management thereof
US7120694B2 (en) * 1999-10-22 2006-10-10 Verizon Laboratories Inc. Service level agreements and management thereof
US7979562B2 (en) 1999-10-22 2011-07-12 Verizon Laboratories Inc. Service level agreements and management thereof
US7448079B2 (en) * 2000-07-05 2008-11-04 Ernst & Young, Llp Method and apparatus for providing computer services
US20020069369A1 (en) * 2000-07-05 2002-06-06 Tremain Geoffrey Donald Method and apparatus for providing computer services
US20020116632A1 (en) * 2001-02-22 2002-08-22 Hitachi, Ltd. Tamper-resistant computer system
KR100737303B1 (en) 2003-03-31 2007-07-09 인터내셔널 비지네스 머신즈 코포레이션 Apparatus and Method for Virtualizing Interrupts in a Logically Partitioned Computer System
US20060259733A1 (en) * 2005-05-13 2006-11-16 Sony Computer Entertainment Inc. Methods and apparatus for resource management in a logically partitioned processing environment
WO2006121211A1 (en) * 2005-05-13 2006-11-16 Sony Computer Entertainment Inc. Methods and apparatus for resource management in a logically partitioned processing environment
US20070028230A1 (en) * 2005-07-29 2007-02-01 International Business Machines Corporation Method and system for creation of operating system partition table
US7761867B2 (en) 2005-07-29 2010-07-20 International Business Machines Corporation Method and system for creation of operating system partition table
US9898304B2 (en) 2006-03-16 2018-02-20 Microsoft Technology Licensing, Llc Fast booting a computing device to a specialized experience
US9146760B2 (en) 2006-03-16 2015-09-29 Microsoft Technology Licensing, Llc Fast booting a computing device to a specialized experience
US8261277B2 (en) * 2006-04-10 2012-09-04 General Electric Company System and method for dynamic allocation of resources in a computing grid
US20070240161A1 (en) * 2006-04-10 2007-10-11 General Electric Company System and method for dynamic allocation of resources in a computing grid
US20080059121A1 (en) * 2006-08-30 2008-03-06 International Business Machines Corporation Method and System for Measuring the Performance of a Computer System on a Per Logical Partition Basis
US8209668B2 (en) * 2006-08-30 2012-06-26 International Business Machines Corporation Method and system for measuring the performance of a computer system on a per logical partition basis
US9323640B2 (en) 2006-08-30 2016-04-26 International Business Machines Corporation Method and system for measuring the performance of a computer system on a per logical partition basis
US20080195447A1 (en) * 2007-02-09 2008-08-14 Eric Bouillet System and method for capacity sizing for computer systems
US8806501B2 (en) * 2010-03-31 2014-08-12 International Business Machines Corporation Predictive dynamic system scheduling
US20110247003A1 (en) * 2010-03-31 2011-10-06 International Business Machines Corporation Predictive Dynamic System Scheduling
WO2012034793A1 (en) 2010-09-13 2012-03-22 International Business Machines Corporation Real address accessing in a coprocessor executing on behalf of an unprivileged process

Also Published As

Publication number Publication date
JP3628590B2 (en) 2005-03-16
KR20010014861A (en) 2001-02-26
JP2000357102A (en) 2000-12-26
KR100369280B1 (en) 2003-01-24
TW581969B (en) 2004-04-01

Similar Documents

Publication Publication Date Title
US6691146B1 (en) Logical partition manager and method
US7676618B2 (en) Controlling resource transfers in a logically partitioned computer system
US7000051B2 (en) Apparatus and method for virtualizing interrupts in a logically partitioned computer system
US7076634B2 (en) Address translation manager and method for a logically partitioned computer system
US6957435B2 (en) Method and apparatus for allocating processor resources in a logically partitioned computer system
US7428485B2 (en) System for yielding to a processor
US7085862B2 (en) Apparatus and method for controlling resource transfers in a logically partitioned computer system by placing a resource in a power on reset state when transferring the resource to a logical partition
US6681240B1 (en) Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions
US20080201550A1 (en) Autonomically suspending and resuming logical partitions when i/o reconfiguration is required
US7765379B2 (en) Parallel installation of logical partitions
US7783807B2 (en) Controlling resource transfers in a logically partitioned computer system
KR20060004919A (en) Concurrent access of shared resources
AU603876B2 (en) Multiple i/o bus virtual broadcast of programmed i/o instructions
US7130982B2 (en) Logical memory tags for redirected DMA operations
US6598105B1 (en) Interrupt arbiter for a computing system

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ARMSTRONG, WILLIAM JOSEPH;MCMAHON, LYNN ALLEN;SCHEEL, JEFFREY JAY;REEL/FRAME:009976/0482

Effective date: 19990519

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12