KR19990059515A - Console server method and device on OS - Google Patents
Console server method and device on OS Download PDFInfo
- Publication number
- KR19990059515A KR19990059515A KR1019970079723A KR19970079723A KR19990059515A KR 19990059515 A KR19990059515 A KR 19990059515A KR 1019970079723 A KR1019970079723 A KR 1019970079723A KR 19970079723 A KR19970079723 A KR 19970079723A KR 19990059515 A KR19990059515 A KR 19990059515A
- Authority
- KR
- South Korea
- Prior art keywords
- service
- console
- application program
- application
- console server
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
Abstract
본 발명은 메시지 전달 메카니즘을 기반으로 하는 최소화된 운영체제 커널상에서의 콘솔 서버를 제공하도록 한 운영체제 상에서의 콘솔 서버 방법 및 장치에 관한 것이다.The present invention is directed to a method and apparatus for a console server on an operating system for providing a console server on a minimized operating system kernel based on a message delivery mechanism.
본 발명은 수신 포트를 식별하고 콘솔을 초기화하여 임의의 응용 프로그램이 포트를 통해 메시지를 수신함에 따라 수신된 메시지에 명시된 서비스의 종류에 따라 해당 작업을 수행한다.The present invention identifies the receiving port and initializes the console to perform the corresponding operation according to the type of service specified in the received message as any application receives the message through the port.
본 발명의 운영체제 상에서의 콘솔 서버 방법 및 장치는 메시지 교환을 기반으로 하는 최소화된 운영체제 커널 상에서 콘솔 서비스를 제공하여 단순한 구조로 시스템이 구현됨은 물론 적어도 하나 이상의 응용 프로그램이 콘솔 서비스를 이용할 때 일관성을 유지할 수 있다.The console server method and apparatus on the operating system of the present invention provide a console service on a minimized operating system kernel based on message exchange, so that the system can be implemented in a simple structure and maintain consistency when at least one application uses the console service. Can be.
Description
본 발명은 시스템 운영체제에 관한 것으로, 특히 메시지 전달 메카니즘을 기반으로 하는 최소화된 운영체제 커널 상에서의 콘솔서버를 제공하도록 한 운영체제상에서의 콘솔 서버 방법 및 장치에 관한 것이다.The present invention relates to a system operating system, and more particularly, to a method and apparatus for a console server on an operating system for providing a console server on a minimized operating system kernel based on a message delivery mechanism.
통상, 일반적으로 많이 이용되고 있는 상용화된 운영체제 커널의 기능을 보면 기본적으로 필요한 메모리 관리, 태스크 관리, 파일 관리, 네트웍 관리 등 모든 시스템 서비스 영역을 담당하고 있다. 이처럼 모든 시스템 서비스 기능을 커널 영역 안에서 관리함으로써 전체적인 구조가 매우 복잡할 뿐만 아니라 커널 기능을 추가, 확장, 유지 보수하는데 많은 시간과 노력이 필요하게 된다. 이와 같은 기존 커널의 문제점을 극복하고자 제시된 커널은 기능면에서 볼 때, 기본적으로 커널영역에 포함되어야하는 태스크 관리와 태스크간의 통신 등의 기능만을 갖고 기존 커널 내에서 서비스되던 대부분의 다른 기능들은 일반 사용자 수준의 태스크(서버)가 제공하는 구조를 갖는 최소화된 운영체제 커널로 이루어진다. 이 최소화된 운영체제 커널은 매우 간단한 구조를 갖게 됨과 아울러 기존 커널에서 제공하던 시스템 서비스들을 일반 태스크와 동일한 수준의 여러 서버를 통해 제공하도록 설계되어 있기 때문에 모듈화가 잘 구성되어 있고 변화되는 주변환경의 조건에 유연하게 대처할 수 있는 장점을 갖게 된다. 이러한 최소화된 커널에서 일반적인 시스템 서비스가 처리되는 과정은 다음과 같다. 먼저 클라이언트(Client)가 필요한 서비스 요철을 커널에서 제공하는 통신 프리미티브(primitives)인 센드(send)를 이용하여 적절한 메시지에 실어서 서버에게 전달한다. 커널은 메시지를 서버와 연관된 포트에 전달한다. 서버는 자신의 메세지 포트에 처리할 메시지가 도착할 때까지 기다리다가 메시지를 전달받으며 메시지의 내용에 따른 시스템 서비스를 제공하고 서비스 처리 결과를 리플라이(Reply)를 통해서 클라이언트에게 보내어 처리를 끝낸다.In general, the functions of a commercially available operating system kernel are generally in charge of all system service areas such as memory management, task management, file management, and network management. By managing all system service functions in the kernel area, not only is the overall structure very complicated, but it also takes a lot of time and effort to add, extend, and maintain kernel functions. The kernel presented to overcome the problems of the existing kernel has a function such as task management and communication between tasks that basically should be included in the kernel area. It consists of a minimized operating system kernel with a structure provided by a level task (server). This minimized operating system kernel has a very simple structure and is designed to provide system services provided by the existing kernel through multiple servers at the same level as general tasks. You have the advantage of being flexible. The general system services are processed in this minimized kernel as follows. First, the client sends the necessary service irregularities to the server by sending them to the appropriate message using send, which is communication primitives provided by the kernel. The kernel forwards the message to the port associated with the server. The server waits until the message arrives at its message port, receives the message, provides the system service according to the contents of the message, and sends the result of the service processing to the client through reply to complete the processing.
메시지 전달을 기본으로 한 최소화된 운영체제 커널은 포트를 메시지 전달의 장소로 이용한다. 특히, 포트는 서버와 연관되는 구조로 포트를 이용한 커널의 메시지 전달 서비스는 크게 센드(Send), 리시브(Receive) 및 리플라이(Reply)의 세가지 프리미티브(Primitive)를 제공하게 된다. 클라이언트가 원하는 시스템 서비스를 요구하면 라이브러리 함수는 이를 메시지화하고 커널 서비스인 센드를 호출하여 서버의 포트에 메시지를 전달하게 된다. 클라이언트는 서버로부터 시스템 서비스 처리가 완료되었음을 알리는 리플라이 메시지를 받아야만 비로서 다음 처리를 계속할 수 있게 된다. 서버는 포트에 서비스 요철을 포함하는 메시지가 도착하는 것을 기다리다가 메시지가 도착하면 깨어나 클라이언트로부터 요구된 시스템 서비스를 처리하고 클라이언트의 재개를 허락하는 리플라이 메세지를 보낸후, 다음 메시지 처리를 계속한다. 위와 같은 처리는 기존의 응용 프로그램(Client)과 커널(Server)의 두 단계 구조를 응용 프로그램(Client), 최소화된 커널 및 시스템 서버의 구조로 나누어 기존의 커널이 담당했던 여러 관리를 시스템 서버들로 나눔으로써 기존 커널의 시스템 서비스들을 기능에 맞게 분리, 관리하여 변화하는 환경에 맞게 새로운 시스템 서비스를 서버의 형태로 추가하거나 불필요한 서비스들을 삭제하는 등의 처리를 탄력적으로 처리할 수 있어 시스템 서비스의 확장, 유지, 보수에 드는 노력을 줄일 수 있는 장점이 있다.The minimized operating system kernel, based on message passing, uses the port as the place for message passing. In particular, a port is associated with a server, and a message delivery service of a kernel using a port provides three primitives, Send, Receive, and Reply. When a client requests a desired system service, the library function will message it and call the kernel service send to send a message to the server's port. The client must receive a reply message from the server indicating that the system service processing is complete before the next processing can continue. The server waits for a message containing service irregularities on the port, wakes up when the message arrives, processes the requested system service from the client, sends a reply message to allow the client to resume, and then continues processing the next message. The above process divides the two-stage structure of the existing application (Client) and the kernel (Server) into the structure of the application (Client), the minimized kernel, and the system server. By dividing, the system services of the existing kernel can be separated and managed according to their functions so that new system services can be added in the form of a server or the unnecessary services can be removed to suit the changing environment. This has the advantage of reducing maintenance and repair efforts.
따라서, 본 발명의 목적은 메시지 교환을 기반으로 하는 최소화된 운영체제 커널 상에서 콘솔 서비스를 제공하여 단순한 구조로 시스템이 구현됨은 물론 적어도 하나 이상의 응용 프로그램이 콘솔 서비스를 이용할 때 일관성을 유지하도록 한 운영체제 상에서의 콘솔 서버 방법 및 서버장치를 제공하는데 있다.Accordingly, an object of the present invention is to provide a console service on a minimized operating system kernel based on message exchange, so that the system can be implemented in a simple structure and maintain consistency when at least one application uses the console service. It is to provide a console server method and a server device.
도 1은 본 발명의 실시예에 따른 운영체제 상에서의 콘솔 서버 방법의 처리 수순을 단계적으로 나타내는 흐름도.1 is a flow chart showing step by step the processing procedure of the console server method on the operating system according to an embodiment of the present invention.
도 2는 도 1에서 응용 프로그램이 키보드로부터 문자를 전송 받고자 하는 경우 그에 따른 처리 수순을 단계적으로 나타내는 흐름도.FIG. 2 is a flowchart illustrating a processing procedure according to FIG. 1 when an application program receives a character from a keyboard.
도 3은 도 1에서 응용 프로그램이 스크린의 제어에 관한 서비스를 요청한 경우 그에 따른 처리 수순을 단계적으로 나타내는 흐름도.FIG. 3 is a flowchart illustrating a processing procedure according to an application when requesting a service relating to control of a screen in FIG. 1; FIG.
도 4는 도 1에서 응용 프로그램이 티티와이(tty) 구조의 제어에 관한 서비스를 요청한 경우 그에 따른 처리 수순을 단계적으로 나타내는 흐름도.FIG. 4 is a flowchart illustrating a processing procedure according to an application when requesting a service regarding control of a tty structure in FIG. 1; FIG.
도 5는 도 1에서 응용 프로그램이 커서의 제어에 관한 서비스를 요청한 경우 그에 따른 처리 수순을 단계적으로 나타내는 흐름도.FIG. 5 is a flowchart illustrating a processing procedure according to an application program requesting a service related to control of a cursor in FIG.
도 6은 도 1에서 응용 프로그램이 키보드 관련 인터럽트 관련 서비스를 요청한 경우 그에 따른 처리 수순을 단계적으로 나타내는 흐름도.6 is a flowchart illustrating a processing procedure according to an application program requesting a keyboard-related interrupt-related service in FIG.
도 7은 본 발명의 실시예에 따른 운영체제 상에서의 콘솔 서버장치를 나타내는 도면.7 illustrates a console server device on an operating system according to an embodiment of the present invention.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
104 : 운영체제 커널106 : 응용 프로그램104: operating system kernel 106: application
108 : 콘솔 서버110 : 서비스 라이브러리108: console server 110: service library
상기 목적을 달성하기 위하여, 본 발명의 운영체제 상에서의 콘솔 서버 방법은 수신 포트를 식별하고 콘솔을 초기화하는 제1단계와, 임의의 응용 프로그램으로부터 상기 포트를 통해 메시지를 수신하는 제2단계와, 수신된 메세지에 명시된 서비스의 종류에 따라 해당 작업을 수행하는 제3단계를 포함한다.In order to achieve the above object, the console server method on the operating system of the present invention includes a first step of identifying a receiving port and initializing the console, a second step of receiving a message through the port from any application, and receiving And a third step of performing the operation according to the type of service specified in the message.
본 발명의 운영체제 상에서의 콘솔 서버 장치는 메시지 전달을 기반으로 하는 최소화된 운영체제 커널과, 적어도 하나 이상의 응용 프로그램이 포트로 공유하고 최소화된 운영체제 커널과 접속되어 콘솔과 관련된 모든 처리를 수행하는 콘솔 서버를 구비한다.The console server device in the operating system of the present invention comprises a minimized operating system kernel based on message delivery, and a console server which is connected to the minimized operating system kernel shared by at least one or more applications by a port and performs all processing related to the console. Equipped.
상기 목적 외에 본 발명의 다른 목적 및 잇점들은 첨부한 도면을 참조한 실시예에 대한 설명을 통하여 명백하게 드러나게 될 것이다.Other objects and advantages of the present invention in addition to the above object will be apparent from the description of the embodiments with reference to the accompanying drawings.
이하, 본 발명의 실시예들을 첨부한 도 1 내지 도 7을 참조하여 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to FIGS. 1 to 7.
도 1은 본 발명의 실시예에 따른 운영체제 상에서의 콘솔 서버 방법의 처리 수순을 단계적으로 나타내는 흐름도를 나타낸다.1 is a flowchart showing step by step a processing procedure of a console server method on an operating system according to an embodiment of the present invention.
본 발명에서는 콘솔 서버(Console Server)를 커널 서비스들을 이용하여 구성된 하나의 서버로서 여러 응용 프로그램들이 입력과 출력장치로 사용하는 콘솔(키보드, 스크린)을 관리하게 된다.In the present invention, a console server (Console Server) is a server configured by using kernel services to manage a console (keyboard, screen) used by various application programs as input and output devices.
이를 본 발명의 바람직한 실시예를 통해 단계적으로 설명하면, 클라이언트가 콘솔 서비스를 요구하게 되어 콘솔 서버가 구동되면, 키보드 버퍼 초기화등 내부적인 자료구조를 초기화한 후, 콘솔 서버는 메시지를 수신할 포트를 식별하고(제2 및 제4단계) 그 포트로 전송될 메시지를 수신하게 된다. 포트에 새로운 메시지가 도착하면(제6단계) 콘솔 서버는 수신된 메시지에 명시된 시스템 서비스의 종류에 따라 적절한 작업을 수행하게 된다. (제8 내지 제26단계) 응용 프로그램이 적절하지 않은 서비스를 요청하는 경우, 콘솔 서버는 오류처리 함수를 호출하여 실행시키고(제28단계) 제6단계를 재수행하여 포트로부터 메시지 수신을 대기하게 된다.If this is explained step by step through the preferred embodiment of the present invention, when the client requests the console service and the console server is started, after initializing internal data structures such as keyboard buffer initialization, the console server selects a port to receive a message. Identify (second and fourth steps) and receive a message to be sent to that port. When a new message arrives on the port (step 6), the console server performs the appropriate action based on the type of system service specified in the received message. If the application requests an inappropriate service (steps 8 to 26), the console server calls and executes an error handling function (step 28), and executes step 6 again to wait for a message from the port. .
이를 단계적으로 설명하면, 응용 프로그램이 시스템 서비스 라이브러리에 정의된 "getchar()" 등의 키보드로부터 문자를 전송 받고자하는 함수를 호출하면(제8단계 및 제10단계) 라이브러리는 필요한 파라미터 정보를 메시지에 실어 콘솔 포트에 전송한다. 제10단계의 상세 수순을 흐름도로 도시한 도 2를 참조하면, 이 메시지를 받은 콘솔 서버는 키보드 버퍼에 미리 눌려진(키 입력이 수행된) 문자들이 있는지를 확인하고(제30단계) 키보드 버퍼에 입력된 문자가 없다면 키 인터럽트를 대기하여 입력되는 문자를 수신하게 된다. (제32단계) 키 인터럽트가 발생하여 키보드 버퍼에 문자가 기록되면 응용 프로그램이 요청한 개 수 만큼의 문자를 읽어 지정된 주소에 복사하게 된다. (제34단계) 그리고 서비스를 요청한 실시간 응용 프로그램에게 메시지를 전송하게 된다. (제36단계)In step-by-step description, when an application calls a function that wants to receive characters from the keyboard, such as "getchar ()" defined in the system service library (steps 8 and 10), the library sends the necessary parameter information to the message. Send it to the console port. Referring to FIG. 2, which shows the detailed procedure of the tenth step in a flow chart, the console server receiving the message checks whether there are characters that have been pressed in the keyboard buffer (key input has been performed) (step 30) and enters the keyboard buffer. If no character is entered, it waits for a key interrupt to receive the typed character. (Step 32) When a key interrupt occurs and characters are written to the keyboard buffer, the application program reads as many characters as requested and copies them to the specified address. In step 34, a message is sent to the real-time application that requested the service. (Step 36)
도 1에서, 수신된 메세지에 명시된 시스템 서비스의 종류가 응용 프로그램이 커서 위치 지정이나 문자 색깔 지정 또는 출력시키고자하는 문자열을 스프린에 메시지로 보냈을 때, 그에 따른 스크린 기록 요청 처리함수를 호출하게 되면(제12단계 및 제14단계) 도 3의 흐름도에 따른 수순을 밝게 된다. 먼저, 이 메시지를 받은 콘솔 서버는 요청된 커서 좌표와 색깔이 "지정된 쓰기인가?"를 판별하게 된다. (제38단계) 여기서, 지정된 쓰기로 판단되면 커서 지정 함수 또는 색깔지정 함수를 호출하게 된다. (제40단계) 제38단계에서 지정된 쓰기가 아닌 경우 또는 제40단계를 수행하고 메시지에 포함된 문자열을 현재의 커서 위치와 색깔로 스크린에 쓰게 된다. (제42단계) 콘솔서버는 서비스를 요청한 응용 프로그램에게 서비스가 완료되었음을 알리는 리플라이(Reply) 메시지를 전송하게 된다. (제44단계)In Fig. 1, the type of system service specified in the received message causes the application to call the screen recording request processing function accordingly when the application sends a cursor to a character string or a character string to be printed to Spring. (12th and 14th steps), the procedure according to the flowchart of FIG. 3 is brightened. First, the console server receives this message and determines the requested cursor coordinates and color "is the specified write?" (Step 38) Here, if it is determined that the designated write is made, the cursor designating function or the color designating function is called. In step 40, if the writing is not specified in step 38 or step 40, the character string included in the message is written on the screen using the current cursor position and color. In step 42, the console server sends a reply message to the application requesting the service indicating that the service is completed. (Step 44)
도 4는 도 1에서 응용 프로그램이 티티와이(tty) 구조의 값을 읽거나 원하는 값으로 설정하기 위한 메시지를 콘솔 서버에 보내는 경우, 그에 따른 tty 입출력 제어요청 처리 함수를 호출(제16단계 및 제18단계)하여 실행시키는 수순을 나타낸다. 먼저 콘솔 서버는 자신이 처리하는 알고리즘으로 메시지의 내용을 보고, 일기나 쓰기 처리로 분기한다. 읽기로 분기하는 경우, 응용 프로그램이 요청한 서비스가 tty 구조를 읽기 위한 요청인가를 판별하고(제46단계) 응용 프로그램이 tty 구조를 일기 원한다면 현재의 tty 상태를 메시지가 지정한 주소로 복사하고(제48단계) 그렇지 않은 경우 메시지가 지정한 주소의 tty 값을 현재의 tty 값에 복사하여(제50단계) 현재 설정되어 있는 tty 구조체의 값을 메시지의 형식에 맞게 서비스를 요청한 응용 프로그램에 전송하게 된다. (제52단계)FIG. 4 illustrates a method for calling a tty input / output control request processing function according to FIG. 1 when an application sends a message to a console server to read or set a value of a tty structure to a desired value. Step 18) shows the procedure to execute. First, the console server sees the contents of the message using its own algorithm and branches to diary or write processing. If branching to read, the application determines whether the requested service is a request to read the tty structure (step 46), and if the application wants to read the tty structure, it copies the current tty state to the address specified by the message (step 48). Step) Otherwise, the tty value of the address specified by the message is copied to the current tty value (step 50), and the value of the currently set tty structure is transmitted to the application requesting service according to the message format. (Step 52)
도 5는 도 1에서 응용 프로그램이 콘솔 서버에게 커서에 관한 처리를 요청했을 때, 커서 제어요청 처리함수를 호출하여(제20 및 제22단계) 이를 처리하는 수순을 나타낸다. 응용프로그램이 커서에 관한 읽기와 관계된 요청을 콘솔 서버에 요청하게 되면(제54단계) 처리하는 대상에 따라 커서의 (x, y) 좌표 값, 문자의 속성 값, 문자의 색깔, 문자의 배경 색깔로 나누어 연산의 종류에 따라 커서 관련 값을 설정하거나(제56 내지 제70단계) 현재의 값을 읽는 분류(제72 내지 제86단계)로 수행된다. 제56 내지 제86단계의 수행을 마치고 콘솔 서버는 오류처리 함수로 호출하여 실행시킨 후, (제88단계) 커서 관련 값의 설정 결과를 응용 프로그램에 전송하고(제90단계) 또한, 커서 관련 값을 읽고 그 내용을 응용 프로그램에 전송하게 된다.FIG. 5 illustrates a procedure of processing a cursor control request processing function (steps 20 and 22) when an application program requests a console server to process a cursor in FIG. 1. When an application makes a request to the console server for a read related to a cursor (step 54), the cursor's (x, y) coordinate value, character's attribute value, character's color, and background's color depending on what is being processed. By dividing by, the cursor-related value is set according to the type of operation (steps 56 to 70) or the classification (steps 72 to 86) of reading the current value is performed. After the execution of steps 56 to 86, the console server calls and executes the error processing function and executes (step 88), and transmits the result of setting the cursor related value to the application (step 90). Read it and send it to the application.
도 4와 도 5는 동일한 수순을 갖게 되지만, 도 4에서 처리하는 대상은 tty 구조이고 도 5에서 처리하는 대상은 커서라는 차이점이 있다.Although FIG. 4 and FIG. 5 have the same procedure, the object of FIG. 4 is a tty structure and the object of FIG. 5 is a cursor.
도 6은 도 1에서 응용 프로그램이 콘솔 서버에게 스크린과 함께 다루는 키보드 관련 인터럽트 처리를 요청하여(제24단계) 그와 관련된 서브함수(키보드 인터럽트 요청 처리함수)를 호출하여 실행시키는(제26단계) 알고리즘의 처리수순을 단계적으로 나타내는 흐름도를 도시한 것이다.FIG. 6 shows an application requesting a console server to process a keyboard-related interrupt handled with a screen (step 24) in FIG. 1 and executing a sub-function (keyboard interrupt request processing function) associated with it (step 26). A flowchart showing step by step the processing procedure of the algorithm is shown.
키보드로부터 입력을 받은 키 값이 만약 특수한 처리를 해야 하는 경우라면(제92단계) 각각의 서브루틴을 호출한다. 입력된 키가 가능키라면(제94단계) 기능키 처리 함수를 호출하여 실행시킨다. (제96단계) 제92단계에서 일반 응용 프로그램이 입력받기를 기다리는 문자인 경우이고 키 값을 요구한 응용 프로그램이 존재하면 키보드 인터럽트 즉시 받은 키 값을 ASCII 값으로 변환시켜 기다리고 있던 응용 프로그램에게 전송한다. (제100단계) 만약, 키보드가 눌린 시점에 이 것을 기다리면서 잠든 응용 프로그램이 없을 경우는 키보드 버퍼에 삽입하는 서브 함수를 호출하여 키 값을 콘솔 서버가 유지하는 키보드 버퍼에 잠시 보관하였다가 필요한 요구가 들어오게 되면 키보드 버퍼에서 읽어 내어 응용 프로그램에 전송하게 된다. (제102단계)If the key value received from the keyboard requires special processing (step 92), each subroutine is called. If the input key is a possible key (step 94), the function key processing function is called and executed. (Step 96) If the general application program is a character waiting for input in step 92, and if an application program requesting a key value exists, the keyboard value immediately received from the keyboard interrupt is converted into an ASCII value and transmitted to the waiting application program. . (Step 100) If there is no application sleeping while waiting for this when the keyboard is pressed, call the sub-function that inserts into the keyboard buffer and store the key value in the keyboard buffer maintained by the console server for a while. Comes in, reads it from the keyboard buffer and sends it to the application. (Step 102)
콘솔 서버 처리는 크게 두 가지로 분류할 수 있다. 그 하나는 각각의 서비스 요청을 하나씩 처리하는 방법이고 다른 하나는 위에서 열거한 여러 서비스를 하나의 메시지에 묶어 모두를 한 번의 요청으로 처리하는 방법이다. 이렇게 하면, 트랜잭션(Transaction)처럼 여러 서비스가 마치 하나의 서비스인 것처럼 처리되어 콘솔 서비스들을 잠금장치로 묶어 처리할 수 있게 된다.Console server processing can be divided into two categories. One is to process each service request one by one, and the other is to bundle the various services listed above into one message and process them all in one request. This allows multiple services to be treated as if they were a single service, such as a transaction, so that the console services could be locked and handled.
도 7은 본 발명의 실시예에 따른 운영체제 상에서의 콘솔 서버장치에서 콘솔에 관계된 서비스를 하나의 서비스인 것처럼 처리하는 트랜잭션을 콘솔서버에 보내고 이를 처리하는 고정을 개략적으로 나타내는 도면을 도시한 것이다.FIG. 7 is a diagram schematically illustrating a fixation of sending a transaction for processing a service related to a console to a console server in a console server device on an operating system according to an embodiment of the present invention to the console server and processing the transaction.
본 발명에 따른 운영체제 상에서의 콘솔 서버장치는 메시지 전달을 기반으로 하는 최소화된 운영체제 커널(104)과, 적어도 하나 이상의 응용 프로그램이 포트로 공유하고 최소화된 운영체제 커널(104)과 접속되어 콘솔과 관련된 모든 처리를 수행하는 콘솔 서버(108)로 이루어진다.The console server device in the operating system according to the present invention is connected to the minimized operating system kernel 104 based on message delivery, and at least one or more applications are connected to the port and shared with the minimized operating system kernel 104, all associated with the console It consists of a console server 108 that performs the processing.
콘솔 서버(108)는 기존의 커널 내부에서 처리하던 콘솔 처리만을 일괄적으로 처리할 수 있도록 서버의 구조를 갖게 된다. 동작을 살펴보면 되면, 응용 프로그램(106) 중 "A"라는 응용 프로그램이 시스템 서비스 라이브러리 내에 정의된 문자열 출력함수 "display_string()"의 서브루틴을 호출하게 되면 서비스 라이브러리(110)는 해당 버퍼에 저장된 좌표 값, 문자의 색깔 및 출력되는 문자열 등의 메시지를 통신 프리미티브인 "Send()"를 호출하여 최소화된 운영체제 커널(104)의 해당 포트에 전송하게 된다. 그러면 콘솔 서버(108)는 "Receive()"를 호출하여 해당 포트로부터 메시지를 수신하여 메시지에 포함된 서비스의 종류에 따라 서브함수를 호출하여 실행시키고 해당 서비스가 완료되면 "A"라는 응용 프로그램에 "Reply()"함수를 호출하여 서비스 종류의 메시지를 전송하게 된다. 이 때, 최소화된 운영체제 커널(104)의 커서의 좌표 값을 지정하는 서비스와 문자의 색깔 및 스크린에 출력되는 문자열을 지정하는 서비스를 하나의 서비스인 것처럼 처리하는 트랜잭션을 콘솔서버(104)에 보내게 된다. 이처럼 서버가 갖고 있는 서비스 처리를 독점하는 성질을 이용하면 응용 프로그램 수준에서 콘솔 서비스 중에 트랜잭션으로 묶어 처리할 필요가 있는 서비스들을 모아 새로운 메시지로 가공하고 응용 프로그램이 직접 이용할 수 있도록 라이브러리 함수를 추가하여 콘솔 서비스 관련 잠금장치 기능을 자연스럽게 추가할 수 있게 된다.The console server 108 has a structure of a server to collectively process only console processing that has been processed in the existing kernel. Referring to the operation, when an application named "A" of the application 106 calls a subroutine of the string output function "display_string ()" defined in the system service library, the service library 110 coordinates stored in the buffer. A message such as a value, a color of a character, and a printed string is transmitted to a corresponding port of the minimized OS kernel 104 by calling a communication primitive "Send ()". The console server 108 then calls "Receive ()" to receive a message from that port, invokes a subfunction based on the type of service included in the message, and executes it. The "Reply ()" function is called to send a message of the service type. At this time, a transaction is processed to the console server 104, which processes the service that specifies the coordinate value of the cursor of the minimized operating system kernel 104 and the service that specifies the color of the character and the string output on the screen as if it were a single service. It becomes. In this way, if the server has a monopoly on the service processing, it is possible to collect the services that need to be processed as a transaction among the console services at the application level, process them into new messages, and add library functions for the application to directly use. You can naturally add service-related locks.
상술한 바와 같이, 본 발명의 운영체제 상에서의 콘솔 서버 방법 및 장치는 메시지 교환을 기반으로 하는 최소화된 운영체제 커널 상에서 콘솔 서비스를 제공하여 단순한 구조로 시스템이 구현됨은 물론 적어도 하나 이상의 응용 프로그램이 콘솔 서비스를 이용할 때 일관성을 유지할 수 있다.As described above, the method and apparatus for a console server on an operating system of the present invention provide a console service on a minimized operating system kernel based on message exchange, so that the system is implemented in a simple structure, and at least one or more applications provide console service. It can be consistent when used.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의해 정하여 져야만 할 것이다.Those skilled in the art will appreciate that various changes and modifications can be made without departing from the technical spirit of the present invention. Therefore, the technical scope of the present invention should not be limited to the contents described in the detailed description of the specification but should be defined by the claims.
Claims (14)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970079723A KR100482316B1 (en) | 1997-12-30 | 1997-12-30 | Console server method on operating system and apparatus thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970079723A KR100482316B1 (en) | 1997-12-30 | 1997-12-30 | Console server method on operating system and apparatus thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990059515A true KR19990059515A (en) | 1999-07-26 |
KR100482316B1 KR100482316B1 (en) | 2005-08-29 |
Family
ID=37304266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970079723A KR100482316B1 (en) | 1997-12-30 | 1997-12-30 | Console server method on operating system and apparatus thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100482316B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100406231B1 (en) * | 2000-12-05 | 2003-11-17 | 엘지전자 주식회사 | Conduct Method of TTY Command |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03144846A (en) * | 1989-10-31 | 1991-06-20 | Yokogawa Hewlett Packard Ltd | Application input server cooperating method |
JPH04241617A (en) * | 1991-01-16 | 1992-08-28 | Fujitsu Ltd | Output processing system for print server |
US5287461A (en) * | 1991-10-31 | 1994-02-15 | Sun Microsystems, Inc. | Method and apparatus for remotely accessing a plurality of server consoles |
US5321808A (en) * | 1992-03-20 | 1994-06-14 | Hewlett-Packard Company | Dual process display server |
KR100270582B1 (en) * | 1997-08-08 | 2000-11-01 | 정선종 | Method of boot a operating system for spax |
-
1997
- 1997-12-30 KR KR1019970079723A patent/KR100482316B1/en not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100406231B1 (en) * | 2000-12-05 | 2003-11-17 | 엘지전자 주식회사 | Conduct Method of TTY Command |
Also Published As
Publication number | Publication date |
---|---|
KR100482316B1 (en) | 2005-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4882674A (en) | Apparatus and method for control of one computer system by another computer system | |
JP3659062B2 (en) | Computer system | |
US5502839A (en) | Object-oriented software architecture supporting input/output device independence | |
US5335323A (en) | Computer human interface with multiapplication display | |
US5313581A (en) | System and method for communication between windowing environments | |
US5062060A (en) | Computer human interface comprising user-adjustable window for displaying or printing information | |
US5175854A (en) | Inter-applicataion interface system | |
US4972368A (en) | Intelligent serial I/O subsystem | |
JPH02148224A (en) | Scheduling of time starting task | |
US5371871A (en) | System for swapping in and out of system memory TSR programs by trapping interrupt calls for TSR and simulating system interrupt | |
US5029077A (en) | System and method for controlling physical resources allocated to a virtual terminal | |
JPH06161957A (en) | Workstation | |
TW200411403A (en) | System and method for transferring data between virtual machines or other computer entities | |
JPH0823825B2 (en) | How to run a distributed application program | |
JPH02127757A (en) | Execution of dispersion application program for data processing network | |
JPH07281974A (en) | Communication system for exchange of data between computers in network | |
EP0644483B1 (en) | Computer system and method for performing multiple tasks | |
GB2272544A (en) | Clipboard facility for computer network | |
US5051926A (en) | System wide local copy management of screen copy printing | |
EP0193933B1 (en) | Apparatus for control of one computer system by another computer system | |
KR100482316B1 (en) | Console server method on operating system and apparatus thereof | |
US5265251A (en) | Mechanism for allowing a single operation to shift the focus between user applications having direct hardware level access to multiple displays in a virtual terminal environment | |
US8359602B2 (en) | Method and system for task switching with inline execution | |
JP2999516B2 (en) | Character output control method and device for terminal device | |
JPH06282515A (en) | Data processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |