KR960013366B1 - 컴퓨터 시스템 및 이를 위한 그래픽 디스플레이를 제어하기 위한 시스템 및 방법 - Google Patents

컴퓨터 시스템 및 이를 위한 그래픽 디스플레이를 제어하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR960013366B1
KR960013366B1 KR1019920001251A KR920001251A KR960013366B1 KR 960013366 B1 KR960013366 B1 KR 960013366B1 KR 1019920001251 A KR1019920001251 A KR 1019920001251A KR 920001251 A KR920001251 A KR 920001251A KR 960013366 B1 KR960013366 B1 KR 960013366B1
Authority
KR
South Korea
Prior art keywords
processor
graphics
procedure
display controller
computer system
Prior art date
Application number
KR1019920001251A
Other languages
English (en)
Other versions
KR920016971A (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 KR920016971A publication Critical patent/KR920016971A/ko
Application granted granted Critical
Publication of KR960013366B1 publication Critical patent/KR960013366B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Digital Computer Display Output (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

내용없음.

Description

컴퓨터 시스템 및 이를 위한 그래픽 디스플레이를 제어하기 위한 시스템 및 방법
제1도는 그래피컬 인터페이스를 위한 클라이언트/서버 모델을 도시한 블럭도.
제2도는 중앙 처리기에서 그래피컬 디스플레이에 관련된 처리를 실행하는 종래 기술의 시스템과 유사한, 중앙 컴퓨터 시스템의 하이 레벨 블럭도.
제3도는 본 발명에 따른 처리 시스템의 양호한 실시예에 대한 블럭도.
제4도는 제3도의 처리기와 관련하여 사용되는 소프트웨어 시스템을 도시하는 블럭도/데이타 흐름도.
* 도면의 주요 부분에 대한 부호의 설명
10 : X 디스플레이 스테이션 12 : 호스트 컴퓨터
16 : 네트워크 인터페이스 18 : X 서버
20 : 디스플레이 드라이버
본 발명은 일반적으로 전자 컴퓨터 시스템에 관한 것으로, 특히 컴퓨터 시스템을 위한 그래픽 디스플레이(graphics displays)를 제어하는 시스템 및 방법에 관한 것이다.
그래피컬 사용자 인터페이스(graphical user interfaces)는 컴퓨터 산업에서 점차 일반적인 것이 되어가고 있다. 통상적으로 이들 인터페이스는 텍스트에 기초하는 인터페이스(text based interfaces)보다 좀더 빠르고 명확하게 정보를 사용자에게 도달하기 위하여 여러 형태의 영상 및 그래픽을 이용한다. 상기 인터페이스들 대부분은, 독립적인 응용들(separate applications) 또는 동일한 응용내의 개별적인 부분들을 나타내는 윈도우(window)들이 복수개일 수 있도록 또한 종종 겹쳐질 수 있도록(오버래핑되도록)하여 사용자는 한꺼번에 여러 프로그램의 진행 상황을 모니터할 수 있게 된다.
그러한 그래피컬 인터페이스를 구동하는 것은 관련 프로세서에 상당한 부담을 주게 된다. 개별적인(독립적인) 응용들이 종종 동시에 실행(running simultaneously)된다는 사실외에도, 오버랩핑되는 윈도우를 이용한다는 것이 디스플레이 서브 시스템들이 사용자에게 보여지는 각각의 윈도우의 부분들을 계속적으로 모니터해야만 한다는 것을 의미한다. 종종 칼라로된 고해상도 디스플레이상의 비트 맵 그래픽스(bit mapped graphics)의 조작은 비록 비교적 간단한 작업(tasks)을 수행하기 위해서도 많은 수의 처리기 사이클(processor cycle)을 필요로 한다. 결과적으로, 복잡한 그래픽 디스플레이를 제어하기 위하여는 고성능 프로세서들이 필요하다.
고해상도 그래픽 디스플레이를 지원하기 위해 특별히 설계되지 않은 시스템들은 그러한 고행상도 그래픽 디스플레이를 구동할때 성능이 떨어질 수 있다. 이는 특히 그러한 시스템이 동시에 복수개의 디스플레이들을(multiple displays)를 지원해야 할때 특히 그러하다. 단순히 동시에 다주의 그래피컬 디스플레이(multiple graphical displays)에 관한 기본적인 기능들만을 지원하기 위하여 필요한 처리량도 고성능 처리기의 지원(resources) 조차 혹사시킬 수 있으므로, 기본적인 처리 기능들의 실행을 위한 시간은 거의 없거나 전혀 없게 된다. 이는 그러한 시스템의 전반적인 성능을 상당히 떨어뜨린다.
프로그래머의 생산성(productivity) 및 응용의 이식성(portabiligy)을 증신시키기 위하여 다수의 그래피컬 디스플레이 인터페이스가 표준화되는 과정에 있다. 점차 대중화되는 그래피컬 디스플레이 표준중의 하나는 X 윈도우(X windows)로 알려져 있다. X 윈도우는 초기에는 UNIX(등록상표) 및 이와 호환성이 있는 운영체제상에서 구현되어 왔다. 이와 같이 X 윈도우는 서로 다른 제작자 및 상당히 다른 구조(architecture)를 가진 컴퓨터 시스템들간에 쉽게 이식할 수 있도록 설계되었다.
X 윈도우는 근거리 통신망(locai area network)에서 쉽게 구현되도록 정의되어 있다. 이는 응용은 한 기계에서 실행되면서도, 그래피컬 사용자 인터페이스는 그와 떨어진 물리적으로 원격지에 있는 기계 또는 단말에서 실행될 수 있게 한다. X 윈도우 시스템의 공식적인 정의는 X표준을 지지하는 주요 컴퓨터 제조업자 협회의 조정하에 때때로 변경된다. X 윈도우 시스템과 이 시스템의 구현을 기술하고 있는 문헌은 상당히 많으며, 그중 X 윈도우 환경을 설명하고 있는 문헌으로는 디지탈 프레스사에서 1990년에 펴낸 R.W.Scheifler 및 J. Gettys 저, X 윈도우 시스템(X window system) 제2판이 있다.
X 윈도우 구조는, 운영 체재를 구비하며 응용을 실행할 수 있는 완벽히 갖추어진(full featured) 고성능 그래픽컬 워크스테이션(workstation)의 네트워크애서 훌륭히 동작한다. 이것이 사실상 X 윈도우 구조가 설계된 배경이다. 그래피컬 X 윈도우 인터페이스를 잘 이용할 수 있는 또다른 시스템으로는, 하나의 대형 중앙 시스템(central system)을 구비하고 상대적으로 간단한 그래피컬 단말기들이 네트워크를 통해 상기 중앙 시스템에 연결된 시스템을 들 수 있다. 이러한 배열(arrangement)은 대부분의 처리 능력을 한 곳에 집중시키므로, 추가적인 사용자들이 비교적 작은 비용증가로 네트워크에 연결될 수 있게 한다. 일단 시스템이 적절하기만 하다면, 사용자를 추가시키는데 소요되는 비용은 완전히 갖추어진 그래피컬 워크 스테이션을 각각의 사용자에게 제공하는데 드는 비용보다 훨씬 작다.
중앙 시스템을 이용하는데 있어 하나의 중요한 결점은, 중앙 시스템이 지원하고 있는 그래피컬 단말의 수가 많기 때문에 메인 중앙 시스템(main central system)에 대한 처리 요구가 상당히 크다는 것이다. 매우 많은 응용 프로그램을 동시에 실행해야 하는 부담외에도, 중앙 시스템은 단지 각 단말을 위한 X 윈도우 그래피컬 인터페이스를 지원하기 위해서도 엄청난 처리를 해야만 한다. 일정한 작은 갯수 이상의 단말들이 메인 중앙 처리기의 자원을 이용하여 동시에 실행한다면, 그러한 처리기의 전반적인 성능은 심각할 정도로 떨어질 수 있다. 하나의 네트워크를 통해 다수의 단말을 구동하는 단일 중앙 시스템은, 비용면에서 보았을 때 완벽히 갖춰진 워크 스테이션(fully featured work stations)들로 이루어진 네트워크를 대체할 수 있을 것이다. 그러나, 그러한 시스템은 요청되는 성능이 성취될 수 있을 때만 이용가능할 것이다. 그러한 중앙 집중화된 시스템(a centralized system)은 그래피컬 단말뿐 아니라 완전히 갖추어진 워크 스테이션도 네크워크에 부착될 수 있기 때문에 아주 융통성이 있다.
그러므로, 네트워크를 통해 원격 단말 또는 다른 장치(devices)들 상의 다중 그래피컬 세션(multiple graphic sessions)을 지원할 수 있는 시스템을 제공하는 것이 바람직할 것이다. 또한, 그러한 시스템은 X 윈도우 또는 구입하기 쉬운 비슷한 표준 인터페이스와 호환될 수 있는 것이 바람직하다. 그러한 시스템은 비교적 다수의 그래피컬 단말들을 구동하면서도 만족스러운 성능을 제공하는 것이 특히 바람직하다.
발명의 개요
본 발명의 목적은 원격(네트워크에 부착된) 단말들상의 다중 그래피컬 세션을 지원하는 시스템을 제공하는 것이다.
본 발명의 또 한 목적은 X 윈도우 인터페이스표준과 호환되는 시스템을 제공하는 것이다.
본 발명의 또 한 목적은 비교적 큰 수의 다중, 동시적 원격 세션을 위한 양호한 성능을 부여하는 시스템을 제공하는 것이다.
그러므로 본 발명에 따르면 원격 단말들에 그래피컬 디스플레이 세션을 지원하기 위한 시스템은 그래픽의 지원에 전용(dedicate)되는 처리 서브시스템(a processing subsystem)을 포함한다. 응용들은 중앙 처리기(central processor)에서 실행되고, 디스플레이 관련된 그래픽 명령들은 별도의 그래픽 제어기 서브시스템(graphics controller subsystem)에서 실행된다. 그래픽 서브 시스템은 바람직하게는 네트워크 에 의해 다중 원격 단말들애 접속되고, 응용을 처리하고 있는 중앙 처리기에 의해 모든 작업이 실행되야한다는 요구없이 다중 원격 단말들과 통신한다.
본 발명의 신규한 특징이라 믿어지는 특징들은 첨부된 특허청구 범위에 기술되어 있다. 첨부된 도면을 참고하여 예시적인 실시예에 대한 다음의 상세한 설명을 보면 본 발명의 바람직한 이용 방식, 목적 및 장점은 물론이고 본 발명 그 자체도 잘 이해할 수 있을 것이다.
발명의 상세한 설명
본 발명의 양호한 실시예는 X 윈도우 그래피컬 디스플레이 표준을 이용하는 특정 실시예를 들어 이하 설명될 것이다. 본 발명의 기술이 비슷한 조건을 갖고 있는 다른 디스플레이 시스템과 함께 사용되도록 개조(adapt)될 수 있다는 것은 본 기술 분야에서 숙련된 자이면 알 수 있을 것이다.
제1도는 X 윈도우에 의해 이용될 크라이언트/서버 모델(client/server model)을 보여주는 블록 다이어그램이다. 이 모델은 크게 두가지 부분 X 디스플레이 스테이션(10) 및 호스트 시스템(12)을 포함하고 있다. X 디스플레이 스테이션(10)과 호스트 시스템(12)은 네트워크(14)를 통해 연결되어 있다.
네트워크(14)의 정확한 유형(type)은 본 발명의 일부를 구성하지 않는다. 예를 들어 네트워크(14)는 TCP/IP를 실행하는 이더넷(Ethernet) 접속일 수 있다. 그러나, 시스템 네트워크 아키텍쳐(SNA, System Network Architecture) 또는 개방형 시스템 상호 접속(OSI, Open Systems Interconnection)과 같은 다른 네트워킹 프로토콜(other networking protocols)과, 토큰 링 LAN(Token Ring LAN) 또는 종합 정보 통신망(ISDN)과 같은 다른 통신 프로토콜(communication Protocol)을 이용하는 네트워크도 사용될 수 있다.
X 디스플레이 스테이션(10)은 네트워크(14)에 접속된 네트워크 인터페이스(16)를 포함한다. X 서버(18)는 네트워크 인터페이스(16)와 디스플레이 드라이버(20)에 연결되어 있다. 차례로 디스플레이 드라이버(20)는 가시 디스플레이(visual display)(22)를 구동시킨다. 디스플레이 스테이션(10)은 X 윈도우를 지원하는 임의 형태의 표시 장치(display device)일 수 있다. 이러한 태스크(task)에 적합한 스테이션의 예로는 UNIX(등록상표) 워크스테이션(workstations), 전용 X단말 및 다른 유형의 컴퓨터에서 실행되는 X 에뮬레이터(X emulators)가 있다.
X 서버(18)는 완전히 갖추어진 워크스테이션 또는 종속 단말(dependant terminal)로 실행될 수 있는, 프로그램 가능한 소프트웨어 또는 펌웨어(firmware)이다. X 서버(18)의 성능과 기능에 대한 설명서는 구입하여 보기가 쉬우며, X 서버의 특성들은 본 발명의 일부도 형성하지 않는다. 일반적으로, X 서버(18)는 네트워크 인터페이스(16)를 통해 네트워크(14)를 거쳐 전송된 요청(requests)을 해석한 다음 디스플레이 드라이버(20)로 하여금 디스플레이(22)상에 출력을 발생시키게 한다. 또한 X 서버(18)는 디스플레이 드라이버(20)를 통해서 하나 또는 그 이상의 입력 디바이스(24)로부터 입력을 수신한다.
X 서버(18)의 기능들은 잘 정의되어 있으며 모든 형태의 X 디스플레이 스테이션(10)에 대해서도 일정하다. 디스플레이 드라이버(20)는 디스플레이 스테이션(10)의 하드웨어에 특정되어 있으며 디스플레이(22) 및 입력 장치(24)와 직접 인터페이스한다. 디스플레이(22)는 통상 모든 지점을 주소 지정할 수 있는(all points addressable) 라스터비디오 모니터(raster video monitor)를 포함하며, 입력장치(24)는 키보드 및 마우스(mouse)와 같은 포인팅 장치(pointing device)를 포함하고 있다. 디스플레이 드라이버(20)와 키 두드림(key hit) 또는 마우스 이동(mouse movement)과 같은 입력 작업을 검출하면, X 서버(18)는 네트워크를 통해 전송되는 메세지를 발생할 수 있다. 메세지는 또한 네트워크로부터 수신된 몇몇 유형의 요청에 응답하여 X 서버(18)에 의해 발생될 수도 있다.
호스트 시스템(12)은 네트워크 링크의 다른쪽 끝부분에 있다. 제1도에서는 호스트 시스템(12)이 단일 호스트 시스템인 것으로 도시되어 있지만, 실제로는 네트워크(14)를 통해 동일한 디스플레이 스테이션(10)과 통신하는 다수의 독립적인 시스템들로 구성될 수 있다. X 서버(18)의 중요한 기능은 하나 또는 그 이상의 호스트 시스템(12)과의 네트워크 통신 링크를 만들고 이를 유지시키는 것이다.
단일 호스트 시스템을 가정하면, 네트워크에 부착된 하드웨어는 네트워크 인터페이스(26)에 의해 제어된다. 네트워크 인터페이스(26)는, 비교적 저 레벨 루틴들의 라이브러리(a library of relatively low,level routines)인 Xlib(28)와 통신한다. Xlib(28)는 X 윈도우 명세서의 일부로서 상세히 정의되어 있으며, 필요하다면 확장도 가능하다.
다수의 응용(30)은 절차 호출(procedure calls)을 통해 Xlib(28)와 통신한다. X 윈도우 시스템에서는 이들 응용(30)을 클라이언트(clients)라 칭한다. 이들 클라이언트는 컴퓨터 시스템에서 실행되는 워드 프로세서, 컴퓨터 이용 설계 프로그램(computer aided design programs), 및 스프레드시트(spread sheets)와 같은 실제적인 응용이다. 클라이언트 응용(30)에 의한 사용자(사람)에 대한 모든 입력 및 출력은 Xlib(28)절차 호출을 통해 직접 또는 간접으로 양호하게 수행된다. 응용(30)에 의해 발생된 출력은, 입력 디바이스(24)로부터 발생된 반대방향으로 진행하는 입력과 함께 Xlib(28)에 의해 네트워크(4)를 통해 X 서버(18)에 전송된다. Xlib(28)와 X 서버(18) 루틴들의 조합은 디스플레이에 관한 로우 레벨의 세부사항(details)거의 모두를 처리하므로, 클라이언트 응용(30)은 디스플레이의 세부사항을 고려함이 없이 그들의 1차적 기능을 자유롭게 실행할 수 있게 된다.
대부분의 상황에서 응용(30)은 Xlib(28)와 직접 인터페이스하지 않고, 응용에 하이 레벨 인터페이스를 제공하는 툴 키트(tool kits, 도시안됨)들을 이용한다. 툴 키트들은 자신들의 차례가 오면 Xlib(28)의 루틴들을 호출한다. 응용에 하이 레벨 인터페이스를 제공함에 있어서, 툴 키드들은 프로세서로 하여금 많은 작업을 수행하도록 요청할 수 있다. 표준 툴 키트들은 응용 프로그래머(applications writers)가 그들의 태스크(작업)를 간단히 하기 위하여 이용할 수 있게 만들어져 있으나, 그들은 X 윈도우 시스템에게는 단지 클라이언트 응용(30)의 또다른 부분으로 보일뿐이다.
Xlib(28) 루틴내에서 상당한 양의 처리가 수행될 수 있다. Xlib(28)는 그래픽 그림을 그리는 것(drawing of graphics figures), 및 디스플레이(10)과의 네트워크 통신의 개시 및 유지(initiation and maintenance)를 처리(handle)한다. Xlib(28)내의 다수의 루틴은, 오버랩핑 윈도우의 디스플레이, 표시 사건(exposure events) 및 디스플레이를 가로지르는 윈도우의 이동과 같은 고려사항을 포함하는, 윈도우 관리(management of windows)에 건용된다. 종래의 기술에서 알 수 있듯이, 이러한 종류의 디스플레이 처리는 처리기에 상당한 양의 부담을 주게된다.
여러 종류의 영상 처리가 종종 X 윈도우 환경(environment)에서 실행된다. 이러한 유형의 처리는 고도로 프로세서 집약적인(highly processor intensive)것으로 잘 알려져 있다. 비트 맵 영상(bit mapped images)이 하나의 파일로 스캔(scan)될 수 있고, 또는 응용에 의해 하나의 화상 파일(image file)이 생성될 수 있다. 화상 회전(image rotation) 및 확대 축소(scaling)와 같은 여러 종류의 조작이 상기 화상에 대해 실행될 수 있다. 화상 파일의 저장에 필요한 저장 용량을 줄이기 위하여 화상 압축 및 압축 해제(image compression and decompression)가 실행된다. 이러한 처리는 여러 응용 프로그램에 의해 호출될 수 있는 툴 키트 루틴(tool kit routines)내에서 종종 실행될 수 있다. 이러한 유형의 처리 또한 상당한 처리기 시간(processor time)을 요한다는 것도 잘 알려져 있다.
비록 반드시 요구되는 것은 아닐지라도, 상기 클라이언트 응용(30)중의 하나는 윈도우 관리자 프로그램(window manager program)이다. 윈도우 관리자 클라이언트가 사용되면, 윈도우 관리자 클라이언트는 디스플레이상의 윈도우 위치 결정(positioning) 및 크기 결정(sizing), 그리고 윈도우의 이동과 같은 많은 세부 사항을 처리한다. 윈도우 관리자 클라이언트는 Xlib(28)내에 있는 많은 윈도우 관리 루틴들을 이용한다.
제2도는 통상 종래의 기술에서 볼 수 있는 컴퓨터 시스템을 도시하고 있다. 컴퓨터 시스템(32)은 중앙 처리기(34)와 네트워크 인터페이스 카드(36)를 포함하고 있다. 중앙처리기(34)와 네트워크 인터페이스 카드(36)는 모두 시스템 버스(38)에 연결되어 있고, 이 시스템 버스는 입/출력 장치, 메모리, 및 대용량 기억장치(mass storage, 도시안됨)와 같은, 컴퓨터 시스템에서 통상 볼 수 있는 기타 서브 시스템들도 연결한다.
네트워크 인터페이스 카드(36)는 통신 링크(40)의 물리적으로 접속되며, 이 통신 링크(40)는 네트워크(14)에 접속된다.
Xlib(28)의 많은 처리 요구에 의해 발생되는 문제점들은 컴퓨터 시스템(32)을 참조해 보면 쉽게 이해될 수 것이다. 중앙 처리기(34)는 클라이언트 응용(30)은 물론이고 모든 Xlib 절차들을 실행해야만 한다. 네트워크(14)로 또는 네트워크로부터 통신이 이루어져야 할때마다, 네트워크 인터페이스 카드(36)는 그러한 전송에 대한 로우 레벨의 세부사항을 처리한다. 그러나, 어느 방향으로도(즉 네트워크로부터이건 네트워크로이건) 모든 데이타 전송은 궁극적으로 중앙 처리기(34)에 의해 처리되어야 한다.
Xlib 절차들은 처리기 집약적인 것으로 알려져 있기 때문에, 처리기(34)의 전체적인 시스템 성능이 상당히 떨어질 것이라는 것을 예견할 수 있다. 비교적 작은 수의 태스크(작업)를 실행하는 시스템에서는 이러한 성능 저하 정도가 문제점이되지 않을 수도 있다. 그러나, 시스템(32)이 실행해야할 많은 클라이언트 응용(30)을 가지고 있는 중앙 시스템으로 사용된다면, 시스템 성능은 낮을 것이고 시스템 응답 시간(respose time)도 길게될 것이다. 그러므로, 단일 중앙 시스템이 많은 단순 단말(simple terminal)들을 지원하는 장치에서 X 윈도우와 같은 처리기 집약적인 그래픽 시스템을 사용하는 것은 바람직하지 않다.
제3도는 본 발명의 기술을 이용하는 양호한 컴퓨터 시스템을 도시하고 있다. 시스템(42)은 상술한 바와같이 클라이언트 응용(30)을 실행하는 중앙 처리기(44)를 포함하고 있다. 중앙 처리기(44)는 도시되지 않은 서브 시스템을 포함하여 시스템(42)의 나머지 부분(remainder)에 시스템 버스(46)를 통하여 연결되어 있다.
제2처리기(secondary processor)(48)가 또한 시스템 버스(46)에 연결되어 있는 네트워크(14)로의 링크를 제공한다. 제2처리기(48)는 실제로 그 자체내에 모든 것을 갖춘 프로그램가능한 컴퓨터 시스템(programmable computer system)을 포함하고 있다. 제2처리기(48)는 시스템 버스(46)로의 버스 인터페이스(50)와 처리기(52)를 포함하고 있고, 또한 네트워크 인터페이스(56)도 포함하고 있다. 모든 것을 갖춘 컴퓨터 시스템에서 발견되는 추가적인 특징들도 비록 도시되지는 않았지만 포함되며, 이들로서는 판독 전용 기억 장치(read only store), 랜덤 액세스 메모리, 제어 및 타이밍 회로, 및 선택적인 대용량 기억 장치(mass storage)와 같은 아이템이 포함된다. 처리기(52)는 모든 것을 갖춘 범용 마이크로프로세서(general purpose microprocessor)이다. 제2처리기(48)는 예를 들어, 인텔(Intel)사로부터 구입가능한 1960 마이크로 프로세서를 중심으로 설계될 수 있다. 수치연산 코프로세서(numeric co-processors) 또는 디지탈 신호 처리기들과 같은 부가적인 코프로세서들(도시안됨)도, 다량의 수치 계산을 필요로하는 그래픽 기능(number intensive graphics functions)의 성능을 증진시키기 위해 바람직하게는 상기 제2처리기(28)내에 포함된다. 단독 또는 그러한 임의의 코-프로세서와 결합한 처리기(52)는 시스템 중앙 처리기(44)보다 더 나은 기초 계산능력(raw computing power)을 가질 수 있다. 이는 X 윈도우 디스플레이를 구동하는데만 요청되는, Xlib 라이브러리(48)와 같은 다수의 처리기 집약적인 소프트웨어를 제2처리기(48)로 하여금 실행할 수 있게 해준다. 이러한 것은 중앙 처리기(14)로 하여금, 중앙 처리기에 훨씬 적합한 일일 수 있는 클라이언트 응용(30)의 실행을 자유로이 할 수 있게 한다.
예를 들어, 시스템(42)은 IBM에서 구입가능한 AS/400 컴퓨터로 구현될 수 있다. AS/400의 중앙 처리기는 응용들을 멀티태스킹(multitasking)하는데 아주 적합하나, 그래픽 집약적인 응용들을 실행하는데 있어서는 그 효율이 어느정도 감소한다. AS/400은 멀티프로세서 시스템으로 가능하도록 설계되어 있어서, 제2처리기(48)의 이용은 기본 시스템(basic system)에 대한 자연적인 확장이 된다.
제4도는 중앙 처리기(44)에서 실행되는 여러 소프트웨어 패키지(software packages)와 제2처리기(48)사이의 구조적 관계(structural relationship)를 도시하고 있다. 각 처리기(44,48)는 중앙 처리기(44)와 제2처리기(48)간의 데이타 전송을 다루기 위한 버스 인터페이스(58)를 갖고 있다. 종래의 기술에 공지되어 있듯이, 버스 인터페이스(58)는 상당부분이 하드웨어로 구현될 수 있다. 버스 인터페이스(58)의 특성은 본 발명의 일부를 형성하지 않으며, 컴퓨터 시스템(42)을 구현하는데 사용된 하드웨어에 의해 규정(dictate)된다.
제4도는 구조도는 본 기술 분야에서 공지된 유형이며 통상의 방식으로 읽혀진다. 이름이 붙어 있는(labelled) 각 블록은 하나의 소프트웨어 패키지를 나타낸다. 데이타는 절차 호출 및 복귀(procedure calls and returns)를 이용하거나 또는 다른 대안적인 방법에 의해 인접한 블록들 사이에서 수직 방향으로(vertically) 통신된다.
응용(60)은 중앙 처리기(44)상에서 실행된다. 응용(60)에 의해 수행되는 모든 X 윈도우 관련 입력 및 출력은, 툴 키트(62), Xlib 스터브(stub, 64) 또는 X 디스플레이 데이타 관리자(66)에 대해 적절한 절차 호출을 하므로써 수행된다. 대용량 저장 장치(mass storage devices)에 저장되는 파일에 관하여, 다른 형태의 입출력은 본 기술분야에서 공지되어 있는 기술을 이용하여 처리된다.
Xlib 스터브(64)는 Xlib(28)를 대체할 수 있으며, 호출 응용(calling application, 60)에게는 정확히 Xlib(28)로 보인다. Xlib 스터브(64)내에서 임의의 Xlib 루틴을 실제로 수행하는 대신에, 제2처리기(48)에서의 실행을 위해 버스 인터페이스(58)로 단지 절차 호출들만이 전달된다. 이 절차 호출들은 시스템 버스(46)에 의한 데이타 전송 효율을 향상시키기 위하여 원한다면 재포맷 될 수(reformatted)도 있다. 한 Xlib 호출이 복귀 결과(returned results)를 발생하도록 되어 있을때, 임의의 복귀 결과는 시스템 버스(46)를 거쳐 Xlib 스터브(64)로 전송될 수 것이다. 필요한 어떠한 재포맷도 스터브(64)에 의해 실행되며 일반적인 방식으로 응용(60)에 복귀된다. 그러므로, Xlib에서 통상 실행되는 집약적인 처리(intensive processing)은 중앙 처리기(44)에서 실행되지 않는다.
툴 키트(62)들은 두개의 다른 방법으로 사용될 수 있다. 다수의 툴 키트는 현재 본 기술분야에서 구입할 수 있으며, 이들은 표준화된 바람직한 프로그램 인터페이스들의 광범위한 배열을 제공하는데 사용된다. 이들 툴 키트(62)들은 자주 사용되는 절차(often used porcedures)를 한번만 구현하며, 응용 프로그래머로 하여금 많은 응용들에 공통인 코드는 다시 쓸(rewrite) 필요가 없게 한다. 툴 키트(62)들은 그들의 차례가 되면 Xlib 루틴(64)들을 호출하거나 제2처리기에서 실행되는 툴 키트에 정보를 보낼 수 있다. 제4도에 도시된 바와 같이, 툴 키트(62)는 Xlib 스터브(64)를 호출하므로써 Xlib 절차를 호출하거나 또는 데이터를 버스 인터페이스(58)로 직접 전송하므로써 로우 레벨로 직접 통신한다.
전술한 바와 같이, 툴 키트(62)들은 두가지 방법으로 다루어질 수 있다. 하나의 방법은 툴 키트가 실제로 중앙 처리기(44)에서 실행되는 것이다. 다른 방법은 기능면에 있어서 Xlib 스터브(64)와 유사한, 제2처리기에서 실행되는 툴 키트에 단순히 하나의 스터브를 제공하는 것이다. 이 경우에, 툴 키트 코드의 실제적인 실행은 제2처리기(48)에서 실행된다. 후자의 방법은 중앙 처리기(44)로부터 추가적인 처리 부하(load)를 제거해주는 장점을 갖는다. 툴 키트들을 제2처리기(48)에서 실행하는 것은, 그러한 작업의 처리기 집약적인 성질 때문에, 화상 처리를 수행하는 것들에 특히 유리하다. 여러가지 구현상의 이유 때문에, 툴 키트(62)들중 약간은 중앙 처리기(44)로 실행되고 그외의 것들은 제2프로세서(48)에서 실행되며 중앙 처리기(44)에는 단지 스터브들로 표현되도록 하는 것이 바람직할 수 있다.
X 디스플레이 데이타 관리자(66)는 응용(60)에 의해 호출될 수 있는 응용 프로그램 인터페이스(API)이다. X 디스플레이 데이타 관리자(66)는 툴 키트(62)와 비슷하지만 바람직하게는 더 높은 수준의 기능을 제공한다. X 디스플레이 데이타 관리자(66)는 단일 문자(single characters)에 응답하는 것이 아니라 보다 큰 데이타 블록을 이용하여 통신한다. 데이타 관리자(66)는 응용이 디스플레이 패널을 정의할 수 있게 해준다.
(디스플레이 패널의) 정의는 입력 필드 명세(input field specifications), 출력 영역 (output areas), 그래픽 인터페이스 및 이와 비슷한 것들을 포함한다. 응용(60)으로 부터의 호출에 응답하여, 디스플레이 데이타 관리자(66)는, 데이타 스트림(data streams)을 만들고 디스플레이 패널상의 항목 필드(entry fields)를 정의하는 제2처리기(48)로 보내거나 또는 스크린 또는 입력 필드 데이타를 요청한다. 그 대신에 디스플레이 데이타 관리자(66)는 제2처리기(44)로부터 데이타 스트림을 수신하고 이들을 처리한 다음 응용(60)으로 복귀시킨다. 이들 복귀하는 데이타 스트림은 입력 필드 데이타를 복귀(return)시키는 기능 및 Help(도움말 키)와 같은 특정 키보드 기능을 처리하는 기능들을 포함하고 있다.
대량의 정보를 전송하는 데이타 스트림의 개념은 본 기술 분야에서 공지되어 있으며, X 디스플레이 데이타 관리자에 유사한 방식으로 기능하는 디스플레이 데이타 관리자의 한 예는, IBM사에서 구입할 수 있는 Application System/400 Programming : Data Description Specifications Reference(DDS)에 기술되어 AS/400 DDS 디스플레이 데이타 관리자에 이용된 디스플레이 데이타 스트림은 5250 데이타 스트림인데, 이는 IBM 공보 IBM 5250 정보 디스플레이 시스템 기능 참조 매뉴얼에 기술되어 있다.
제2처리기(48)와의 정보 통신을 위한 데이타 스트림의 사용을 대신하여 또는 그에 부가하여 X 디스플레이 데이타 관리자(66)가 Xlib 스터브(64)에게 표준 Xlib 절차 호출을 할 수 있다. 이들 절차 호출은 툴 키트(62)에 의해 또는 직접 응용(60)에 의해 Xlib에 대해 이루어질 호출과 똑같은 방식으로 처리된다.
제2처리기(48)에서 실행되는 소프트웨어 응용들은 제4도의 하부에 도시되어 있다. Xlib 라이브러리(68)는 실제로 제2처리기(48)에서 실행되며 네트워크 인터페이스(70)와 통신한다. Xlib 루틴(68)은 버스 인터페이스(58)를 통하여 Xlib 스터브(64)에 의해 직접 호출되거나 또는 제2처리기(48)에서 실행되는 여러 응용으로부터 Xlib 스터브(64)에 의해 직접 호출될 수 있다.
본 기술분야에서 공지되어 있듯이, 어떤 X명령은 Xlib를 통하여 응옹과 X 서버(X sever)(18)사이를 직접 통과한다. 응용 및 X 서버(18)에 의해 특별하게 신호를 받는 이러한 유형의 명령들을 (72)를 통하여 Xlib 라이브러리(68)를 통과하며, 네트워크 인터페이스(70)와 버스 인터페이스(58) 사이로 직접 통신된다.
제2데이타 관리자(74)는 제2처리기(48)에서 수행되며 X 디스플레이 데이타 관리자(66)와 인터페이스한다. 제2데이타 메니저(74)는 디스플레이 데이타 관리(66)로부터 수신된 데이타 스트림을 처리한다. 또한 엔터 키(enter key)와 같은 특정한 키들이 X 디스플레이 스테이션(10)상에 눌러졌을때 또는 응답이 디스플레이 데이타 관리자에 의해 요청될때, 제2데이타 관리자(74)는 디스플레이 데이타 관리자(66)에 보내질 데이타 스트림을 만든다. 만약 전술한 바와 같이 5250 데이타 스트림 통신이 이용된다면, 제2데이타 관리자(74)는 5250 데이타 스트림 포맷과 X데이타 포맷 사이의 변환를 실행하여야 한다.
제2데이타 관리자(74)는 X 디스플레이 스테이션(10)과 통신하기 위하여 Xlib(68)에 대한 절차 호출을 수행한다. 사용자 입력 사건 처리 응용(user input event processing application, 76)은 네트워크(14)를 거쳐 디스플레이 스테이션(10)으로부터 복귀된 입력 사건(input events)를 처리한다. 예를 들어, 그러한 입력 사건은 키보드에서 행해진 개개의 키스트로크(keystrokes)를 포함한다. 엔터 키와 같은 특정 키가 눌려지면, 제2데이타 관리자(74)는 디스플레이 데이타 관리자(66)로 복귀될 데이타 스트림을 발생한다.
이는 제2처리기(48)가 개별적으로 각각의 키스트로트를 처리하는데 관련되는 모든 네트워크 통신량(traffic)을 처리하여 입력 인터페이스가 종료될 때까지, 중앙 처리기(44)는 어떤 응용(60)의 실행도 수행하지 않는다는 것을 의미한다. 사용자 입력 사건 처리 응용(76)은 바람직하게는, 또한 제2데이타 관리자(74) 또는 응용(60)의 관심(attention)을 요하는 마우스 버튼 클릭(mouse button click)과 같은 시건이 발생할때까지 마우스 또는 다른 포인팅 디바이스로부터의 입력도 다룬다.
상술한 바와 같이, 어떤 툴 키트(78)는 원한다면 실제로 제2처리기(48)에서 실행되도록 구현할 수 있다.
이들 툴 키트(78)는 중앙 처리기(44)에서 실행되는 스터브에 의해 호출(invoke)될 수 있으며, 또는 제2처리기(48)에서 직접 실행되는 임의의 다른 응용 또는 제2데이타 관리자(74)에 의해 직접 호출될 수도 있다.
화상 압축, 스케일링(scaling), 및 화상 조작과 같은 화상 처리를 행하는 툴 키트(78)는 처리기에 대해 많은 작업을 요구하므로 제2처리기(48)에서 실행하기에 아주 적합하다.
전술한 바와 같이, 윈도우 관리자는 다중의 다른 클라이언트-응용들의 윈도우를 제어하는데 이용될 수 있는 특별한 클라이언트 응용이다. 윈도우 관리자의 실행은 처리기 집약적이다. 윈도우 관리자 클라이언트(80)는 제2처리기(48)에서 실행될 수 있어서, 윈도우 관리자를 실행해야 하는 모든 점에서 중앙 처리기(44)를 해방시킨다. 윈도우 관리자 클라이언트(80)는 X 윈도우 시스템내의 등록된 윈도우 관리자(a registered window manager)이며 X 서버(18)와 통신하기 위하여 Xlib(68)에 대한 절차 호출을 한다. 윈도우 관리자 클라이언트(80)의 실행은 처리기 집약적이기 때문에, 이러한 실행 전부를 제2처리기(48)에 넘겨주면 중앙 처리기(44)의 짐이 상당히 경감된다.
본 기술본야에서 숙련된 사람들이면 이해할 수 있듯이, 여러 소프트웨어 패키지의 기능은 종래 기술 시스템의 기능으로부터 크게 변형되지 않았다. Xlib는 동일한 라이브러리이며, 단지 다른 프로세서에서 실행할 뿐이다. Xlib 스터브(64)와 같은 스터브들의 이용은 본 기술분야에 숙련된 사람들에게는 일반적으로 공지되어 있다. 본 기술 분야에서 숙련된 사람들이라면 제4도에 구조가 도시되어 있는 소프트웨어 시스템의 나머지 부분은, 잘 알려져 있고 널리 이용가능한 소프트웨어를 상술된 구조에 적합시키므로써(adapt) 쉽게 구현할 수 있다. 이는, 전술한 시스템을 구현하기 위하여 다시 쓰여져야만 하는 코드의 분량이, (전술한 시스템의 실행에 의해) 성취될 수 있는 성능면의 큰 이득에 비교해 볼때 상대적으로 얼마되지 않음을(moderate) 의미한다.
X 윈도우 시스템의 세부사항들(details)에 대한 상당한 짐을 중앙 처리기(14)에서 제2처리기(48)로 넘기기 때문에, 중앙 처리기(44)는 많은 수의 X 윈도우 응용들을 지원할 수 있다. 이는 근거리 통신망(Local Area Network)을 통해 접속될 수 있는 많은 수의 X 디스플레이 스테이션들을 지원하기 위해, 컴퓨터 시스템(42)과 같은 하나의 시스템이 중심적으로(centrally) 이용될 수 있게 해준다. 이는 많은 수의 값비싼 워크스테이션들을 사용하는 것보다 비용을 절감시켜준다. 또한 AS/400과 같은 고용량의 중앙 머신(central machine)이 이미 이용가능하기 때문에, 기존의 네트워크에 X 디스플레이 스테이션들을 연결함으로써, X 응용들이 낮은 비용 증가만으로도 X 디스플레이 스테이션상에서 수행할 수 있다.
상술된 실시예는 중앙 처리기와 제2처리기 단일의 컴퓨터 시스템에 있으며 시스템 버스를 통해 통신된다고 가정하고 있다. 본 발명의 개념을 이용하는 대안적인 시스템 배열은 물리적으로 먼 곳에 있을 수도 있는, 중앙 처리기와는 별개의 기계에 위치해 있는 제2처리기를 제안하고 있다. 상기 두 처리기 사이의 전술한 기능적 분리로 인해 시스템 버스를 통해 전송되는 데이타 량이 비교적 최소량으로 된다는 것은 본 기술 분야에서 숙련된 사람들이면 알 수 있을 것이다. 이러한 결과는 원격지에 위치하고 고속 직렬 통신 링크에 의해 중앙 처리기에 접속되며 상술된 시스템과 거의 동일한 식으로 실행하는 제2처리기를 제공하는데 이용될 수 있다. 실제로, 중앙 처리기와 제2처리기는 그들의 동작을 링크하는 메세지 전달(message passing)과 병행적으로(concurrently) 동작하며, 메세지들이 시스템 버스를 거쳐 전달되는지 또는 직렬 링크를 거쳐 전달되는지는 문제되지 않는다.
이는 예를 들어 응용들은 중앙 메인프레임 컴퓨터(central mainframe computer)에서 실행되고 입/출력을 위한 X 디스플레이 단말들은 다른 도시(city)에 위치해 있는 시스템의 설계를 가능하게 해준다. 근거리 통신망을 통해 디스플레이 단말에 접속되어 있는 기계는 제2처리기를 포함할 수 있다. 제2처리기와 메인프레임 컴퓨터는 직렬 링크를 통해 통신할 수 있다. 중앙 처리기와 제2처리기 사이에 전송되는 데이터는 디스플레이 단말과 제2처리기 사이에 전송되는 데이타 보다도 통상적으로 상당히 적기 때문에, 전체적인 시스템 성능은 그렇게 나빠지지 않는다. 이는 X 응용들은 실행하는 시스템으로 하여금 다른 많은 원격지에 위치한 단말들을 구동시킬 수 있게 해주는데, 이는 종래의 시스템을 이용해서는 가능하지 않다.
본 발명의 여러 형태중 하나의 형태가 도시되었을지라도, 본 발명의 범위가 여기에 한정된다고 볼 수 없으며, 본 발명의 사상을 벗어나지 않고도 여러 변형 및 수정을 가할 수 있을 것이다.

Claims (16)

  1. 컴퓨터 시스템으로서, 그래픽 라이브러리로 절차 호출(procedure call)을 함으로써 입출력 기능들을 수행하는 응용 프로그램들과 같은 응용 프로그램들을 실행하기 위한 제1중앙 처리기와, 상기 제1중앙 처리기에 연결된 내부 컴퓨터 시스템 버스와, 상기 그래픽 라이브러리내에 포함되며 그래픽 단말들을 구동시키는 명령들을 발생하는 그래픽 절차들을 실행하기 위해 상기 내부 컴퓨터 시스템 버스에 연결되어 있는 제2중앙 처리기와, 그래픽 단말들을 구동하기 위한 상기 명령들은 수신하고 그에 응답하여 그래픽을 보여주기 위해 근거리 통신망에 연결되어 있는 최소한 하나의 그래픽 단말을 포함하며, 상기 응용 프로그램들로부터의 그래픽 라이브러리 절차 호출을 수신하고 이들을 상기 내부 컴퓨터 시스템 버스를 통해 전송하기 위해 제1인터페이스 절차(procedure)가 상기 제1중앙 처리상에서 실행되며, 상기 내부 컴퓨터 시스템 버스를 통하여 상기 제1절차로부터 상기 그래픽 라이브러리 절차 호출을 수신하고 상기 그래픽 라이브러리 절차를 호출(invoke)하기 위해 제2인터페이스 절차가 상기 제2중앙 처리기에서 실행되며, 상기 그래픽 절차로부터 그래픽 단말 구동을 위한 상기 명령들을 수신하고 이들을 상기 근거리 통신망을 통해 전송하기 위해 제3인터페이스 절차가 상기 제2중앙 처리기에서 실행되는 것을 특징으로 하는 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 그래픽 단말은 X 윈도우 시스템(X Window System) 클라이언트 응용을 실행하는 컴퓨터 시스템을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  3. 제2항에 있어서, 상기 그래픽 라이브러리는 Xlib를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  4. 컴퓨터 시스템상에서 실행되는 응용과 상기 컴퓨터 시스템에 근거리 통신망을 통해 연결된 그래픽 디스플레이 단말간의 입출력을 수행하는 방법에 있어서, 중앙 처리기에서 상기 응용을 실행하는 단계와, 그래픽 단말을 구동시킬 수 있는 형태가 아닌 출력을 상기 응용내에서 발생시키는 단계와, 상기 응용에 의해 출력이 발생되면 상기 출력을 상기 컴퓨터 시스템내의 별도의 디스플레이 제어기 처리기로 컴퓨터 시스템 버스를 통해 전송하는 단계와, 상기 발생된 출력을 그래픽 단말을 구동할 수 있는 형태로 번역(translate)하기 위한 그래픽 디스플레이 루틴(graphic display routine)을 상기 디스플레이 제어기 처리기상에서 실행하는 단계와, 상기 디스플레이 제어기 처리기로부터의 번역된 출력을 상기 근거러 통신망을 통하여 그래픽 단말로 디스플레이를 위해 전송하는 단계와, 상기 그래픽 단말에서 입력이 발생하면, 상기 발생된 입력을 상기 디스플레이 제어기 처리기로 상기 근거리 통신망을 통해 전송하는 단계와, 상기 발생된 입력을 상기 응용에 전송할 수 있는 형태로 상기 디스플레이 제어기 처리기상에서 번역하는 단계 및 상기 응용에 의한 사용을 위해, 상기 번역된 입력을 상기 중앙 처리기로 상기 컴퓨터 시스템 버스를 통해 전송하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템에서 실행되는 응용과 그래픽 디스플레이 단말간의 입출력 수행방법.
  5. 제4항에 있어서, 상기 단말은 X 윈도우 시스템 명령들에 응답하는 것을 특징으로 하는 컴퓨터 시스템에서 실행되는 응용과 그래픽 디스플레이 단말간의 입출력 수행 방법.
  6. 제5항에 있어서, 상기 두개의 번역 단계(translating step)는 상기 디스플레이 제어기 처리기상에서 Xlib 루틴들을 실행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템에서 실행되는 응용과 그래픽 디스플레이 단말간의 입출력 수행 방법.
  7. 제6항에 있어서, Xlib 절차들을 호출하는 부가적인 절차들을 상기 디스플레이 제어기 처리기에서 실행하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 시스템에서 실행되는 응용과 그래픽 디스플레이 단말간의 입출력 수행 방법.
  8. 제7항에 있어서, 상기의 부가적인 절차들이 화상 처리 루틴(image processing routine)을 포함하는 것을 특징으로 하는 컴퓨터 시스템에서 실행되는 응용과 그래픽 디스플레이 단말간의 입출력 수행 방법.
  9. 제6항에 있어서, 상기 그래픽 단말상에서, X 윈도우 시스템의 윈도우 관리자 클라이언트 응용(window manager client application)을 실행하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 시스템에서 실행되는 응용과 그래픽 디스플레이 단말간의 입출력 수행 방법.
  10. 제4항에 있어서, 적어도 하나의 입력 사건은 상기 중앙 처리기에 어떤 정보도 전송함이 없이 상기 디스플레이 제어기 처리기에서 완전히 처리되는 것을 특징으로 하는 컴퓨터 시스템에서 실행되는 응용과 그래픽 디스플레이 단말간의 입출력 수행 방법.
  11. 근거리 통신망을 통해 그래픽 단말을 제어하기 위한 처리 시스템에 있어서, 그래픽 단말들을 구동시킬 수 없는 출력을 발생하는 응용 프로그램을 실행하기 위한 상기 처리 시스템내의 중앙 처리기와, 상기 그래픽 단말을 구동시키기 위한 절차와 상기 응용 프로그램에 의해 발생된 출력을 그래픽 단말을 구동할 수 있는 형태로 번역하는 절차를 실행하는 상기 처리 시스템내의 2차적인 디스플레이 제어기 처리기와, 상기 중앙 처리기와 상기 디스플레이 제어기 처리기 사이에서 정보를 전송하기 위한 상기 처리 시스템내의 컴퓨터 시스템 버스와, 상기 디스플레이 제어기 처리기를 상기 통신망에 연결하기 위한 근거리 통신망 접속부(local area network attachment)를 포함하되, 상기 번역된 출력은 상기 근거리 통신망 접속을 통해 그래픽 단말에 전송되며, 상기 근거리 통신망 접속으로부터 수신된 입력은 상기 응용 프로그램에 의해 사용되기 위해 번역되는 것을 특징으로 하는 그래픽 단말 제어를 위한 처리 시스템.
  12. 제11항에 있어서, 적어도 하나의 입력 사건은 상기 중앙 처리기의 개입없이도 상기 제2디스플레이 제어기내에서 완전히 처리되는 것을 특징으로 하는 그래픽 단말 제어를 위한 처리 시스템.
  13. 제11항에 있어서, 상기 그래픽 단말들은 X 윈도우 시스템 명령들에 응답하는 것을 특징으로 하는 그래픽 단말 제어를 위한 처리 시스템.
  14. 제13항에 있어서, 상기 디스플레이 제어기 처리기상에서 실행되는 상기 절차들은 Xlib 절차들을 포함하는 것을 특징으로 하는 그래픽 단말 제어를 위한 처리 시스템.
  15. 제14항에 있어서, 상기 디스플레이 제어기 처리기에서 실행되는 상기 절차들은 Xlib 절차를 호출하는 그래픽 절차(graphic procedure)를 더 포함하는 것을 특징으로 하는 그래픽 단말 제어를 위한 처리 시스템.
  16. 제14항에 있어서, 상기 디스플레이 제어기 처리기에서 실행되는 상기 절차들은 X 윈도우 시스템의 윈도우 관리자 클라이언트 응용을 더 포함하는 것을 특징으로 하는 그래픽 단말 제어를 위한 처리 시스템.
KR1019920001251A 1991-02-28 1992-01-28 컴퓨터 시스템 및 이를 위한 그래픽 디스플레이를 제어하기 위한 시스템 및 방법 KR960013366B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US66209291A 1991-02-28 1991-02-28
US662,092 1991-02-28

Publications (2)

Publication Number Publication Date
KR920016971A KR920016971A (ko) 1992-09-25
KR960013366B1 true KR960013366B1 (ko) 1996-10-04

Family

ID=24656352

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920001251A KR960013366B1 (ko) 1991-02-28 1992-01-28 컴퓨터 시스템 및 이를 위한 그래픽 디스플레이를 제어하기 위한 시스템 및 방법

Country Status (8)

Country Link
US (1) US5485570A (ko)
EP (1) EP0501901A3 (ko)
JP (1) JPH0734188B2 (ko)
KR (1) KR960013366B1 (ko)
CN (1) CN1049058C (ko)
CA (1) CA2059926A1 (ko)
SG (1) SG42875A1 (ko)
TW (1) TW198107B (ko)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067379A (en) 1988-12-09 2000-05-23 Cognex Corporation Method and apparatus for locating patterns in an optical image
CA2097558C (en) * 1992-06-16 2001-08-21 William B. Kilgore Directly connected display of process control system in an open systems windows environment
US5835713A (en) * 1993-03-19 1998-11-10 Ncr Corporation Remote collaboration system for selectively locking the display at remote computers to prevent annotation of the display by users of the remote computers
US5649104A (en) * 1993-03-19 1997-07-15 Ncr Corporation System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers
US6317115B1 (en) 1993-12-09 2001-11-13 Canon Kabushiki Kaisha System, apparatus and method in which a high resolution image editor is connected to a host computer for processing low resolution image data
US6693635B1 (en) 1993-12-09 2004-02-17 Canon Kabushiki Kaisha System and method performing image processing of image data of low resolution and arranging image data of high resolution
US5867662A (en) * 1995-06-30 1999-02-02 Sun Microsystems, Inc. Communications driver subsystem for enabling a digital computer system to establish a communications session with a remote device over a selected one of a plurality of diverse communication media
US6026176A (en) 1995-07-25 2000-02-15 Cognex Corporation Machine vision methods and articles of manufacture for ball grid array inspection
US5918039A (en) * 1995-12-29 1999-06-29 Wyse Technology, Inc. Method and apparatus for display of windowing application programs on a terminal
US7720672B1 (en) 1995-12-29 2010-05-18 Wyse Technology Inc. Method and apparatus for display of windowing application programs on a terminal
US5872870A (en) 1996-02-16 1999-02-16 Cognex Corporation Machine vision methods for identifying extrema of objects in rotated reference frames
US5909504A (en) 1996-03-15 1999-06-01 Cognex Corporation Method of testing a machine vision inspection system
US6259827B1 (en) 1996-03-21 2001-07-10 Cognex Corporation Machine vision methods for enhancing the contrast between an object and its background using multiple on-axis images
US6298149B1 (en) 1996-03-21 2001-10-02 Cognex Corporation Semiconductor device image inspection with contrast enhancement
US5978502A (en) 1996-04-01 1999-11-02 Cognex Corporation Machine vision methods for determining characteristics of three-dimensional objects
US5938767A (en) * 1996-08-19 1999-08-17 Horn; Douglas Electronic information lockout system
CA2187239A1 (en) * 1996-10-07 1998-04-07 Rakesh Prasad Remote on-demand applications server
US6137893A (en) 1996-10-07 2000-10-24 Cognex Corporation Machine vision calibration targets and methods of determining their location and orientation in an image
US5960125A (en) 1996-11-21 1999-09-28 Cognex Corporation Nonfeedback-based machine vision method for determining a calibration relationship between a camera and a moveable object
US5953130A (en) 1997-01-06 1999-09-14 Cognex Corporation Machine vision methods and apparatus for machine vision illumination of an object
US6075881A (en) 1997-03-18 2000-06-13 Cognex Corporation Machine vision methods for identifying collinear sets of points from an image
US5974169A (en) 1997-03-20 1999-10-26 Cognex Corporation Machine vision methods for determining characteristics of an object using boundary points and bounding regions
US6662210B1 (en) 1997-03-31 2003-12-09 Ncr Corporation Method of remote collaboration system
US6141033A (en) 1997-05-15 2000-10-31 Cognex Corporation Bandwidth reduction of multichannel images for machine vision
US6608647B1 (en) 1997-06-24 2003-08-19 Cognex Corporation Methods and apparatus for charge coupled device image acquisition with independent integration and readout
US5978080A (en) 1997-09-25 1999-11-02 Cognex Corporation Machine vision methods using feedback to determine an orientation, pixel width and pixel height of a field of view
US6038616A (en) * 1997-12-15 2000-03-14 Int Labs, Inc. Computer system with remotely located interface where signals are encoded at the computer system, transferred through a 4-wire cable, and decoded at the interface
US6886055B2 (en) * 1997-12-15 2005-04-26 Clearcube Technology, Inc. Computer on a card with a remote human interface
US6025854A (en) 1997-12-31 2000-02-15 Cognex Corporation Method and apparatus for high speed image acquisition
US6012101A (en) * 1998-01-16 2000-01-04 Int Labs, Inc. Computer network having commonly located computing systems
US6236769B1 (en) 1998-01-28 2001-05-22 Cognex Corporation Machine vision systems and methods for morphological transformation of an image with zero or other uniform offsets
US6282328B1 (en) 1998-01-28 2001-08-28 Cognex Corporation Machine vision systems and methods for morphological transformation of an image with non-uniform offsets
US6381375B1 (en) 1998-02-20 2002-04-30 Cognex Corporation Methods and apparatus for generating a projection of an image
US6215915B1 (en) 1998-02-20 2001-04-10 Cognex Corporation Image processing methods and apparatus for separable, general affine transformation of an image
US6119146A (en) * 1998-05-04 2000-09-12 Int Labs, Inc. Computer network having multiple remotely located human interfaces sharing a common computing system
US6381366B1 (en) 1998-12-18 2002-04-30 Cognex Corporation Machine vision methods and system for boundary point-based comparison of patterns and images
US6687402B1 (en) 1998-12-18 2004-02-03 Cognex Corporation Machine vision methods and systems for boundary feature comparison of patterns and images
SE521526C2 (sv) 1999-06-24 2003-11-11 Johan Ullman Ergonomiskt pekdon för dator
US6684402B1 (en) 1999-12-01 2004-01-27 Cognex Technology And Investment Corporation Control methods and apparatus for coupling multiple image acquisition devices to a digital data processor
US6748104B1 (en) 2000-03-24 2004-06-08 Cognex Corporation Methods and apparatus for machine vision inspection using single and multiple templates or patterns
US7274368B1 (en) 2000-07-31 2007-09-25 Silicon Graphics, Inc. System method and computer program product for remote graphics processing
US6863680B2 (en) * 2001-11-08 2005-03-08 Sub-Q, Inc. System and method for delivering hemostasis promoting material to a blood vessel puncture site by fluid pressure
DK1331556T3 (da) * 2001-06-08 2009-12-07 Real Entpr Solutions Dev Bv Serverbaseret computermiljö
US20030079919A1 (en) * 2001-10-31 2003-05-01 Hochmuth Roland M. System and method for displaying an image on a network attachable display device
US7589737B2 (en) * 2001-10-31 2009-09-15 Hewlett-Packard Development Company, L.P. System and method for communicating graphics image data over a communication network
US6933943B2 (en) * 2002-02-27 2005-08-23 Hewlett-Packard Development Company, L.P. Distributed resource architecture and system
US6909432B2 (en) * 2002-02-27 2005-06-21 Hewlett-Packard Development Company, L.P. Centralized scalable resource architecture and system
US20030191859A1 (en) * 2002-04-05 2003-10-09 Ramsey Paul R. Fast remote display of images using compressed XPutImage
EP1508851A1 (de) * 2003-08-18 2005-02-23 Siemens Aktiengesellschaft Adhoc-Bildschirmassemblierung mit virtuellen Netz
US20050188425A1 (en) * 2004-02-19 2005-08-25 Douglas Horn Electronic information lockout system
JP4220979B2 (ja) * 2005-04-01 2009-02-04 ファナック株式会社 制御装置の表示システム
JP4741908B2 (ja) * 2005-09-08 2011-08-10 キヤノン株式会社 情報処理装置及び情報処理方法
CN100337190C (zh) * 2005-09-22 2007-09-12 北京网梯科技发展有限公司 在远端计算机上将本地计算机显示内容显示回放的方法
US8111904B2 (en) * 2005-10-07 2012-02-07 Cognex Technology And Investment Corp. Methods and apparatus for practical 3D vision system
US8004530B2 (en) * 2005-10-28 2011-08-23 Hewlett-Packard Development Company, L.P. Video controller switching system and method
US8162584B2 (en) * 2006-08-23 2012-04-24 Cognex Corporation Method and apparatus for semiconductor wafer alignment
US20090033669A1 (en) * 2008-10-06 2009-02-05 Hochmuth Roland M System And Method For Communicating Graphics Image Data Over A Communication Network
CN108009977B (zh) * 2017-11-10 2021-06-29 上海华元创信软件有限公司 多线程环境下支持多个远程图形终端的方法及系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4204521A (en) * 1976-01-14 1980-05-27 Solarspan, Inc. Solar energy tracking collector
US4204206A (en) * 1977-08-30 1980-05-20 Harris Corporation Video display system
JPS58176767A (ja) * 1982-04-09 1983-10-17 Hitachi Ltd 端末制御装置
JPS5917628A (ja) * 1982-07-20 1984-01-28 Hitachi Ltd 端末操作代行制御方法
JPS5971562A (ja) * 1982-10-18 1984-04-23 Hitachi Ltd 時分割計算機システムの制御方式
US4641262A (en) * 1983-03-07 1987-02-03 International Business Machines Corporation Personal computer attachment for host system display station
US4665501A (en) * 1983-09-30 1987-05-12 Esprit Systems, Inc. Workstation for local and remote data processing
US4851994A (en) * 1984-08-03 1989-07-25 Sharp Kabushiki Kaisha Data I/O terminal equipment having mode setting functions for downloading various specified application programs from a host computer
JPS6175921A (ja) * 1984-09-21 1986-04-18 Nec Corp 端末制御方式
JPS61125665A (ja) * 1984-11-19 1986-06-13 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 直列データ・リンクと入出力端末装置をインターフェースするアダプタ
JPS61133454A (ja) * 1984-12-03 1986-06-20 Hitachi Ltd 端末制御方式
US4733351A (en) * 1984-12-31 1988-03-22 Wang Laboratories, Inc. Terminal protocols
US4724521A (en) * 1986-01-14 1988-02-09 Veri-Fone, Inc. Method for operating a local terminal to execute a downloaded application program
US4901223A (en) * 1986-04-30 1990-02-13 International Business Machines Corporation Method and apparatus for application software control of echo response
GB2191612A (en) * 1986-06-11 1987-12-16 Ibm Display terminal
US4791566A (en) * 1987-03-27 1988-12-13 Digital Equipment Corporation Terminal device session management protocol
US4949254A (en) * 1988-09-29 1990-08-14 Ibm Corp. Method to manage concurrent execution of a distributed application program by a host computer and a large plurality of intelligent work stations on an SNA network
CA2039027C (en) * 1990-05-22 1998-07-07 Stephen Troy Eagen Method and apparatus for assisting in the presentation and removal of windows
AU8321291A (en) * 1990-07-10 1992-02-04 Athenix Corporation Workgroup controller architecture for multiple display stations to be used with x windows

Also Published As

Publication number Publication date
EP0501901A2 (en) 1992-09-02
CN1064559A (zh) 1992-09-16
EP0501901A3 (en) 1993-06-16
CN1049058C (zh) 2000-02-02
TW198107B (ko) 1993-01-11
JPH0535623A (ja) 1993-02-12
KR920016971A (ko) 1992-09-25
JPH0734188B2 (ja) 1995-04-12
CA2059926A1 (en) 1992-08-29
US5485570A (en) 1996-01-16
SG42875A1 (en) 1997-10-17

Similar Documents

Publication Publication Date Title
KR960013366B1 (ko) 컴퓨터 시스템 및 이를 위한 그래픽 디스플레이를 제어하기 위한 시스템 및 방법
US6519605B1 (en) Run-time translation of legacy emulator high level language application programming interface (EHLLAPI) calls to object-based calls
CA1300752C (en) Console emulation for a graphics workstation
US6256659B1 (en) System and method for performing hybrid preemptive and cooperative multi-tasking in a computer system
US5337412A (en) Method and apparatus for substituting real and virtual devices independent from an data processing system application program
JP3251800B2 (ja) ネットワーク内のコンピュータ間でデータを交換するための通信システム
US5757925A (en) Secure platform independent cross-platform remote execution computer system and method
US5774720A (en) Personality neutral graphics subsystem
US6434598B1 (en) Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US6038590A (en) Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US6266709B1 (en) Object-oriented system, method and article of manufacture for a client-server failure reporting process
US5767849A (en) Personality neutral window management subsystem
US6253282B1 (en) Object-oriented system, method and article of manufacture for a client-server with a client program cache
JPH0628080A (ja) コンピュータシステム及びそれを動作させる方法
KR20020084140A (ko) 프로그래밍 가능한 제어기에 대한 웹 인터페이스
EP0726519B1 (en) Operating system based remote communication system
EP0644483B1 (en) Computer system and method for performing multiple tasks
US5321808A (en) Dual process display server
US20040049530A1 (en) Distributed computer system using a graphical user interface toolkit
US6233620B1 (en) Object-oriented system, method and article of manufacture for a presentation engine in an interprise computing framework system
US20030182469A1 (en) Distributed computer system using a graphical user interface toolkit
US20010011215A1 (en) Network device simulation system and method
WO2023221822A1 (zh) 数据处理方法、电子设备和可读存储介质
KR101316677B1 (ko) 사용자 인터페이스 가상화에 의한 어플리케이션 서비스 시스템 및 방법
US5925096A (en) Method and apparatus for localized preemption in an otherwise synchronous, non-preemptive computing environment

Legal Events

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

Payment date: 20060929

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee