KR20030086298A - 분할 처리 환경에서의 자원 조절 - Google Patents

분할 처리 환경에서의 자원 조절 Download PDF

Info

Publication number
KR20030086298A
KR20030086298A KR10-2003-7011808A KR20037011808A KR20030086298A KR 20030086298 A KR20030086298 A KR 20030086298A KR 20037011808 A KR20037011808 A KR 20037011808A KR 20030086298 A KR20030086298 A KR 20030086298A
Authority
KR
South Korea
Prior art keywords
partition
memory
manager
throughput
information
Prior art date
Application number
KR10-2003-7011808A
Other languages
English (en)
Other versions
KR100612059B1 (ko
Inventor
쿠발라제프리
닉제프리
템플조셉3세
요콤피터
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 KR20030086298A publication Critical patent/KR20030086298A/ko
Application granted granted Critical
Publication of KR100612059B1 publication Critical patent/KR100612059B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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
    • 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/5083Techniques for rebalancing the load in a distributed system

Landscapes

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

Abstract

본 발명에서는 다양한 운영 체제 파티션을 지원할 수 있는 분할 처리 시스템에 대하여 개시하고 있는 바, 여기에서는 처리량(throughput) 정보가 한 파티션으로부터 파티션 자원 관리자로 전달된다. 처리량 정보는 분할된 자원에 대한 자원 조절 지시자(directive)를 생성하는 데 사용된다. 상기 처리 시스템은 적어도 제1 파티션 및 제2 파티션을 포함한다. 제2 파티션으로부터 처리량에 관한 정보를 수신하고 자원 조절 지시자를 결정하기 위해 작업 부하 관리자가 제1 파티션에 제공된다. 통보기(communicator)는 작업 부하 관리자로부터 제2 파티션의 커널로 자원 조절 지시자를 통보하며, 제2 파티션의 커널은 파티션 관리자로부터 수신한 자원 조절 지시자에 따라 제2 파티션에 자원을 할당한다.

Description

분할 처리 환경에서의 자원 조절 {RESOURCE BALANCING IN A PARTITIONED PROCESSING ENVIRONMENT}
거대 기업에 대한 최신 매체는 자신의 IT 기반 조직(infrastructure)을 발전시킴으로써, 집중식이던 "온실(glass house)" 데이터 센터의 범위를 그 조직의 경계 전반에 걸쳐, 실지로는 그 경계를 넘어 확장시켰다. 이러한 발전의 자극은 지금까지는 별개 부문의 작업이었던 것을 상호 연결시키고자 하는 바램에 일부 기인하며, 이에 의해 실시간으로 공급자 및 소비자가 통신할 수 있도록 하고자 함이다. 또한 이러한 발전의 자극에는 전자 상거래 및 상호 연결 동시 액세스 매체로서의 인터넷 성장과, 이러한 접속의 제공을 점차 가능하게 하는 비즈니스 대 비즈니스 솔루션이 그 원동력이 되었다.
이러한 최근의 발전에는, 오늘날의 기업이 이음새 없는 상호 연결 시스템을 생성하기 위해 여러 상이한 운영 플랫폼을 동적으로 연결해야 할 필요가 수반된다. 기업들은 종종 이종 정보 시스템 기반 조직으로 특징지을 수 있는 바, 이는 비집중식 구매 경영, 적용 기반 요건 및 병합 관련 활동으로부터 비롯되는 이종 기술 플랫폼 생성과 같은 요인에 기인한다. 더욱이, 공급자, 파트너 및 고객간의 실시간 기업 외 접속을 촉진시키고자 하는 욕구로 인해 이종 환경에서의 접속을 제공하고자 하는 강력한 동기가 부여되었다.
고객의 요구 사항이 빠르게 증가함에 따라, 정보 기술 제공자들은 이러한 기업 데이터 센터에 대한 확대된 접속의 필요에 부응하는 데이터 처리 솔루션을 만들어 내기 시작하였다.
본 명세서에 있어 이러한 주제와 관련된 배경 정보는 다음과 같다. 즉 루핀(Ruffin) 등의 미국 특허 출원 제09/183,961호, "COMPUTATIONAL WORKLOAD-BASED HARDWARE SIZER METHOD, SYSTEM AND PROGRAM PRODUCT"에서는 컴퓨터 시스템 활동을 분석하는 데 관하여 기술하고 있고, 템플(Temple) 등의 미국 특허 출원 제09/584,276호, "INTER-PARTITION SHARED MEMORY METHOD, SYSTEM AND PROGRAM PRODUCT FOR A PARTITIONED PROCESSING ENVIRONMENT"에서는 논리 파티션간의 공유 메모리에 관하여 기술하고 있으며, 배스키 등의 미국 특허 출원 제09/253,246호, "A METHOD PROVIDING DIRECT DATA PROCESSING ACCESS USING QUEUED DIRECT INPUT-OUTPUT DEVICE"에서는 고대역폭 통합 어댑터에 관해 기술하고 있고, 템플 등의 미국 특허 출원 제09/583,501호, "HETEROGENEOUS CLIENT SERVER METHOD, SYSTEM AND PROGRAM PRODUCT FOR A PARTITIONED PROCESSING ENVIRONMENT"에서는 한 시스템에서 구 가지 상이한 클라이언트 서버를 분할하는 것에 관해 기술하고 있으며, IBM 문서 제SG24-5326-00호, "OS/390 Workload Manager Implementation and Exploitation"(ISBN: 0738413070)에서는 복수 파티션의 작업 부하를 관리하는 것에 관해 기술하고 있고, IBM 문서 제SA22-7201-06, "ESA/390 Principles of Operation"에서는 ESA/390 명령어 세트 아키텍쳐에 관해 기술하고 있다. 이들 문서는 본 명세서에 참조로서 포함되었다.
처음에는, 동작의 독립성을 갖는 여러 애플리케이션의 처리를 동시에 지원하는 통합 시스템을 공급할 필요에 따라 분할 다중처리 시스템 시장의 확장이 이루어졌다. 한때 메인프레임 컴퓨터(예컨대 IBM S/390 시스템 등)의 고유 영역이었으나, 이러한 분할 시스템 - 단일 물리 컴퓨팅 시스템 내에서 복수의 운영 체제 이미지를 지원할 수 있음 - 이 더욱 다양한 공급자로부터 제공되게 되었다. 예컨대 선 마이크로시스템즈(Sun Microsystems, Inc.)는 최근 Ultra Enterprise 10000 하이엔드 서버에 일종의 시스템 분할을 제고하기 시작하였으며, 이는 드로기첸(Drogichen) 등의 미국 특허 제5,931,938호, "Multiprocessor Computer having Configurable Hardware System Domains"(1996년 12월 12일자 출원, 1999년 8월 3일 등록, 특허권자 Sun Microsystems, Inc.)에 상세히 기술되어 있다. 그 밖의 회사들도 이러한 종류의 시스템에 대한 그들의 관심을 나타내는 경영 방침 성명을 발표한 바 있다.
산업계의 이러한 채택 경향에 의해, 하나(또는 몇 개)의 물리적 서버 컴퓨터 상에 한 기업 내의 여러 컴퓨터 작업 부하를 통합하고, 동적 구성이 가능한 하드웨어 환경에서 테스트 및 생산 레벨 코드를 동시에 구현하는 데 있어 시스템을 분할함으로써 생기는 "시스템 내의 시스템(system within a system)" 이익이 강조되었다. 더욱이, 앞서 언급한 특허 출원에서 기술된 IBM S/390(R) 컴퓨터 시스템과 같은 분할 다중처리 시스템에서는, 그 시스템에서 수행되는 작업 부하에 배정된 우선 순위에 따라 논리 파티션 내 및 이들 사이에 자원(프로세서, 메모리 및 I/O 포함)이 동적으로 할당될 수 있다. 작업 부하 우선 순위에 기초한 동적 자원 할당을 가능하게 하는 능력에 의해, 장기간의 용량 계획 문제 - 역사적으로 데이터 센터 관리자들이 예상 컴퓨팅 작업 부하보다 많은 양의 자원을 의도적으로 할당함으로써 작업 부하 스파이크(spike)를 관리함 - 에 대처하게 되었다.
이러한 분할 시스템에 의해 기업 전체에 걸쳐 있는 별개의 시스템을 포함하도록 데이터 시스템의 확장이 촉진되었지만, 현재 이들 솔루션은 이종 또는 동종의 분할 플랫폼을 단일한 상호 동작 분할 시스템으로 기능적 통합을 시키는 직관적인 메커니즘을 제공하지 못한다. 사실, 이들 새로운 서버가 단일한 물리적 하드웨어 플랫폼 내에서 운영 체제 이미지들의 병합을 가능하게 하였지만, 이들은 서버의 파티션들 내에 존재하는 운영 체제들 사이의 상호 동작의 필요에 충분히 부응하지 못한다. 이러한 상호 동작성의 문제는 여러 파티션에 있는 별개의 운영 체제를 갖는 이종 시스템에서 특히 심각해진다. 더욱이, 이들 시스템은 통상적으로 이러한 이종 플랫폼간의 파티션간 자원 공유(파티션간의 고대역폭, 저지연 상호 접속을 가능하게 함) 유형을 정해놓지 않았다. 이러한 상호 동작 문제에 대처하는 것은 매우 중요하며, 이는 이러한 문제에 대한 솔루션을 통합하는 시스템은 별개 파티션에서 실행되는 프로세스간의 통신을 위한 더욱 강인한 설비를 가능하게 하기 때문이며, 이에 의해 이러한 애플리케이션은 별개의 운영 체제 상에서 실행되지만 실지로는 서로에 대해 국지적이라는 사실이 더욱 확실해진다
앞서 언급한 템플 등의 미국 특허 제09/584,276호에서는, 여러 운영 체제의 "커널(kernel)"에 대한 확장에 의해, 파티션간 메모리 공유를 가능케 하는 공유 스토리지(storage)의 사용을 촉진하였다. "커널"이라 함은 운영 체제의 핵심 시스템서비스 코드를 말한다. 이에 따라 생성된 인터페이스 상에 네트워크 메시지 전달 프로토콜을 구현할 수 있지만, 하나 또는 그 이상의 운영 체제를 수정하는 것에 의존하지 않고 효율적인 프로세스간 통신을 해야 할 필요가 종종 제기된다. 앞서 언급한 템플 등의 미국 특허 출원 제09/584,276호 또는 선 마이크로시스템즈 울트라 엔터프라이즈 10000 하이엔드 서버(미국 특허 제5,931,938호)에서와 같이, 파티션 격리의 제한을 피함으로써 메모리 영역을 공유할 필요 또한 종종 제기된다. 동시에, 네트워크 속도가 아닌 메모리 속도로 파티션간에 정보를 전달할 필요가 있다. 따라서 주소를 공유하지 않고 파티션 메모리간에 메모리를 이동시키는 방법이 필요하다.
IBM S/390 Gbit 이더넷 I/O 어댑터(비동기 코프로세서 데이터 무버 방법 및 수단, 1995년 8월 15일자 미국 특허 제5,442,802호)를 사용하여 데이터를 한 파티션의 커널 메모리로부터 다른 쪽으로 이동시킬 수 있지만, 여기서 데이터는 제1 커널 메모리로부터 어댑터상의 대기열 버퍼로 옮겨진 후, 제2 커널 메모리로 전송되기에 앞서 어댑터상의 제2 대기열 버퍼로 전송된다. 어떠한 메시지 전달 통신 방식에 있어서도, 데이터 액세스의 지연 시간이 공유 스토리지에 데이터를 한 번 읽거나 쓰는 정도에 근접하도록 데이터 이동 동작의 회수를 최소화하는 것이 필요하다. 이동 기능에는 전송되는 데이터의 각 블록에 대하여 3가지 데이터 이동 연산이 있다. 이들 동작 중 하나 또는 둘을 제거할 필요가 있다.
마찬가지로, IBM S/390 병렬 시스플렉스 결합 설비(Parallel Sysplex Coupling Facility) 머신은 파티션간 메시지 전달을 촉진하는 데 쓰일 수 있다. 그러나 이 경우 데이터 전달은 제1 커널 메모리로부터 상기 결합 설비로, 그 후 사익 결합 설비로부터 제2 커널 메모리로 이루어지게 된다. 이 경우도 단일 이동이 아닌 2번의 데이터 동작이 필요하다.
많은 컴퓨터 시스템에 있어서, 무허가 또는 부당 액세스를 통해 머신상의 데이터 및 애플리케이션을 부당하게 사용하는 것을 방지하기 위해 사용자의 신원을 확인하는 것이 필요하다. 여러 운영 체제 및 애플리케이션 시스템은 이러한 목적을 위한 사용자 인증(authentication) 및 그 밖의 보안 서비스를 갖추고 있다. 분할 시스템 또는 시스템의 네트워크나 클러스터(cluster)로 진입하는 사용자에 대해서는 진입시에 한 번, 또는 중요한 자원에 대한 요청이나 중요한 시스템 관리 기능의 실행을 요청하는 등의 중요 체크포인트에서 신원을 확인하는 것이 필요하다. 이는 "단일 사용 승인(SSO; Single Sign On)" 조건으로 알려져 있다. 이 때문에 여러 파티션을 갖는 보안 서버는 서로 상호 작용을 하거나 또는 병합되어야 한다. 그 예로는 OS/390 SAF(RACF) 인터페이스를 개선하여 웹에서 받은 "디지털 인증서(digital certificate)"를 처리하여 이를 종래의 사용자 ID 및 패스워드 인증 및 권한 설정(entitlement)에 대응시키는 것을 들 수 있는 바, 이는 OS/390, 켈베로스(Kerberos) 보안 서버 및 디렉토리 서비스를 위한 최근의 LDAP 표준에서 이루어진다.
또한, 전자상거래에 있어서의 경쟁으로 인해 사용자 인증 및 권한 설정의 성능이 종래의 시스템에서보다 더욱 중요해졌다. 일과를 개시한 후 직원이 인증을 받아야 하는 경우 이것이 너무 오래 걸리면 고객이 떠나버릴 수도 있을 것이다. 웹의공공성으로 인해 암호화를 사용해야 하는 것은 이 문제를 더욱 악화시킨다. 또한 어떤 운영 체제 내에 존재하는 I/O 운영 프로그램(또는 I/O 장치 드라이버)은 다른 운영 체제를 위해 작성된 것이 아닌 경우가 종종 있다. 이러한 경우 한 파티션에 있는 장치 드라이버에 대해 다른 파티션으로부터 효율적인 방식으로 인터페이스를 하는 것이 바람직하다. 오늘날에는 이러한 종류의 네트워크 접속만을 사용할 수 있다.
분산형 시스템의 문제 중 하나는 어떤 시스템이 과도하게 사용되는 경우에 다른 시스템 내의 "공백(white space)" 또는 충분히 사용되지 않는 자원을 관리하는 것이다. 이에 대해서는 IBM의 LoadLeveler 또는 OS/390 운영 체제의 작업 부하 관리자의 병렬 시스플렉스(Parallel Sysplex) 기능과 같은 작업 부하 조절기(workload balancer) 등이 시스템 또는 시스템 이미지들 사이에서 작업을 이동시킨다. 분할 컴퓨팅 시스템에서는 파티션간에 작업을 이동시키기보다는 자원을 이동시키는 것이 바람직하며 또한 가능하다. 이는 기능 이동에 수반한 대량의 문맥(context) 전환 및 데이터 이동을 피할 수 있기 때문에 바람직한 것이다.
IBM S/390을 위한 "시스플렉스 소켓"은 시스플렉스의 외부 클러스터링(clustering) 접속을 사용하여 유닉스(UNIX) 운영 체제의 소켓 대 소켓 접속을 구현하며, 이는 종래 기술의 한 가지 예이다. 이 경우 서비스는 가능한 보안 레벨을 표시하고, 애플리케이션의 요구 보안 레벨 표시에 기초하여 접속을 설정한다. 그러나 이 경우 높은 보안 레벨에 대해서는 암호화가 제공되며, 시스플렉스 접속 자체는 본 발명에 의해 구현되는 메모리 접속보다 훨씬 깊은 물리적 전송 계층을 갖는다.
마찬가지로, 웹 애플리케이션 서버에 대해 SSL(Secure Sockets Layer) 인증 및 인증서 정보를 제공(프록시로서)하는 웹 서버는, 본 발명의 메모리 공유 또는 직접 메모리 대 메모리 메시지가 유리하게 사용될 수 있는 또 다른 예로 볼 수 있다. 여기서 프록시가 보안 서버에 전달될 데이터를 다시 암호화할 필요는 없으며, 또한 관리해야 할 깊은 접속 인터페이스를 갖지 않는다. 실제로 본 기술 분야의 당업자는, 본 발명의 이러한 실시예에 있어 본래 프록시 서버가 보안 서버와 동일한 운영 체제 하에서 실행되는 프록시 서버와 본질적으로 동일한 프로세스를 통해 보안 서버와 통신한다는 것을 알 수 있을 것이다. 배스키 등의 미국 특허 출원 제09/411,417호, "METHOD, SYSTEMS AND COMPUTER PROGRAM PRODUCTS FOR ENHANCED SECURITY IDENTITY UTILIZING AN SSL PROXY"에서는 프록시 서버를 사용하여 보안 HTTP 프로토콜 내의 SSL을 실행하는 것에 관하여 설명하고 있다.
본 발명은 이하의 미국 특허 출원과 관련되어 있으며, 상호 참조로서 인용되어 있다.
1) 배스키(Baskey) 등의 미국 특허 출원 제09/801,407호, "분할 처리 환경에서의 처리율 측정을 위한 파티션간(inter-partition) 메시지 전달 방법, 시스템 및 프로그램 제품(INTER-PARTITION MESSAGE PASSING METHOD, SYSTEM AND PROGRAM PRODUCT FOR THROUGHPUT MEASUREMENT IN A PARTITIONED PROCESSING ENVIRONMENT)"(대리인측 분류 번호 POU92000-0200US1)
2) 쿠발라(Kubala) 등의 미국 특허 출원 제09/801,993호, "분할 처리 환경에서의 작업 부하 관리를 위한 파티션간 메시지 전달 방법, 시스템 및 프로그램 제품 (INTER-PARTITION MESSAGE PASSING METHOD, SYSTEM AND PROGRAM PRODUCT FOR MANAGING WORKLOAD IN A PARTITIONED PROCESSING ENVIRONMENT)"(대리인측 분류 번호 POU92000-0201US1)
3) 배스키 등의 미국 특허 출원 제09/801,492호, "분할 처리 환경에서의 보안 서버를 위한 파티션간 메시지 전달 방법, 시스템 및 프로그램 제품 (INTER-PARTITION MESSAGE PASSING METHOD, SYSTEM AND PROGRAM PRODUCT FOR A SECURITYSERVER IN A PARTITIONED PROCESSING ENVIRONMENT)"(대리인측 분류 번호 POU92001-0012US1)
한편, 본 발명은 일반적으로 분할 데이터 처리 시스템에 관한 것이고, 특히 시스템의 파티션에서 복수의 운영 체제 이미지를 실행시킬 수 있는 시스템에 관한 것이다.
도 1은 분할 데이터 처리 시스템의 전반적인 개략도.
도 2는 하나 또는 그 이상의 시스템 보드를 포함하는 파티션을 갖는, 물리적으로 분할된 처리 시스템을 나타낸 도면.
도 3은 논리적으로 분할된 처리 시스템을 나타낸 도면(논리적으로 분할된 자원은 이들의 각 파티션 전용의 것임).
도 4는 논리적으로 분할된 처리 시스템을 나타낸 도면(논리적으로 분할된 자원은 다수의 파티션들 사이에 동적으로 공유될 수 있음).
도 5는 유닉스 운영 체제의 구조인 "프로세스간 통신"을 나타낸 도면.
도 6은 독립 유틸리티(utility)에 의해 적재된 구성 테이블에 따라 실제 메모리가 공유되는 실시예를 나타낸 도면.
도 7a는 I/O 어댑터 설비 및 이의 드라이버가 파티션간의 데이터 전송을 촉진하기 위해 쓰이는 실시예를 나타낸 도면.
도 7b는 종래 기술의 시스템을 나타낸 도면.
도 8은 분할 데이터 처리 시스템의 통신 조직체 내에 구현된 데이터 무버에 의해 파티션간의 실제 데이터 전송이 이루어지는 실시예를 나타낸 도면.
도 9는 예로 든 데이터 무버의 구성 요소를 나타낸 도면.
도 10은 IBM S/390 이동 명령어 형식의 예를 나타낸 도면.
도 11은 어댑터 데이터 이동을 실행하는 단계의 예를 나타낸 도면.
도 12는 프로세서 데이터 이동을 실행하는 단계의 예를 나타낸 도면.
도 13은 작업 부하 관리자(WLM)의 고레벨 개요를 나타낸 도면.
도 14는 통산의 작업 부하 관리자 데이터를 나타낸 도면.
도 15는 간접 I/O를 사용하는 클라이언트/서버의 클러스터링을 나타낸 도면.
도 16은 클라이언트 서버의 서버 클러스터링을 나타낸 도면.
본 발명의 한 가지 태양에 있어서, 처리 시스템은 적어도 제1 파티션 및 제2 파티션을 갖는다. 상기 시스템은 모든 파티션과 통신하는 파티션 자원 관리자를 갖는다. 상기 파티션 자원 관리자는 제2 파티션 처리량에 관한 정보를 제2 파티션으로부터 수신하여 제2 파티션의 자원에 대한 자원 조절 지시자(directive)를 결정한다. 상기 자원 관리자는 상기 자원 조절 지시자에 따라 제2 파티션에 자원을 할당한다.
바람직한 실시예에 있어서, 파티션 자원 관리자 기능은 하이퍼바이저와 함께작업 부하 관리자를 사용하여 구현되는 것이 바람직하다. 사익 시스템은 모든 파티션과 통신하는 하이퍼바이저를 갖는다. 제2 파티션으로부터 처리량에 관한 정보를 수신하고 자원 조절 지시자를 결정하기 위해 작업 부하 관리자가 제1 파티션에 제공된다. 통보기(communicator)는 작업 부하 관리자로부터 하이퍼바이저로 자원 조절 지시자를 통보한다. 제2 파티션의 커널은 하이퍼바이저로부터 수신한 자원 조절 지시자에 따라 제2 파티션에 자원을 할당한다.
본 발명의 한 가지 실시예에 있어서, 복수의 파티션에서 실행되는 복수의 상호 동작 프로세스를 위해 지정된 메모리 자원에 대해 공유 메모리 자원이 독립적으로 매핑(mapping)되는 것이 바람직하다. 이러한 방식에 있어서, 공통의 공유 메모리 공간은 각각의 파티션(그 파티션 내에 할당된 메모리 자원으로 간주되는 메모리 자원을 공유함)에 있는 프로세스에 의해 그 프로세스로 매핑되며, 통상의 프로세스 실행 과정에서 데이터 읽기 및 쓰기에 사용될 수 있다.
다른 실시예에 있어서, 상기 프로세스는 독립적이고, 상기 공유 메모리 자원은 프로세스 중 하나 또는 모두로부터 후속 액세스를 위해 프로세스 중 하나 또는 모두에 의해 저장될 수 있다.
또 다른 실시예에 있어서, 상기 시스템은 파티션들 내의 여러 프로세스를 공유 메모리 공간에 접속시키기 위한 프로토콜을 포함한다.
또 다른 실시예에 있어서, I/O 어댑터는 파티션의 커널 공간으로부터 또 다른 파티션의 커널 공간으로의 데이터 직접 이동을 가능하게 하는 바, 이 I/O 어댑터는 분할에 관계없이 모든 물리적 메모리에 대해 물리적 액세스를 한다. 모든 메모리에 대해 액세스를 할 수 있는 I/O 어댑터의 능력은, 파티션간의 I/O 자원 공유가 가능한 분할 컴퓨터 시스템에 있어서의 기능상 당연한 귀결이다. 이러한 공유는 1995년 5월 9일자 미국 특허 제5,414,851호, "METHOD AND MEANS FOR SHARING I/O RESOURCES BY A PLURALITY OF OPERATING SYSTEMS"에 기술된 바 있다. 그러나 이 어댑터는 데이터 무버를 사용하여 한 파티션의 메모리로부터 다른 파티션의 메모리로 데이터를 직접 이동시키는 능력을 갖는다.
또 다른 실시예에 있어서, 커널 메모리간의 데이터 이동을 위한 설비는 네트워크 통신 어댑터의 하드웨어 및 장치 드라이버 내에서 구현된다.
또 다른 실시예에 있어서, 상기 네트워크 어댑터는 TCP/IP 스택으로부터 구동되며, 이는 메모리를 통한 메모리 인터페이스로의, 국지적이지만 이종의 보안 접속을 위해 최적화되어 있다.
또 다른 실시예에 있어서, 데이터 무버 자체가 분할 처리 시스템의 통신 조직체(fabric) 내에 구현되며, 더욱 직접적인 메모리 대 메모리 전송을 용이하게 하는 I/O 어댑터에 의해 제어된다.
또 다른 실시예에 있어서, 연산자로서 제공되는 주소 및 오프셋(offset)을 물리적인 주소로 해석할 수 있는 우선 CISC 명령어(privileged CISC instruction)의 마이크로코드(microcode)에 의해 데이터 무버가 제어되며, 이에 의해 두 파티션 내에 실제 및 가상 주소를 갖는 물리적 주소들 간의 MVCL(move character long) 명령어(IBM S/390 MVCL 명령어임. IBM 문서 SA22-7201-06, "ESA/390 Principles of Operation" 참조)에 상당하는 명령을 실행하게 된다.
또 다른 실시예에 있어서, 데이터 무버는 하이퍼바이저 내에서 실행되는 루틴(모든 물리적 메모리에 대한 가상 및 실제 메모리 액세스를 하고, 연산자로서 제공되는 주소 및 오프셋을 물리적 주소로 해석할 수 있음)에 의해 제어되며, 이에 의해 두 파티션 내에 실제 및 가상 주소를 갖는 주소들 간의 MVCL 명령어(IBM S/390 MVCL)에 상당하는 명령을 실행하게 된다.
파티션들 중 하나에 서버 프로세스를 구현하고 다른 파티션에 클라이언트 프로세스를 구현함으로써, 분할 시스템은 이종 단일 시스템 클라이언트 서버 네트워크를 구현할 수 있다. 기존의 클라이언트/서버 프로세스는 통상 네트워크 프로토콜 접속에 의해 상호 동작하므로, 이들은 본 발명에 따른 메시지 전달 실시예에 따라 손쉽게 구현되어 인터페이스의 변경 없이도 성능 및 보안 향상을 꾀할 수 있게 된다. 그러나 본 발명의 공유 메모리 실시예에 따라 클라이언트/서버 프로세스를 구현하는 것은 성능 및 전개 속도 중 하나 또는 모두에 있어서 이득이 될 수 있다.
또 다른 실시예에 있어서, 공유 메모리 또는 메모리 대 메모리 메시지 전달을 사용하는 애플리케이션 서버를 위한 신뢰성 있는 보호된 서버 환경이 제공된다. 이는 현재 기술에서와 같은 추가적인 암호화 또는 인증을 필요로 하지 않고, 인가 및 인증 데이터를 외부화(externalize)함으로써 보안 노출이 되는 것을 피할 수 있다.
특정 실시예에 있어, 웹 서버는 OS/390을 위한 리눅스 하에서 실행되는 리눅스 아파치(Linux Apache)이며, 이는 메모리 인터페이스를 통해 "SAF" 보안 인터페이스(OS/390, Z/OS 또는 V/390 하에서 실행됨)로 통신한다. 이 실시예에 있어서 리눅스의 "플러그 가능한 인증 모듈(Pluggable Authentication Module)"은 상기 메모리 접속을 통해 상기 SAF 인터페이스를 구동하도록 수정된다.
또 다른 실시예에 있어서, Policy Director 또는 RACF와 같은 보안 서버를 변경함으로써 보안 증명(credential)/문맥(context)이 공유 메모리 내에 저장되거나 또는 메모리 대 메모리 전송을 통해 복제되도록 한다.
따라서 본 발명의 바람직한 시스템에는 복수의 이종 운영 체제 이미지(이들은 메모리 속도로 메모리 위치의 공유 없이 메모리 위치간에 메시지를 동시에 전달할 수 있음)를 지원할 수 있는 분할 컴퓨터 시스템이 포함된다. 이는 I/O 어댑터를 특별한 장치 드라이버와 함께 사용함으로써 이루어지며, 이들은 한 파티션의 한 메모리 공간으로부터 제2 파티션의 커널 메모리 공간으로의 데이터 직접 이동을 촉진시킨다.
이제 본 발명의 바람직한 실시예에 대하여 설명할 것이며, 이에 있어서는 첨부된 도면을 참조할 것인 바, 이는 예를 들기 위할 뿐이다.
본 발명의 바람직한 실시예의 특정 태양을 논하기에 앞서, 분할 처리 시스템의 기본적인 구성 요소를 살펴보고 넘어가기로 한다. 이를 배경으로 하여 본 실시예의 특정 이점이 분할 시스템에 어떻게 사용되어 그것의 성능을 향상시키는지에 대해 이해할 수 있게 될 것이다. IBM 문서 SC28-1855-06, "OS/390 V2R7.0 OSA/SF User's Guide"를 참조한다. 이 책은 OS/390 운영 체제의 요소인 OSA/AF(Open Systems Adapter Support Facility)를 어떻게 사용하는 지에 대해 기술하고 있다. 이는 OSA/SF를 설정하고, OSA를 커스터마이즈(customize) 및 관리하기 위해 OS/2 인터페이스 또는 OSA/SF 명령어를 사용하는 명령어를 제공한다. G321-5640-00, "S/390 cluster technology: Parallel Sysplex"에서는 범용 대형 상용 시장을 위해 개발된, 클러스터화 다중 프로세서 시스템에 관하여 설명하고 있다. S/390 병렬 시스플렉스 시스템은 고확장성 클러스터화 컴퓨팅 환경에서 완전 데이터 공유 및 병렬 처리의 장점을 결합하기 위해 설계된 아키텍쳐(architecture)에 기반을 둔 것이다. 병렬 시스플렉스 시스템은 비용, 성능 범위 및 가용성에 있어서 중대한 장점을 제공한다. IBM 문서 SC34-5349-01, "MQSeries Queue Manager Clusters"에서는 MQSeries 대기열 관리자 클러스터에 관하여 기술하고 있으며, 클러스터의 개념, 용어 및 장점에 관하여 설명하고 있다. 이는 새로운 명령어 및 변경된 명령어 구문을 요약하고 있으며, 대기열 관리자 클러스터의 설정 및 유지를 위한 작업의 예를 다수 보여주고 있다. IBM 문서 SA22-7201-06, "ESA/390 Principles of Operation"에는 참조를 위한 목적으로 ESA/390 아키텍쳐의 상세한 정의가 포함되어 있다. 이는 어셈블리 언어 프로그래머가 주로 사용할 경우를 위한 참고 문헌으로서 작성된 것이며, 각 기능의 설명을 각 기능에 의존하는 어셈블리 언어 프로그램을 준비하는 데 필요한 수준으로 상세하게 제공하고 있지만, ESA/390 기능의 세부 사항에 관심이 있는 자 누구에게나 유용할 것이다.
앞서 언급한 문서는 본 기술 분야의 현재 상태를 나타내고자 한 예이며, 본 발명의 배경 기술을 이해하는 데 유용할 것이다.
도 1을 참조하면, 분할 처리 시스템(100)을 구성하는 기본적인 요소가 나타나 있음을 볼 수 있다. 시스템(100)은 물리적 메모리 자원(블록 A 및 B로 나타낸 블록으로 분할될 수 있음)으로 구성된 메모리 자원 블록(101), 하나 또는 그 이상의 프로세서{분할된 메모리 자원(101)과 일치하도록 논리적 또는 물리적으로 분할될 수 있음}로 구성된 프로세서 자원 블록(102) 및 마찬가지로 분할될 수 있는 입력/출력(I/O) 자원 블록(103)을 포함한다. 이와 같은 분할된 자원 블록은 스위칭 행렬 등을 포함할 수 있는 상호 접속 조직체(interconnection fabric)(104)를 통해 상호 접속된다. 상호 접속 조직체(104)는 파티션 내에서 자원을 상호 접속시키는 기능, 예컨대 프로세서(102B)를 메모리(101B)에 접속시켜주는 기능을 할 수 있으며, 또한 예컨대 프로세서(102A)를 메모리(101B)에 접속시키는 것과 같이 파티션간에 자원을 상호 접속시켜 주는 역할을 할 수도 있다. 본 명세서에서 사용된 "조직체(Fabric)"라는 용어는 본 기술 분야에 있어 알려진, 시스템의 요소를 상호 접속시켜주는 일반적인 방법을 의미하는 것이다. 이는 단순한 포인트 대 포인트 버스일 수도 있고, 또는 복잡한 라우팅(routing) 메커니즘일 수도 있다. 도면들에서는 두 개의 파티션(A 및 B)을 나타내고 있으나 이는 설명을 간단히 하기 위한 것이며, 본 발명은 가용 자원 및 분할 기술이 허락하는 만큼 많은 수의 분할을 구현하도록 구성될 수 있는 시스템을 포함하는 것이다.
도시한 파티션 A 및 B 각각은 개별적인 데이터 처리 시스템(즉 프로세서 메모리 및 I/O)의 구성 요소를 포함한다는 것을 알 수 있을 것이다. 이러한 사실은 분할 처리 시스템에 있어 "시스템 내의 시스템"과 같은 특유의 장점을 갖도록 한다. 사실상 앞으로 설명할 바와 같이, 현재 이용할 수 있는 분할 시스템들과의 주요한 차이점은 시스템 자원이 분할되는 경계를 넘어 파티션 사이에 자원의 이동이 용이하다는 점이다.
파티션을 분리시키는 경계가 물리적 경계인 첫 번째 경우는, Sun Microsystems Ultra Enterprise 10000 시스템을 예로 들 수 있다. Ultra Enterprise 10000 시스템에 있어서는 파티션이 물리적 경계를 따라 분리될 수 있는 바, 특히 도메인 또는 파티션은 하나 또는 그 이상의 물리적 시스템 보드(이들 각각은 다수의 프로세서, 메모리 및 I/O 장치를 포함함)를 포함한다. 다음으로 도메인은 독점적인 버스 및 스위치 아키텍쳐에 의해 상호 접속된다.
도 2는 물리적으로 분할된 처리 시스템(200)을 구성하는 요소를 높은 레벨로 나타낸 것이다. 도 2에서 시스템(200)은 두 개의 도메인 또는 파티션 A 및 B를 포함한다. 파티션 A는 두 개의 시스템 보드(201A1 및 201A2)를 포함한다. 파티션 A의 각 시스템 보드는 메모리(201A), 프로세서(202A), I/O(203A) 및 상호 접속 매체(204A)를 포함한다. 상호 접속 매체(204A)는 시스템 보드(201A1)상의 구성 요소 상호간의 통신을 가능하게 한다. 단일 시스템 보드를 포함하는 파티션 B는 마찬가지로 구성 요소로 메모리(201B), 프로세서(202B), I/O(203B) 및 상호 접속 매체(204B)를 포함한다. 파티션으로 그룹이 나뉜 시스템 보드에 더하여, 시스템 보드 각각에 연결되어 파티션 내의 시스템 보드는 물론 다른 파티션 내의 시스템 보드간의 상호 접속을 가능하게 하는 상호 접속 조직체(205)가 존재한다.
시스템 파티션의 다음 유형은 논리 분할이라 한다. 이러한 시스템에 있어서는 여러 파티션에 대한 자원 할당을 제한하는 물리적 경계가 존재하지 않으며, 물리적 위치에 관계없이 어느 파티션에도 할당될 수 있는 가용 자원 풀을 시스템이 구비하고 있는 것으로 간주된다. 이는 예컨대 일정한 시스템 보드(예컨대 시스템 보드 201A1)상의 모든 프로세서가 필연적으로 동일한 파티션에 할당되는 물리적 분할 시스템과의 차이점이다. IBM AS/400 시스템은 논리적으로 분할된 전용 자원 처리 시스템의 예이다. AS/400 시스템에 있어서 사용자는 물리적 위치에 관계없이 일정한 파티션 내에 프로세서, 메모리 및 I/O를 포함시킬 수 있다. 따라서 예컨대 동일한 카드 상에 물리적으로 위치한 두 프로세서는 상이한 파티션에 대한 자원으로서 지정될 수 있다. 마찬가지로 일정한 물리적 패키지(예컨대 카드)에 있는 메모리 자원은, 어떤 파티션 전용의 주소 공간 일부와, 다른 파티션 전용의 나머지 공간을 가질 수 있다.
논리적으로 분할된 전용 자원 시스템(예컨대 AS/400 시스템)의 특징은, 자원을 파티션에 대해 논리적으로 매핑하는 것은 시스템의 수동 재구성에 의한 변경만이 가능한, 정적으로 수행되는 할당이라는 점이다. 도 3을 참조하면, 프로세서(302A1)는 시스템 내의 어느 곳에도 물리적으로 위치할 수 있고, 논리적으로는 파티션 A에 배정된 프로세서를 나타낸다. 사용자가 프로세서(302A1)를 파티션 B로 다시 매핑하고자 할 경우, 프로세서를 오프라인(off-line) 시킨 후 이러한 변화를 수용하도록 프로세서를 수동으로 다시 매핑해야할 것이다. 논리적 분할 시스템은 물리적 분할 경계(예컨대 일정한 수의 프로세서만을 지원하는 시스템 보드)의 제한에 구애받지 않고 자원 분할을 더욱 세밀하게 할 수 있게 해 준다. 그러나 이러한 논리적으로 분할된 전용 자원 시스템을 재구성하는 것은, 파티션을 다시 매핑해야 하는 자원의 동작을 중단하지 않고 이루어질 수는 없다. 따라서 이러한 시스템이 물리적 분할 시스템에 고유한 제한을 피하기는 하나, 여전히 파티션간에 자원을 정적으로 매핑하는 것과 관련된 재구성의 제한을 갖는다는 것을 알 수 있을 것이다.
따라서 논리적으로 분할된, 공유 자원 시스템을 생각할 수 있을 것이다. 이러한 시스템의 예는 IBM S/390 컴퓨터 시스템이다. 논리적으로 분할된 공유 자원 시스템의 특징은, 프로세서와 같은 논리적으로 분할된 자원이 하나 이상의 파티션에 의해 공유될 수 있다는 것이다. 이러한 특징에 의해 논리적으로 분할된 전용 자원 시스템의 재구성 제한을 효율적으로 극복할 수 있게 된다.
도 4는 논리적으로 분할된 자원 공유 시스템(400)의 일반적 구성을 나타내고 있다. 논리적으로 분할된 전용 자원 시스템(300)과 마찬가지로, 시스템(400)은 메모리(401), 프로세서(402) 및 I/O 자원(403)을 포함하며, 이들은 그 시스템 내에서의 위치에 관계없이 어떤 파티션(이 예에서는 A 또는 B)에 대해서도 논리적으로 할당될 수 있다. 그러나 시스템(400)에서 볼 수 있듯이, 특정 프로세서(402) 또는 I/O(403)의 논리적 파티션 할당은 "하이퍼바이저(408)"에서 실행되는 스케쥴러(scheduler)에 따라 가상 프로세서(406) 및 I/O 드라이버(407)를스와핑(swapping)함으로써 동적으로 변경될 수 있다(하이퍼바이저는 가상 머신에 대해 자원을 예정하고 할당하는 관리 프로그램임). 프로세서 및 I/O를 가상화(virtualization)하는 것에 의해, 파티션이 이들 자원을 동적으로 공유하도록 적합한 순위를 지정하여 전체 운영 체제 이미지가 동작/비동작 상태로 스와핑될 수 있다.
논리적으로 분할된, 공유 자원 시스템(400)은 프로세서 및 I/O 자원을 공유하는 메커니즘을 제공하지만, 파티션간 메시지 전달은 기존 시스템에 의해 완전히 지원되지 못했다. 이는 기존의 분할 시스템이 파티션간의 통신을 할 수 없었음을 말하고자 하는 것이 아니다. 사실 이러한 통신은 각 분할 시스템의 유형에 있어 여기서 설명한 바처럼 이루어진다. 그러나 이들 구현예 중 어느 것도 하이퍼바이저나 공유 메모리, 또는 파티션들을 접속시켜 주는 표준 어댑터 세트나 채널 통신 장치, 또는 네트워크의 개입 없이 데이터를 커널 메모리로부터 커널 메모리로 이동시키는 수단을 제공하지 못한다.
미국 특허 제5,931,938호에서 설명한 Sun Microsystems Ultra Enterprise 10000 시스템으로 정형화되는 물리적으로 분할된 다중 처리 시스템에 있어서, 마스크 레지스터(mask register)를 적합하게 설정함으로써 복수의 파티션이 시스템 메모리 영역을 하드웨어 레벨에서 액세스할 수 있다. 상기 특허는 이러한 기능이 버퍼링 메커니즘 및 파티션 네트워크간 통신 수단으로 사용될 수 있는 것 외에 이를 활용할 수 있는 방안에 대해서는 논하고 있지 않다. 앞서 언급한 템플 등의 특허 출원 제09/584,276호에서는 이종 분할 시스템에서 공유 메모리 메커니즘을 구축 및활용하는 방법에 대하여 설명하고 있다.
IBM S/390 시스템에서는, IBM 문서 GF22-5042-00, "Coupling Facility Configuration Options: A Positioning Paper"에서 상세히 설명한 바처럼, 일반적으로 일컬어지는 물리적 메모리를 "통합 결합 설비(integrated coupling facility)"로서 사용하기 위해 유사한 내부 클러스터링 기능을 설명하고 있다. 여기서 공유 스토리지(storage)는 실제로 저장 공간이지만, 이에 대한 접속은 XCF라 불리는 I/O같은 장치 드라이버를 통해 이루어진다. 여기서 공유 메모리는 결합 설비 내에 구현되지만, 이를 사용하기 위한 확장부(extension)를 비 S/390 운영 체제가 생성할 필요가 있다. 또한 이러한 구현에 의해 데이터가 한 파티션의 커널 메모리로부터 결합 설비의 메모리로 옮겨지진 후 제2 파티션의 커널 메모리로 옮겨지게 된다.
커널은 운영 체제의 일부로서, 하드웨어 자원을 할당하는 등의 기본적 기능을 수행한다. 커널 메모리는 커널이 사용할 수 있는 메모리 공간으로서 커널이 자신의 기능을 실행하기 위해 사용된다.
반대로, 본 실시예는 1회의 동작으로 데이터를 한 파티션의 커널 메모리에서 다른 파티션의 커널 메모리로 이동시키는 수단을 제공하는 바, 이는 한쪽 파티션 또는 하드웨어에 있는 운영 체제에 대해 공유 스토리지의 확장을 제공하지 않고 새로운 I/O 어댑터 및 이것의 장치 드라이버를 활성화시키는 시설을 사용함으로써 이루어진다.
이러한 실시예의 동작을 설명하기 위해, 운영 체제 내의 프로세스간 통신을이해하는 것이 바람직하다. 도 5를 참조하면, 프로세스 A(501) 및 B(503) 각각은 주소 공간 메모리 A(502) 및 메모리 B(504)를 갖는다. 이들 주소 공간은 커널(505)에 의한 시스템 호출의 실행에 의해 배당된 실제 메모리를 갖는다. 커널은 자신의 주소 공간인 메모리 K(506)를 갖는다. 통신의 한 형태에 있어서, 프로세스 A 및 B는 메모리 K에 버퍼(510)를 생성함으로써 통신을 하는 바, 이는 버퍼(510)를 생성, 접속 및 액세스하는 적합한 호출을 함으로써 이루어진다. 이러한 호출의 의미는 시스템마다 다르지만, 그 효과는 동일하다. 통신의 제2 형태에 있어서는 메모리 S(507)의 세그먼트(segment)(511)가 메모리 A(502) 및 메모리 B(504)의 주소 공간으로 매핑된다. 일단 매핑이 완료되면, 프로세스 A(501) 및 B(503)는 이들 프로세스가 모두 알고 있는 임의의 프로토콜에 따라 메모리 S(507)의 공유 세그먼트를 자유로이 이용할 수 있게 된다.
미국 특허 출원 제09/583,501호, "Heterogeneous Client Server Method, System and Program Product For A Partitioned Processing Environment"가 도 6에 나타나 있으며, 여기서는 프로세스 A(601) 및 B(603)가 상이한 운영 체제 도메인, 이미지, 또는 파티션{파티션 1(614) 및 파티션 2(615)}에 존재한다. 여기에는 커널 1(605) 및 커널 2(607)가 존재하며, 이들은 메모리 K1(606) 및 메모리 K2(608)를 커널 메모리로서 갖는다. 이러한 공유의 활성화는 UE10000 메모리 매핑 또는 S/390 하이퍼바이저, 또는 액세스할 경계(분할에 의해 생성됨)를 한정하는 그 밖의 어떤 수단을 제한 없이 구현한 것에 따라 이루어질 수 있다. 다른 예에서는, 최상위 물리 메모리 주소로 공유 메모리가 매핑되며, 공유 공간을 정의하는 선두 주소가 구성 레지스터 내에 있게 된다.
통상적으로 메모리 S(609)는 메모리 K1 및 메모리 K2로 매핑되는 커널 1 및 커널 2의 확장부에 의해 사용되는 공유 세그먼트(610)를 구비한다. 세그먼트(610)는 메모리(609)의 세그먼트에 대한 구획 및 할당 테이블을 유지하는 데 쓰이며, 메모리 K1(606) 및 메모리 K2(608)로 매핑되어 앞서 설명한 제1 형태에 따른 파티션간 통신을 가능하게 하며, 또는 도 5를 참조하여 앞서 설명한 통신의 두 번째 형태에 따라 메모리 A(602) 및 메모리 B(604)로 매핑되는 세그먼트 S2(611)를 구획하게 된다. 본 발명의 실시예에 있어 메모리 S는 한정된 사이즈를 가지며, 실제 스토리지에 고정되어 있다. 그러나 수반되는 페이지 관리 작업이 효율적으로 관리되는 한 더 큰 스토리지 공간을 활성화시키도록 메모리가 고정되어 있을 필요는 없다는 점에 유념해야 할 것이다.
제1 실시예에 있어서, 공유 스토리지에 대한 구획 및 할당 테이블은 공유 메모리 구성 프로그램(SCMP)(612)라 불리는 독립 유틸리티 프로그램{데이터를 공유 메모리 구성 데이터 세트(SMCDS)(613)로부터 읽어들여 메모리 S(609)의 세그먼트 S1(610) 내에 테이블을 구축함}에 의해 메모리 내에 설정된다. 따라서 어느 커널이 어느 스토리지 세그먼트를 공유하는지 할당 및 구획하는 것은 이 유틸리티에 의해 생성된 구성에 의해 정해지고 미리 결정된다. 그 후 여러 커널 확장부는 공유 스토리지를 사용하여 예컨대 파이프, 메시지 대기열, 소켓 등과 같은 다양한 이미지간, 프로세스간 통신 구조체(construct)를 구현하게 되고, 자신의 관행 및 규칙에 따라 일부 세그먼트를 사용자 프로세스에 공유 메모리 세그먼트로서 할당한다. 이러한프로세스간 통신은 IPC API(618 및 619)에 의해 활성화된다.
공유 스토리지에 대한 할당 테이블에는 이미지 식별자, 세그먼트 번호, gid, uid, "고착 비트(sticky bit)" 및 허가 비트를 포함한다. 스티키 비트는 관련 스토리지가 페이징(paging) 불가임을 나타낸다. 이 실시예에서, 스티키 비트를 확보하여 1인 것으로 가정한다(즉 이 위치에서 메모리 내에 데이터가 고정 또는 "고착"되어 있음을 나타냄). 세그먼트를 사용하는 그룹, 사용자 및 이미지 각각은 테이블 내에 항목을 갖는다. 통상적으로 모든 커널은 이 테이블을 읽을 수 있지만, 기록을 할 수는 없다. 초기화 단계에서 커널 확장부는 구성 테이블을 읽어들여 자신만의 할당 테이블을 생성함으로써, 이미지간 프로세스간 통신이 다른 프로세스에 의해 요청될 경우 이를 사용한다. 할당된 공간의 일부 또는 전부가 "파이프", 파일 및 메시지 대기열(프로세스간 통신을 요청하는 다른 프로세스의 요청시에 생성됨)의 구현을 위해 커널에 의해 사용된다. 파이프는 커널 기능을 통해 한 프로세스로부터 제2 프로세스로 향하는 데이터이다. 파이프, 파일 및 메시지 대기열은 리눅스, OS/390 USS 및 대다수의 유닉스 운영 체제에서 쓰이는 것과 같은 표준 유닉스 운영 체제 프로세스간 통신 API 및 데이터 구조이다.
공유 메모리의 가상 주소 공간으로의 매핑 및 공유 메모리의 사용과 할당은 각각의 커널에 의해 이들 자신의 규정 및 변환 프로세스에 따라 이루어지지만, 기초적인 하드웨어 잠금(lock) 및 메모리 공유 프로토콜은 시스템의 나머지에 내재하는 공통 하드웨어 설계 아키텍쳐에 의해 구동된다.
고레벨 프로토콜은 통신이 이루어지게 하기 위해 공통되어야 한다. 바람직한실시예에 있어서, 이는 여러 운영 체제 이미지 각각이 유닉스 운영 체제와 함께 사용하기 위한 IPC(프로세스간 통신) API를 구현함으로써 이루어지며, 이미지간에 이루어지는 요청을 식별하도록 확장된다. 이러한 확장은 파라미터에 의해 또는 별개의 새로운 식별자/명령어 명칭에 의한 것일 수 있다.
도 4 및 7a에 있어서, 이 실시예는 채널 또는 네트워크 접속에서의 데이터 전송을 하지 않고, 또한 운영 체제에 대한 공유 메모리 확장을 사용하지도 않음을 알 수 있다. 파티션(714)의 애플리케이션 프로세스(701)는 커널 1(705)을 호출하는 소켓 인터페이스(718)를 액세스한다. 소켓 인터페이스는 TCP/IP 스택의 특정 포트를 청취 사용자 프로세스(listening user process)에 연관시켜주는 구조체이다. 커널은 커널 메모리 1(706)로부터 커널 메모리 2(708)로 데이터가 전송되도록 하는 장치 드라이버(706)를 액세스하는 바, 이는 I/O 어댑터(720)의 하드웨어에 의해 이를 통해 파티션(714 및 715)의 프로세서(402) 및/또는 조직체(404)내에 구현된 캐시(cache) 메모리를 우회하여 메모리(401)에서와 같이 메모리에서 메모리로의 이동이 이루어지게 함으로써 이루어진다. 데이터를 옮기고 나면 I/O 어댑터는 파티션(715)의 장치 드라이버(717)를 액세스하여 데이터가 이동하였음을 나타낸다. 장치 드라이버(717)는 커널 2(707)에 대하여 소켓(719)이 이를 기다리는 데이터가 있음을 표시한다. 소켓(719)은 그 후 데이터를 애플리케이션 프로세스(703)로 보낸다. 따라서 외부 인터페이스로의 데이터 이동 없이, 그리고 메모리 공유 또는 운영 체제의 확장 없이도 직접 메모리 대 메모리 이동이 이루어진다.
반면 도 7b에 나타낸 종래 기술의 시스템은 별개의 메모리 이동 동작을 사용하여 커널 메모리 1(706)로부터 어댑터 메모리 버퍼 1(721)로 데이터를 이동시킨다. 제2 메모리 이동 동작은 데이터를 어댑터 메모리 버퍼 1(721)로부터 어댑터 메모리 버퍼 2(722)로 이동시킨다. 제3 메모리 이동 동작은 데이터를 어댑터 메모리 버퍼 2(722)로부터 커널 메모리 2(708)로 이동시킨다. 이는 3개의 별개의 메모리 이동 동작이 두 커널 메모리간의 데이터 이동에 사용되었음을 의미하는 바, 반면 도 7a와 같이 본 발명에서는 단일 메모리 이동 동작에 의해 커널 메모리 1(706) 및 커널 메모리 2(708) 사이에 직접 데이터가 이동하게 된다. 이는 사용자 프로세스에서 보았을 때의 지연 시간을 감소시키는 효과를 낳는다.
도 4 및 도 8에는 또 다른 실시예가 도시되어 있다. 여기에서는 실제 데이터 무버 하드웨어(821)가 조직체(404) 내에 구현되었다. 이러한 실시예의 동작은 앞서 설명한 바와 같이 진행되는 바, 단지 데이터가 조직체(404) 내에서 I/O 어댑터(820)의 제어부(822) 상태에 따라 무버 하드웨어에 의해 실제로 이동한다는 점이 다르다.
데이터 무버가 위치한 조직체의 예는 로버트 D. 허즐(Robert D. Herzl) 등의 1993년 12월 7일자 미국 특허 제5,269,009호, "Processor System with Improved Memory Transfer Means)"에 설명되어 있으며, 본 명세서에 전체가 참조로서 포함되었다. 여기서 설명한 메커니즘을 확장하여 파티션의 주 스토리지 위치 사이에 데이터 전송이 이루어지는 것을 포함하도록 하였다.
본 발명의 실시예는 이하의 요소를 포함하게 된다. 즉 CPU 설계에 따라 정의된 기저 공통 데이터 이동 프로토콜, I/O 어댑터 및/또는 조직체 하드웨어, I/O 어댑터에 대한 인터페이스를 구현한 이종(heterogeneous) 세트의 장치 드라이버, 공통 고레벨 네트워크 프로토콜(바람직한 실시예에 있어 소켓 인터페이스로 나타냄), 그리고 물리적 메모리 주소 및 I/O 인터럽트 벡터 또는 포인터{각 파티션의 커널 메모리 및 장치 드라이버와 통신할 수 있도록 I/O 어댑터(820)에 의해 사용됨}에 네트워크 주소를 매핑하는 것이 포함된다.
데이터 무버는 I/O 어댑터 내에 하드웨어 상태 머신으로서, 또는 마이크로코드 및 마이크로프로세로 구현될 수 있다. 대신 이는 I/O 어댑터에 의해 제어되는 머신의 통신 조직체 내의 데이터 무버를 사용하는 것으로 구현될 수도 있다. 이러한 데이터 무버의 예는 허즐 등의 1993년 12월 7일자 미국 특허 제5,269,009호에 설명되어 있다.
도 9를 참조하면, 데이터 무버의 구현 방식에 관계없이 이하의 요소가 포함된다. 메모리로부터의 데이터는 발신지(source) 레지스터(901)에 보관되며, 데이터는 데이터 정렬자(aligner)(902 및 904)를 통해 수신지(destination) 레지스터(903)에 전달되고, 그 후 다시 메모리로 돌아간다. 따라서 여기에는 연속 동작의 일부로서 메모리 인출(fetch) 및 메모리 저장이 존재한다. 즉, 정렬 프로세스는 메모리 라인으로부터 복수의 워드를 인출함에 따라 이루어진다. 정렬된 데이터는 메모리 저장이 개시될 때까지 수신지 레지스터(903)에 버퍼링된다. 발신지(901) 및 수신지(903) 레지스터는 메모리 데이터의 단일 라인 또는 복수 라인을 유지하는 데 사용되며, 이는 이동 동작시에 인출 및 저장 사이에 얼마나 많은 오버랩(overlap)이 허용되는지에 따라 다르다. 메모리의 주소 배정은카운터(counter)(905 및 906)로부터 이루어지며, 이는 이동중에 인출 및 저장 주소를 추적한다. 제어부 및 바이트 카운트(count) 요소(908)는 정렬자(902 및 904)를 통한 데이터 흐름을 제어하여 메모리 주소로 발신지 카운터(905) 또는 수신지 카운터(906) 중 하나를 선택하도록 한다. 제어기(908)는 또한 주소 카운터(905 및 906)의 갱신을 제어한다.
도 10을 참조하면, 데이터 무버는 장치 드라이버에 의해 구현된 우선 CISC 명령어(1000)로서 구현된다. MVXL은 카운트 레지스터가 지정한 바이트 수를, 발신지 레지스터가 지정한 물리적 주소로부터 수신지 레지스터가 지정한 물리적 주소로 이동시킨다. 이러한 명령어는 우선적이다(MVCL은 동일한 기능을 가상 주소 사이에서 실행한다). 여기서 장치 드라이버는 가상 주소가 아닌 물리적 주소를 레지스터에 적재함으로써 파티션간 데이터 이동을 가능하게 한다. 이러한 CISC 명령어는 S/390의 Move Page, Move Character Long(MVCL) 등과 같은 파티션 내 데이터 이동을 대신하여 하드웨어 설비를 사용하지만, 또한 네트워크 주소 및 오프셋 매핑 테이블에 따라 메모리에 물리적으로 물리적 주소를 우선적으로 붙일 수 있다. 마지막으로 데이터 무버 및 어댑터는 가상 어댑터로서 기능하는 하이퍼바이저 코드에 의해 구현될 수 있다.
도 11은 데이터 무버가 어댑터 내에 있을 경우 이하의 단계로 구성된 데이터 무버의 동작을 나타낸다.
1101: 사용자가 발신지 네트워크 ID, 발신지 오프셋, 수신지 네트워크 ID를 공급하는 장치 드라이버를 호출
1102: 장치 드라이버가 주소를 어댑터로 전송
1103: 어댑터가 주소를 해석하고, ID로부터 물리적 기본 주소를 참조(테이블 참조)하며, "잠금" 및 "현재 수신지 오프셋 추가" 오프셋을 획득하고, 범위를 체크
1104: 어댑터가 레지스터에 카운트 및 주소를 적재
1105: 어댑터가 데이터 이동을 실행
1106: 어댑터가 잠금을 해제
1107: 어댑터가 사용자에게 "복귀"하는 장치 드라이버를 통지
도 12에서는 프로세서 통신 조직체 내에 구현된 데이터 무버 방법을 나타내고 있으며, 이는 다음과 같은 단계를 포함한다.
1201: 사용자가 발신지 네트워크 ID, 발신지 오프셋, 수신지 네트워크 ID를 공급하는 장치 드라이버를 호출
1202: 장치 드라이버가 주소를 어댑터로 전송
1203: 어댑터가 주소를 해석하고, ID로부터 물리적 기본 주소를 참조(테이블 참조)하며, "잠금" 및 "현재 수신지 오프셋 추가" 오프셋을 획득하고, 범위를 체크하며, 잠금 및 물리적 어드레스를 장치 드라이버로 반환
1204: 장치 드라이버가 데이터 이동을 실행
1205: 장치 드라이버가 잠금을 해제
1206: 장치 드라이버 복귀
따라서, 분할 컴퓨팅 시스템에서 이종 상호 동작을 구현하는 두 가지 방식이 설명되었다. 하나는 공유 메모리 설비와, 운영 체제 커널에 대한 확장을 사용하여파티션간 프로세스간 통신 프로세스를 활성화시키고, 다른 것은 공유 I/O 어댑터의 기능을 사용하여 모든 물리적 메모리의 주소를 붙임으로써 단일 동작에 있어서의 메모리 대 메모리 전달을 구현하였다.
앞서 언급한 구조체는 단일 시스템 클라이언트-서버 모델을 이용한 독창적인 여러 구현예를 보여준다. 이러한 구조체를 구현하는 한 가지 방식은 서버 작업 대기열을 공유 스토리지 공간에 두어 여러 클라이언트가 요청을 부가하도록 하는 것이다. "원격" 클라이언트에 대한 복귀 버퍼는 그 후 반드시 공유 메모리 내에 있어야 하며, 이는 클라이언트가 그곳에 있는 정보에 액세스할 수 있도록 하기 위함이다. 대신 기존의 네트워크 지향의 클라이언트/서버를 앞서 언급한 메시지 전달 방식을 사용하여 신속하고 손쉽게 배치할 수도 있다. 이러한 구현예는 설명을 위한 것이며, 본 발명을 한정하는 것이 아니다. 사실 본 기술 분야의 당업자는 이종 클라이언트-서버 시스템의 상이한 유형을 단일 시스템 패러다임 내에서 이러한 구조체를 여러 방식으로 구현할 수 있을 것이다.
파티션 클러스터의 작업 부하 관리
여기서는 본 발명의 파티션 자원 관리자를 이용한 파티션 작업 부하 관리를 OS/390 구현예와 관련하여 설명하도록 한다. 파티션 자원 관리자의 작업은 한 파티션 내에서 실행되는 작업 부하 관리자의 협력을 포함하는 바, 하이퍼바이저(파티션 자원 할당의 조정을 맡음)와 통신하는 또 다른 파티션의 다른 작업 부하 관리자(또는 특정 운영 체제에 적합한 처리량 정보 생성기)로부터 처리량 정보를 획득하게 된다. 본 기술 분야의 당업자는 그 밖의 시스템 아키텍져에 대해서도 그 시스템 아키텍쳐의 필요에 따라 자원 관리자 기능을 구현함으로써 본 발명을 구현할 수 있음을 알 수 있을 것이다.
도 13을 참조하면, OS/390 운영체제의 작업 부하 관리자(WLM)(1308)가 S/390의 파티션 하이퍼바이저와 통신할 수 있으며, 이에 의해 각 파티션에 할당되는 자원을 조정한다. 이는 LPAR 클러스터링으로 알려져 있다. 그러나 비 OS/390 파티션(1301)에 대해서는, WLM은 파티션의 운영 체제 또는 애플리케이션에 근거하지 않고, 하이퍼바이저가 공급할 수 있는 사용 및 기타 정보에만 근거하여 이러한 할당을 해야 한다. 앞서 보인 저지연 파티션간 통신(1305)을 사용하여 파티션으로부터 WLM(1308)로 정보를 파이프하는 것은, 시스템 자원간의 할당을 하는 데 있어 필요한 정보를 WLM(1308)이 얻도록 하는 매우 오버헤드(overhead)가 낮은 수단이다. 이는 애플리케이션이 작업 부하 관리자에 설치되지 않았을 경우에도 효율적인 바, 제어되는 시스템은 통상적으로 유닉스 운영 체제의 "NETSTAT" 명령{(유닉스 운영 체제의 표준 명령 라이브러리의 일부로서, TCP/IP 스택의 패킷 활동 카운터(시스템에 출입하는 IP 패킷을 카운트함)를 액세스함}을 구현할 수 있고, 또한 유닉스 운영 체제의 "VMSTAT" 명령(표준 유닉스 운영 체제 명령이고 유닉스 운영 체제의 표준 명령 라이브러리의 일부이며, 사용중(busy) 및 대기중(idle) 사이클을 카운트하는 커널 내의 시스템 활동 카운터를 액세스함)을 실행할 수 있다{활용 데이터(1302)를 생성함}. 여기서 유의해야 할 것은 기존의 NETSTAT 및 VMSTAT 명령을 반드시 사용해야 한다기보다는, 패킷 카운트 및 활용을 제공하는 기저 메커니즘을 사용하여 자원 및 경로 길이 비용을 최소화하는 것이 바람직하다는 것이다. 이러한 데이터를 "속도(velocity)" 측정치(1303)와 결합하여 이를 WLM 파티션(1307)으로 전달함으로써 WLM(1308)은 하이퍼바이저가 자원 조정을 하도록 할 수 있다. CPU 사용량이 높고 패킷 트래픽이 낮은 경우, 파티션은 더욱 많은 자원을 필요로 한다. 접속(1304 및 1306)은 상호 접속(1305)의 실시예에 따라 바뀐다. 공유 메모리 구현예에서는 이들이 유닉스 운영 체제의 파이프, 메시지 대기열, SHMEM 또는 소켓 구조체일 수 있다. 데이터 무버 구현예에서는 통상적으로 소켓 접속이다.
한 가지 실시예에 있어, "속도" 측정치가 이하와 같은 방식으로 도달한다. IBM 레드북 문서 SG24-4810-01, "Understanding RS/6000 Performance and Sizing"에서 설명한 유닉스 운영 체제 명령 NETSTAT 및 VMSTAT을 참조한다.
NETSTAT 전체 패킷에 대한 간격 데이터를 사용하여 처리량(throughput)을 파악
VMSTAT에 대한 CPU 간격 데이터를 사용하여 CPU 사용량을 파악
이들을 피크(peak)를 1로 하여 트래픽 정규화함으로써 점으로 표시함(1401)
트래픽 대 CPU의 누적 상관 분석을 수행
트래픽의 관계를 함수 T(C)로 곡선 적합화(curve fitting)함
이 예에서 T(C) = y(x) = 0.802 + 1.13x이고, S = dT/dC = dy/dx는 속도 측정치(이 예에서 S = 1.13이며, S가 경향선보다 작을때는 더욱 많은 자원이 필요함)(1402)
도 14의 예에서는 이것을 두 번 수행한다(1403 및 1404). 제어 차트는 산업계에서 프로세스를 모니터하는 표준 방법이다. S를 제어 차트로서 동적으로 도시한다(1405). 패킷 트래픽 및 CPU에서 보았던 바와 같은 관계가 주어진 경우, 여러 가지 방식으로 통계적 제어 이론에 근거하여 수집된 데이터를 모니터 및 배열할 수 있다. 이러한 방법은 통상적으로 동작을 촉발시키는 제어 변수의 임계값에 의존한다. 모든 피드백 시스템에서는 임박한 제어 불능 상태를 판단하여 즉각적인 동작을 취하는 것이 필요한 바, 그렇지 않으면 시스템이 불안정해진다. 본 실시예에서 이는 내부 통신이 제공하는 저지연 접속에 의해 영향을 받는다.
정적 환경에서는, S를 사용하여 어느 사용량에서 더욱 많은 자원이 필요한지를 정할 수 있다. 이는 평균 이상으로 동작하지만, S는 또한 작업 부하 및 시간의 함수이다. 도 14를 참조하면, 우선 이는 50에서 60% 사이에 있음을 알 수 있고, 두 번째로 S의 골(trough)이 적어도 하나의 시간 간격에 의해 사용량 피크를 리드하는 것을 볼 수 있다. 따라서 WLM은 사용량보다 S를 피드백할 경우 더욱 잘 동작하며, 이는 S가 더욱 많은 적절한 자원 조정을 가능하게 하는 "선두 표지(leading indicator)"이기 때문이다. 분할 머신의 자원은 파티션에 의해 공유되므로, 작업 부하 관리자는 S 데이터를 복수의 파티션으로부터 얻어야 한다. 데이터의 전송은 매우 낮은 오버헤드 및 높은 속도로 이루어질 필요가 있다. 본 실시예에 의해 이들 두 조건 모두를 이룰 수 있다. 도 13을 참조하면, 작업 부하 관리자(1301)가 없는 파티션에서는, 모니터가 사용량 및 패킷 데이터(1302)를 수집하며, 이는 파라미터(여기서는 "S")를 추정하기 위해 프로그램 단계(1301)에 의해 사용된다. 프로그램은 그 후 접속(1304)을 사용하여 저지연 파티션간 통신 설비(1305)를 사용하며, 이 설비는 그 후 이것을 작업 부하 관리자(1307)를 갖는 파티션에 있는 접속(1306)으로전달하며, 이는 "논리적 파티션 클러스터 관리자"(1308)에 대한 입력을 제공하는 바, 이는 2000년 10월 2일자 미국 특허 출원 제09/677,338호, "METHOD AND APPARATUS FOR ENFORCING CAPACITY LIMITATIONS IN A LOGICALLY PARTITIONED SYSTEM"에 기술된 바 있다.
이 경우에 있어서, 파티션 데이터를 작업 부하 관리자에 통신하는 가장 효율적인 방법은 메모리 공유를 통한 것이지만, 내부 소켓 접속은 또한 소켓 지연 시간이 데이터 전달 시간을 감당하기에 충분히 낮은 경우 동작할 수 있다. 이는 작업 부하 및 필요한 제어의 정밀도에 따라 바뀐다.
이상은 작업 부하 관리자가 자원을 할당하는 데 사용하는 정보를 제공하는 한 가지 방식이지만, 이러한 방식을 제한하는 것은 아니다. 이 예는 많은 새로운 코드 없이도 전체는 아니더라도 대부분의 운영 체제로부터 얻을 수 있는 측정치를 사용하기 때문에 선택된 것이다. 클라이언트 시스템은 응답 시간 또는 사용자 카운트 등과 같은 어떤 특정치를 WLM 서버에 전달하는 것을 구현할 수도 있다.
간접 I/O
종종 I/O 운영 프로그램(또는 I/O 장치 드라이버)(407)을 하드웨어가 지원할 수 있는 운영 체제 중 하나에서만 이용할 수 있는 경우가 있다. 장치 드라이버 메모리 인터페이스를 공유 메모리에 제공하여 모든 부착된 시스템의 드라이버 프로토콜을 관찰함으로써 장치가 복수의 시스템에 의해 공유될 수 있다. 사실상 하나의 파티션은 다른 파티션에 대한 IOP(IBM 시스템 370의 IOP는 I/O 동작을 채널 서브시스템을 통해 조정하는 프로세서이며, 사용자 애플리케이션을 실행하고 있는 프로세서에 대하여 또한 I/O 조정 동작을 수행해야 하는 부담을 덜어줌)이다. 장치에 대한 액세스는 단일 시스템 수준에 접근하며, 단일 시스템에서의 과적재와 마찬가지로 장치의 과적재는 동일한 부정적 결과를 낳게 한다. 도 15를 참조하면, 장치 드라이버(1501)가 공유 메모리(1511)를 통한 애플리케이션 및 액세스 방법(1503)으로부터의 I/O 서비스 요청에 응답한다.
어떤 장치에 있어서는 메시지 전달 구현예를 사용할 수도 있지만, 소켓, 스택 및 데이터 이동의 지연 시간을 용인해야 할 것이다. 이는 고유의 장치 및 네트워크로 부착된 장치 사이의 어딘가에서 이를 볼 수 있다.
애플리케이션을 실행하는 시스템 이미지에 할당된 프로세서 자원으로부터 장치 드라이버를 실행하는 시스템 이미지에 할당된 프로세서 자원이 분리될 경우 또 다른 실시예를 생각해 볼 수 있다. 이것이 이루어지게 되면, I/O 인터럽트 대상이 아닌 프로세서에서 I/O 인터럽트 및 관련 문맥 전환으로 인한 캐시 및 프로그램 흐름의 중단을 피할 수 있다.
공통 보안 서버
애플리케이션이 웹 기능이 있고 통합됨에 따라, 사용자 인증 및 권한 설정이 종래 시스템에서보다 더욱 보편적인 문제로 떠올랐다. 이를 해결하여 이종 시스템이 통합 애플리케이션을 사용할 필요가 충족된다. 결과적으로, 통상 LDAP, 켈베로스, RACF 및 그 밖의 보안 기능을 통합 방식으로 사용하는 것은 보안 기능을 수행하는 공통 보안 서버에 대한 네트워크 접속을 필요로 한다. 이는 성능에 영향을 미친다. 또한 네트워크를 어슬렁거리는 자들에 대해 보안 노출의 위험이 있다. 공통의 보안 서버가 웹 서버에 공유 메모리 접속 또는 메모리 무버 접속을 통해 접속되는 경우, 이러한 활동은 훨씬 빨라지게 되고, 보안이 강화되어 접속이 내부화된다. 또한 이러한 환경에서는 그 밖의 유닉스 운영 체제 기반의 패스워드 프로텍션(특히 리눅스의 경우)상의 S/390 "RACF" 또는 그 밖의 OS/390 "SAF" 인터페이스의 사용자 인증을 일부 고객이 선택할 수도 있다. 리눅스 시스템은 이러한 공유 서버의 클라이언트 측을 구축이 상대적으로 용이하게 하는 바, 여기에서 "플러그 가능한 인증 모듈"(적합화 및 커스터마이즈됨)에 의해 사용자 인증이 수행되기 때문이다. 보안 서버는 공유 메모리 인터페이스 또는 메모리 대 메모리 데이터 무버 인터페이스(웹 서버의 다툼이 있음)를 통해 액세스된다. 결과적으로 작업 대기열은 보안 서버에 의해 실행되는 바, 이는 공유 메모리 인터페이스를 통한 재요청에 따라 이루어진다. 따라서 웹 애플리케이션에 대한 향상된 보안 및 성능 향상이 이루어진다. 사용자 프로세스는 커널 2(1607)에 있는 보안 클라이언트 프로세스(이는 리눅스의 경우 PAM임)에 대한 표준 프로세스간 통신(IPC) 인터페이스를 사용하며, 이는 그 후 공유 메모리(1610)를 통하여 커널 1(1605)의 커널 프로세스와 통신하고, 이는 그 후 보안 서버 인터페이스(OS/390 또는 Z/OS의 경우 SAF)를 사용자 프로세스(1603)에 대한 프록시로서 구동하여 커널 2(1607)의 보안 클라이언트에 대한 인증을 공유 메모리(1610)를 통해 반환한다.
다른 실시예에서는 공유 메모리에 놓여지는 데이터는 커널 메모리 1(1606) 및 커널 메모리 2(1608) 사이에서 단일 동작 데이터 무버를 통해 옮겨지며, 이는 공유 메모리의 전개나 네트워크 접속 없이도 이루어진다.
제1 파티션(1614)에서 공통 보안 서버(1601)가 실행되고 적어도 하나의 보안 클라이언트(또는 프록시)(1603)가 적어도 하나의 제2 파티션(1615)에서 실행되는 분할 처리 시스템을 위한 보안을 제공하는 보안 서버에서의 통신 단계의 구현예는 다음과 같다.
사용자가 인증을 요청한다. 보안 클라이언트(1603)는 사용자로부터 패스워드를 수신한다. 보안 클라이언트는 보안 서버(1610)가 액세스할 수 있는 메모리 위치에 상기 요청을 배치하고, 이를 알리는 신호를 보낸다. 제1 파티션(1614)에 있는 "시큐리티 데몬(security daemon)"이 이러한 신호를 수신하여 제1 파티션(1614)에 있는 "프록시" 클라이언트(1616)를 개시한다. 프록시(1616) 클라이언트는 보안 서버(1601) 고유의 인터페이스를 사용하여 상기 요청과 함께 보안 서버를 호출한다. 보안 서버(1601)는 상기 요청을 처리하고, 상기 프록시 클라이언트(1616)에 대한 서버 응답을 반환한다. 프록시 클라이언트는 보안 서버의 응답을 제2 파티션의 보안 클라이언트가 액세스할 수 있는 메모리에 배치고, 이를 알리는 신호를 보낸다. 이 신호는 보안 클라이언트(1603)를 개시시켜 인증을 알린다. 보안 클라이언트(1603)는 상기 응답을 사용자에게 반환한다. 한 가지 실시예에 있어, 제2 파티션(1615)에 있는 보안 클라이언트(1603)는 공유 메모리 인터페이스(1609)를 사용하여 제1 파티션(1614)에 있는 보안 서버(1601)와 통신함으로써 네트워크 접속의 보안 노출을 피하고 성능을 향상시킨다. 다른 실시예에 있어서, 제2 파티션의 보안 클라이언트는 도 8의 데이터 무버(821)를 사용하여 내부적인 메모리 대 메모리 이동에 의해 제1 파티션의 보안 서버와 통신한다. 도 8을 참조하자면, 이러한제2 실시예는 보안 클라이언트를 프로세스 A(803)로서 구현하고, 보안 프록시는 프로세스 B(801)로서 구현되어 외부 네트워크 접속 및 공유 메모리의 구현을 피하였다.

Claims (30)

  1. 제1 운영 체제를 포함하는 제1 파티션(partition)과, 제2 운영 체제를 포함하는 제2 파티션을 갖는 컴퓨팅 시스템에서 수행되는 방법에 있어서, 상기 방법은
    a) 제1 파티션 처리량(throughput) 정보를 상기 제1 파티션으로부터 파티션 관리자로 전달하는 단계와,
    b) 상기 처리량 정보로부터 상기 파티션 관리자에 자원 조절 지시자(directive)를 생성하는 단계와,
    c) 상기 파티션 관리자에 의해 상기 자원 조절 지시자에 따라 상기 제1 파티션으로 자원을 할당하는 단계
    를 포함하는 것인 방법.
  2. 제1항에 있어서, 상기 파티션 관리자는 상기 제2 파티션에서 실행되는 작업 부하 관리자 및 하이퍼바이저(hypervisor)를 포함하는 것인 방법.
  3. 제1항에 있어서, 파티션간의 통신에는 파티션간 메모리 공유가 포함되는 것인 방법.
  4. 제1항에 있어서, 파티션간의 통신에는 단일 동작 메시지 전달이 포함되는 것인 방법.
  5. 제1항에 있어서, 처리량에 관한 상기 정보는 패킷 활동 카운터(counter)에 의해 구해지는 것인 방법.
  6. 제1항에 있어서, 처리량에 관한 상기 정보는 파티션과 관련된 네트워크 패킷을 계산함으로써 구해지는 것인 방법.
  7. 제6항에 있어서, 파티션이 수신하는 패킷을 계산하는 것인 방법.
  8. 제6항에 있어서, 파티션이 보내는 패킷을 계산하는 것인 방법.
  9. 제6항에 있어서, 상기 네트워크 패킷은 상기 제1 파티션에 관련된 것인 방법.
  10. 제1항에 있어서, 처리량에 관한 상기 정보는 네트워크 트래픽(traffic)을 일정 기간의 프로세서 사용량에 연관시킴으로써 구해지는 것인 방법.
  11. 제10항에 있어서, 상기 네트워크 트래픽은 파티션과 관련된 네트워크 패킷을 계산함으로써 구해지는 것인 방법.
  12. 제10항에 있어서, 프로세서 사용량은 시스템 활동 카운터로부터 구해지는 것인 방법.
  13. 제10항에 있어서, 프로세서 사용량은 시스템 활동 카운터인 것인 방법.
  14. 제10항에 있어서, 네트워크 트래픽을 프로세서 사용량에 연관시키는 것은 시간에 대한 패킷 수의 비율을 구하는 것인 방법.
  15. 제1 운영 체제를 포함하는 제1 파티션과, 제2 운영 체제를 포함하는 제2 파티션을 포함하는 컴퓨팅 시스템에 있어서, 상기 시스템은
    a) 제1 파티션 처리량(throughput) 정보를 상기 제1 파티션으로부터 파티션 관리자로 전달하는 수단과,
    b) 상기 처리량 정보로부터 상기 파티션 관리자에 자원 조절 지시자(directive)를 생성하는 수단과,
    c) 상기 자원 조절 지시자에 따라 상기 파티션 관리자에 의해 상기 제1 파티션으로 자원을 할당하는 수단
    을 포함하는 것인 시스템.
  16. 제15항에 있어서, 상기 파티션 관리자는 상기 제2 파티션에서 실행되는 작업 부하 관리자 및 하이퍼바이저를 포함하는 것인 시스템.
  17. 제15항에 있어서, 파티션간의 통신에는 파티션간 메모리 공유가 포함되는 것인 시스템.
  18. 제15항에 있어서, 파티션간의 통신에는 단일 동작 메시지 전달이 포함되는 것인 시스템.
  19. 제15항에 있어서, 처리량에 관한 상기 정보를 구하기 위한 패킷 활동 카운터를 더 포함하는 것인 시스템.
  20. 제15항에 있어서, 파티션과 관련된 네트워크 패킷을 계산하는 계산 수단을 더 포함하고, 처리량에 관한 상기 정보는 상기 계산 수단에 의해 구해지는 것인 시스템.
  21. 제20항에 있어서, 파티션이 수신하는 패킷을 계산하는 것인 시스템.
  22. 제20항에 있어서, 파티션이 보내는 패킷을 계산하는 것인 시스템.
  23. 제20항에 있어서, 상기 제1 파티션과 관련된 패킷이 계산되는 것인 시스템.
  24. 제15항에 있어서, 네트워크 트래픽을 일정 기간의 프로세서 사용량에 연관시키는 네트워크 트래픽 수단을 더 포함하고, 처리량에 관한 상기 정보는 상기 네트워크 트래픽 수단에 의해 구해지는 것인 시스템.
  25. 제24항에 있어서, 파티션과 관련된 네트워크 패킷을 계산하는 계산 수단을 더 포함하고, 상기 네트워크 트래픽은 상기 계산 수단에 의해 구해지는 것인 시스템.
  26. 제24항에 있어서, 시스템 활동 카운터를 더 포함하고, 프로세서 사용량은 상기 시스템 활동 카운터로부터 구해지는 것인 시스템.
  27. 제24항에 있어서, 시스템 활동 카운터를 더 포함하고, 프로세서 사용량은 상기 시스템 활동 카운터로부터 구해지는 것인 시스템.
  28. 제24항에 있어서, 상기 네트워크 트래픽 수단은, 시간에 대한 패킷 수의 비율을 구함으로써 네트워크 트래픽을 프로세서 사용량에 연관시키는 것인 시스템.
  29. 제1 파티션 및 제2 파티션을 포함하는 컴퓨팅 시스템에 있어서, 상기 시스템은
    상기 제2 파티션으로부터 처리량에 관한 정보를 수신하여 자원 조절 지시자를 결정하는 파티션 관리자와,
    상기 파티션 관리자로부터의 상기 자원 조절 지시자를 상기 제2 파티션에 있는 커널로 통보하는 통보기
    를 포함하고, 상기 커널은 상기 자원 조절 지시자에 따라 상기 제2 파티션에 자원을 할당하는 것인 시스템.
  30. 제1 운영 체제를 포함하는 제1 파티션과, 제2 운영 체제를 포함하는 제2 파티션을 갖는 컴퓨팅 시스템에서 실행되는 프로그램 코드 수단을 수록한, 컴퓨터로 읽을 수 있는 기록 매체에 있어서,
    a) 제1 파티션 처리량 정보를 상기 제1 파티션으로부터 파티션 관리자로 전달하는 프로그램 코드 수단과,
    b) 상기 처리량 정보로부터 상기 파티션 관리자에 자원 조절 지시자를 생성하는 프로그램 코드 수단과,
    c) 상기 파티션 관리자에 의해 상기 자원 조절 지시자에 따라 상기 제1 파티션으로 자원을 할당하는 프로그램 코드 수단
    을 포함하는 것인 기록 매체.
KR1020037011808A 2001-03-08 2002-02-01 분할 처리 환경에서의 자원 조절을 위한 방법, 컴퓨팅 시스템 및 그에 관한 기록 매체 KR100612059B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/801,993 US6985951B2 (en) 2001-03-08 2001-03-08 Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment
US09/801,993 2001-03-08
PCT/GB2002/000456 WO2002073397A2 (en) 2001-03-08 2002-02-01 Resource balancing in a partitioned processing environment

Publications (2)

Publication Number Publication Date
KR20030086298A true KR20030086298A (ko) 2003-11-07
KR100612059B1 KR100612059B1 (ko) 2006-08-14

Family

ID=25182560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037011808A KR100612059B1 (ko) 2001-03-08 2002-02-01 분할 처리 환경에서의 자원 조절을 위한 방법, 컴퓨팅 시스템 및 그에 관한 기록 매체

Country Status (8)

Country Link
US (1) US6985951B2 (ko)
EP (1) EP1386226B1 (ko)
JP (1) JP3980487B2 (ko)
KR (1) KR100612059B1 (ko)
CN (1) CN1280725C (ko)
AU (1) AU2002228206A1 (ko)
CA (1) CA2435978C (ko)
WO (1) WO2002073397A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013106256A1 (en) * 2012-01-09 2013-07-18 Microsoft Corporation Decoupling paas resources, jobs, and scheduling
US8904008B2 (en) 2012-01-09 2014-12-02 Microsoft Corporation Assignment of resources in virtual machine pools
US9372735B2 (en) 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952722B1 (en) * 2002-01-22 2005-10-04 Cisco Technology, Inc. Method and system using peer mapping system call to map changes in shared memory to all users of the shared memory
US6725284B2 (en) * 2002-04-25 2004-04-20 International Business Machines Corporation Logical partition hosted virtual input/output using shared translation control entries
AU2003298560A1 (en) 2002-08-23 2004-05-04 Exit-Cube, Inc. Encrypting operating system
US20040226015A1 (en) * 2003-05-09 2004-11-11 Leonard Ozgur C. Multi-level computing resource scheduling control for operating system partitions
US20050076179A1 (en) * 2003-10-02 2005-04-07 International Business Machines Corporation Cache optimized logical partitioning a symmetric multi-processor data processing system
US7234032B2 (en) * 2003-11-20 2007-06-19 International Business Machines Corporation Computerized system, method and program product for managing an enterprise storage system
US7975270B2 (en) * 2004-03-10 2011-07-05 International Business Machines Corporation Facilitating allocation of resources in a heterogeneous computing environment
US20050216716A1 (en) * 2004-03-29 2005-09-29 Hoffman Philip M System and method for licensing and distribution of I/O in partitioned computer systems
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
US7277985B2 (en) * 2004-07-13 2007-10-02 International Business Machines Corporation Method, system and program product for storing downloadable content on a plurality of enterprise storage system (ESS) cells
US8898246B2 (en) * 2004-07-29 2014-11-25 Hewlett-Packard Development Company, L.P. Communication among partitioned devices
US7506343B2 (en) * 2004-08-19 2009-03-17 International Business Machines Corporation System and method for passing information from one device driver to another
US20060168214A1 (en) * 2004-10-29 2006-07-27 International Business Machines Corporation System for managing logical partition preemption
WO2006071473A2 (en) * 2004-12-23 2006-07-06 Redphone Security, Inc. Translation engine for computer authorizations between active directory and mainframe systems
US7412705B2 (en) * 2005-01-04 2008-08-12 International Business Machines Corporation Method for inter partition communication within a logical partitioned data processing system
US7549151B2 (en) * 2005-02-14 2009-06-16 Qnx Software Systems Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment
US8286157B2 (en) * 2005-02-28 2012-10-09 International Business Machines Corporation Method, system and program product for managing applications in a shared computer infrastructure
US7474618B2 (en) * 2005-03-02 2009-01-06 Objective Interface Systems, Inc. Partitioning communication system
US8219823B2 (en) * 2005-03-04 2012-07-10 Carter Ernst B System for and method of managing access to a system using combinations of user information
US20060206891A1 (en) * 2005-03-10 2006-09-14 International Business Machines Corporation System and method of maintaining strict hardware affinity in a virtualized logical partitioned (LPAR) multiprocessor system while allowing one processor to donate excess processor cycles to other partitions when warranted
US8667184B2 (en) * 2005-06-03 2014-03-04 Qnx Software Systems Limited Distributed kernel operating system
US7840682B2 (en) 2005-06-03 2010-11-23 QNX Software Systems, GmbH & Co. KG Distributed kernel operating system
US7685107B2 (en) * 2005-06-07 2010-03-23 International Business Machines Corporation Apparatus, system, and method for scanning a partitioned data set
US7441112B2 (en) 2005-06-30 2008-10-21 Intel Corporation Offloading the processing of a network protocol stack
US7463268B2 (en) * 2005-09-15 2008-12-09 Microsoft Corporation Providing 3D graphics across partitions of computing device
US7680096B2 (en) * 2005-10-28 2010-03-16 Qnx Software Systems Gmbh & Co. Kg System for configuring switches in a network
US8230059B1 (en) * 2005-11-08 2012-07-24 Hewlett-Packard Development Company, L.P. Method of monitoring resource usage in computing environment
US7945913B2 (en) * 2006-01-19 2011-05-17 International Business Machines Corporation Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system
US7904547B2 (en) 2006-02-21 2011-03-08 International Business Machines Corporation Method, system, and program product for optimizing monitoring and discovery services for a grid computing environment
EP1990717A4 (en) * 2006-02-28 2009-06-24 Fujitsu Ltd COMPUTER SYSTEM AND ITS CONFIGURATION METHOD
US8117611B2 (en) * 2006-03-01 2012-02-14 International Business Machines Corporation Method, system, and program product for deploying a platform dependent application in a grid environment
JP4702127B2 (ja) 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
US20070239965A1 (en) * 2006-03-31 2007-10-11 Saul Lewites Inter-partition communication
US8327115B2 (en) 2006-04-12 2012-12-04 Soft Machines, Inc. Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode
US20070288938A1 (en) * 2006-06-12 2007-12-13 Daniel Zilavy Sharing data between partitions in a partitionable system
US8447936B2 (en) * 2006-06-30 2013-05-21 Microsoft Corporation Module state management in a virtual machine environment
US8214828B2 (en) * 2006-06-30 2012-07-03 Microsoft Corporation Module state management in a virtual machine environment
US8782671B2 (en) * 2006-07-26 2014-07-15 Hewlett-Packard Development Company, L. P. Systems and methods for flexibly controlling resource usage by a driver domain on behalf of a virtual machine
US20080028399A1 (en) * 2006-07-26 2008-01-31 Diwaker Gupta System and method for attributing to a corresponding virtual machine CPU utilization of a network driver domain based on observed communication through a virtualized interface
US7844709B2 (en) * 2006-09-20 2010-11-30 International Business Machines Corporation Method and apparatus for managing central processing unit resources of a logically partitioned computing environment without shared memory access
US8296760B2 (en) * 2006-10-27 2012-10-23 Hewlett-Packard Development Company, L.P. Migrating a virtual machine from a first physical machine in response to receiving a command to lower a power mode of the first physical machine
US9092250B1 (en) 2006-10-27 2015-07-28 Hewlett-Packard Development Company, L.P. Selecting one of plural layouts of virtual machines on physical machines
US8732699B1 (en) 2006-10-27 2014-05-20 Hewlett-Packard Development Company, L.P. Migrating virtual machines between physical machines in a define group
US8185893B2 (en) * 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
EP2527972A3 (en) 2006-11-14 2014-08-06 Soft Machines, Inc. Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes
US7987469B2 (en) 2006-12-14 2011-07-26 Intel Corporation RDMA (remote direct memory access) data transfer in a virtual environment
US7921453B2 (en) * 2006-12-22 2011-04-05 Intel Corporation Authenticated distributed detection and inference
US8856522B2 (en) 2007-02-27 2014-10-07 Rockwell Automation Technologies Security, safety, and redundancy employing controller engine instances
US7870223B2 (en) * 2007-02-27 2011-01-11 Rockwell Automation Technologies, Inc. Services associated with an industrial environment employing controller engine instances
US7853336B2 (en) * 2007-02-27 2010-12-14 Rockwell Automation Technologies, Inc. Dynamic versioning utilizing multiple controller engine instances to limit complications
US7987004B2 (en) * 2007-02-27 2011-07-26 Rockwell Automation Technologies, Inc. Scalability related to controller engine instances
US20080208374A1 (en) * 2007-02-27 2008-08-28 Rockwell Automation Technologies, Inc. Testing utilizing controller engine instances
US7778713B2 (en) * 2007-02-27 2010-08-17 Rockwell Automation Technologies, Inc. Construction of an industrial control system using multiple instances of industrial control engines
US7797060B2 (en) * 2007-02-27 2010-09-14 Rockwell Automation Technologies, Inc. Prioritization associated with controller engine instances
US7899559B2 (en) * 2007-02-27 2011-03-01 Rockwell Automation Technologies, Inc. Language-based organization of controller engine instances
US7778714B2 (en) * 2007-02-27 2010-08-17 Rockwell Automation Technologies, Inc. On-line editing associated with controller engine instances
US7684876B2 (en) * 2007-02-27 2010-03-23 Rockwell Automation Technologies, Inc. Dynamic load balancing using virtual controller instances
US7904564B2 (en) * 2007-05-21 2011-03-08 International Business Machines Corporation Method and apparatus for migrating access to block storage
US20090158299A1 (en) * 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
US8341626B1 (en) 2007-11-30 2012-12-25 Hewlett-Packard Development Company, L. P. Migration of a virtual machine in response to regional environment effects
US20090164994A1 (en) * 2007-12-20 2009-06-25 Virtual Computer, Inc. Virtual computing management systems and methods
US20110040812A1 (en) * 2007-12-20 2011-02-17 Virtual Computer, Inc. Layered Virtual File System
US8417916B2 (en) * 2008-01-11 2013-04-09 International Business Machines Corporation Perform frame management function instruction for setting storage keys and clearing blocks of main storage
US8019964B2 (en) * 2008-01-11 2011-09-13 International Buisness Machines Corporation Dynamic address translation with DAT protection
US8335906B2 (en) * 2008-01-11 2012-12-18 International Business Machines Corporation Perform frame management function instruction for clearing blocks of main storage
US8041922B2 (en) * 2008-01-11 2011-10-18 International Business Machines Corporation Enhanced dynamic address translation with load real address function
US8677098B2 (en) 2008-01-11 2014-03-18 International Business Machines Corporation Dynamic address translation with fetch protection
US8041923B2 (en) 2008-01-11 2011-10-18 International Business Machines Corporation Load page table entry address instruction execution based on an address translation format control field
US8082405B2 (en) * 2008-01-11 2011-12-20 International Business Machines Corporation Dynamic address translation with fetch protection
US8151083B2 (en) * 2008-01-11 2012-04-03 International Business Machines Corporation Dynamic address translation with frame management
US8117417B2 (en) 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
US8103851B2 (en) * 2008-01-11 2012-01-24 International Business Machines Corporation Dynamic address translation with translation table entry format control for indentifying format of the translation table entry
US8037278B2 (en) * 2008-01-11 2011-10-11 International Business Machines Corporation Dynamic address translation with format control
US8086811B2 (en) 2008-02-25 2011-12-27 International Business Machines Corporation Optimizations of a perform frame management function issued by pageable guests
US8095773B2 (en) 2008-02-26 2012-01-10 International Business Machines Corporation Dynamic address translation with translation exception qualifier
US8291426B2 (en) * 2008-06-02 2012-10-16 Microsoft Corporation Memory allocators corresponding to processor resources
US8285719B1 (en) 2008-08-08 2012-10-09 The Research Foundation Of State University Of New York System and method for probabilistic relational clustering
CN101668317B (zh) * 2008-09-04 2012-07-11 华为技术有限公司 一种网络资源预留的方法、系统和装置
US8954977B2 (en) * 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
US20110061046A1 (en) * 2008-12-18 2011-03-10 Virtual Computer, Inc. Installing Software Applications in a Layered Virtual Workspace
US8245234B2 (en) * 2009-08-10 2012-08-14 Avaya Inc. Credit scheduler for ordering the execution of tasks
RU2568779C2 (ru) * 2010-02-23 2015-11-20 Астроноутикс Корпорейшн оф Америка Однопроцессорная электронная система бортовой документации 3-го класса
US8615764B2 (en) * 2010-03-31 2013-12-24 International Business Machines Corporation Dynamic system scheduling
US8477610B2 (en) * 2010-05-31 2013-07-02 Microsoft Corporation Applying policies to schedule network bandwidth among virtual machines
KR101685247B1 (ko) 2010-09-17 2016-12-09 소프트 머신즈, 인크. 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측
US10346276B2 (en) 2010-12-16 2019-07-09 Microsoft Technology Licensing, Llc Kernel awareness of physical environment
CN103547993B (zh) 2011-03-25 2018-06-26 英特尔公司 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块
CN108376097B (zh) 2011-03-25 2022-04-15 英特尔公司 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段
EP2689326B1 (en) 2011-03-25 2022-11-16 Intel Corporation Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
US9792136B2 (en) 2011-04-28 2017-10-17 Microsoft Technology Licensing, Llc Hardware assisted inter hypervisor partition data transfers
WO2012162189A1 (en) * 2011-05-20 2012-11-29 Soft Machines, Inc. An interconnect structure to support the execution of instruction sequences by a plurality of engines
TWI603198B (zh) 2011-05-20 2017-10-21 英特爾股份有限公司 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
US9594579B2 (en) 2011-07-29 2017-03-14 Hewlett Packard Enterprise Development Lp Migrating virtual machines
US8843669B2 (en) 2011-09-09 2014-09-23 Microsoft Corporation Guest partition high CPU usage mitigation when performing data transfers in a guest partition
US9558048B2 (en) * 2011-09-30 2017-01-31 Oracle International Corporation System and method for managing message queues for multinode applications in a transactional middleware machine environment
EP2783280B1 (en) 2011-11-22 2019-09-11 Intel Corporation An accelerated code optimizer for a multiengine microprocessor
WO2013077876A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. A microprocessor accelerated code optimizer
JP5894496B2 (ja) * 2012-05-01 2016-03-30 ルネサスエレクトロニクス株式会社 半導体装置
JP5646560B2 (ja) * 2012-08-15 2014-12-24 株式会社東芝 仮想os制御装置、システム、方法およびプログラム
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
CN105247484B (zh) 2013-03-15 2021-02-23 英特尔公司 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
EP2972845B1 (en) 2013-03-15 2021-07-07 Intel Corporation A method for executing multithreaded instructions grouped onto blocks
CN103279389B (zh) * 2013-04-28 2016-06-22 中国工商银行股份有限公司 一种主机批量负载的调度方法以及调度系统
US9652294B2 (en) 2013-11-25 2017-05-16 International Business Machines Corporation Cross-platform workload processing
JP6372074B2 (ja) 2013-12-17 2018-08-15 富士通株式会社 情報処理システム,制御プログラム及び制御方法
US9535746B2 (en) * 2013-12-19 2017-01-03 International Business Machines Corporation Honoring hardware entitlement of a hardware thread
JP6295759B2 (ja) 2014-03-20 2018-03-20 富士通株式会社 ネットワーク管理装置,情報処理システム及びプログラム
US9342372B1 (en) 2015-03-23 2016-05-17 Bmc Software, Inc. Dynamic workload capping
US9680657B2 (en) 2015-08-31 2017-06-13 Bmc Software, Inc. Cost optimization in dynamic workload capping
CN106210109B (zh) * 2016-07-26 2021-07-13 通联支付网络服务股份有限公司 一种用于综合支付的产品系统
US10275169B2 (en) 2017-01-18 2019-04-30 Microsoft Technology Licensing, Llc Shared memory in memory isolated partitions
US10706143B2 (en) * 2017-05-19 2020-07-07 Intel Corporation Techniques for secure-chip memory for trusted execution environments
CN111522569B (zh) * 2020-05-09 2023-08-18 中瓴智行(成都)科技有限公司 基于Hypervisor的嵌入式多系统升级方法及计算机可读存储介质
US11604657B2 (en) * 2021-04-30 2023-03-14 Ncr Corporation Containerized point-of-sale (POS) system and technique for operating
CN113609071A (zh) * 2021-07-28 2021-11-05 北京金山云网络技术有限公司 一种用于消息队列的自动扩容方法及装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2638065B2 (ja) * 1988-05-11 1997-08-06 富士通株式会社 計算機システム
US5269009A (en) 1990-09-04 1993-12-07 International Business Machines Corporation Processor system with improved memory transfer means
US5241593A (en) 1991-05-07 1993-08-31 Wagner Ronald D Telephone and telephone cord retraction device, and method of making
EP0549924A1 (en) 1992-01-03 1993-07-07 International Business Machines Corporation Asynchronous co-processor data mover method and means
US5414851A (en) 1992-06-15 1995-05-09 International Business Machines Corporation Method and means for sharing I/O resources by a plurality of operating systems
US5434975A (en) 1992-09-24 1995-07-18 At&T Corp. System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications
CA2100540A1 (en) 1992-10-19 1994-04-20 Jonel George System and method for performing resource reconfiguration in a computer system
US5586260A (en) 1993-02-12 1996-12-17 Digital Equipment Corporation Method and apparatus for authenticating a client to a server in computer systems which support different security mechanisms
US5675797A (en) 1994-05-24 1997-10-07 International Business Machines Corporation Goal-oriented resource allocation manager and performance index technique for servers
US5771383A (en) 1994-12-27 1998-06-23 International Business Machines Corp. Shared memory support method and apparatus for a microkernel data processing system
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
US5768503A (en) 1995-09-25 1998-06-16 International Business Machines Corporation Middleware program with enhanced security
JPH1027167A (ja) * 1996-07-12 1998-01-27 Hitachi Ltd 並列計算機の負荷分散方法
US5931938A (en) 1996-12-12 1999-08-03 Sun Microsystems, Inc. Multiprocessor computer having configurable hardware system domains
US6233242B1 (en) * 1996-12-30 2001-05-15 Compaq Computer Corporation Network switch with shared memory system
US6301616B1 (en) 1997-04-11 2001-10-09 Microsoft Corporation Pledge-based resource allocation system
JPH10334057A (ja) * 1997-06-04 1998-12-18 Nippon Telegr & Teleph Corp <Ntt> 分散システム環境におけるバッチジョブの動的負荷分散処理方法およびそのシステム
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
JP4634548B2 (ja) * 1997-11-04 2011-02-16 ヒューレット・パッカード・カンパニー マルチプロセッサコンピュータシステム及びその動作方法
US6332180B1 (en) * 1998-06-10 2001-12-18 Compaq Information Technologies Group, L.P. Method and apparatus for communication in a multi-processor computer system
US6542926B2 (en) 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
US6314501B1 (en) * 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6301615B1 (en) * 1998-10-14 2001-10-09 Sun Microsystems, Inc. Cluster performance monitoring utility
JP4123621B2 (ja) * 1999-02-16 2008-07-23 株式会社日立製作所 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
US7523454B2 (en) 2001-03-06 2009-04-21 Hewlett-Packard Development Company, L.P. Apparatus and method for routing a transaction to a partitioned server

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013106256A1 (en) * 2012-01-09 2013-07-18 Microsoft Corporation Decoupling paas resources, jobs, and scheduling
KR20140109939A (ko) * 2012-01-09 2014-09-16 마이크로소프트 코포레이션 Paas 자원들, 작업들 및 스케줄링의 분리 기법
US8904008B2 (en) 2012-01-09 2014-12-02 Microsoft Corporation Assignment of resources in virtual machine pools
US9170849B2 (en) 2012-01-09 2015-10-27 Microsoft Technology Licensing, Llc Migration of task to different pool of resources based on task retry count during task lease
US9372735B2 (en) 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool
US10241812B2 (en) 2012-01-09 2019-03-26 Microsoft Technology Licensing, Llc Assignment of resources in virtual machine pools

Also Published As

Publication number Publication date
CA2435978A1 (en) 2002-09-19
CA2435978C (en) 2013-05-14
EP1386226A2 (en) 2004-02-04
EP1386226B1 (en) 2015-10-28
CN1496508A (zh) 2004-05-12
AU2002228206A1 (en) 2002-09-24
JP2004530196A (ja) 2004-09-30
CN1280725C (zh) 2006-10-18
JP3980487B2 (ja) 2007-09-26
WO2002073397A2 (en) 2002-09-19
US20020129085A1 (en) 2002-09-12
KR100612059B1 (ko) 2006-08-14
WO2002073397A3 (en) 2003-11-27
US6985951B2 (en) 2006-01-10

Similar Documents

Publication Publication Date Title
KR100612059B1 (ko) 분할 처리 환경에서의 자원 조절을 위한 방법, 컴퓨팅 시스템 및 그에 관한 기록 매체
KR20040004554A (ko) 분할 처리 환경에서의 공유 i/o
US7089558B2 (en) Inter-partition message passing method, system and program product for throughput measurement in a partitioned processing environment
US20020129274A1 (en) Inter-partition message passing method, system and program product for a security server in a partitioned processing environment
US8656077B2 (en) Apparatus, method and system for aggregating computing resources
US8327372B1 (en) Virtualization and server imaging system for allocation of computer hardware and software
EP1695210B1 (en) Grid application deployment
US8725913B2 (en) Numa I/O framework
US8244827B2 (en) Transferring a logical partition (‘LPAR’) between two server computing devices based on LPAR customer requirements
EP1508855A2 (en) Method and apparatus for providing virtual computing services
US20050120160A1 (en) System and method for managing virtual servers
US20240160488A1 (en) Dynamic microservices allocation mechanism
KR100458104B1 (ko) 파티션 처리 환경을 위한 이종 클라이언트 서버 방법,시스템 및 프로그램 제품
Jones NAS requirements checklist for job queuing/scheduling software
Hasan et al. Evolution Towards Cloud: Overview of Next Generation Computing Architecture

Legal Events

Date Code Title Description
A201 Request for examination
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: 20120725

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130719

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140725

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150728

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160801

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170725

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180727

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190730

Year of fee payment: 14