KR19990059515A - Console server method and device on OS - Google Patents

Console server method and device on OS Download PDF

Info

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
Application number
KR1019970079723A
Other languages
Korean (ko)
Other versions
KR100482316B1 (en
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 구자홍
Priority to KR1019970079723A priority Critical patent/KR100482316B1/en
Publication of KR19990059515A publication Critical patent/KR19990059515A/en
Application granted granted Critical
Publication of KR100482316B1 publication Critical patent/KR100482316B1/en

Links

Classifications

    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded 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

운영체제 상에서의 콘솔 서버 방법 및 장치Console server method and device on OS

본 발명은 시스템 운영체제에 관한 것으로, 특히 메시지 전달 메카니즘을 기반으로 하는 최소화된 운영체제 커널 상에서의 콘솔서버를 제공하도록 한 운영체제상에서의 콘솔 서버 방법 및 장치에 관한 것이다.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)

수신 포트를 식별하고 콘솔을 초기화하는 제1단계와,A first step of identifying a listening port and initializing the console, 임의의 응용 프로그램으로부터 상기 포트를 통해 메시지를 수신하는 제2단계와,Receiving a message through the port from any application; 상기 수신된 메세지에 명시된 서비스의 종류에 따라 해당 작업을 수행하는 제3단계를 포함하는 것을 특징으로 하는 운영체제 상에서의 콘솔 서버방법.And performing a corresponding operation according to the type of service specified in the received message. 제1항에 있어서,The method of claim 1, 상기 제3단계에서 상기 응용 프로그램이 키보드로부터 문자를 전송받고자 하면,In the third step, if the application program is to receive a character from the keyboard, 상기 문자 전송 서비스 요청에 따라 필요한 정보를 메시지에 실어 콘솔 서버에 전송하는 단계와,Sending the necessary information to the console server according to the text transmission service request; 상기 콘솔 서버는 버퍼에 기록된 문자정보를 확인하고 상기 응용 프로그램이 요청한 만큼의 상기 문자정보를 상기 응용 프로그램에 전송하는 단계를 포함하는 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 방법.And the console server checking the character information recorded in the buffer and transmitting the character information as requested by the application program to the application program. 제1항에 있어서,The method of claim 1, 상기 제3단계에서 상기 응용 프로그램이 스크린의 제어에 관한 서비스를 콘솔 서버에 요청하게 되면,In the third step, when the application program requests the console server for the control of the screen, 상기 콘솔 서버는 상기 응용 프로그램에 상기 서비스에 해당하는 메시지를 전송하여 상기 서비스를 종료하는 단계를 포함하는 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 방법.The console server method comprising the step of terminating the service by transmitting a message corresponding to the service to the application program. 제1항에 있어서,The method of claim 1, 상기 스크린의 제어에 관한 서비스는 커서 좌표와 색깔을 제어하는 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 방법.And a service relating to the control of the screen controls cursor coordinates and colors. 제1항에 있어서,The method of claim 1, 상기 제3단계에서 상기 응용 프로그램이 티티와이(TTY) 구조의 값을 제어하기 위한 서비스를 콘솔 서버에 요청하게 되면,In the third step, if the application program requests the console server to control the value of the TTY structure, 상기 서비스를 실행하고 상기 응용 프로그램에 상기 서비스에 해당하는 메시지를 전송함으로써 상기 서비스를 종료하는 단계를 포함하는 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 방법.Terminating the service by executing the service and sending a message corresponding to the service to the application program. 제5항에 있어서,The method of claim 5, 상기 응용 프로그램이 상기 티티와이(TTY) 구조를 읽기를 원하게 되면,If the application wants to read the TTY structure, 상기 콘솔 서버는 현재의 상기 티티와이(TTY) 상태를 상기 응용 프로그램이 지정한 주소로 상기 티티와이(TTY) 구조를 복사하는 단계와,The console server copying the current TTY state to the address designated by the application program; and copying the TTY structure. 상기 응용 프로그램에 상기 서비스에 해당하는 메시지를 전송함으로써 상기 서비스를 종료하는 단계를 추가로 포함하는 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 방법.And terminating the service by sending a message corresponding to the service to the application program. 제5항에 있어서,The method of claim 5, 상기 응용 프로그램이 상기 티티와이(TTY) 구조를 갱신하기를 원하게 되면,If the application wants to update the TTY structure, 상기 콘솔 서버는 상기 응용 프로그램이 지정한 상기 티티와이(TTY) 값을 현재의 상기 티티와이(TTY) 값을 복사하는 단계와,The console server copying the TTY value specified by the application to a current TTY value; 상기 응용 프로그램에 상기 서비스에 해당하는 메시지를 전송함으로써 상기 서비스를 종료하는 단계를 추가로 포함하는 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 방법.And terminating the service by sending a message corresponding to the service to the application program. 제1항에 있어서,The method of claim 1, 상기 제3단계에서 상기 응용 프로그램이 커서 제어에 관한 서비스를 콘솔 서버에 요청하게 되면,In the third step, when the application program requests a service for cursor control to the console server, 상기 커서 제어에 관한 서비스에 따른 연산의 종류에 의해 상기 커서의 좌표 값, 문자의 속성 값, 문자의 색깔, 문자의 배경 색깔 중 어느 하나로 상기 커서 관련 값을 설정 및 현재의 상기 커서 상태를 읽는 단계와,Setting the cursor related value to any one of a coordinate value of the cursor, an attribute value of a character, a color of a character, and a background color of a character according to a type of operation according to a service related to the cursor control and reading the current cursor state Wow, 상기 서비스를 실행하고 상기 응용 프로그램에 상기 서비스에 해당하는 메시지를 전송함으로써 상기 서비스를 종료하는 단계를 포함하는 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 방법.Terminating the service by executing the service and sending a message corresponding to the service to the application program. 제1항에 있어서,The method of claim 1, 상기 제3단계에서 상기 응용 프로그램이 키보드 제어에 관한 서비스를 콘솔 서버에 요청하게 되면,In the third step, when the application program requests a service for keyboard control to the console server, 상기 키보드 제어관련 서비스를 실행하고 상기 응용 프로그램에 상기 서비스에 해당하는 메시지를 전송함으로써 상기 서비스를 종료하는 단계를 포함하는 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 방법.And terminating the service by executing the keyboard control related service and sending a message corresponding to the service to the application program. 제9항에 있어서,The method of claim 9, 상기 키보드로부터 입력 받은 키 값이 특수키라면 상기 키에 해당한 명령에 따라 해당 서브 함수를 호출하여 실행시키는 단계를 추가로 포함하는 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 방법.And if the key value received from the keyboard is a special key, calling and executing the corresponding sub function according to the command corresponding to the key. 제9항에 있어서,The method of claim 9, 상기 키보드로부터 입력 받은 키 값이 임의의 응용 프로그램이 입력 받기를 원하는 문자이고 상기 응용 프로그램이 존재하면 상기 키보드 인터럽트 발생시 받은 상기 키 값을 아스크(ASCII) 값으로 변환시켜 상기 응용 프로그램에 전송하는 단계를 추가로 포함하는 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 방법.If the key value received from the keyboard is a character that any application wants to receive input and the application exists, converting the key value received at the occurrence of the keyboard interrupt to an ASCII value and transmitting it to the application program. Console server method on the operating system characterized in that it further comprises. 제9항 내지 제11항 중 어느 한 항에 있어서,The method according to any one of claims 9 to 11, 상기 키보드가 눌린 시점에 인터럽트를 기다리면서 잠든 응용 프로그램이 존재하지 않는 경우,If no application falls asleep waiting for an interrupt at the time the keyboard is pressed, 상기 콘솔 서버는 상기 키 값을 키보드 버퍼에 기록하고 상기 응용 프로그램의 요청에 따라 상기 응용 프로그램에 해당 키 값을 전송하는 단계를 추가로 포함하는 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 방법.The console server further comprises the step of recording the key value in the keyboard buffer and transmitting the corresponding key value to the application in response to a request of the application program. 메시지 전달을 기반으로 하는 최소화된 운영체제 커널과,A minimized operating system kernel based on message passing, 적어도 하나 이상의 응용 프로그램이 포트로 공유하고 상기 최소화된 운영체제 커널과 접속되어 콘솔과 관련된 모든 처리를 수행하는 콘솔 서버를 구비한 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 장치.And a console server that shares at least one application with a port and is connected to the minimized operating system kernel to perform all processing related to the console. 제13항에 있어서,The method of claim 13, 상기 콘솔 서버가 상기 콘솔과 관련된 모든 처리를 독점하는 것을 이용하여 상기 콘솔 서비스를 트랜잭션으로 일괄 처리하도록 메시지로 구성하고 상기 응용 프로그램이 이용할 수 있도록 라이브러리 함수를 추가함으로써 상기 콘솔 서비스 관련 잠금수단을 추가로 구비한 것을 특징으로 하는 운영체제 상에서의 콘솔 서버 장치.The console server further comprises locking the console service-related locks by configuring the console server into messages to monopolize all the processing related to the console into messages and adding a library function for the application to use. Console server device on the operating system characterized in that provided.
KR1019970079723A 1997-12-30 1997-12-30 Console server method on operating system and apparatus thereof KR100482316B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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