KR100419680B1 - 계산 환경의 코프로세서 내에서의 비동기 i/o 요청들의 관리 방법 및 시스템과 기록 매체 - Google Patents

계산 환경의 코프로세서 내에서의 비동기 i/o 요청들의 관리 방법 및 시스템과 기록 매체 Download PDF

Info

Publication number
KR100419680B1
KR100419680B1 KR10-2000-0054696A KR20000054696A KR100419680B1 KR 100419680 B1 KR100419680 B1 KR 100419680B1 KR 20000054696 A KR20000054696 A KR 20000054696A KR 100419680 B1 KR100419680 B1 KR 100419680B1
Authority
KR
South Korea
Prior art keywords
asynchronous
initiation
requests
priority
request
Prior art date
Application number
KR10-2000-0054696A
Other languages
English (en)
Other versions
KR20010050504A (ko
Inventor
마에그너쥬르건
메리트앨렌에스
닉제프리엠
위맨레즐리더블유
유덴프렌드해리엠
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
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 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20010050504A publication Critical patent/KR20010050504A/ko
Application granted granted Critical
Publication of KR100419680B1 publication Critical patent/KR100419680B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

계산 환경의 코프로세서 내에서 입력/출력(I/O) 요청들과 같은 비동기 요청들이 관리된다. 이 비동기 요청들의 관리는 그 비동기 요청들과 관련된 우선순위들에 근거하여 이루어진다. 이 관리는 예컨대, 우선순위 방식을 이용하여 처리될 비동기 요청을 선택하고 그리고/또는 우선순위 방식을 이용하여 자원들을 그 비동기 요청들에 할당하는 과정을 포함한다.

Description

계산 환경의 코프로세서 내에서의 비동기 I/O 요청들의 관리 방법 및 시스템과 기록 매체{PROCESSING CHANNEL SUBSYSTEM PENDING I/O WORK QUEUES BASED ON PRIORITIES}
본 출원은 각각 본 출원의 양수인에게 양도되었으며, 본 출원과 동일자로 출원된 출원들의 주제와 관련이 있는 주제를 포함하고 있다. 하기 열거된 출원들 각각은 참고자료로서 여기에 인용하는 것이다.
발명자 Kubala 등의 이름으로 1999.9.28에 출원된 출원번호 제 09/408,470 호의 "계산 환경의 작업부하를 관리하기 위해 계산 환경의 공유가능한 자원들에 대한 동적 재배분(Dynamically Redistribution Shareable Resources of a Computing Environment to Manager the Workload of that Environment)".
발명자 Kubala 등의 이름으로 1999.9.28에 출원된 출원번호 제 09/407,391 호의 "계산 환경의 분할 그룹들을 관리하는 방법, 시스템 및 프로그램 제품(Method, System and Program Products for Managing Groups of Partitions of a computing Environment)".
발명자 Eilert 등의 이름으로 1999.9.28에 출원된 출원번호 제 09/407,212 호의 "계산 환경의 중앙 처리 유닛 자원들을 관리하는 방법, 시스템 및 프로그램 제품(Method, System and Program Products for Managing Central Processing Unit Resources of a computing Environment)".
발명자 King 등의 이름으로 1999.9.28에 출원된 출원번호 제 09/407,594 호의 "계산 환경의 논리 프로세서들을 관리하는 방법, 시스템 및 프로그램 제품(Method, System and Program Products for Managing Logical Processors of a Computing Environment)".
발명자 Cwiakala 등의 이름으로 1999.9.28에 출원된 출원번호 제 09/407,544 호의 "계산 환경의 I/O 구성들을 관리하는 방법, 시스템 및 프로그램 제품(Method, System and Program Products for Managing Configurations of a computing Environment)".
발명자 William J. Rooney의 이름으로 1999.9.28에 출원된 출원번호 제 09/407,453 호의 "I/O 구성 엔트로피를 결정하는 방법, 시스템 및 프로그램 제품(Method, System and Program Products for Determining I/O Configuration Entropy".
발명자 Rooney 등의 이름으로 1999.9.28에 출원된 출원번호 제 09/407,810 호의 "논리 분할 클러스터들에 자원들을 할당하는 방법 및 장치(Method and Apparatus for Assigning Resources to Logical Partition Clusters)".
발명자 Rooney 등의 이름으로 1999.9.28에 출원된 출원번호 제 09/407,514 호의 "논리 분할 클러스터들을 생성 및 식별하는 방법 및 장치(Method and Apparatus for Creating and Identifying Logical Partition Clusters)".
본 발명은 일반적으로 계산 시스템 내에서 작업부하(workload)를 관리하는 것에 관한 것으로, 특히 논리적으로 분할된 시스템에서와 같은 그러한 분할 시스템에서 작업부하를 관리하는 것에 관한 것이다.
논리 분할(logical partitioning)은 단일의 물리적 머신 또는 중앙 프로세서 복합체(CPC : Central Processor Complex) 내에서 복수의 시스템 이미지들을 구성(establishment)할 수 있게 한다. 각각의 시스템 이미지는 마치 개별 컴퓨터 시스템인 것처럼 동작할 수 있다. 즉, 각각의 논리 분할은 독립적으로 리세트되며 각각의 논리 분할에 대해 다를 수 있는 오퍼레이팅 시스템이 초기에 로딩될 수 있고 서로 다른 입/출력(I/O)장치들을 이용하여 서로 다른 소프트웨어 프로그램들과 함께 동작할 수 있다.
논리적으로 분할된 컴퓨터 시스템의 예들로서, 예컨대 발명의 명칭이 "분할 멀티프로세서 프로그래밍 시스템"인 Guyettee 등에게 허여된 미국 특허 제 4,564,903호(1986.1.24), 발명의 명칭이 "데이터 처리 시스템의 논리적 자원 분할"인 Beam 등에게 허여된 미국 특허 제 4,843,541호(1989.6.27), 발명의 명칭이 "논리적으로 분할된 하드웨어 머신에서 서버 기능을 제공하는 방법 및 장치" Kubala에게 허여된 미국 특허 제 5,54,040호(1996.10.8)가 있다. 이들은 참고자료로서 여기에 인용된다.
논리적 분할 시스템의 상업적으로 실시되는 예들에는 예컨대 IBM공보 Processor Resource/Systems Manager Planning Guide, GA22-7236-04(1999년 3월)에 기술된 Processor Resource/Systems ManagerTM(PR/SMTM) 기능을 갖는 IBM S/390프로세서가 포함되는데, 이는 참고자료로서 여기에 인용되었다.
논리 분할 시스템의 하나의 중요한 양상은 그 시스템에의 분할들 내에서 실행되는 작업부하(workload)의 관리이다. 예컨대, S/390 시스템에서 작업부하 관리기들(workload managers)은 그 분할들 사이에서 그 작업부하를 관리하는데 이용된다. 작업부하 관리기들은 작업(work)을 시스템의 물리적 자원들(physical resources)에 이동시킴으로써 분할들(partitions)의 작업부하에 대한 균형(balance)을 유지하려 한다. 그러나, 그 작업을 이동시키기 위해서는 위치가 재설정된 작업에 의해 요구되는 데이터가 그 이동된 위치에 놓이도록 하는 것이 중요하다. 따라서, 비록 논리적으로 분할된 시스템 내에서 작업부하의 균형을 유지하는 노력이 이루어졌다 하더라도 추가의 요구 및 노력을 필요로 하게 된다.
종래 기술의 단점들은 계산 환경의 코프로세서(coprocessor) 내에서 비동기 요청(asynchronous request)을 관리하는 방법을 제공함으로써 해소되고 추가의 장점들이 얻어지게 된다. 본 방법은 예컨대 코프로세서에 의해 하나 이상의 처리될 비동기 요청들을 얻고, 상기 하나 이상의 비동기 요청으로부터 처리될 비동기 요청을 선택하는 과정을 포함한다. 상기 선택은 상기 하나 이상의 비동기 요청들의 적어도 하나의 요청에 적어도 하나의 우선순위를 할당하는 것을 이용한다.
본 발명의 다른 양상에서, 계산 환경의 코프로세서내에서의 비동기 요청들을 관리하는 방법이 제공된다. 예컨대, 이 방법은 코프로세서에 의해 하나 이상의 처리될 비동기 요청을 얻고, 그 코프로세서 내에서 하나 이상의 비동기 요청을 관리하는 프로세스를 포함한다. 상기 관리는 하나 이상의 비동기 요청들 중 적어도 하나의 비동기 요청에 할당되는 적어도 하나의 우선순위를 이용한다.
상기 개략적으로 설명된 방법에 대응하는 시스템 및 컴퓨터 프로그램이 또한 상세한 설명 및 청구의 범위에 기재되어 있다.
바람직하게는, 본 발명의 적어도 하나의 양상은 우선순위 처리(priority processing)에 근거하여 비동기 요청의 관리를 가능하게 하는 것이다. 우선순위 처리 방식을 사용함으로써, 예컨대 코프로세서에서의 큐 동작(queuing) 지연으로 인한 연장 응답 시간의 주파수(예컨대 중요성이 높은 동작 및 시간이 중요한 비동기 동작에 대한)가 최소화된다. 또한, 우선순위 처리 방식을 사용함으로써 적어도 하나의 기준으로서 우선순위에 근거하여 자원들이 할당된다.
추가의 특징 및 장점들이 본 발명의 기술들을 통해 실현된다. 본 발명의 다른 실시예 및 기술들이 상세히 설명이 되며, 청구의 범위에 설정되어 있다.
본 발명으로서 간주되는 주제가 특별히 강조되며, 명세서의 특허청구의 범위에 청구되고 있다. 본 발명의 상기 및 기타 목적, 특징 및 장점들이 첨부도면을 참조로 한 다음의 상세한 설명으로부터 명확해 질 것이다.
도 1a는 본 발명의 특성들이 합체되어 이용되는 계산 환경의 한 예를 보인 도면.
도 1b는 본 발명의 특성들이 합체되어 이용되는 계산 환경의 다른 예를 보인 도면.
도 2는 본 발명의 특성들이 합체되어 이용되는 계산 환경의 다른 구성요소를 보인 도면.
도 3은 본 발명의 원리에 따라 이용되는 논리적 분할의 한 예를 보인 도면.
도 4a-4b는 본 발명의 원리에 따라 그룹을 결합하는 분할(partition)과 관련된 논리(logic)의 한 예를 보인 도면.
도 5는 본 발명의 원리에 따라 그룹으로부터 분할을 삭제하는 것과 관련된 논리의 한 실시예를 보인 도면.
도 6은 본 발명의 원리에 따라, 분할의 가중치가 그 분할의 수신기 서비스 클래스에 기여를 하도록 증대될 수 있는지를 결정하는 것과 관련된 논리의 한 실시예를 보인 도면.
도 7은 본 발명의 원리에 따라, 논리 프로세서들의 구성을 동적으로 조정하는 것과 관련된 논리의 한 실시예를 보인 도면.
도 8은 본 발명의 하나 이상의 특성들이 합체되어 이용되는 채널 서브시스템의 한 실시예를 보인 도면.
도 9는 본 발명의 원리에 따라 처리될 I/O 동작을 선택하는 것과 관련된 논리의 한 실시예 보인 도면.
도 10은 본 발명의 원리에 따라, I/O 구성이 조정될 수 있는지를 결정하는 것과 관련된 논리의 한 실시예를 보인 도면.
도 11은 본 발명의 원리에 따라, 도 10의 데이터 수집과 관련된 논리의 한 실시예를 보인 도면.
도 12는 본 발명의 원리에 따라, 도 10의 균형유지 체크와 관련된 논리의 한 실시예를 보인 도면.
도 13a-13b는 본 발명의 원리에 따라, I/O 구성의 불균형을 보정하는 것과 관련된 논리의 한 실시예를 보인 도면.
도 14는 본 발명의 원리에 따라, 유효 서브시스템들을 결정하는 것과 관련된 논리의 한 실시예를 보인 도면.
도 15는 본 발명의 원리에 따라 이용되는 명확한 I/O 속도 타겟을 설정하는 것과 관련된 논리의 한 실시예를 보인 도면.
도 16a-22c는 본 발명의 원리에 따라, 엔트로피를 결정하는데 사용되는 I/O구성의 다양한 예를 보인 도면.
계산 환경의 작업부하의 균형을 맞추기 위해 계산 환경의 자원들의 할당을 동적으로 조정할 수 있게 하는 작업부하 관리 능력이 제공된다. 한 예에서, 이 계산 환경은 복수의 논리적 분할을 포함하며, 이 작업부하는 두개 이상의 분할들을 통해 관리된다.
본 발명의 작업부하 관리 능력들을 결합하여 이용하는 계산 환경의 한 실시예를 도 1a와 관계하여 설명한다. 계산 환경(100)은 예컨대 뉴욕 아몬크 소재의 IBM사에 의해 제공되는 엔터프라이즈 시스템즈 아키텍춰 (ESA)/390에 기초한다. ESA/390은 참고자료로서 여기에 인용하는 1997년 IBM 공보 제SA22-7201-04호의 "Enterprise Systems Architecture/390 Principles of Operation"에 기술되어 있다. ESA/390에 기초하는 계산 환경의 한 예는 IBM사에 의해 제공되는 9672 병렬 엔터프라이즈 서버이다.
계산 환경(100)은 예컨대 하나 이상의 중앙 프로세서(106)(예컨대 CP1-CP4), 하나 이상의 분할(108)(예컨대, 논리 분할(LP1-LP4) 및 적어도 하나의 논리 분할 관리기(110)를 갖는 중앙 프로세서 복합체를 포함하는 바, 이들 각각에 대해서는 하기에 설명하기로 한다.
중앙 프로세서(106)는 논리 분할들에 할당되는 물리적인 프로세서 자원이다. 특히, 각 논리 분할(108)은 하나 이상의 논리 프로세서들(간략성을 위해 개별적으로 나타내지는 않음)을 가지며, 이들 각각은 그 분할에 할당되는 모든 물리적 프로세서들 또는 그 일부를 나타낸다. 특정 분할(108)의 논리 프로세서들은 그 분할에 전용되거나(따라서, 기초가 되는 프로세서 자원(106)이 그 분할에 예약될 수 있다) 또는 다른 분할과 공유될 수 있다(따라서, 기초가 되는 프로세서 자원이 다른 분할에 잠정적으로 이용될 수 있게 된다).
도시한 특정 예에서, 논리 분할들(LP1-LP4) 각각은(각 논리 분할에 대해 다를 수 있는) 상주 오퍼레이팅 시스템 및 하나 이상의 응용(114)을 갖는 개별 시스템으로서 기능을 한다. 한 실시예에서, 오퍼레이팅 시스템(112)은 IBM사에 의해 제공되는 OS/390TM또는 MVS/ESATM오퍼레이팅 시스템이다.
또한, 각 오퍼레이팅 시스템(또는 이것의 서브세트)은 하나의 분할 내에서 및 여러 분할들 사이에서 작업부하를 관리하는 작업부하 관리기(116)를 포함한다. 작업부하 관리기의 한 예는 IBM사에 의해 제공되는 WLM이다. WLM은 예컨대 참고자료로서 여기에 인용하는 발명의 명칭이 "두개 이상의 독특한 처리 목표에 따른 데이터 처리 시스템 작업부하 관리 장치 및 방법"인 Aman등에게 허여된 미국특허 제 5,473,773 호(1995.12.5)와 발명의 명칭이 "복수의 독특한 처리 목표 유형에 따른 분산 데이터 처리 시스템 작업부하 관리 장치 및 방법"인 Eilert등에게 허여된 미국특허 제5,675,739호(1997.10.7)에 기술되어 있다.
논리 분할(108)은 프로세서(106) 상에서 실행되는 마이크로코드에 의해 실시되는 논리 분할 관리기(110)에 의해 관리된다. 논리 분할(108)(LP1-LP4)과 논리 분할 관리기(110)는 각각 중앙 프로세서와 관련된 중앙 기억장치의 각 부분들에 상주하는 하나 이상의 프로그램을 포함한다. 논리 분할 관리기(110)의 한 예는 PR/SM 이다.
계산 환경의 추가의 실시예에서, 두개 이상의 중앙 프로세서 복합체가 도 1b에 보인 바와같이 시스플렉스(sysplex)를 형성하도록 서로 결합된다. 한 예에서, 중앙 프로세서 복합체(CPC)(120)는 예컨대 결합 설비(122)를 통해 하나 이상의 다른 CPC들에 결합된다.
도시된 예에서, CPC(120)는 논리 분할 관리기(126)에 의해 관리되는 복수의 논리 분할들(124)(예컨대, LP1-LP3)을 포함한다. 하나 이상의 논리 분할들은 작업부하 관리기와 하나 이상의 응용 프로그램(명료화를 위해 본 예에서는 나타내지 않음)을 가질수 있는 오퍼레이팅 시스템을 포함한다. 추가로, CPC(120)는 복수의 중앙 프로세서(128)(예컨대, CP1-CP3)를 포함하며, 이들의 자원들은 복수의 논리 분할들 사이에 할당된다. 특히, 이 자원들은 각 분할의 하나 이상의 논리 프로세서들(130) 사이에 할당된다. 다른 실시예에서, 각 CPC는 하나 이상의 논리 분할 및 하나 이상의 중앙 프로세서를 가질 수 있다.
결합 설비(122)(구성된 외부 저장 (SES) 프로세서로서 칭하기도 함)는 중앙 프로세서 복합체에 의해 액세스 가능한 기억장치를 포함하며 CPC들의 프로그램들에 의해 요청되는 동작을 수행한다. 이 결합 설비는 공유 자원 재분배 결정을 행하는데 있어 이용되는 상태 정보의 공유를 위해 본 발명의 다양한 양상으로 이용된다. 한 실시예에서, 각 중앙 프로세서 복합체는 복수의 결합 설비들에 결합된다. 결합 설비의 동작에 대한 양상들은 참고 자료로서 여기에 인용되는 발명의 명칭이 "데이터 처리 시스템을 결합하는 방법 및 장치"인 Elko등에게 허여된 미국 특허 제 5,317,739호(1994.5.31), 발명의 명칭이 "결합 설비를 갖는 멀티프로세싱 시스템에서, 동기 오퍼레이션 또는 비동기 오퍼레이션에서의 프로세서들과 결합 설비들간의 메시지 통신"인 Elko등에게 허여된 미국특허 제 5,561,809호(1996.10.1) 및 발명의 명칭이 "결합 설비에서 메시지 수신을 위한 메커니즘"인 Elko등에게 하여된 미국특허 제 5,706,432호(1998.1.6)와 같은 참조자료에 상세히 설명되고 있다
한 실시예에서, 하나 이상의 중앙 프로세서들이, I/O 디바이스들과 통신을 하는데 이용되는 적어도 하나의 채널 서브 시스템에 이용된다. 예컨대, 중앙 프로세서(200)(도 2)는 주 저장부(202) 및 적어도 하나의 채널 서브시스템(204)에 결합된다. 채널 서브시스템(204)은 또한 하나 이상의 제어 유닛(206)에 결합된다. 제어유닛(206)은 하나 이상의 I/O 디바이스(208)에 결합된다.
채널 서브시스템은 I/O 디바이스와 주 저장부 사이에 정보가 흐르도록 해준다. 이는 I/O 디바이스들과 직접 통신을 행하는 중앙 처리 유닛의 태스크를 경감해주며, 데이터 처리가 I/O 프로세스와 동시에 진행되도록 해준다. 채널 서브시스템은 I/O 디바이스(208) 안팎으로 정보의 흐름을 관리하는데 있어 통신 링크로서 하나 이상의 채널 경로(214)를 이용한다.
각 채널 경로(214)는 예컨대 채널 서브시스템(204)의 채널(210), 제어 유닛(206) 및 상기 채널과 제어유닛 사이의 링크(212)를 포함한다. 다른 실시예들에서, 채널 경로는 복수의 채널들, 제어 유닛들 및/또는 링크들을 가질 수 있다. 또한, 다른 예에서, 상기 채널 경로의 일부로서 하나 이상의 동적 스위치를 갖는 것도 가능하다. 동적 스위치는 채널과 제어유닛에 결합되어, 그 스위치에 부착된 어떤 두개의 링크를 물리적으로 상호 연결할 수 있는 성능을 제공한다. 채널 서브시스템들에 관한 추가의 상세 내용이 참고자료로 여기에 인용하는 1996년 6월 12일자로 Casper등에게 허여된 발명의 명칭이 "채널 명령어들의 처리를 파이프라인하는 방법 및 시스템"인 미국 특허번호 제5,526,484호에 기술되어 있다.
본 발명의 한 양상에서, 다양한 물리적 자원들이 하나 이상의 작업부하 관리기의 지령하에서 계산 환경의 논리 분할들을 통해 동적으로 재배분된다. 이와 같은 동적 재배분은 응용 서브 시스템들에 투명하다. 예로써, 재배분될 물리적 자원들은 CPU 자원, 논리 프로세서 자원, I/O 자원, 코프로세서, 채널 자원, 네트워크 어댑터 및 메모리 자원들을 포함한다. 한 예로써, 코프로세서는 특별한 기능을 하는 CPC 내의(CPU가 아닌) 마이크로프로세서이다. 코프로세서들의 예로는 예컨대 채널 서브 시스템, 네트워크 어댑터 및 암호 코프로세서들이 포함된다. 상기 물리적 자원들은 단지 예로써 제공된다. 다른 공유 가능한 자원들이 또한 본 발명의 사상을 벗어나지 않고 재배분될 수 있다.
한 실시예로서, 자원들의 동적 재배분을 용이하게 하기위해, 논리 분할들이 서로 그룹화되어 그 그룹의 분할들 사이에서 상기 자원들을 공유하도록 할 수 있다. 각 그룹은 싸이즈가 1분할에서 3분할로 다양할 수 있다. 한 예에서, 하나 이상의 그룹들이 계산 환경의 모든 분할보다 적은 하나 이상의 분할을 포함한다. 특히, 각 그룹은 예컨대 작업부하 및 자원들을 배분하도록 공통 작업부하 관리기에 의해 관리되는 머신의 독립적인 도메인들에서 실행되는 하나 이상의 오퍼레이팅 시스템을 포함한다. 한 예에서, 이들 도메인들은 논리적으로 분할된 모드로 수행되는 논리 분할들이며, 이 오퍼레이팅 시스템들은 그 논리 분할들에서 수행되는 OS/390이다. 한 그룹의 논리 분할들은 시스템(예컨대, CPC) 또는 시스플렉스의 서브세트 분할들일 수 있으며, 전체 시스템 또는 시스플렉스는 (예컨대, 단일 CPC상의) 서로 다른 시스플렉스들 또는 시스템들의 분할들일 수 있다.
중앙 프로세서 복합체의 두개의 논리 분할그룹(즉 클러스터)의 한 예가 도 3에 도시되어 있다. 도시된 바와 같이, 논리 분할그룹 A(300) 및 논리 분할그룹 B(302)가 있는데, 이들 각각은 하나 이상의 논리 분할을 포함한다. 논리 분할들의 그룹화는 자원 할당을 통해 한 그룹의 분할들 사이에서 자원공유(예컨대, 우선순위에 기초한 지원할당)를 가능하게 한다.
예로써, 공유될 자원들은 CPU 자원, I/O 자원 및 메모리를 포함할 뿐만 아니라 코프로세서 또는 머신이 제공하는 어떤 다른 공유가능한 자원을 포함한다. 임의의 특별한 논리 분할은 특별한 머신의 모든 자원들에 액세스하거나 또는 할 수 없다. 사실, 복수의 논리 분할 그룹은 단일 머신에서 동시에 동작하도록 정의될 수 있다. 특별한 논리 분할 그룹을 효과적으로 관리하기 위해, 특별한 논리 분할 그룹을 구성하는 자원들은 상기 그룹에 효과적으로 스코핑(scoping)된다.
이 스코핑은 어떤 자원들이 각 그룹에 할당 가능한지를 확인하는 단계를 포함한다. 특히, 스코핑은 어떤 자원들이 그 그룹으로 한정되는지 및 그 그룹에 대해 관리될 수 있는지를 정의한다. 논리 분할 그룹을 구성하는 논리 분할들은 자원들의 컨테이너로 생각될 수 있다. 이들 컨테이너들은 논리 분할들에 이용될 수 있는 전체 세트의 자원들의 바운드 내에 존재한다. 이것은 특별한 CPC에서 이용될 수 있는 한 예에서, 상기 자원들의 전체 세트이다.
특별한 논리 분할 그룹(예컨대, 논리 분할 그룹 A)을 구성하는 논리 분할들은 전체 공유가능한 자원들의 특별한 부분을 할당받는다. 예컨대, 공유 가능한 자원들이 CPU 자원인 것으로 가정해보자. CPU 자원들이 공유되면, 논리 분할 그룹 A에 포함되는 논리 분할들은 전체 중앙 프로세서 복합체의 CPU 자원의 특별한 부분을 할당받는다. 이들 자원들은 특별한 그룹 내의 논리 분할들에 의해 공유되며, 뿐만아니라 다른 논리 분할 그룹 내의 논리 분할들 및 어떠한 논리 분할 그룹에도 포함되지 않은 다른 논리 분할들과 공유된다. 따라서, (예컨대, 논리 분할 그룹 내의 한 분할로부터 다른 그룹 내의 분할로) 어떤 그룹 내의 자원들을 이동시키는 것에 관한 결정을 내리고자 하는 작업부하 관리기는 그 그룹을 포함하는 자원들에 대해 이해뿐만 아니라 보다 큰 컨테이너(예컨대, CPC)가 포함하는 것에 대해 이해를 하게 될 것이다. 작업부하를 관리하는 것에 관한 결정을 내리는데 이용되는 측정피드백(예컨대, 결합설비에 저장된 상태정보)은 전술한 바와 같이 고객이 정의한 컨테이너들을 이해하기에 충분하게 된 것이다.
이러한 이해가 이루어지면, 소정 그룹의 논리 분할들에서 자원할당에 대한 작업부하 관리기가 지령하는 변화들이 그 컨테이너 싸이즈를 일정하게 유지하도록 하는 식으로 이루어진다(즉, 자원들이 그 논리 분할 그룹에 할당된다). 예컨대, 관리될 자원들이 CPU 자원이고 각 논리 분할이 우선순위를 나타내는 CPU 처리 가중치를 할당받는다고 가정해보자. CPU에 상대적인 가중치를 관리하기 위해, 소정그룹에 있는 논리 분할들에 대한 상대적인 가중치의 합은 예컨대 작업부하 관리기를 통해 그 지령된 변화를 전후하여 일정하게 유지되게 된다. 이는 상기 그룹 및 머신에 존재하는 다른 논리 분할들로의 고객이 할당한 자원들의 할당을 유지해준다.
상기 사항에도 불구하고 어떤 경우들에 있어서는 그들 자원들이 그들의 지정 소유자들에 의해 이용되지 않을 때 분할들의 그룹이 정의된 컨테이너보다 큰 자원들을 활용하는 것이 바람직하며 가능하다.
그러나, 그 자원들에 대한 회선쟁탈이 발생하는 한 그 자원들은 정의된 컨테이너 싸이즈(예컨대, 본 예에서는 처리가중치)에 따라 LPAR 관리기에 의해 관리된다. 그러나, 그 그룹이 그의 컨테이너를 초과하여 확장하는 것이 허락되지 않는 다른 경우들이 있을 수 있다. 이것 역시 스코핑으로 가능하다. 다른 자원들은 그 자원들의 이용의 정확한 화상을 얻을 수 있도록 단일 그룹으로 완전히 스코핑되어야 함을 필요로 한다. 이러한 방식에서의 제한은 소정 그룹 밖의 논리 분할이 그 자원들을 액세스하지 못하게 한다.
상기 내용에 추가로, 논리 분할 그룹 내에서 자원들의 이용가능성에 대한 외부 변경들의 유효(effect)에 대해 고려할 수 있다. 예컨대,(작업부하 관리기의 지령하에서가 아닌) 일부 외부수단들을 통해 자원의 할당을 변경시킬 수 있다. 이는 머신상에 존재하는 실제 작업 부하에서의 변경 또는 그룹 및/ 또는 다른 논리 분할들간의 비지니스 우선순위에서의 시프트로 인해 행해진다. 이들 변경들이 이루어 질 때, 이들 변경들은 작업부하 관리기에 의해 이해되며, 이들 변경들의 유효는 합리적으로 배분된다. 논리 분할이 그룹에 추가되거나 또는 이로부터 삭제될 때, 그 그룹 외부의 어떤 다른 논리 분할이 추가 또는 삭제될 때, 또는 단순히 외부 수단을 통해 프로세싱 가중치 변경이 수행될 때 변화가 발생한다.
이들 외부 변경이 수행될 때, 컨테이너의 싸이즈가 변경될 수 있으며, 작업부하는 이제 새로운 싸이즈의 컨테이너의 관리기가 된다.
그룹의 특별한 논리 분할에 기인된 자원들이 외부적으로 변경될 때, 그룹내의 자원들의 재배분이 필요로 된다. 예컨대, 그룹으로부터 논리 분할이 제거되면, 그 논리 분할과 관련된 프로세싱 가중치가 그 그룹으로부터 삭제된다. 만일 논리 분할에 대해 현재의 작업부하 관리기가 할당한 가중치가 삭제되는 논리 분할의 가중치(즉, 초기에 논리 분할과 관련된 프로세싱 가중치)보다 크면, 이들 가중치들간의 차가 그 그룹의 다른 논리 분할에 가산된다. 이는 예컨대 그 그룹의 다른 논리 분할에서의 기존 가중치의 분산에 비례하여 수행된다. 만일 논리 분할에 대해 현재의 작업부하 관리기가 할당한 가중치가 논리 분할의 초기 가중치보다 작으면, 이들 가중치들간의 차가 그 그룹의 다른 논리 분할들로부터 감산된다. 다시, 이는 한 예로서 다른 논리 분할 가중치 할당에 비례하여 수행된다.
전술한 바와 같이, 그룹에 할당된 자원들 및 변경이 허락된 자원들에 대한 처리를 할 수 있도록 한 그룹이 스코핑되어, 작업부하 관리기는 다음에 무엇을 할 것인지에 대해 정확히 결정할 수 있게 된다. 이 스코핑은 그 그룹들의 확인하에 프로그램이 이해할 수 있는 정보를 그 프로그램에 제공한다. 그룹이 변경되면, 그 자원들은 그 변경을 만족하도록 동적으로 조정된다.
한 실시예에서, 각 자원에 대해 개별 그룹들(클러스터들)이 있을 수 있다. 예컨대, 논리 분할 그룹 A는 CPU 자원용으로 될 수 있으며, 논리 분할 그룹 B는 I/O 자원용으로 될 수 있다. 그러나, 다른 실시예들에서, 하나의 논리 분할 그룹이 이들 자원들의 서브세트 또는 모든 자원용으로 될 수 있다.
한 예에서, LPAR 그룹 스코핑이 이루어질 수 있도록 하기위해, 논리 분할들은 그들 자체를 하나 이상의 그룹의 분할들로 간주한다. 그룹을 결합하는것과 관련된 논리의 한 실시예를 도 4a-4b를 참조로 하여 설명한다. 예컨대, 논리 분할 그룹을 결합하기 위해, 논리 분할로 실행되는 오퍼레이팅 시스템(예컨대, OS/390)은 LPAR 관계자에게 논리 분할의 어떤 LPAR 그룹이 그의 일부분이 되는지를 표시해 준다(단계 400). 한 예로서, 임의의 명령이 LPAR 그룹 이름을 LPAR 관리자에게 전달하는데 사용된다. 오퍼레이팅 시스템은 LPAR 그룹들 내에서 관리될 각 타입의 자원들에 대한 이름을 명기한다. 따라서, 만일 다른 자원들이 있으면(단계 402), 다른 이름들이 명기된다. 예컨대, CPU 자원들에 대해 한 그룹 이름이 부여되고, I/O 자원들에 대해 다른 이름이 부여된다. 필요한 경우, 각 자원 타입에 대해 동일한 LPAR 그룹 이름이 명기될 수 있다.
OS/390에 의한 이와 같은 선언은(만일 논리 분할이 그 이름을 사용하기 위한 제 1 논리 분할인 경우) 머신에 새로운 LPAR 그룹을 설정하거나 아니면 이 논리 분할이 그 자원타입에 대해 동일한 이름의 기존 LPAR 그룹을 결합하도록 한다. 예컨대, 일단 그룹 이름이 명기되면(도4b의 단계 404), 이것이 새로운 이름인지에 관한 판정이 행해진다(단계 406). 만일 그러하면, 새로운 그룹이 생성된다(408). 그렇지 않은 경우, 기존 그룹이 결합 된다(단계410). 그후, 자원들이 그룹에 스코핑된다(단계412).
특히, LPAR 그룹에서 실행되는 WLM이 그렇게 해야 하는 것으로 결정하면 LPAR 그룹에 구속된 그룹 타입의 자원들은 이제 그 논리 분할을 활용할 수 있게 된다. 스코핑을 필요로 하는 LPAR 그룹에 대한 특별한 타입의 자원들은 적어도 두 개의 종류, 즉 부가자원 및 고정자원을 포함한다.
부가자원 : 어떤 경우들에서, LPAR 그룹의 결합은 논리 분할이 방금 결합된 LPAR 그룹에 자원들을 부가한다. 이것의 한 예는 예컨대 고객에 의해 하드웨어 콘솔에서의 논리 분할에 할당되는 CPU 프로세싱 가중치이다. 논리 분할의(이용중인)현재의 프로세싱 가중치는 논리 분할이 실행될 때 이 고객이 할당한 가중치로부터 초기화된다.
논리 분할이 CPU 자원들에 대한 LPAR 그룹을 결합할 때, 그 논리 분할에 대한 고객이 할당한 프로세싱 가중치는 LAPR 그룹 내에서 이용에 유용한 전체 프로세싱 가중치의 일부분이 되며, 따라서, WLM에 의해 그 LPAR 그룹 내에서 재할당될 수 있다. 방금 LPAR 그룹을 결합한 논리 분할은 이제 기여가 방금 행해진 보다 큰 세트의 LPAR 그룹 자원들을 이용할 수 있는 잠재력을 갖게 된다.
고정자원들 : 어떤 경우들에서, 한 세트의 자원들은 특별한 LPAR 그룹에 속하는 것으로 사전정의된다. 이것의 한 예는 피관리(플로팅)채널 경로이다. 피관리 채널 경로는 그의 자원들이 작업부하 목표를 달성하는데 기여하도록 재할당될 수 있는 채널 경로이다. 특별한 LPAR 그룹에 의해 이용될 피관리 채널 경로들의 세트는 채널경로(CHPID)들을 LPAR 그룹과 관계시키는 I/O 구성 정의 프로세스를 통해 초기에 정의된다. 논리 분할이 LPAR 그룹에 결합되면, 이는 이 채널 경로세트로의 액세스를 허락 받는다. 논리 분할은 자체적으로 이 자원 풀(resource pool)에 어떠한 기여도 하지 않았다. (자원들의 이러한 풀은 여전히 동적으로 변경될 수 있지만, 중요한 것은 논리 분할들이 LPAR 그룹에 결합되거나 이로부터 이탈될 때 그 자원들이 오고가지 않는다는 것이다).
LPAR 스코핑은 또한 자원의 타입에 따라 자원들에 대해 다르게 시행될 수 있다.
부가 자원들 : LPAR 그룹에서의 오퍼레이팅 시스템은 LPAR 그룹에 대해 이와같은 타입의 완전한 세트의 자원들에 질의할 수 있다. 한 예로써, CPU 프로세싱 가중치에 대해, 이는 명령을 통해 성취된다. 오퍼레이팅 시스템은 LPAR 그룹내에서의 전체세트의 이와 같은 자원의 타입, 그 그룹에서의 논리 분할들로의 그 자원들의 할당 및 현재의 머신에서 이용가능한 자원풀의 완전한 싸이즈를 학습한다. 이들 모든 성분들은 전체 물리적 자원들중 얼마나 많은 자원이 한 논리 분할에 할당될 것인지를 이해하는데 이용된다. 그 다음, 오퍼레이팅 시스템은 그룹내에 자원들을 재할당하기 위해 LPAR 그룹에 있는 논리 분할들로의 할당들을 업데이팅한다. 한 예에서, 오퍼레이팅 시스템은 LPAR 그룹에 할당된 자원의 전체 량에 대한 변경을 허락받지 못한다. LPAR 관리기는 LPAR 그룹의 모든 부분들이 한 업데이팅에서 설명되고 그리고 LPAR 그룹밖의 어떠한 논리 분할들도 그들의 자원들이 영향을 받지 않음을 확신함으로써 이를 수행한다.
고정자원: LPAR 그룹에서의 오퍼레이팅 시스템은 이와 같은 타입의 자원에 대한 그의 LPAR 그룹과 관련있는 자원들의 세트에 질의를 한다. 예컨대, 피관리 채널 경로에 있어, 특별한 LPAR 그룹에 대해 정의된 피관리 경로의 리스트가 명령을 통해 LPAR 관리기로부터 검색될 수 있다. LPAR 관리기는 또한 이들 자원들을 심사하여 이들이 오직 적절한 LPAR 그룹에 의해서만 활용되는지를 확인한다. 피관리 채널들에 있어서, 이는 피관리 채널 경로가 그 피관리 채널 경로에 대해 정의된 이름과 부합하는 LPAR 그룹 이름을 선언한 논리 분할에 온라인으로 구성되도록 함을 의미한다.
LPAR 그룹의 일부인 논리 분할이 시스템 리세트되거나, 재-IPL되거나 또는 작동 해제될 때, 논리 분할이 하나 이상의 LPAR 그룹들과 행해온 어떤 관계가 삭제된다. 그룹으로부터 논리 분할을 삭제하는 것과 관련된 논리의 한 실시예를 도 5와 관계하여 설명한다. 리세트의 부분으로써, 논리 분할 관리기는 논리 분할로부터 선언된 LPAR 분할 그룹이름(들)을 삭제한다(단계 500). 이어서, 자원에 따라 논리 분할에 대한 LPAR 그룹 자원 재할당을 완성하기 위해 하나 이상의 다른 동작들이 수행된다(단계 502).
만일 자원이 부가 자원이면 다음 상황이 발생한다. 즉, 논리 분할이 LPAR 그룹에 결합될 때 LPAR 그룹내로 부가된 이와 같은 자원들은 LPAR 그룹으로부터 삭제된다(단계 504). 여기에는 이와 같은 타입의 자원의 LPAR 그룹의 나머지 멤버들로의 현재의 할당에 대한 조정이 포함된다. 예컨대, 프로세싱 가중치의 경우에, 그 그룹을 이탈한 논리 분할에 대한 초기 프로세싱 가중치가 이제 LPAR 그룹의 범위로부터 삭제된다. 만일 WLM이 논리 분할에 대한 현재의 프로세싱 가중치를 변경시켰으면, 조정이 이루어져야 함을 필요로 한다. 만일 논리 분할의 현재의 프로세싱 가중치가 그의 초기 프로세싱 가중치보다 크면, 그 둘 사이의 차이는 그들의 현재의 프로세싱 가중치에 비례하여 나머지 LPAR 그룹 멤버들에 재분배된다. 만일 논리 분할의 현재의 프로세싱 가중치가 그의 초기의 프로세싱 가중치보다 작으면, 그 둘 사이의 차이는 그들의 현재의 프로세싱 가중치에 비례하여 나머지 LPAR 그룹 멤버들로부터 삭제된다. 이들 조정의 결과, 어떤 프로세싱 가중 컨테이너가 결과적인 LPAR 그룹에 해당되는 것인지가 재설정되게 된다.
다른 한편으로, 만일 자원이 고정자원이면, 다음 상황이 발생한다. 즉, 이들과 같은 자원들이 리세트되는 논리 분할의 구성으로부터 간단히 삭제된다(단계 506). 예컨대, 피관리 채널 경로들에 관하여, 이들 경로들은 리세트되는 논리 분할로부터 구성해제된다. 이는 LPAR 그룹의 바로 그 멤버들만이 LPAR 그룹 자원에 액세스를 가지도록 다시 한번 재 설정한다.
LPAR 그룹 환경에서 WLM에 의해 관리되는 일부 자원들이 그룹 스코핑을 행할 필요가 없음에 대해서도 또한 주목해야 할 것이다. 그러한 자원의 한 예는 논리 분할에 직결된 논리 중앙 프로세서(CP)의 수이다. LPAR 그룹에서의 특별한 논리 분할의 효과적인 동작이 논리 분할에 직결된 논리 중앙 프로세서들의 수에 의해 크게 영향을 받을 수 있다. 논리 분할이 정의되거나 또는 직결될 수 있는 논리 중앙 프로세서의 수는 그것이 LPAR 그룹에 있건 없건 간에 관계없이 논리 분할의 특징이 되어, 이 자원은 자원들의 보다 큰 풀의 일부분이 되지 않는다. 그러나, LPAR 그룹에서의 LRM의 효과는 이것이 어떤 타입의 작업부하가 다른 LPAR 그룹 멤버에 대해 한 LPAR 그룹 멤버에서 효과적으로 실행될 수 있는 것을 변경시킬 수 있게된다.
한 예에서, 복수의 논리 분할들사이에서 공유될 자원은 CPU 자원이다. 본 발명의 한 양상에서, OS/390 작업부하 관리기는 그 논리 분할들과 관련된 하나 이상의 상대적인 프로세서 가중치들을 동적으로 조정함으로써 논리 분할들에 대해 CPU 자원들을 재배분한다. WLM은 그것이 실행하는 분할의 가중치가 너무 낮기 때문에 중요한 작업부하가 지연되는 때를 이해한다. WLM은 이 분할의 가중치를 상승시키고 다른 분할의 가중치를 낮춤으로써 그 중요한 작업부하에 부가적인 CPU 용량을 제공함으로써 이 작업부하에 기여를 할 수 있다. CPU 자원들은 작업부하 허용요건이 변경될 때 그들이 필요로 되는 분할들로 동적으로 이동한다.
한 실시예에서, 논리 분할 가중치의 WLM 관리의 범위는 논리 분할 그룹이다. 한 예로서, WLM은 논리 분할 가중치를 조정하지만은 그 그룹에서의 분할들의 가중치의 합을 일정하게 유지한다. 그 합을 일정하게 유지함으로써, 전체 CPU 자원이 동일의 물리적 컴퓨터에 있는 다른 독립적인 그룹들에 대해 동일하게 그 그룹에 할당되게 된다. 그러므로, WLM이 한 분할의 가중치를 상승시킬 때, 이는 동일 그룹에 있는 다른 분할의 가중치를 낮추어준다.
이와 같은 논리 분할 가중치의 관리는 예컨대, 참고자료로서 여기에 인용하는 발명의 명칭이 "두개 이상의 독특한 처리 목표에 따른 데이터 처리 시스템 작업부하 관리 장치 및 방법"인 Aman등에게 허여된 미국특허 제5,473,773 호(1995.12.5)와 발명의 명칭이 "복수의 독특한 처리 목표 유형에 따른 분산 데이터 처리 시스템 작업부하 관리 장치 및 방법"인 Eilert등에게 허여된 미국특허 제5,675,739호(1997.10.7)에 기술된 WLM의 목표 지향 자원 할당 기법들에 향상을 가져온다.
이들 특허들에 기술된 바와 같이, WLM은 CPU 급송(dispatching) 우선순위들을 조정함으로써 논리 분할내에서 CPU 자원들의 할당을 제어한다. CPU 급송 우선순위들은 서비스 클래스 레벨로 작업에 할당된다. 그러나, 급송 우선순위들의 조정이 서비스 클래스에 기여하지 못하는 다양한 상황이 있다. 예컨대,
1) 서비스 클래스가 비시스템 작업에 허락된 가장 높은 CPU 급송 우선순위로 이미 단독으로 존재한다.
2) 그 서비스 클래스에 기여하도록 CPU 급송 우선순위들을 변경시키는 것은 중요성이 같거나 높은 다른 서비스 클래스들에 부정적인 영향을 크게 끼칠 것이다.
따라서, WLM이 CPU 우선순위들을 조정하여 기여될 수 없는 CPU 지연으로 인해 서비스 클래스가 그의 목표를 맞히지 못함을 발견하게 될 때, WLM은 그 실패한 서비스 클래스와 관련된 분할의 가중치를 조정하는 것을 고려한다.
WLM이 부가자원들을 할당하는 것을 고려하는 서비스 클래스는 수신기 서비스 클래스로 불리운다. WLM이 전술한 이유들 중 하나 때문에 기여될 수 없는 임의의 분할에서의 CPU 지연으로 인해 수신기 서비스 클래스가 목표를 맞히지 못함을 발견하게 되면, WLM은 그 분할의 가중치를 상승시키는 것을 고려한다. 분할의 가중치가 수신기 서비스 클래스에 기여하도록 증대될 수 있는지를 결정하기 위해 WLM에 의해 추구되는 논리의 한 실시예를 도 6을 참조로 하여 하기에 설명한다.
1. 분할의 가중치를 증대시키는 수신기 클래스에 그 영향을 투영한다(단계600). 분할의 가중치를 증대시킴으로써 그분할의 CPU 용량이 증대된다. 수신기 클래스에서의 작업에 대한 CPU의 요구는 일정한 것으로 가정되기 때문에, 그 분할의 CPU 용량을 증대시킴으로써 수신기 서비스 클래스가 요구하는 이용량의 비율이 감소된다. 수신기 서비스 클래스로의 이익의 투영은 수신기 서비스 클래스 및 시스템 요구에서의 다른 작업을 위해 이용가능한 CPU 용량의 비율에서의 이와 같은 감소에 근거한다.
2. 그의 가중치가 낮아지도록 한 후보가 될 논리 분할 그룹에서 다른 분할을 찾는다(단계602). 이 분할은 후보 도너 분할로써 공지되어 있다. 후보 도너 분할은 예컨대, 중요성이 가장 낮은 작업이 분할의 가중치를 낮추므로써 영향을 받을 가능성이 있는 분할을 찾음으로써 선택된다.
3. 그 가중치를 낮추는 후보 도너 분할에서 실행되는 작업으로 모든 서비스 클래스들에 그 영향을 투영한다(단계604). 후보 도너 분할의 가중치를 감소시킴으로써, 후보 도너 분할의 CPU 용량이 감소된다. CPU 용량에서의 이와 같은 감소는 후보 도너의 용량의 비율로서 후보 도너에서 실행되는 작업으로 그 서비스 클래스들에 대한 CPU 요구가 증가됨을 의미한다. 후보 도너의 가중치를 감소시키는 부정적의 영향의 투영은 이들 서비스 클래스들이 요구하는 이용가능한 CPU 용량의 비율에서의 이와 같은 증가에 근거한다.
4. 가중치에서의 이와 같은 변경이 순수값(net value)을 갖는지에 관한 결정이 이루어진다(단계606). 즉, 수신기 서비스 클래스로의 이익은 관여되는 서비스 클래스들의 목표 및 중요성에 근거하여 후보 도너 분할에서의 작업에 부정적인 영향을 무효화시킨다.
5. 만일 가중치들에 대한 조정이 순수값을 갖지 못하면, 분할의 가중치들에 제안된 변경을 수행한다(단계608). 만일 순수값이 아니면 추가의 후보 도너 분할들이 있는지에 관한 판단이 이루어진다(단계610). 만일 그러하면, 다른 후보 도너 분할이 선정되고(단계612), 상기 단계 3에서 프로세스가 계속된다(단계604). 만일 더 이상의 후보 도너 분할들이 없으면 프로세스는 종료된다(단계614).
한 분할에서 실행되는 WLM이 다른 분할에서 실행되는 작업에서의 분할 가중치들을 변경시키는 유효에 투영을 행할 수 있도록 하기 위해, 각 분할은 그 그룹에서 각 논리 분할에 관한 수행 데이터를 포함하는 공유 데이터 구조에 액세스를 행한다. 이와 같은 분할 레벨 수행 데이터는 예컨대
- 서비스 클래스에 의해 분할에서 실행되는 작업의 CPU 허용요건
- 그 분할에서의 목표에 대한 각 서비스 클래스의 이행 정도
- 그 분할에 대한 CPU 급송 우선순위에 의한 CPU 이용.
본 발명의 OS/390 실행에서, 이와같은 공유 데이터 구조는 결합 설비에 내장 및 유지된다. 그러나, 이와 같은 데이터 구조를 실행하는데 있어 메시징 또는 공유 디스크와 같은 다른 데이터 공유 방법이 사용될 수 있다.
계산 환경의 CPU 자원들을 동적으로 재배분하는 성능에 대해 상기에 설명했다. 이 자원들은 한 예로써 논리 분할 가중치들을 동적으로 조정함으로써 논리 분할들에 걸쳐 재배분될 수 있다.
컴퓨터 환경의 CPU 자원들을 동적으로 조정하는 것에 추가로, 논리 프로세서 자원들은 또한 본 발명의 다른 양상에서 동적으로 조정될 수 있다.
논리 분할은 하나 이상의 논리 프로세서들로 구성되는데, 이 프로세서들은 작업을 수행하기 위해 중앙 프로세서 복합체의 물리적 중앙처리유닛에 급송된다. 분할이 할당된 CPU 용량을 소비할 수 있도록, 충분한 논리 프로세서들이 논리 분할에 구성될 수 있다. 예컨대, 10개의 CPU를 갖는 CPC에서 실행되는 논리 분할 A의 경우를 고려해보자. 만일 작업부하 관리기가 논리 분할 A에 CPC 용량의 50%를 할당하면, 논리 분할 A는 적어도 5개의 논리 프로세서가 자체에 구성되어야 함을 필요로 한다(5개의 논리프로세서들은 5개의 CPU 또는 CPC 용량의 50%로 실행될 수 있다). 이후에 논리 분할 A가 CPC 용량의 95%를 할당받게 되면, 논리 분할 A는 10개의논리 프로세서로 구성되게 된다. WLM은 정적으로 정의된 논리 프로세서 구성으로 논리 분할 A에 할당되는 용량을 동적으로 조정할 수 있기 때문에, 모든 가능한 용량 할당에 순응하도록 하기 위해서는 논리 분할 A에 10개의 논리 프로세서들이 구성된다. 그러나, 예컨대 만일 논리 분할 A에 CPC 용량의 20% 만이 할당되면, 정적으로 정의된 논리 프로세서들로부터 두가지 문제가 발생된다. 즉, 1) 평균적으로 10개의 논리 프로세서 각각이 물리적 CPU의 용량 중 단지 0.2 의 비율로 물리적 CPU 자원들을 소비하도록 허락될 것이다(10개의 논리 프로세서로 분할되는 10개의 CUP의 20%는 논리 프로세서당 0.2 CPU와 같다). 이는 작업부하를 심하게 제한시킬 수 있으며, 그의 작업 처리량은 단일 태스크로 게이트(gate)될 것인 바, 이는 단일 태스크가 오로지 물리적 CPU의 용량의 0.2 로 실행 할 수 있기 때문이다. 이는 종종 쇼트 엔진 효과(short engine effect)로 불리운다. 2) 단지 두 개의 논리 프로세서가 요구될 때에도 10개의 논리 프로세서를 관리해야만 함으로써 소프트웨어 및 하드웨어 효율이 크게 저하된다.
상기 문제를 해소하기 위해서, 본 발명의 한 양상에 따르면 논리 분할의 구성이 정적으로 정의되지 않고 대신에 동적으로 조정된다. 한 예에서, WLM이 그 분할을 관리하며, 동적 조정을 행한다. WLM은 계산 환경의 각 논리 분할에 대해 (또는 LPAR 그룹내에서) 이를 행할 수 있다. 논리 프로세서들의 구성에 대한 동적 조정과 관련된 논리의 한 실시예를 도 7을 참조로 하여 설명한다.
초기에, 작업부하 관리기에 의해 논리 분할에 할당된 용량(또는 보다 큰 경우, 실질적으로 사용되는 용량)을 소비하도록 허락받는데 요구되는 최소의 논리 프로세서가 논리 분할에 구성된다(단계 700). 그 논리 분할의 용량할당(또는 용량 이용)이 변경되면(단계 702), 그 논리 분할에 구성된 논리 프로세서의 수가 변경되어야만 하는지 결정하기 위한 평가가 이루어진다(단계 704). 한 예에서, 논리 분할에 구성되는 논리 프로세서의 수는 논리 분할에 할당되는(또는 이 논리 분할에 의해 이용되는) CPC 용량을 제공하는데 필요한 물리적 CPU의 수에 가깝게 된다. 따라서, 각 논리 프로세서는 물리적 CPU의 용량에 가까운 용량으로 실행을 하며, 관리해야 할 논리 프로세서의 수가 최소화된다.
논리 구성을 변경시켜야 할지 여부에 대한 평가를 행하기 위해 한 예에서 다음 식이 이용된다.
L = 최저[max(W,U) P+1.5] (L = P의 최대치의 조건에서) 가 된다. 여기서,
L = 논리 분할에 구성된 논리 프로세서의 수,
W = 논리 분할에 할당된 CPC 용량의 비율,
U = 논리 분할에 의해 현재 사용되는 CPC 용량의 비율,
P = CPC에서의 물리적 CPU의 수이다 (단계 705)
L은 예컨대 규칙적 및 빈번한 간격(예컨대, 매 10초마다)으로 P,W 및 U의 현재의 값에 근거하여 작업부하 관리기에 의해 평가된다. 논리 분할에 대한 L의 실제값(L-act)이 상승되어야 하는지 아니면 낮아져야 하는지를 결정하기 위해 임계값들이 사용된다. 만일 L의 새로 계산된 값 (L-calc)가 현재의 L-act값 보다 크면(단계 706), L-act는 L-calc로 상승된다(단계 708). 그렇지 않은 경우 만일 L-calc가 L-act보다 2이상 낮은 값이면(단계 710), L-act는 L-calc-1로 설정된다(단계 712). 만일 L-calc가 L-act와 같거나 또는 L-act보다 1이하의 값이면, 논리 분할에 대한 L-act에 값에 있어 어떠한 변경도 행해지지 않는다(단계 714). 이들 임계값들의 사용을 통해 작은 작업부하 변동으로 인한 L-act의 불필요로한 변경이 방지됨과 아울러 작업부하의 빠르게 증가하는 용량요구에 응답할 수 있게 된다.
추가적인 예시를 위해, 다음의 예 즉, P=10이고 W=U=24%인 경우를 생각해 보기로 한다. 논리 프로세서의 정적구성은 W이 90%이상 크게 증대되는 경우를 처리하기 위해서는 L(정적)=10을 필요로 할 것이다. 그러나 본 발명의 이 양상에 따르면, L(동적)= 최저[max(.24,.24) 10+1.5] = 3 이된다. 따라서, 이 예에서 L(정적)은 단일 태스크가 물리적 CPU의 0.80에서 실행할 수 있도록 해줌으로써, 단일 타스크 성능에 의해 게이팅되는 작업 부하의 처리량에서 233%의 증가를 제공할 수 있게된다.
또한, 소프트웨어 및 하드웨어 효율은 본 발명의 이와같은 양상에 따라서 크게 향상되게 되는 바, 이는 본 예에서 L(정적)에 대해 필요로 하는 10개의 논리 프로세서가 아닌 단지 3개의 논리 프로세서가 관리되게 되기 때문이다.
본 발명의 한 양상에 따르면, 관리될 계산 환경의 또다른 공유가능한 자원은 I/O자원과 같은 비동기 자원이다. 특히, 코프로세서(예컨대, 채널 서브시스템)내의 I/O동작 또는 요청들이 관리되게 된다. 이 관리에는 높은 우선순위를 갖는 I/O동작이 재빠르게 처리되도록 I/O동작들을 우선순위화 하는 것이 포함되고 그리고/또는 높은 우선순위를 갖는 I/O동작은 채널의 보다 큰 대역폭에 할당되게 한다.
최근의 대규모 멀티프로그램 계산 환경에서, 판독,기입 및 부착된 I/O장치들을 제어하는 I/O동작들과 같은 그러한 긴 동작 프로세스들의 초기화 및 실행은 전형적으로 여러개의 독립적으로 동작하는 계산 요소들을 이용함으로써 달성된다(도 8 참조). 예컨대, 중앙 프로세서(800)에서의 프로그램 실행은 부착된 장치(804)와의 I/O 동작을 요청할 수 있다. 그러나 부착된 장치와의 I/O동작의 실제적인 초기화 및 실행은 전형적으로 채널 서브시스템(802)으로 불리는 서로 작업을 행하는 하나 이상의 개별적이고 독립적인 실행 프로세서들에 의해 수행된다. 비동기 I/O 프로세싱 방법은 일반적으로 비교적 긴 동작 I/O 장치들의 실행과 동시에 다른 작업을 위해 중앙 프로세서를 최적화하고 효율적으로 사용하기 위해 활용된다. 즉, 부착된 I/O장치들에 액세스하여 판독/기입을 행하는데 필요로 하는 전체 프로세서 오버헤드, 프로세싱 시간 및 프로세서 대기시간이 최소화된다. 그러한 방법은 대규모 멀티 프로그램된 시스템에서 다른 프로세서 작업의 실행으로 I/O동작들의 최대 오버랩(overlap) 즉, 실행의 동시성을 달성하도록 되어있다.
그러한 비동기 I/O프로세싱 시스템에서, 중앙 프로세서는 S/390 START SUBCHANNEL명령과 같은 I/O명령을 이용함으로써 프로그램 요청 I/O동작의 실행을 초기화 한다. 그러한 명령은 전형적으로 다음 역할을 한다.
1. 채널 서브시스템I/O작업부에 I/O동작요청을 엔-큐잉(부가).
2. I/O작업큐를 처리하기 위해 비동기적으로 실행되는 채널 서브시스템에 신호.
이어서, 중앙 프로세서는 다른 작업/명령을 수행하는데 자유로우며 I/O장치로 요청된 I/O동작들의 실제적인 실행에 직접 관여하지 않는다.
1)상기 프로세스의 비동기적 성질과, 2)중앙 프로세서 및 채널 서브시스템프로세서의 독립적인 동작과, 3)중앙 프로세서들의 실행속도와 비교하여 비교적 긴 I/O동작실행시간 및 4)그 장치를 채널 서스비스템에 연결하는 채널 경로들과 같은 채널 서브시스템 자원들의 일부 또는 모두가 I/O동작이 프로그램에 의해 요청 될 때 다른 동작을 수행하기에 바쁘다는 사실로 인해, 복수의 I/O요청들이 채널 서브 시스템 I/O 작업 큐에서 동시에 엔-큐잉될 가능성이 매우 높아지게 된다. 즉 START SUBCHANNEL명령이 요청된 I/O동작들을 수행할 수 있는 채널 서브시스템의 능력보다 큰 비율로 중앙 프로세서들에 의해 처리될 수 있으며 그럼으로써 계류중인 I/O동작 요청들의 N레벨의 깊은 I/O 작업 큐를 계속적으로 발생 시킬 수 있다.
계류중인 I/O요청들을 처리하기 위해, 채널 서브시스템을 포함하고 있는 마이크로 프로세서들이 그들의 각 I/O 작업 큐를 검사하고 (도 8 참조), 이들 큐로부터 하나 이상의 I/O 요청들을 디-큐잉하며 그들의 각 I/O 장치들로 디-큐잉된 I/O 요청들을 초기화한다. 이 동작의 개시는 채널 서브시스템 내에서의 작업 큐 및 마이크로 프로세서에 의존한다. 예컨대 중앙 프로세서와 상호 동작하는 채널 서브 시스템 I/O 프로세서는 하나 이상의 중앙 프로세서 START SUBCHANNEL신호들 또는 그들의 조합의 결과로서 다른 작업을 수행하는데 바쁘지 않을 때 주기적으로 이 프로세스를 초기화 한다.
채널 서브 시스템의 다양한 작업 큐들의 한 예를 도 8을 참조로 하여 설명한다. 전술한 바와 같이, I/O 요청들은 예컨대 START SUBCHANNEL명령에 의해 I/O프로세서 작업큐(806)에서 엔-큐잉된다. 이어서, I/O요청들은 I/O프로세서(808)에 의해 I/O프로세서 작업큐로부터 디-큐잉 된다. I/O프로세서로부터 디큐잉되는 요청들은I/O프로세서에 의해 채널 프로세서 작업큐(810)로 엔-큐잉된다. 그 후, 이들 요청은 채널 프로세서(812)에 의해 디-큐잉되어 제어유닛 작업큐(814)로 엔-큐잉된다. 이어서, 채널 프로세서는 채널 경로를 통해 제어 유닛으로 그리고 최종적으로 I/O장치에 전송될 제어 유닛 작업큐로부터의 요청을 디-큐잉한다.
현재, 시스템의 S/390 제품군 내에서, 채널 서브시스템 디-큐잉 및 작업 초기화 프로세서들이 선입선출(FIFO) 방식으로 수행된다. 이러한 프로세스는 논리적으로 실행이 가장 간단하며, 작업 처리를 최적화 시키도록 되어있고, 과거에는 계류중인 작업큐들의 평균 깊이가 비교적 얇고 그리고 I/O 작업 계류시간이 비교적 짧은 구간으로 된 경우(즉, 다양한 I/O 작업큐들에서의 계류중인 I/O 요청들의 평균수가 중요도가 높고 그리고/또는 실시간의 중대한 문제와 관계하는 I/O 동작을 위한 전체 I/O 응답시간의 상당한 연장을 야기하지 않는 경우)에 있어서는 다양한 비동기 프로세싱 요소들 사이에 작업 전달을 위한 허용할 수 있는 전략이 있었다.
그러나 시간 의존의 작업을 적시에 처리하길 원하는 유저의 요구를 지원하기 위해 응용/프로그램 우선 순위화 기능을 제공하는 오퍼레이팅 시스템에서, 계류중인 I/O 요청들에 대한 FIFO 처리 전략은 FIFO 작업큐의 평균 깊이가 증대됨에 따라 허용가능성이 점점 더 받아들일 수 없게 된다. 예컨대, IBM 엔터프라이즈 기억 서버와 함께 사용되는 병렬 액세스량은 채널 서브시스템에서 평균 큐 깊이를 증대시킨다. 이는 전형적으로 중요성이 낮거나 시간 의존성이 낮은 I/O 요청들이 FIFO 작업큐에서 보다 중요한 요청들에 앞서서 큐잉됨으로써 보다 중요한 I/O 요청들에 앞서 초기화 될 수 있다는 사실에 기인한다. 빈번하게, 중요성이 낮은 작업이 보다 긴 시간 주기 동안 자원들을 차지하는 I/O를 수행하여, 보다 중요한 작업의 지연을 증대시킨다. 이는 전형적으로 보다 중요한 I/O요청들에 대한 지연 가능성의 증대를 야기한다.
(중앙 프로세서 속도와 비교할 때 전체 실시간 지연 또는 상대적인 시간 지연이 되는)I/O계류 시간으로도 불리우는 지연 시간의 증대는 종종 채널 서브시스템 및 부착된 장치들이 중요한 I/O 요청들의 적시의 완료에 영향을 주지 않는 I/O 실행 비율을 유지하지 못함에 기인한다. (달리 말해서, 중요성이 높은/시간 의존성의 프로그램들의 실행 시간에서의 허용할 수 없는 연장을 초래하지 않는 실행 비율을 유지하지 못함에 기인한다). 전술한 바와 같이, 중요한 I/O 요청에 대한 전체 I/O 응답시간에서의 허용할 수 없는 연장의 가능성은 일반적으로 FIFO 작업 처리 방법이 사용될 때 증대된다. 이와 같은 지연 가능성은 또한 중앙 프로세서들의 속도 및 수가, 부착된 I/O 장치들과, 장치들이 부착되는 채널 경로와 같은 다른 필요로 하는 채널 서브시스템 요소들의 속도에서의 증대보다 큰 비율로 증대될 때 커지게 된다. 일반적으로, I/O속도 증대의 비율 이상의 중앙 프로세서 속도 증대의 비율에서의 불균형은 현재의 큰 시스템 환경에서 계속적으로 증대되어 중요한 작업에 있어 큐잉지연 및 I/O 응답시간(실시간 또는 상대시간)을 보다 크게 할 가능성을 더욱 높게 한다.
예로써, 채널 서브시스템에서의 큐잉 지연으로 인한 중요성이 높은 시간의존성의 I/O 동작들에 있어서의 연장된 I/O 응답 시간들의 주파수를 최소화하기 위해, I/O 작업큐들이 계류중인 하나 이상의 채널서브 시스템을 처리하기 위한 우선순위처리 방법이 정의된다.
두 개의 독립적으로 실행되는 프로세서들 또는 프로세스들 사이에서 우선순위처리 방법을 수행하는 예들중에는 다음 예들이 포함된다.
1. 엔-큐잉 프로세서(또는 프로세스)가 (예컨대 WLM에 의한) 프로그램 지정 우선순위 번호에 근거한 우선순위 시퀀스 방식을 이용하여 채널 서브 시스템 I/O 작업큐(이 특별한 큐는 프로세싱의 스테이지에 의존한다)에 I/O 요청들을 부가한다. 이어서, 채널 서브시스템은 FIFO 방법을 이용하여 작업큐로부터 제 1의 가장 높은 우선순위 I/O 요청을 삭제한다. 아니면,
2. 엔-큐잉 프로세서(또는 프로세스)가 FIFO 엔-큐잉 방법을 이용하여 I/O작업큐의 말미에 I/O 요청을 부가한다. 채널 서브 시스템은 우선순위 선택 방법을 이용, 작업큐에서의 모든 I/O 요청 요소들을 조사하여 가장 높은 프로그램 특정 우선순위 번호로 I/O를 삭제하여 처리한다.
FIFO 엔-큐잉 방법(방법#2)은 더 적은 명령을 필요로 하므로 중앙 프로세서가 I/O 요청 스케쥴링 프로세스를 보다 신속히 완료할 수 있도록 한다. 이는 중앙 프로세서를 자유롭게 하여 다른 작업을 보다 신속히 처리할 수 있도록 한다. 채널 서브시스템을 포함하고 있는 다양한 마이크로 프로세서들간에 엔-큐잉/디-큐잉 프로세스를 위한 방법의 선택은 전형적으로 참여하는 프로세서들 중 어느 프로세서가 그의 처리용량 및 시간 허용 요건에 관하여 가장 제약을 받느냐에 좌우된다. 즉, 만일 엔-큐잉 프로세서가 가장 제약을 받게 되면 두 번째 방법이 선택된다. 만일 디-큐잉 프로세서가 가장 제약을 받으면, 첫 번째 방법이 전형적으로 선택된다. 어느 방법을 사용하든지간에 채널 서브시스템은 선착순 또는 FIFO 방법이 아닌 우선순위화 방법에 근거하여 계류중인 I/O 요청들의 초기화 및 실행에 우선순위를 부여한다.
또한, 한 실시예에서 사용되는 엔-큐잉 및 선택 방법과는 무관하게 처리될 요청들에 우선순위를 부여 및/또는 이들을 선택하는데 다양한 기준들이 활용된다. 한 예에서, 이들 기준은 다음 사항들을 포함한다.
1. 각각의 상이한 번호가 고유의 우선순위 레벨에 대응하는 프로그램 지정 우선순위 번호에 근거하여 계류중인 I/O 요청들을 선택한다. 예컨대, 연속되는 번호들의 범위가 제공되며, 그 번호들의 전체 범위는 우선순위 차별화를 요하는 작업 카테고리들의 전체수와 같거나 이보다 크다. 예컨대, 만일 시스템이 전형적인 S/390 시스템으로 가능할 수 있는 N개의 서로 다른 오퍼레이팅 시스템들을 동시에 처리할 수 있는 능력을 제공할 수 있으면, 채널 시스템 우선순위 방법들을 N 또는 그 이상의 독특한 우선순위 레벨을 제공할 수 있게 된다. 최저 레벨로부터 최고 레벨로 또는 이와 반대로의 각 우선순위 레벨은 0 내지 N-1의 범위에서 고유번호로 표시되게 된다.
2. 우선순위에 무관하게 모든 엔-큐잉된 요청들에 "공정성"을 적용하는 기술을 이용하여 계류중인 I/O 요청들의 우선순위를 선택한다. 이는 예컨대 연장된 시간 요청에 대해 채널 서브시스템에 제시되는 비적절하게 큰 수의 높은 우선순위 요청으로 인해 야기될 연장된 시간 주기동안 처리되지 않는 낮은 우선 순위 요청의 가능성을 최소화 하기 위해 전형적으로 요망된다. 공정성 선택은 또한 다른 고려사항들에 따라 동일한 우선순위가 계류중인 요청들에 적용될 수 있다. 예컨대, 이미디-큐잉된, 초기화가 실패한 그리고 아직 선택되지 않은 다른 동일한 우선순위 요청들로 한번 또는 그이상 디-큐잉된 계류중인 요청들에 공정성을 제공한다. 그러한 방법을 도 9와 관련하여 설명한다. 이 방법은 계류중인 요청들의 복수의 서로 다른 카테고리들에 우선순위 및 공정성을 적용한다.
3. 외부 유저/ 오퍼레이터 제어
3.1 우선순위 프로세싱 방법들을 전체적으로 인에이블링 및 디스에이블링한다. 이 제어는 만일 우선순위 방법들이 불필요하거나 불규칙한 프로그램 실행 환경에 충분히 적응하지 못하는 경우 그 계류중인 요청들의 FIFO 프로세싱을 수행토록 하는데 필요로 된다.
3.2 복수의 논리 분할들에 대해 동시에 실행하는 시스템들에 대해, 외부제어는 유저가 소정의 논리 분할과 관련된 I/O 요청들에 대한 "디폴트" 우선순위값을 지정할 수 있게 한다. 이는 논리 분할에서 실행되는 오퍼레이팅 시스템이 그의 I/O 요청들에 대한 우선순위값을 지정하도록 되어 있지 않으나, 그럼에도 불구하고 I/O 우선순위화를 지정하는 다른 논리 분할들에서 실행되는 다른 오퍼레이팅 시스템들과 성공적으로 경합하도록 할 때 이용된다.
3.3 복수의 논리 분할들을 동시에 실행하는 시스템들에 대해, 외부제어는 유저들이 채널 서브시스템에 의해 제공되는 전체 세트의 값들로부터 각 논리 분할에 대한 우선순위값들의 최고 및 최대 서브세트 범위를 지정할 수 있게 한다. 이 제어는 개별 논리 분할들에서 실행되는 복수의 오퍼레이팅 시스템들이 다른 사용되는 분할들과는 독립적으로 및 이 분할들에 대한 지식 없이 I/O 우선순위화를 사용할 때 이용된다.
상기 3.2 및 3.3 항에 있어, 한 실시예에서, 중앙 프로세서는 그 분할에서 동작되는 프로그램에 투명한 방식으로 논리 분할에서 실행되는 프로그램에 대해 유저가 지정한 디폴트 우선순위값 또는 유저가 지정한 최소/최대의 허용된 우선순위를 할당한다. S/390 시스템들에서, 이는 논리 분할 관리기(하이퍼바이저) 및 중앙 프로세서 START SUBCHANNEL 명령에 의해 결합 달성될 수 있다.
논리 분할에서 프로그램 오퍼레이팅이 I/O 동작을 개시하기 위해 START SUBCHANNEL을 해석 실행할 때, 중앙 프로세서에서의 START SUBCHANNEL 명령의 해설 실행은 START 해석 실행(SIE)상태 설명(SD)테이블로부터 디폴트 우선순위 번호 및 최소/최대 허용된 우선순위 번호들 모두를 절대적으로 취득한다.
이 테이블은 생성되어 하이퍼바이저가 분할을 실행 상태에 있게 하기 위해 SIE 명령을 실행할 때 논리 분할 하이퍼바이저에 의해 중앙 프로세서 내로 로딩된다. START SUBCHANNEL의 해석 실행은 적적할 우선순위값을 논리 분할에서의 프로그램 동작의 개입없이 적절한 우선순위값을 I/O 요청에 절대적으로 세팅하기 위해 SIE 상태 설명 테이블 디폴트 및 최대/최소 우선순위값을 이용한다.
우선순위값이 논리 분할에서 프로그램 실행에 의해 제시되지 않으면, START SUBCHANNEL 해석은 유저가 지정한 디폴트 우선순위값을 I/O 요청에 할당한다. 논리 분할에서 프로그램 실행이 START SUBCHANNEL을 실행할 때 우선순위번호를 지정하지 않으면, START SUBCHANNEL의 해석실행은 프로그램이 지정한 우선순위값을 상태설정테이블에서 하이퍼바이저가 지정한 최소/최대 우선순위값과 비교한다. 프로그램이 지정한 우선순위가 하이퍼바이저가 지정한 최소값보다 작으면, 상태 설명 테이블로부터의 최소값은 프로그램이 지정한 값을 대체한다. 프로그램이 지정한 우선순위값이 하이퍼바이저가 지정한 최대 우선순위보다 크면, 상태 설명 테이블로부터의 최대 우선순위값은 프로그램이 지정한 값을 대체한다.
우선순위 선택 기술은 상기 기준의 제로(0)또는 이보다 큰 값을 이용하여 구현될 수 있다. 상기 기준의 적어도 일부를 이용하는 처리될 요청을 선택하는 기술의 한 실시예를 도 9를 참조로 하여 설명한다.
초기에, 계류중인 작업큐가 액세스된다(단계900). 예컨대, I/O 프로세서 작업큐, 채널 프로세서 작업큐 또는 제어유닛 작업큐가 액세스된다. 그후, 디-큐잉된 계류중인 요청의 카운트가 1로(예컨대, DQCOUNT=DQCOUNT+1로) 증분된다(단계902).
이어서, 계류중인 요청들의 어떤 카테고리를 처리해야할 지에 관한 결정이 행해진다(단계904). 한 예에서, 선택된 카테고리는 카테고리의 수 DQCOUNT MODULUS와 같다. 따라서, 본 예에서 4개의 카테고리가 있으므로 선택된 카테고리는 DQCOUNT MODULUS 4와 같다. 만일 결과가 영(0)이면, 어떤 우선순위의 제1 요청은 다큐잉된다(단계906). 그러나, 만일 선택된 카테고리가 1이면, 이전에 디-큐잉되지 않은 제 1의 가장 높은 우선 순위 요청이 선택된다(단계908). 또한, 만일 선택된 카테고리가 2이면, 이전에 디-큐잉 되어 초기화가 실패된 제 1의 가장 높은 우선순위 요청이 선택된다(단계910). 그러나, 만일 결과가 3이면, 이전에 디-큐잉 되지 않은 제 1의 어떠한 우선순위 요청이 선택된다(단계912). 그후, 그 선택된 요청은 디-큐잉되어 처리된다(단계914).
코프로세서내에서의 비동기 요청들에 대한 우선순위화 메커니즘에 대해 위에서 상세히 설명하였다.
상기예들은 I/O 요청들 및 채널 서브시스템들과 관련하여 설명하였지만 이는 단지 예시적인 것으로써 본 발명은 다른 비동기 요청들 및 코프로세서들에도 동등하게 적용될 수 있다. 또한, 상기 예는 큐잉과 관련하여 설명되었지만은 모두 동등하게 실행하는 것이 아닌 복수의 동작들을 동시에 실행하여 많은 채널 자원을 가장 높은 우선순위 동작들에 제공해줄 수 있는 채널상의 자원들(예컨대, 대역록)의 할당을 조정하는데 이용될 수 있다.
또한, 논리적으로 분할된 시스템들과 관련하여 다양한 예들이 설명되었지만은 본 발명의 I/O 우선순위 특성을 포함하는(이에만 국한되지 않음) 본 발명의 다양한 양상들이 논리 분할들을 갖지 않거나 이를 지원하지 않는 시스템 내에서 이용 될 수 있다.
본 발명의 또다른 양상에 따르면, 계산 환경의 I/O 구성(예컨대, 채널경로 구성)은 인간의 개입 없이 채널 자원을 필요로 하거나 또는 이를 액세스하는 것을 삭제하는 곳에 이용가능한 채널자원을 이동시키기 위해 동적으로 변경될 수 있다. 이는 I/O를 구성하는데 필요한 전문 기술을 감소시켜주고, 전체 시스템 활용도를 향상시키기 위해 설치된 채널들의 활용도를 최대화하고 작업부하들의 상대적인 우선순위들을 이용하여 이용가능한 I/O용량을 배분시킨다. 한 실시예에서, "최상"의 변경이 이루어질지를 결정하기 위해 변경을 행하기 전 하나 이상의 인자들을 고려한다. 이들 인자들은 예컨대 응답시간에의 영향 즉, I/O 속도, 특정 작업부하 목표를 달성한 응답시간에의 영향, 통화중인 목적지 포트, 결과적인 활용 가능 특성(예컨대, 불능 포인트를 갖지 않는 경로를 공통적으로 부가) 및 I/O 구성의 결과적인 복합성(즉, 엔트로피)를 포함하고 있다.
I/O 구성을 동적으로 조정하는 것과 관련된 논리의 한 실시예를 도 10 내지 14와 관련하여 설명하기로 한다. 초기에, 기본 균형 유지 프로세싱이 예컨대 매 10초마다 규칙적으로 스케쥴링된 시간간격들의 시작에서 계산 환경의 작업부하 성분들에 의해 행해진다. 이들 기본 균형 유지 프로세싱의 기능은(정의된 채널들을 플로팅(즉, 피관리)하여)서브시스템들(예컨대, 논리제어 유닛들)에 걸쳐 고르게 I/O 속도의 균형을 지속적으로 유지하고, 어떠한 불능 포인트도 가짐이 없이 공통적으로 모든 장치들이 두개 이상의 경로를 통해 액세스될 수 있도록 하고 그리고 하드웨어 불능 후 시스템을 재균형 유지하는 것이다. 이 프로세싱은 두 개의 성분 즉, 데이터 수집(도 10에서 단계 1000)및 균형유지 체크(단계 1002)를 포함한다. 데이터 수집은 계산 환경이 논리적으로 분할되거나 또는 만일 논리적으로 분할되지 않았으면 각 시스템 내에 있는 것으로 가정하여 계산 환경의 각 논리 분할 내에서 매 간격마다 한번씩 실행되고 그리고 균형유지 체크가(다시, 그룹화를 가정하여)그룹화된 LPAR 당 간격마다 단지 한번씩 실행된다.
그 프로세싱의 데이터 수집부의 순차화는 WLM이 어느 한 시스템에서 간격당 한번씩 기본 균형 유지 동작을 일으킨다는 사실로 얻어진다. 추가로, 버젼 번호 체크가 그 수집된 정보를 업데이트할 때 이용된다. 예컨대, 결합 설비 내에 저장된 제어블럭이 그 수집된 정보를 업데이트하도록 순차화된다. 이들 제어블럭은 그룹 레벨의 데이터 수집을 가능케 하는바, 이는 동일 CPC 상의 그룹의 멤버들에 걸쳐 채널관리를 할 수 있게 해준다. 균형유지 체크를 순차화하기 위해, 그 목적을 위해 특별히 그룹 스코프(group scope)로의 순차화가 이용된다. 전형적으로, 데이터 수집 바로 직후 균형 유지가 호출되면, 그룹 규모의 넓은 순차화가 요청된다. 만일 이 순차화가 얻어지면, 균형유지 체크가 진행되고, 그렇지 않으면 그 균형유지 체크는 이미 그룹화된 LPAR내에서 발생하며, 이 간격동안 다시 실행되어야 함을 필요로 하지 않는다.
도 10의 데이터 수집 프로세싱을 도 11과 관계하여 다시 설명하기로 한다. 한 실시예에서, 정의된 각 서브 시스템(예컨대, 논리 제어 유닛)에 대해 측정 데이터가 수집 및 업데이트 된다(단계1100). 이 측정 데이터는 예컨대 접속시간, 계류시간, 서브시스템 통화시간, 장치 통화시간, 목적지 포트 통신 시간 및 목적지 포트 통화시간을 포함한다. 업데이트된 측정 데이터는 결합 설비와 같은 공유 메모리 내의 제어 블럭을 따라 프로세서 메모리 내의 제어 블럭에 저장된다.
측정 데이터의 업데이팅에 이어서, 각 서브시스템에 대한 디폴트 타겟 I/O 속도가 계산된다(단계1102). I/O 속도는 추가의 채널 대역폭이 필요로 되는지를 표시한다. 한 예로서, 디폴트 타겟 I/O 속도는 접속시간으로 가중화된다. 이 계산을 수행하기 위해, 한 예에서 다음 단계들이 취해된다. 즉, DCM에 의해 관리되는 각 서브시스템에 있어, 지난 간격동안 그 서브시스템에 제공된 접속시간의 량에 따라서 현재 또는 실제 속도가 얻어진다. 이어서, I/O 속도는 결과를 얻기 위해 접속 시간에 의해 배율된다. 서브시스템에 대한 그 결과들이 합을 구하기 위해 가산된다. 그 합은 접속시간으로 가중화된 디폴트 타겟 I/O 속도를 결정하기 위해 전체 접속시간으로 나누어진다.
도 10으로 되돌아가, 데이터 수집을 수행한 후 설명하는 바와 같이 균형유지 체크가 수행된다(단계1002). 균형유지 체크와 관련된 논리의 한 실시예를 도 12와 관계하여 설명한다. 초기에, 본 예에서 균형유지 체크를 수행해야 하는지를 결정하기 위해 순차화가 수행된다(단계1200). 그룹 범위의 넓은 순차화를 얻기 위한 시도가 실패하면, 균형유지 체크는 수행되지 않는다(단계1202). 그러나, 만일 순차화가 얻어지면, 서브 시스템들은 그들의 타겟범위 밖에 있는 것들에 대해 조사된다(단계 1204).
예컨대, 서브시스템들 모두에 대한 실제적인 I/O 속도가 얻어지며 평균이 취해진다. (한 예에서, 동적 CHPID 관리(DCM)에 의해 관리되는 서브시스템들만이 그 평균에 포함된다). 일단 평균이 결정되면, 범위가 생성된다. 한 예에서, 예컨대 이 범위는 평균값의 5%이다. 그후, 각 서브 시스템의 타겟 I/O 속도는 타겟 범위와 비교된다. 만일 어떠한 I/O 속도도 지정되지 않으면, 디폴트 타겟 I/O 속도가 이용된다. 이 비교의 결과로서, 두개의 리스트가 생성된다(단계1206). 이 리스트들 중 하나는 타겟 범위를 초과하는 서브시스템들을 포함하고, 다른 하나는 그들 범위에서 누락된 서브 시스템을 포함한다. 각각의 경우에, 예컨대 마지막 10초 내에서 최근에 수정된 서브시스템들은 이 리스트들로부터 배제된다. 그후, 누락된 타겟들의 리스트가 분류된다(단계1208). 한 예에서, 이 리스트를 분류하기 위해 WLM이 사용되는데, 그 이유는 WLM이 어떤 서브 시스템들이 가장 중요한지를 결정하기 위한 위치에 있기 때문이다. 따라서, WLM은 WLM이 서비스되는 순으로 그 서브 시스템들을 순서화한다.
그 리스트에 대한 분류에 이어서, 그 리스트 상의 하나 이상의 서브 시스템들이 예컨대 저조하게 사용된 서브시스템들의 용량을 과도하게 사용된 서브시스템들에 천이시킴으로써 서비스된다(단계1210). 할당된 시간에 서비스될 수 있는 서브시스템들 중 많은 시스템들이 조정된다.
그 용량을 조정하는 것과 관련된 논리의 한 실시예를 도 13a 내지 13b와 관계하여 설명한다. 초기에, 그 리스트로부터 서브시스템이 선택된다(도 13a의 단계 1300). 한 실시예에서, 그 리스트상의 제1 서브시스템이 선택된다. 그후, 목적지 포트 통화가 문제가 있는지에 관한 결정이 이루어진다(단계1302). 특히, 회선 쟁탈(목적지 포트 통화시간)이 높은지 그리고 만일 그러하면 그에 접속된 다양한 인터페이스들에 관하여 변화하는지에 관한 결정이 이루어진다. 만일 목적지 포트 통화가 모든 인터페이스들에서 높으면, 또다른 채널 경로의 추가가 필요로 되는것으로 규정한다. 그러나, 만일 단지 하나의 인터페이스상에서만 목적지 포트 통화가 높으면, 채널 경로를 다른 인터페이스로 이동시킨다(단계1304). 따라서, 기존 경로는 과도한 목적지 포트 통화시간을 갖는 인터페이스로부터 다른 인터페이스로 이동되며,변경수행과 함께 프로세싱이 계속된다(도 13b의 단계 1306).
그 변경을 수행하는 방법의 예들이 1993년 10월 허여된 발명의 명칭이 "하드웨어 및 소프트웨어 I/O 구성 정의의 동기화 구성"인 미국특허 제 5,257,379호와, 1993년 6월 허여된 발명의 명칭이 "동적으로 수정가능한 I/O 구성의 오퍼레이팅 시스템 정의를 관리하는 방법 및 시스템"인 미국특허 제 5,220,654호에 기술되어 있다. 이들 특허들은 참고자료로서 여기에 인용하였다.
변경이 수행된 후, 타겟 범위에 있지않은 다른 서브시스템들이 있는지에 관한 결정이 이루어진다(단계1308). 만일 그러하지 않으면, 불균형 보정의 프로세싱이 완료된다. 그러나, 만일 다른 서브시스템들이 그 범위 내에 있지 않으면, "리스트에서 다음 서브시스템 선택"의 프로세싱이 도 13a의 단계 1300에서 계속된다.
단계 1302로 되돌아가, 만일 그 문제가 회선쟁탈로 인한 것이 아니면, 설명하는 바와 같이 프로세싱이 계속된다.
특히, 한 예에서, 서브 시스템에 추가될 가능한 채널 경로들이 결정된다(단계 1310). 이 결정은 물리적 토폴리지 내에서 특별한 서브시스템이 주어질 수 있는 모든 채널들을 체크하고 이어서 각 채널에 대해 그 서브시스템에 도달될 가능한 방식(경로)들을 결정하는 단계를 포함한다. 한 경로는 하드웨어 요소들의 연결을 통한 연결성 변경이며, 채널 및 서브시스템을 포함한다. 이들 경로 모두(만일 필요한 경우, 서브세트)는 그 가능한 경로들에 포함된다.
마찬가지로, 그 가능한 경로들을 삭제해야 할지에 관한 결정이 이루어진다(단계1312). 한 예로서, 만일 동일 채널상에 복수의 서브시스템이 있다면, 공유 서브시스템에 연결된 경로들 중 하나는 삭제대상 후보로 간주된다.
그후, 서브시스템이 그 변경에 의해 영향을 받을 것인지에 관한 결정이 이루어진다(단계1314).
또한, 변경될 구성의 복합성을 표시하는 엔트로피 인덱스가 또한 후술하는바와 같이 결정된다.
유효 서브시스템들을 결정하는 것과 관련된 논리의 한 실시예를 도 14와 관계하여 설명한다. 초기에, 서브시스템에 대한 서브시스템 제어 블럭(SSCB)리스트와 채널들에 대한 CHPID 리스트가 이후의 사용을 위해 클리어된다(단계1400). 그후, 채널 경로가 제안된 채널과 관련된 결정선택블럭(DSB)으로부터 검색되어 CHPID 리스트에 추가된다(단계1402). 특히, 각 경로는 그와 관련된 결정선택블럭을 갖는다. 이 결정선택블럭은 예컨대 채널경로의 id, 채널 경로와 관련된 논리제어 유닛을 표시하는 서브시스템 제어블럭(SSCB) 포인터 및 유효 SSCB들의 어레이를 포함하는 각종 정보를 포함한다.
그후, 원조될 SSCB와 관련된 모든 CHPID들 또한 CHPID 리스트에 부가된다(단계1404). 특히, SSCB 포인터가 원조될 SSCB를 표시하는 DSB로부터 검색된다. SSCB에 있는 모든 CHPID들이 이제 CHPID 리스트에 부가된다.
그후, 그 리스트에 있는 각 CHPID에 있어 채널 경로와 관련된 SSCB들이 SSCB 리스트에 부가된다(단계1406). 한 예에서, 이 정보는 각 CHPID에 연결된 SSCB들을 표시하는 채널 경로 테이블로부터 얻어진다.
이어서,어떤 SSCB가 그 리스트에 부가 되었는지에 관한 결정이 이루어진다(1408). 만일 그러하면, 그 리스트에 있는 각 SSCB에 대해 CHPID 리스트에 이미 있지 않은 CHPID들이 단계 1404와 관계하여 전술한 바와 같이 부가된다(단계1410).
그후, 그 리스트에 부가된 어떤 CHPID들이 있는지에 관한 결정이이루어진다(단계1412). 만일 그 리스트에 부가되는 CHPID들이 있으면, 프로세싱이 계속된다(단계1406). 그러나, 만일 그 리스트에 부가되는 SSCB들 또는 CHPID들이 없으면(단계 1408,1412), DSB 어레이가 생성된다(단계1414). 즉, SSCB들 각각이 유효 SSCB들의 어레이에 부가된다.
추가로, 이 어레이 요소들 각각은 실제 및 타겟 I/O 속도, 타겟 및 실제 I/O 속도들간의 현재의 델타 및 SSCB 포인터들로 업데이트된다(단계1416).
도 13a로 되돌아가, 상기 이외에, 각 경로에 대한 이용가능성 인덱스가 계산된다(단계1316). 한 예에서, 상기 이용가능성 인덱스는 제안된 경로가 서브시스템으로의 기존 경로들과 공통으로 가지고 있는 불능의 단일포인트가 얼마나 많은지를 표시한다. 만일 채널 경로가 부가되게 되면, 불능의 단일 포인트를 갖지 않는 것이 요망된다. 만일 채널 경로가 삭제되면, 불능의 최상의 단일 포인트를 갖는 경로가 전령적으로 선택된다.
이어서, 유효 시스템들로의 영향이 투영된다(단계1318). 특히, 한 예에서, 변경이 행해진 경우 이것이 얼마나 다른지를 결정하기 위해 각 서브시스템에서 현재의 부하가 고려된다. 이 정보를 이용하여, 최상의 옵션이 선택된다(단계1320). 최상의 옵션을 선택하기 위해, 예컨대 다음 사항을 포함하는 다양한 인자들이 고려된다.
- 어떤 옵션으로 타겟에 가장 밀접한 서브시스템을 이동시킬 것인가?
- 어떤 옵션으로 최상의 이용가능성을 제공할 것인가?
- 어떤 옵션으로 최상의 시미트리(최하위 엔트로피)를 제공할 것인가?
- 이 옵션이 전체 경로의 수를 2 이하로 감소시킬 것인가?
- 이 옵션이 어떤 명시된 타겟들을 위반할 것인가(WLM은 디폴트 타겟 대신에
이용될 명시된 타겟들을 제공할 수 있음)?
- 이 옵션이 어떤 아키텍춰상의 제한을 위반할 것인가?
- 이 옵션이 그 설치에 의해 정의된 바와 같이 그 구성을 위반할 것인가?
- 이 옵션이 현재 이용 가능하지 않은 자원들을 이용하고자 할 것인가?
하나의 특별한 예에서, 초기에 어떤 환경들 하에서는 수행될 수 있는 어떤 결정 선택 블럭(DSB)들이 제거된다. 이는 예컨대 아키텍춰의 제한을 위반하는것, 경로의 전체수를 2 이하로 감소시키는것, 그 설치에 의해 정의된 바와 같이 구성을 위반하는 것(예컨대, 그 정의에서 허용되는 플로팅 채널경로의 최대수 이상을 이용) 및 현재 이용할 수 없는 자원들을 이용하려하는 것(예컨대, 이용할 수 없었던 포트를 이용하려 하는 것)을 포함할 수 있다. (이 기능은 프로세싱에 앞서 이용될 수 있어, 서브시스템으로의 이용가능성 인덱스 및 투영 영향이 결코 선택될 수 없는 DSB들에 대해 계산되지 않는다)
만일 현재 그 서브시스템에 단지 하나의 경로만이 존재하면(가능하면, 시스템시작 또는 실패 직후), 최상의 이용가능성 인덱스를 갖는 경로를 선택한다. 만일 하나 이상의 경로가 균등한 이용 가능성 인덱스를 가지면, 타겟 I/O 속도 타겟 내로 타겟 서브시스템을 이동시킬 최하위의 엔트로피 인덱스를 갖는 경로를 선택한다. 만일 경로가 하나 이상이면 전체 투영 델타(DSB로부터의 "∑투영 델타")가 가장 작은 것을 선택한다.
만일 현재 서브시스템에 하나 이상의 경로가 있으면, 최상의 이용 가능성 인덱스를 갖는 DSB들의 세트를 찾는다.
타겟 I/O 속도의 허용치내에서 타겟 서브시스템을 얻고 최하위 엔트로피 인덱스를 갖는 옵션들에 대해 상기 세트를 조사한다. 하나 이상이면, 전체 투영 델타(DSP로부터의 "∑투영 데이터")가 가장작은 것을 선택한다.
만일 그러한 옵션이 없으면, 다음의 최상의 이용가능성 인덱스를 갖는 경로세트를 찾고 다시 시작한다.
만일 그 허용치내에서 어떤 옵션들도 서브시스템을 얻지 못하면, 그것의 이용가능성 인덱스 또는 엔트로피 인덱스에 관계없이 타겟에 가장 밀접한 서브시스템을 얻는 것을 선택한다. (최상의 옵션을 선택하는 전술한 기술은 단지 하나의 예이다. 본 발명의 정신을 벗어남이 없이 다양한 부가, 삭제 및 수정이 가능하다. 또한, 어떤 다른 기술도 최상의 옵션을 선택하는데 이용될 수 있다.)
최상의 옵션을 선택하고자 하는 시도후, 명시된 타겟들을 갖는 서브시스템들에 영향을 줌이없이 새로운 타겟들이 달성될 수 있는지에 관한 결정이 이루어진다(단계1322). 다시말해서, 최상의 옵션이 WLM에 의해 설정된 명시된 타겟을 갖는 서브시스템들에 부정적인 영향을 줄것인지의 여부에 관한 결정이 행해진다. 만일 그러하면, 작업부하 관리기는 적절한 경로를 선택하게된다(단계 1324). 특히, 작업부하 관리기는 그 경로를 택하여 그 도너를 위한 새로운 타겟들을 선택한다.
이어서, 만일 새로운 타겟이 명시된 타겟들을 갖는 서브시스템들에 부정적인 영향을 줌이없이 달성될 수 있으면, 변경이 수행되며(단계 1306), 타겟 범위에 있지 않은 다른 서브시스템들이 존재하는지 결정하는 프로세싱이 진행된다 (단계1308).
전술한 바와같이, WLM은 디폴트 평균 I/O 속도 타겟대신에 이용될 명시된 I/O 속도 타겟을 설정할 수 있다. 한 실시예에서, WLM은 서비스 클래스가 그 목표를 충족시키지 못함을 발견하게 될때 명시된 타겟을 설정한다. 명시된 서브시스템 I/O 속도 타겟을 설정하는것과 관련된 논리의 한 실시예를 도 15와 관계하여 설명한다.
초기에, I/O가 가장 큰 지연을 일으키는지에 관한 결정이 행해진다(단계 1500). 만일 그러하지 않으면, 본 발명의 이 양상의 목적을 위해 프로세싱이 완료된다. 그러나, 만일 I/O가 가장 큰 지연을 야기하면, I/O 우선순위 조정이 시도된다(단계 1502). 그후, 서비스 클래스가 그 목표를 충족하는지에 관한 결정이 행해진다(단계 1504). 만일 이제 서비스 클래스가 그 목표를 충족하면, 프로세싱이 완료된다. 그러나, 만일 서비스 클래스가 여전히 그 목표를 충족하지 못하면, 서브시스템들에 대해 이 시스템들이 서비스 클래스에 의해 이용되며 낮은 I/O 속도를 갖는지에 대한 조사가 행해진다 (단계1506). 위치된 하나 이상의 서브시스템들에 대해 새로운 서브 시스템 I/O 속도 타겟들이 설정된다. 한 예에서, 이는 현재의 타겟을 정의된 량으로 증대시키고 그리고 그 서브시스템에 영향을 투영함으로써 설정된다. 만일 영향이 (예컨대, 수신기값 이상으로)충분하면, 프로세싱이 완료된다. 만일 그렇지않으면, 이 타겟은 다시 증대되고 프로세싱이 반복된다.
I/O 구성들의 동적구성을 제공하는 동적 CHPID 관리(DCM)에 대해 전술하였다. DCM은 WLM과 장점적으로 통합되어 작업부하 및 목표들을 이해하는 상황에서 결정이 행할 수 있게 된다. 또한, DCM은 (예컨대, 분할 그룹들의) 복수의 분할에 걸쳐 채널들의 관리를 할 수 있게 해준다. 이는 필요로되는 자원들의 추가 및 과도한 자원들의 배제를 행할 수 있게 해준다.
전술한 바와같이, 동적 CHPID 관리와 더불어, "최상의" 채널이 서브시스템에 부가를 (또는 이로부터 삭제를) 행할 수 있게 해준다.
이를 행하기 위해, 예컨대 결과적인 I/O 구성의 복합성(또는 엔트로피)을 비롯한 하나 이상의 애트리뷰들이 검사를 받는다.
증대된 엔트로피는 I/O 구성을 지나치게 복잡하게하여, DCM의 프로세싱에서의 과도한 시간, 과도한 수의 서브시스템들의 영향을 받음으로 인한 부정확한 결과, 성능 보고에 있어서의 복잡성 및 문제 결정에 있어서의 복잡성을 야기한다. 따라서, 본 발명이 한 양상에서, 서로 다른 선택들의 상대적인 엔트로피를 결정할 수 있는 성능이 제공되어, 구성을 어떻게 조정할 것인가에 관한 선택을 할때 I/O 속도 및 이용가능성과 같은 다른 고려사항들과 함께 상대적인 엔트로피가 고려될 수 있게 된다.
상대적인 엔트로피를 결정하는데 있어, 엔트로피 인덱스가 계산된다. 예컨대, 경로를 부가하는 경우에, 엔트로피 인덱스는 결과적인 구성에서 채널들과 서브시스템들의 합이된다. 또한, 경로를 삭제하는 경우에, 엔트로피 인덱스는 경로삭제후 타겟 서브시스템에 연결된 서브채널 시스템 및 채널들의 세트를 반영한다. 이는 더이상 그 세트에 있지 않게될 채널들 및 서브시스템들을 포함하지않는다.
각 옵션에 대한 엔트로피의 정도를 계산하기위해, 그 결정이 수행되는 것을 가정하여 서로 연결된 채널 및 서브시스템들의 수가 이용된다. 엔트로피 기술의 하나의 기본 전제는 두개 이상의 제안된 트폴로지들의 비교를 가능케 하는 인덱스를 계산하는 것이며, 어느 하나의 결정은 보다 대칭적이거나 또는 적은 엔트로피를 갖는다. 이것의 목적은 짐작되는 많은 상호 연결되는 토폴로지를 회피하는 것인바, 많은 토폴로지는 I/O 속도 기술의 정확성을 낮게하고, 지나치게 복잡한 토폴로지들로 인해 그 사실이후 사람들이 성능 문제를 분석하는 것을 어렵게 만든다.
엔트로피 결정 기술의 한 실시예를 다양한 예를 들어 설명한다. 예컨대, 도 16은 두개의 서브시스템(1604)에 연결된 두개의 채널(1602)을 포함하는 구성(1600)의 한 예를 나타낸것이다. 만일 서브시스템(22)이 추가의 자원을 필요로 하면, 이는 적어도 두개의 장소로부터 그 자원을 얻을 수 있다. 만일 서브시스템이 채널 3으로 부터 그 자원을 얻게되면, 결과적인 재구성은 이제 3개의 채널 및 2개의 서브시스템을 갖게된다.(도 16b). 이는 그 구성에 5개(3+2)의 엔트로피 인덱스를 제공한다. 그러나, 만일 서브시스템(22)이 채널 1로 부터 추가의 자원을 받으면 (도 16c), 결과적인 구성은 그것이 원래 가지고 있던 것보다 적은 채널 또는 서브시스템을 가지며, 결과적인 엔트로피 인덱스는 2가 된다. 이 예에서, 두번째 옵션은 최하위 엔트로피를 갖는다.
다른 예를 고려해보자. 도 17a에 도시한 예에서, 서브 시스템(23)은 추가의 자원을 필요로 한다. 이는 채널 2 또는 4로 부터 얻을 수 있다. 만일 채널 2를 사용하면 (도 17b), 결과적인 엔트로피 인덱스는 5가 된다. (즉, 한 구성에서 2개의 서브시스템에 3개의 채널들이 연결되고, 채널 4는 연결되지 않으므로 카운트 되지 않는다). 만일 채널 4를 이용하면(도 17c), 결과적인 인덱스는 3이 된다. 따라서, 두번째 옵션이 최하위 엔트로피를 갖는다.
다음으로, 이것이 어떻게 엔트로피에 영향을 주는지를 결정하기 위해 구성을 분할하는 경우를 고려해보자.
도 18a에서, 만일 서브시스템(23)이 과도한 용량을 가지면, 채널 2 또는 3은 삭제될 수있다. 만일 채널 2를 삭제하면(도 18b), 그 구성은 분할되고 두 구성의 엔트로피 인덱스는 낮아지게 된다. 만일 채널 3을 삭제하면(도 18c), 여전히 한 구성이 남지만 엔트로피 인덱스는 원래의 인덱스보다 낮아진다. 그 구성을 다소 절반으로 삭제하는 결정의 결과로서, 두개의 덜 복잡한 네트워크가 생성되며, 이는 한 실시예에서 최상의 선택이 된다.
다음예에서, 서브시스템(23)은 과도한 자원을 갖는다 (도 20a). 채널 2 또는 채널 3이 제거될 수 있다. 만일 채널 3이 제거되면(도 20b), 결과적인 엔트로피 인덱스는 7이다. 만일 채널 2를 제거하면(도 20c), 구성은 엔트로피 인덱스 5를 갖는 구성(서브 시스템 23을 갖는 구성)으로 2개의 구성으로 분할되며, 결과적인 두번째 구성은 엔트로피 인덱스 3을 갖는다. 한 실시예에서, 구성의 분할이 선호된다.
결과적인 엔트로피 값이 아닌 분할을 위한 삭제에서 바람직한지를 결정하기위한 추가의 예들을 이제 생각해보기로 한다.
도 21a에 도시한 예에서, 서브시스템(23)은 너무 많은 대역폭을 갖는다. 채널 2 또는 4를 삭제할 수 있다. 만일 채널 2를 삭제하면(도 21b), 새로운 엔트로피 인덱스 6이 얻어지며, 결과적인 두번째 구성의 엔트로피 인덱스는 3이 된다. 만일 채널 4를 삭제하면(도 21c)새로운 엔트로피 인덱스 5가 얻어지며, 결과적인 두번째 구성의 엔트로피 인덱스는 4가 된다. 5 및 4의 엔트로피 인덱스를 갖는 구성은 보다 좋은 선택이다. 한 실시예에서, 분할의 유형이 중요하다.
도 22a에 보인 실시예에서, 서브시스템(23)은 추가의 자원을 필요로 한다. 모든 채널 자원 2'를 서브시스템 (23)에 제공함으로써 서브시스템(21)이 채널 2로 부터 삭제될 수 있으며(도 22b), 채널 4' 자원을 서브 시스템(23)에 제공함으로써 서브시스템(25)이 채널 4로 부터 삭제될 수 있다(도 22c).
만일 서브시스템(21)이 채널 2로부터 삭제되면, 결과적인 엔트로피 인덱스는 7이되고, 결과적인 제 2 구성의 인덱스는 2가 된다. 만일 서브시스템(25)이 채널 4로 부터 삭제되면, 결과적인 엔트로피 인덱스는 이제 6이 되고 결과적인 제 2 구성은 3이 된다. 한 실시예에서, 분할이 동일함에 보다 밀접하므로 두번째 선택이 보다 최상인 것으로 보인다.
어떤 옵션이 절반(즉, "even")에 밀접한 지를 계산하기위해, 새로운 엔트로피 인덱스와 결과적인 제 2 구성의 그것간의 채널과 서브시스템들간의 수에서의 차이룰 결정한다. 이 예에서, 제1의 선택결과는 엔트로피 인덱스가 2 와 7이되어, 그 차이는 5가 된다(즉 대칭 인덱스). 제 2 선택의 결과, 엔트로피 인덱스는 6과 3이되어, 그 차이는 3이된다. 낮은 차이를 갖는 것이 본 실시예에서 최상의 선택이 된다.
결론적으로, 한 실시예에서, 서브시스템을 타겟 I/O 속도를 밀접하게 이송하지 않는 옵션들은 제거되게 된다. 또한, 엔트로피 인덱스는 결과적인 구성에 상호 연결되는 채널 및 서브 시스템들의 전체 수의 채널 및 서브시스템들을 추가함으로써 계산한다.
만일 엔트로피 인덱스가 변화하지 않으면, 이 변화는 대칭이 된다. 최하위 엔트로피 인덱스를 갖는 구성이 전형적으로 선택된다. 비록 보다 높은 엔트로피 인덱스로 구성을 선택하는 것을 의미하더라도, 8개 채널 이상을 갖는 구성을 선택하는 것은 회피하라. 만일 대안이 없으면, 8개 채널 이상을 갖는 구성을 선택하고 다음 간격에서 구성이 분할된다.
상기 실시예들에 대한 여러가지 변형을 I/O 구성과 관련하여 설명하였지만은 본 발명의 특성들은 기억 영역 네트워크 및 다른 것들과 같은 다른 네트워크에 동등하게 응용가능하다.
계산 환경의 자원들을 관리하는 다양한 메커니즘에 대해 전술하였다. 본 발명의 한 양상에서, 물리적으로 공유가능한 자원들이 계산 환경의 논리 분할들에 걸쳐 관리된다. 또한, 한 실시예에서, 논리 분할들은 예컨대 자원 할당에 근거한 우선순위를 통해 자원을 공유할 수 있도록 그룹화된다. 이 자원 공유는 예컨대 LPAR들을 걸친 CPU 자원들의 동적 관리, LPAR들을 걸친 다이내믹 CHPID 관리, 채널 서브시스템에서의 I/O 우선순위 큐잉 및 LPAR들을 걸친 메모리의 동적 관리를 포함한다.
한 예에서, 시스템의 작업부하 관리기는 적어도 부분적으로 이 관리를 담당한다. 공유가능한 자원들은 응용의 서브시스템에 투명한 작업부하 관리기의 지령하에서 LPAR들에 걸쳐 동적으로 재배분된다. 이 자원들은 감시동작 및 고객의 목표에 근거하여 필요한 분할들에 제공된다. 추가로, 예컨대 WLM, 시스플렉스 및 PR/SM 통합을 통한 작업부하 목표에 따른 물리적 자원들의 동적 조정은 병렬 시스플렉스 데이터 공유를 필요로 하지 않고도 수행된다.
상기 실시예들에서, 다양한 계산 환경 및 시스템들을 설명하였다. 이들은 단지 예에 지나지않으며 본 발명의 다양한 양상들을 제한하고자 하는 것이 아니다. 또한, 본 발명의 다양한 양상들을 논리 분할들과 관계하여 설명하였다. 논리 분할들의 이용은 다른 타입의 분할들 뿐만아니라 비분할 시스템들에도 적용될 수 있다. 따라서, 이들 역시 본 발명의 범주내에 있는 것으로 간주된다.
본 발명은 예컨대 컴퓨터로 이용가능한 매체를 갖는 제작물(예컨대, 하나 이상의 컴퓨터 프로그램 제품)에도 포함될 수 있다. 이 매체는 예컨대 본 발명의 성능들을 제공 및 용이하게 하는 컴퓨터 판독가능 프로그램 코드 수단을 내부에 수록하고 있다. 이 제작물은 컴퓨터 시스템의 일부로서 포함될 수 있거나 또는 개별적으로 판매될 수 있다.
추가로, 본 발명의 성능들을 수행하기 위해 머신에 의해 실행가능한 적어도 하나의 명령 프로그램을 유형적으로 구현하는 머신에 의해 판독가능한 적어도 하나의 프로그램 기억장치가 제공될 수 있다.
여기에 도시한 흐름도는 단지 예시를 위한 것이다. 본 발명의 정신을 벗어남이 없이 이들 흐름도 또는 단계들에 많은 변형을 가할 수 있다. 예컨대, 단계들은 서로다른 순서로 수행될 수 있거나 또는 부가 삭제 또는 수정될 수 있다. 이들 모든 변형들은 본 발명의 일부로서 간주된다.
비록 바람직한 실시예들을 예시 상세히 설명하였지만은 당업자이면 본 발명의 범주내에서 다양한 변형, 부가, 대체등이 가능함을 알 수 있을 것이며, 그러므로 이들은 다음의 특허청구범위에 정의된 바와같이 본 발명의 범주내에 드는것으로 간주된다.
본 발명의 적어도 하나의 양상은 계산 환경의 분할들의 그룹들의 관리를 가능하게 하는 것이다. 이들 그룹들의 자원들은 어떤 자원들이 특정 그룹에 할당될지를 결정하고 그들 자원들의 할당을 수행하기위해 스코핑된다. 이 스코핑은 변경이 허락될 자원들에 대한 처리를 제공하여, WLM이 다음에 무엇을 할지에 대한 정확한 결정을 행할 수 있게 된다. 스코핑은 머신이 소프트웨어가 무엇을 하고자 하는지를 이해할 수 있고 그 소프트웨어가 그 머신 구성을 이해하는 방식으로 자원들의 서브세트들이 머신에 제공될 수 있게 하는데 효과가 있다.

Claims (29)

  1. 계산 환경의 코프로세서 내에서 비동기 I/O 개시 요청들을 관리하는 방법으로서,
    하나 이상의 I/O 동작의 실행을 개시하기 위한 하나 이상의 비동기 I/O 개시 요청을 상기 코프로세서에 의해 얻는 단계 -상기 하나 이상의 비동기 I/O 개시 요청은 상기 계산 환경의 하나 이상의 분할과 관련되고, 상기 하나 이상의 분할은 하나 이상의 오퍼레이팅 시스템을 포함함- 와,
    상기 하나 이상의 비동기 I/O 개시 요청 중 하나의 비동기 I/O 개시 요청을 개시하는 단계 -상기 비동기 I/O 개시 요청은 적어도 하나의 I/O 동작의 실행을 개시하는데 사용됨- 를 포함하고,
    상기 개시 단계는 ⅰ) 상기 하나 이상의 비동기 I/O 개시 요청 중 적어도 하나의 비동기 I/O 개시 요청에 할당된 적어도 하나의 우선순위와, ⅱ) 상기 하나 이상의 분할 중 적어도 하나의 분할에 할당된 적어도 하나의 우선순위를 이용하여 상기 비동기 I/O 개시 요청을 선택하는 단계 -상기 ⅱ) 적어도 하나의 우선순위는 상기 적어도 하나의 분할의 작업부하 목표를 고려하는 작업 관리기에 의해 동적으로 조정됨- 를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 선택 단계는
    상기 코프로세서 내에서, 우선순위 시퀀스에 근거하여 상기 하나 이상의 비동기 I/O 개시 요청들을 순서화하는 단계와,
    상기 순서화된 비동기 I/O 개시 요청들 중 제 1 비동기 I/O 개시 요청을 선택하는 단계를 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 선택된 비동기 I/O 개시 요청이 하나 이상의 다른 비동기 I/O 개시 요청들에 비해서 높은 우선순위를 갖는 방법.
  4. 제 1 항에 있어서,
    상기 선택 단계는 공정성 기준(fairness criterion)을 이용하여 상기 개시될 비동기 I/O 개시 요청을 선택하는 단계를 더 포함하는 방법.
  5. 제 1 항에 있어서,
    상기 하나 이상의 분할은 상기 계산 환경의 적어도 하나의 논리 분할(logical partition)이며,
    상기 적어도 하나의 논리 분할은 상기 코프로세서에 결합되고,
    상기 적어도 하나의 논리 분할은 그와 관련된 하나 이상의 우선순위 값들을 갖는 방법.
  6. 제 5 항에 있어서,
    상기 적어도 하나의 논리 분할중 하나 이상의 논리 분할들에 디폴트 우선순위값을 할당하는 단계를 더 포함하는 방법.
  7. 계산 환경의 코프로세서 내에서 비동기 I/O 개시 요청들을 관리하는 방법으로서,
    하나 이상의 I/O 동작의 실행을 개시하기 위한 하나 이상의 비동기 I/O 개시 요청들을 상기 코프로세서에 의해 얻는 단계와,
    상기 코프로세서 내에서 하나 이상의 I/O 동작의 실행을 개시하는데 사용되는 상기 하나 이상의 비동기 I/O 개시 요청들의 개시를 관리하는 단계를 포함하며,
    상기 관리 단계는 ⅰ) 상기 하나 이상의 비동기 I/O 개시 요청들 중 적어도 하나의 비동기 I/O 개시 요청에 할당된 적어도 하나의 우선 순위와, ⅱ) 상기 하나 이상의 개시 요청들이 적어도 하나의 다른 개시 요청에 할당된 우선 순위보다 낮은 우선 순위를 할당받는 경우에도, 스타베이션(starvation) 기간 경과 전에, 상기 적어도 하나의 비동기 I/O 개시 요청의 하나 이상의 개시 요청들의 개시를 용이하게 하기 위해, 상기 적어도 하나의 비동기 I/O 개시 요청에 인가된 적어도 하나의 공정성 기준을 이용하는 방법.
  8. 제 7 항에 있어서,
    상기 관리 단계는
    상기 비동기 I/O 개시 요청의 우선순위에 근거하여 상기 코프로세서의 하나 이상의 자원들을 상기 하나 이상의 비동기 I/O 개시 요청들 중 하나의 비동기 I/O 개시 요청에 할당하는 단계를 포함하는 방법.
  9. 제 7 항에 있어서,
    상기 관리 단계는
    처리될 비동기 I/O 개시 요청을 상기 하나 이상의 비동기 I/O 개시 요청들로부터 선택하는 단계를 포함하고,
    상기 선택 단계는 상기 비동기 I/O 개시 요청에 할당된 적어도 하나의 우선순위를 이용하는 방법.
  10. 계산 환경의 코프로세서 내에서 비동기 I/O 개시 요청들을 관리하는 시스템으로서,
    하나 이상의 I/O 동작의 실행을 개시하기 위한 하나 이상의 비동기 I/O 개시 요청을 상기 코프로세서에 의해 얻는 수단 -상기 하나 이상의 비동기 I/O 개시 요청은 상기 계산 환경의 하나 이상의 분할과 관련되고, 상기 하나 이상의 분할은 하나 이상의 오퍼레이팅 시스템을 포함함- 과,
    상기 하나 이상의 비동기 I/O 개시 요청 중 하나의 비동기 I/O 개시 요청을 개시하는 수단 -상기 비동기 I/O 개시 요청은 적어도 하나의 I/O 동작의 실행을 개시하는데 사용됨- 을 포함하고,
    상기 개시 수단은 ⅰ) 상기 하나 이상의 비동기 I/O 개시 요청 중 적어도 하나의 비동기 I/O 개시 요청에 할당된 적어도 하나의 우선순위와, ⅱ) 상기 하나 이상의 분할 중 적어도 하나의 분할에 할당된 적어도 하나의 우선순위를 이용하여 상기 비동기 I/O 개시 요청을 선택하는 수단 -상기 ⅱ) 적어도 하나의 우선순위는 상기 적어도 하나의 분할의 작업부하 목표를 고려하는 작업 관리기에 의해 동적으로 조정됨- 을 포함하는 시스템.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 계산 환경의 코프로세서 내에서 비동기 I/O 개시 요청들을 관리하는 시스템으로서,
    하나 이상의 I/O 동작의 실행을 개시하기 위한 하나 이상의 비동기 I/O 개시 요청들을 상기 코프로세서에 의해 얻는 수단과,
    상기 코프로세서 내에서 하나 이상의 I/O 동작의 실행을 개시하는데 사용되는 상기 하나 이상의 비동기 I/O 개시 요청들의 개시를 관리하는 수단을 포함하며,
    상기 관리 수단은 ⅰ) 상기 하나 이상의 비동기 I/O 개시 요청들 중 적어도 하나의 비동기 I/O 개시 요청에 할당된 적어도 하나의 우선 순위와, ⅱ) 상기 하나 이상의 개시 요청들이 적어도 하나의 다른 개시 요청에 할당된 우선 순위보다 낮은 우선 순위를 할당받는 경우에도, 스타베이션(starvation) 기간 경과 전에, 상기 적어도 하나의 비동기 I/O 개시 요청의 하나 이상의 개시 요청들의 개시를 용이하게 하기 위해, 상기 적어도 하나의 비동기 I/O 개시 요청에 인가된 적어도 하나의 공정성 기준을 이용하는 시스템.
  17. 삭제
  18. 삭제
  19. 계산 환경의 코프로세서들 내에서 비동기 I/O 개시 요청들을 관리하는 시스템으로서,
    하나 이상의 I/O 동작의 실행을 개시하기 위한 하나 이상의 비동기 I/O 개시 요청을 얻도록 구성된 코프로세서 -상기 하나 이상의 비동기 I/O 개시 요청은 상기 계산 환경의 하나 이상의 분할과 관련되고, 상기 하나 이상의 분할은 하나 이상의 오퍼레이팅 시스템을 포함함- 와,
    상기 하나 이상의 비동기 I/O 개시 요청 중 하나의 비동기 I/O 개시 요청을 개시하도록 구성된 코프로세서 -상기 비동기 I/O 개시 요청은 적어도 하나의 I/O 동작의 실행을 개시하는데 사용됨- 를 포함하고,
    상기 개시는 ⅰ) 상기 하나 이상의 비동기 I/O 개시 요청 중 적어도 하나의 비동기 I/O 개시 요청에 할당된 적어도 하나의 우선순위와, ⅱ) 상기 하나 이상의 분할 중 적어도 하나의 분할에 할당된 적어도 하나의 우선순위를 이용하여 상기 비동기 I/O 개시 요청을 선택하는 것 -상기 ⅱ) 적어도 하나의 우선순위는 상기 적어도 하나의 분할의 작업부하 목표를 고려하는 작업 관리기에 의해 동적으로 조정됨- 을 포함하는 시스템.
  20. 계산 환경의 코프로세서 내에서 비동기 I/O 개시 요청들을 관리하는 시스템으로서,
    하나 이상의 I/O 동작의 실행을 개시하기 위한 하나 이상의 비동기 I/O 개시 요청들을 얻도록 구성된 코프로세서와,
    상기 코프로세서 내에서 하나 이상의 I/O 동작의 실행을 개시하는데 사용되는 상기 하나 이상의 비동기 I/O 개시 요청들의 개시를 관리하도록 구성된 코프로세서를 포함하며,
    상기 관리는 ⅰ) 상기 하나 이상의 비동기 I/O 개시 요청들 중 적어도 하나의 비동기 I/O 개시 요청에 할당된 적어도 하나의 우선 순위와, ⅱ) 상기 하나 이상의 개시 요청들이 적어도 하나의 다른 개시 요청에 할당된 우선 순위보다 낮은 우선 순위를 할당받는 경우에도, 스타베이션(starvation) 기간 경과 전에, 상기 적어도 하나의 비동기 I/O 개시 요청의 하나 이상의 개시 요청들의 개시를 용이하게 하기 위해, 상기 적어도 하나의 비동기 I/O 개시 요청에 인가된 적어도 하나의 공정성 기준을 이용하는 시스템.
  21. 제 1 항 내지 제 9 항 중 어느 한 항에 따른 방법을 컴퓨터에서 구현하는 프로그램을 기록한 컴퓨터 판독가능한 기록 매체.
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
KR10-2000-0054696A 1999-09-28 2000-09-18 계산 환경의 코프로세서 내에서의 비동기 i/o 요청들의 관리 방법 및 시스템과 기록 매체 KR100419680B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/407,459 1999-09-28
US09/407,459 US6651125B2 (en) 1999-09-28 1999-09-28 Processing channel subsystem pending I/O work queues based on priorities
US9/407,459 1999-09-28

Publications (2)

Publication Number Publication Date
KR20010050504A KR20010050504A (ko) 2001-06-15
KR100419680B1 true KR100419680B1 (ko) 2004-02-21

Family

ID=23612193

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0054696A KR100419680B1 (ko) 1999-09-28 2000-09-18 계산 환경의 코프로세서 내에서의 비동기 i/o 요청들의 관리 방법 및 시스템과 기록 매체

Country Status (5)

Country Link
US (1) US6651125B2 (ko)
EP (1) EP1091296A3 (ko)
JP (1) JP3813056B2 (ko)
KR (1) KR100419680B1 (ko)
TW (1) TW475153B (ko)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986137B1 (en) * 1999-09-28 2006-01-10 International Business Machines Corporation Method, system and program products for managing logical processors of a computing environment
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
US7140020B2 (en) * 2000-01-28 2006-11-21 Hewlett-Packard Development Company, L.P. Dynamic management of virtual partition computer workloads through service level optimization
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
US6816905B1 (en) 2000-11-10 2004-11-09 Galactic Computing Corporation Bvi/Bc Method and system for providing dynamic hosted service management across disparate accounts/sites
JP2002041304A (ja) * 2000-07-28 2002-02-08 Hitachi Ltd 論理区画の予備リソース自動付与方法及び論理区画式計算機システム
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
JP2003067351A (ja) * 2001-08-28 2003-03-07 Nec System Technologies Ltd 分散型コンピュータの構成制御システム
JP4018900B2 (ja) 2001-11-22 2007-12-05 株式会社日立製作所 仮想計算機システム及びプログラム
US7089457B2 (en) * 2002-04-16 2006-08-08 International Business Machines Corporation Efficient I/O retry over QDIO
US7164919B2 (en) * 2002-07-01 2007-01-16 Qualcomm Incorporated Scheduling of data transmission for terminals with variable scheduling delays
US7586944B2 (en) * 2002-08-30 2009-09-08 Hewlett-Packard Development Company, L.P. Method and system for grouping clients of a storage area network according to priorities for bandwidth allocation
DE10239934B4 (de) * 2002-08-30 2006-08-31 Daimlerchrysler Ag Verfahren zur Steuerung der Dienstbelegung in einem Datenbussystem
US7020758B2 (en) * 2002-09-18 2006-03-28 Ortera Inc. Context sensitive storage management
US8145759B2 (en) * 2002-11-04 2012-03-27 Oracle America, Inc. Dynamically configurable resource pool
JP2004206692A (ja) * 2002-12-20 2004-07-22 Internatl Business Mach Corp <Ibm> マルチスレッド化プロセッサ・システム上での実行のために、スレッドについての優先順位値を決定する方法および装置
WO2004061662A2 (en) * 2002-12-31 2004-07-22 Globespanvirata Incorporated System and method for providing balanced thread scheduling
US7610305B2 (en) * 2003-04-24 2009-10-27 Sun Microsystems, Inc. Simultaneous global transaction and local transaction management in an application server
US7743083B2 (en) * 2003-04-24 2010-06-22 Oracle America, Inc. Common transaction manager interface for local and global transactions
US7739252B2 (en) * 2003-07-14 2010-06-15 Oracle America, Inc. Read/write lock transaction manager freezing
US7302450B2 (en) * 2003-10-02 2007-11-27 International Business Machines Corporation Workload scheduler with resource optimization factoring
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US8413155B2 (en) * 2004-03-13 2013-04-02 Adaptive Computing Enterprises, Inc. System and method for a self-optimizing reservation in time of compute resources
US7530071B2 (en) 2004-04-22 2009-05-05 International Business Machines Corporation Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions
JP4672282B2 (ja) 2004-05-07 2011-04-20 株式会社日立製作所 情報処理装置、及び情報処理装置の制御方法
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8490102B2 (en) * 2004-07-29 2013-07-16 International Business Machines Corporation Resource allocation management using IOC token requestor logic
US20060048158A1 (en) * 2004-07-29 2006-03-02 International Business Machines Corporation Methods and apparatus for aging a command
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US7752623B1 (en) * 2004-09-16 2010-07-06 Hewlett-Packard Development Company, L.P. System and method for allocating resources by examining a system characteristic
US7222223B2 (en) * 2004-10-29 2007-05-22 Pillar Data Systems, Inc. Management of I/O operations in data storage systems
WO2006053093A2 (en) 2004-11-08 2006-05-18 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US8732368B1 (en) * 2005-02-17 2014-05-20 Hewlett-Packard Development Company, L.P. Control system for resource selection between or among conjoined-cores
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
WO2006107531A2 (en) 2005-03-16 2006-10-12 Cluster Resources, Inc. Simple integration of an on-demand compute environment
CA2603577A1 (en) 2005-04-07 2006-10-12 Cluster Resources, Inc. On-demand access to compute resources
US20060294515A1 (en) * 2005-06-23 2006-12-28 International Business Machines Corporation Common operating system install method
JP4831599B2 (ja) * 2005-06-28 2011-12-07 ルネサスエレクトロニクス株式会社 処理装置
US20070083482A1 (en) * 2005-10-08 2007-04-12 Unmesh Rathi Multiple quality of service file system
US20070240140A1 (en) * 2006-02-10 2007-10-11 International Business Machines Corporation Methods and systems for application load distribution
US20070192518A1 (en) * 2006-02-14 2007-08-16 Aarohi Communications, Inc., A California Corporation Apparatus for performing I/O sharing & virtualization
US8286174B1 (en) * 2006-04-17 2012-10-09 Vmware, Inc. Executing a multicomponent software application on a virtualized computer platform
KR100798924B1 (ko) * 2006-09-29 2008-01-29 한국전자통신연구원 Mboa mac의 pca 구간에서 자원 분배 방법
US7502873B2 (en) * 2006-10-10 2009-03-10 International Business Machines Corporation Facilitating access to status and measurement data associated with input/output processing
US7500023B2 (en) * 2006-10-10 2009-03-03 International Business Machines Corporation Facilitating input/output processing by using transport control words to reduce input/output communications
US8180997B2 (en) * 2007-07-05 2012-05-15 Board Of Regents, University Of Texas System Dynamically composing processor cores to form logical processors
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US9052837B2 (en) * 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
US8166206B2 (en) * 2008-02-14 2012-04-24 International Business Machines Corporation Cancel instruction and command for determining the state of an I/O operation
US7840717B2 (en) * 2008-02-14 2010-11-23 International Business Machines Corporation Processing a variable length device command word at a control unit in an I/O processing system
US8095847B2 (en) * 2008-02-14 2012-01-10 International Business Machines Corporation Exception condition handling at a channel subsystem in an I/O processing system
US8312189B2 (en) * 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US7899944B2 (en) * 2008-02-14 2011-03-01 International Business Machines Corporation Open exchange limiting in an I/O processing system
US7904605B2 (en) * 2008-02-14 2011-03-08 International Business Machines Corporation Computer command and response for determining the state of an I/O operation
US7908403B2 (en) * 2008-02-14 2011-03-15 International Business Machines Corporation Reserved device access contention reduction
US8117347B2 (en) * 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US8196149B2 (en) * 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
US8214562B2 (en) * 2008-02-14 2012-07-03 International Business Machines Corporation Processing of data to perform system changes in an input/output processing system
US8176222B2 (en) 2008-02-14 2012-05-08 International Business Machines Corporation Early termination of an I/O operation in an I/O processing system
US8108570B2 (en) * 2008-02-14 2012-01-31 International Business Machines Corporation Determining the state of an I/O operation
US8001298B2 (en) * 2008-02-14 2011-08-16 International Business Machines Corporation Providing extended measurement data in an I/O processing system
US7840718B2 (en) * 2008-02-14 2010-11-23 International Business Machines Corporation Processing of data to suspend operations in an input/output processing log-out system
US8082481B2 (en) * 2008-02-14 2011-12-20 International Business Machines Corporation Multiple CRC insertion in an output data stream
US7917813B2 (en) * 2008-02-14 2011-03-29 International Business Machines Corporation Exception condition determination at a control unit in an I/O processing system
US7941570B2 (en) 2008-02-14 2011-05-10 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US7937507B2 (en) * 2008-02-14 2011-05-03 International Business Machines Corporation Extended measurement word determination at a channel subsystem of an I/O processing system
US7890668B2 (en) 2008-02-14 2011-02-15 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US8146091B2 (en) * 2008-05-01 2012-03-27 International Business Machines Corporation Expansion and contraction of logical partitions on virtualized hardware
US8055807B2 (en) * 2008-07-31 2011-11-08 International Business Machines Corporation Transport control channel program chain linking including determining sequence order
US7904606B2 (en) * 2008-07-31 2011-03-08 International Business Machines Corporation Transport control channel program chain linked branching
US7937504B2 (en) * 2008-07-31 2011-05-03 International Business Machines Corporation Transport control channel program message pairing
US9189222B1 (en) 2008-10-28 2015-11-17 Hewlett-Packard Development Company, L.P. Updating a computer system
JP5193801B2 (ja) * 2008-10-29 2013-05-08 株式会社日立製作所 ストレージシステムの性能向上又は管理方法、システム、装置及びプログラム
KR101179628B1 (ko) * 2009-03-05 2012-09-04 한국전자통신연구원 구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템
US20110016471A1 (en) * 2009-07-15 2011-01-20 Microsoft Corporation Balancing Resource Allocations Based on Priority
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US8332542B2 (en) 2009-11-12 2012-12-11 International Business Machines Corporation Communication with input/output system devices
US8667197B2 (en) 2010-09-08 2014-03-04 Intel Corporation Providing a fine-grained arbitration system
US8583988B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US9021155B2 (en) 2011-06-01 2015-04-28 International Business Machines Corporation Fibre channel input/output data routing including discarding of data transfer requests in response to error detection
US8364853B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8738811B2 (en) 2011-06-01 2014-05-27 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364854B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8677027B2 (en) 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method
US8473641B2 (en) 2011-06-30 2013-06-25 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8312176B1 (en) 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8346978B1 (en) 2011-06-30 2013-01-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8549185B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
CN102750178B (zh) 2012-06-08 2015-04-29 华为技术有限公司 通信设备硬件资源的虚拟化管理方法及相关装置
US8918542B2 (en) 2013-03-15 2014-12-23 International Business Machines Corporation Facilitating transport mode data transfer between a channel subsystem and input/output devices
US8990439B2 (en) 2013-05-29 2015-03-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices
US10162683B2 (en) * 2014-06-05 2018-12-25 International Business Machines Corporation Weighted stealing of resources
US10585823B2 (en) * 2014-09-30 2020-03-10 EMC IP Holding Company LLC Leveling IO
US9733987B2 (en) * 2015-02-20 2017-08-15 Intel Corporation Techniques to dynamically allocate resources of configurable computing resources
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
US10768936B2 (en) 2015-09-19 2020-09-08 Microsoft Technology Licensing, Llc Block-based processor including topology and control registers to indicate resource sharing and size of logical processor
US10120818B2 (en) 2015-10-01 2018-11-06 International Business Machines Corporation Synchronous input/output command
US10120822B2 (en) * 2015-10-01 2018-11-06 International Business Machines Corporation Synchronous input/output measurement data
US10063376B2 (en) 2015-10-01 2018-08-28 International Business Machines Corporation Access control and security for synchronous input/output links
US10929326B2 (en) * 2016-09-19 2021-02-23 International Business Machines Corporation Firm channel paths
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
JP7031630B2 (ja) * 2019-03-20 2022-03-08 オムロン株式会社 パイプライン演算装置、プログラマブルロジックコントローラ、及び、パイプライン処理の実行方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324361A (ja) * 1992-05-15 1993-12-07 Fujitsu Ltd 仮想計算機システムのcpu制御方式
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
EP0917056A2 (en) * 1997-11-04 1999-05-19 Digital Equipment Corporation A multi-processor computer system and a method of operating thereof

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4271468A (en) * 1979-11-06 1981-06-02 International Business Machines Corp. Multiprocessor mechanism for handling channel interrupts
US4564903A (en) 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system
US4633394A (en) * 1984-04-24 1986-12-30 International Business Machines Corp. Distributed arbitration for multiple processors
US4858108A (en) * 1985-03-20 1989-08-15 Hitachi, Ltd. Priority control architecture for input/output operation
US4843541A (en) 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
JP2629278B2 (ja) * 1988-06-30 1997-07-09 株式会社日立製作所 仮想計算機システム
US5301333A (en) * 1990-06-14 1994-04-05 Bell Communications Research, Inc. Tree structured variable priority arbitration implementing a round-robin scheduling policy
JPH0496828A (ja) * 1990-08-15 1992-03-30 Hitachi Ltd 多重絶対アドレス空間構成方法および装置
US5220653A (en) * 1990-10-26 1993-06-15 International Business Machines Corporation Scheduling input/output operations in multitasking systems
US5257368A (en) 1991-03-28 1993-10-26 International Business Machines Corp. System for dynamically changing a system I/O configuration by determining differences between current and future configurations and describing differences to software and hardware control blocks
US5220654A (en) 1991-03-28 1993-06-15 International Business Machines Corp. Method and system for managing an operating system definition of a dynamically modifiable i/o configuration
US5257379A (en) 1991-09-04 1993-10-26 International Business Machines Corporation Establishing synchronization of hardware and software I/O configuration definitions
US5388219A (en) * 1992-03-02 1995-02-07 International Business Machines Corporation Efficient channel and control unit for host computer
CA2086691C (en) 1992-03-30 1997-04-08 David A. Elko Communicating messages between processors and a coupling facility
US5317739A (en) 1992-03-30 1994-05-31 International Business Machines Corp. Method and apparatus for coupling data processing systems
US5301323A (en) 1992-10-30 1994-04-05 International Business Machines Corp. Data processing system including dynamic channel path management
US5526484A (en) 1992-12-10 1996-06-11 International Business Machines Corporation Method and system for pipelining the processing of channel command words
US5459864A (en) * 1993-02-02 1995-10-17 International Business Machines Corporation Load balancing, error recovery, and reconfiguration control in a data movement subsystem with cooperating plural queue processors
US5388245A (en) * 1993-06-01 1995-02-07 Intel Corporation Memory arbitration method and apparatus for multiple-cycle memory coprocessors employing a data cache unit and stack RAM
US5706432A (en) 1993-11-04 1998-01-06 International Business Machines Corporation Mechanism for receiving messages at a coupling facility
US5473773A (en) 1994-04-04 1995-12-05 International Business Machines Corporation Apparatus and method for managing a data processing system workload according to two or more distinct processing goals
US5564040A (en) 1994-11-08 1996-10-08 International Business Machines Corporation Method and apparatus for providing a server function in a logically partitioned hardware machine
US5675739A (en) 1995-02-03 1997-10-07 International Business Machines Corporation Apparatus and method for managing a distributed data processing system workload according to a plurality of distinct processing goal types
US5737691A (en) * 1995-07-14 1998-04-07 Motorola, Inc. System and method for allocating frequency channels in a two-way messaging network
JP2940450B2 (ja) 1995-10-26 1999-08-25 日本電気株式会社 クラスタ型コンピュータのジョブスケジュール方法及び装置
US5935234A (en) * 1997-04-14 1999-08-10 International Business Machines Corporation Method and system for controlling access to a shared resource in a data processing system utilizing pseudo-random priorities
US5790851A (en) * 1997-04-15 1998-08-04 Oracle Corporation Method of sequencing lock call requests to an O/S to avoid spinlock contention within a multi-processor environment
US6157614A (en) * 1997-10-22 2000-12-05 Netro Corporation Wireless ATM network with high quality of service scheduling
WO1999043002A2 (en) * 1998-02-24 1999-08-26 Seagate Technology Llc Preserving loop fairness with dynamic half-duplex

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324361A (ja) * 1992-05-15 1993-12-07 Fujitsu Ltd 仮想計算機システムのcpu制御方式
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
EP0917056A2 (en) * 1997-11-04 1999-05-19 Digital Equipment Corporation A multi-processor computer system and a method of operating thereof

Also Published As

Publication number Publication date
EP1091296A2 (en) 2001-04-11
KR20010050504A (ko) 2001-06-15
US20030065835A1 (en) 2003-04-03
US6651125B2 (en) 2003-11-18
TW475153B (en) 2002-02-01
JP3813056B2 (ja) 2006-08-23
JP2001142854A (ja) 2001-05-25
EP1091296A3 (en) 2005-05-04

Similar Documents

Publication Publication Date Title
KR100419680B1 (ko) 계산 환경의 코프로세서 내에서의 비동기 i/o 요청들의 관리 방법 및 시스템과 기록 매체
KR100420420B1 (ko) Cpu 자원 관리 방법 및 시스템과 기록 매체
KR100420421B1 (ko) 계산환경의 논리 프로세서들을 관리하는 방법, 시스템 및 기록매체
KR100420419B1 (ko) 계산 환경의 분할들의 그룹들을 관리하는 방법, 시스템 및 기록 매체
US7051188B1 (en) Dynamically redistributing shareable resources of a computing environment to manage the workload of that environment
US6519660B1 (en) Method, system and program products for determining I/O configuration entropy
EP1256039B1 (en) Workload management in a computing environment
US6366945B1 (en) Flexible dynamic partitioning of resources in a cluster computing environment
RU2571366C2 (ru) Виртуальная архитектура неоднородного доступа к памяти для виртуальных машин
US7178147B2 (en) Method, system, and program for allocating processor resources to a first and second types of tasks
US7568052B1 (en) Method, system and program products for managing I/O configurations of a computing environment
Nzanywayingoma et al. Task scheduling and virtual resource optimising in Hadoop YARN-based cloud computing environment
Rooney et al. Intelligent resource director
Adly et al. Performance evaluation of job scheduling in heterogeneous distributed systems
Mateescu A dynamic space sharing method for resource management
Kaur et al. OPTIMIZED LOAD BALANCING STRATEGY IN CLOUD COMPUTING: A

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130124

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140124

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150127

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20170125

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20180129

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 17