KR100258084B1 - Forced procedure call service implementation method - Google Patents
Forced procedure call service implementation method Download PDFInfo
- Publication number
- KR100258084B1 KR100258084B1 KR1019970062781A KR19970062781A KR100258084B1 KR 100258084 B1 KR100258084 B1 KR 100258084B1 KR 1019970062781 A KR1019970062781 A KR 1019970062781A KR 19970062781 A KR19970062781 A KR 19970062781A KR 100258084 B1 KR100258084 B1 KR 100258084B1
- Authority
- KR
- South Korea
- Prior art keywords
- procedure
- service
- cross
- call
- debugging
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
본 발명은 실시간 운영체계인 확장 가능한 실시간 운영체계(Scalable Real-time Operating System, 이하 SROS라 칭함)를 운영체계로 사용하는 대용량 교환 시스템에서 방대한 소프트웨어를 개발함에 있어 고급 디버깅을 할 수 있게 개발한 교처디버깅 서버에서의 프로시듀어 강제 호출 서비스 실현 방법에 관한 것이다.The present invention is developed to enable advanced debugging in developing massive software in a large-scale exchange system using a scalable real-time operating system (hereinafter referred to as SROS) as a real-time operating system. A method for implementing a procedure forced call service in a debugging server.
일반적으로 교환 시스템은 내장형(embedded) 응용분야이므로 유닉스(UNIX) 운영체계를 근간으로 하는 선 워크스테이션이나 크레이 컴퓨터 등의 호스트 컴퓨터에 편집 및 컴파일 환경을 두고 타겟인 교환 시스템용 목적 코드를 생산하여 타겟 교환 시스템에 다운로딩하여 실행시키는 방법을 사용한다.In general, since the exchange system is an embedded application field, the target system for the target exchange system is produced by providing an editing and compilation environment on a host computer such as a sun workstation or a cray computer based on the UNIX operating system. Download and run on the exchange system.
이러한 교차 개발 환경하에서 효과적인 시험환경 및 디버깅 환경을 제공하기 위해서는 호스트 컴퓨터에서 타겟 교환 시스템에서 실행하는 프로그램을 시험하고 디버깅할 수 있는 방법이 요구된다.In order to provide an effective test environment and debugging environment under such a cross-development environment, a method for testing and debugging a program running on a target exchange system on a host computer is required.
상기 요구사항의 일환으로 개발한 교차디버깅 서버는 타겟 교환 시스템에서 동작하며 호스트에 있는 교차 디버깅 클라이언트에 대한 디버깅 서비스를 수행하는 디버깅 서버로서의 역할을 담당한다.The cross-debugging server developed as part of the above requirements operates in the target switching system and serves as a debugging server that performs debugging services for the cross-debugging clients on the host.
본 발명은 SROS의 교차 디버깅 서버의 서비스 항목 중 하나인 프로시듀어 강제 호출 서비스 실현 방법에 관한 것이다.The present invention relates to a procedure forced call service realization method which is one of service items of a cross debugging server of SROS.
교차디버깅 서버의 프로시듀어 강제 호출 서비스란 디버깅 중인 사용자 프로그램의 임의의 프로시듀어를 강제로 임의의 시점, 임의의 프로세스에서 호출할 수 있도록 제공하는 디버깅 서비스이다.The forced procedure call service of the cross-debugging server is a debugging service that provides any procedure of a user program being debugged to be called at any time and in any process.
즉, 임의의 프로세스의 실행 수순에 있지 않은 프로시듀어를 강제로 호출할 수 있게 해 줌으로써 기존의 프로그램 실행 수순을 강제로 변경할 수 있게 해준다.In other words, by forcibly calling a procedure that is not in the execution order of any process, the existing program execution order can be forcibly changed.
종래에는 타겟 교환 시스템에서 실행하는 프로그램을 작성하거나 시험하는 경우 모든 경우의 수에 해당하는 시험 프로그램을 호스트 컴퓨터에서 작성하여 컴파일한 다음 타겟 교환 시스템으로 다운 로당하여 실행시켜 시험하고 오류가 발생할 경우 다시 호스트 컴퓨터에서 작성하여 컴파일한 다음 타겟 교환 시스템으로 다운로딩하여 시험하는 일련의 과정을 반복하는 방법으로 프로그램을 시험하거나 디버깅하였다.Conventionally, when writing or testing a program running on a target switching system, a test program corresponding to all cases is created and compiled on a host computer, downloaded to the target switching system, executed, tested, and re-hosted when an error occurs. The program was tested or debugged by repeating a series of procedures that were created and compiled on a computer, then downloaded and tested on the target exchange system.
이것은 하나의 소프트웨어를 시험하거나 디버깅하기 위해 프로그램을 구성하고 있는 모든 경우의 수 만큼의 시험 프로그램 작성 과정이 요구된다.This requires the creation of as many test programs as there are all cases that make up a program to test or debug a piece of software.
이러한 번거로운 시험 프로그램의 작성, 시험 및 디버깅 과정을 간소화시켜 효과적으로 수행할 수 있도록 하는 방법이 소프트웨어 생산성 향상 차원에서 강력히 요구된다.There is a strong demand for software productivity that simplifies the creation, testing, and debugging of these cumbersome test programs so that they can be efficiently executed.
상기 사항을 이루기 위해 본 발명은 프로그램을 구성하고 있는 모든 프로시듀어를 프로그램내의 임의의 프로세스에서 임의의 시점에 임의의 프로시듀어를 호출하여 실행시킬 수 있는 방법을 제공하여, 따로 시험에 필요한 실행 수순을 따르는 시험 프로그램을 재 작성하거나 재컴파일하여 재실행시키는 과정을 축소시키는 것을 목적으로 한다.In order to achieve the above, the present invention provides a method for executing all procedures constituting a program by calling any procedure at any time in any process in the program, and executing separately required for testing. The objective is to reduce the process of rewriting or recompiling a test program following the procedure.
도 1 은 본 발명에 따른 하드웨어 시스템 구성도,1 is a configuration diagram of a hardware system according to the present invention;
도 2 는 본 발명에 따른 소프트웨어 기능 블록구성도,2 is a software functional block diagram according to the present invention;
도 3 은 본 발명이 적용되는 프로시듀어 강제 호출 서비스 실현 전체 흐름도,3 is a flowchart illustrating a procedure forced call service realization according to the present invention;
도 4 는 본 발명에 따른 프로시듀어 강제 호출 서비스 요청 수락 단계 처리흐름도,4 is a flowchart of a procedure forced call service request accepting step according to the present invention;
도 5 는 본 발명에 따른 프로시듀어 강제 호출 서비스 준비 단계 처리흐름도,5 is a flowchart of a procedure forced call service preparation step according to the present invention;
도 6 은 본 발명에 따른 프로시듀어 강제 호출 서비스 실행 단계 처리흐름도,6 is a flowchart of a procedure forced call service execution step according to the present invention;
도 7 은 본 발명에 따른 프로시듀어 강제 호출 서비스 마무리 단계 처리흐름도.7 is a flowchart of a procedure forced call service finishing step according to the present invention;
<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>
100 : 타겟 교환 시스템100: target exchange system
110 : 스위치 망110: switch net
120 : 운용보전 프로세서120: operation maintenance processor
130 : 호처리 프로세서130: call processing processor
140 : SROS의 교차 디버깅 서버140: cross debugging server in SROS
141 : 서비스 데몬141: service daemon
142 : 원격 통신 처리부142: remote communication processing unit
143 : 디버깅 서비스 엔진143: Debugging Service Engine
150 : 사용자 프로그램150: user program
151 : 프로세스151: process
200 : 이더넷200: Ethernet
300 : 호스트 컴퓨터300: host computer
310 : 교차 디버깅 클라이언트310: cross debugging client
상기 목적을 달성하기 위해 본 발명은 SROS를 운영체계로 하는 운용보전 프로세서와 호처리 프로세서가 스위치 망으로 서로 연결된 타겟 교환 시스템, 교환 소프트웨어의 편집, 컴파일 및 교차디버깅을 위한 호스트 컴퓨터 및 상기 타겟 교환 시스템과 호스트 컴퓨터를 서로 물리적으로 연결해주는 통신망을 구비하는 장치에 적용되는 교차 디버깅 서버의 프로시듀어 강제 호출 서비스 실현 방법에 있어서, 호스트 컴퓨터에 있는 교차디버깅 클라이언트로부터 프로시듀어 강제 호출 서비스 요청을 수락하는 단계, 프로시듀어 강제 호출 서비스를 준비하는 단계, 프로시듀어 강제 호출 서비스를 실행하는 단계, 프로시듀어 강제 호출 결과를 호스트 컴퓨터의 교차디버깅 클라이언트에게 전달하는 단계를 포함하는 것을 특징으로 한다.In order to achieve the above object, the present invention provides a target exchange system in which an operation maintenance processor and a call processing processor, each of which has a SROS as an operating system, are connected to each other via a switch network, a host computer for editing, compiling, and cross-debugging of exchange software, and the target exchange system. A method for realizing a procedure forced call service of a cross-debugging server applied to a device having a communication network that physically connects a host computer with a host computer, the method comprising: accepting a procedure forced call service request from a cross-debugging client in a host computer And preparing a procedure forced call service, executing a procedure forced call service, and delivering a result of the procedure forced call to a cross-debugging client of the host computer.
이하 첨부된 도면을 참조하여 본 발명을 상세히 설명하면 다음과 같다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명에 따른 하드웨어 시스템 구성도로서, SROS를 운영체계로 하는 운용보전 프로세서(OperationMaintenance Processorm, 이하 OMP라 칭함)(120)와 호처리 프로세서(Subscriber Call Processor, 이하 SCP라 칭함)(130)가 스위치 망(110)으로 연결된 타겟 교환 시스템(100), 유닉스(UNIX)를 운영체계로 하는 호스트 컴퓨터(300), 그리고 상기 타겟 교환 시스템(100)과 호스트 컴퓨터(300)를 물리적으로 연결해주는 이더넷(200)으로 이루어져 있다.1 is a block diagram of a hardware system according to the present invention, which includes an operation maintenance processor (OMP) 120 and a caller processor (SCP) 130 as an operating system 130. ) Physically connects the
본 발명은 상기 타겟 교환 시스템(100)의 OMP나 SCP에 교차 디버깅 서버가 장착된 SROS 운영체계를 실장한 호스트 컴퓨터에는 교차 디버깅 클라이언트를 탑재한 다음 호스트 컴퓨터(300)에서 타겟 교환 시스템에서 실행하는 사용자 프로그램을 시험하거나 디버깅하고자 할 때 사용하는 상기 타겟 교환 시스템(100)의 교차 디버깅 서버가 제공하는 프로시듀어 강제 호출 서비스 실현 방법에 관한 것이다.According to the present invention, a user running on a target exchange system on the
도 2는 본 발명에 따른 소프트웨어 기능 블록구성도로서, 프로시듀어 강제 호출 서비스를 제공하기 위한 SROS의 교차 디버깅 서버(140)는 하나 이상의 서비스 데몬(141), 디버깅 서비스 엔진(143) 그리고 원격 통신 처리부(142)로 구성된다.2 is a software functional block diagram according to the present invention, in which the
상기 원격 통신 처리부(142)는 호스트 컴퓨터에 있는 교차 디버깅 클라이언트(310)와 원격 통신을 제어하여 서비스 데몬에게 교차 디버깅 클라이언트로부터 수신한 프로시듀어 강제 호출 서비스 요청 메시지를 전달하고, 서비스 데몬이 서비스 결과를 호스트 컴퓨터에 있는 교차 디버깅 클라이언트에게 전달하고자 할 경우 이를 전송하는 역할을 한다.The remote
상기 서비스 데몬(141)은 교차 디버깅 클라이언트로부터의 프로시듀어 강제 호출 서비스 요청을 수락할지의 여부를 결정하고, 수락할 경우 디버깅 서비스 엔진(143)을 이용한 사용자 프로그램(150)내의 임의의 프로세스가 프로시듀어 강제 호출을 실행할 수 있도록 제반 여건을 조성하고, 프로시듀어 강제 호출 실행이 완료되었음을 감지하여 교차 디버깅 클라이언트에게 서비스 완료에 따른 서비스 결과를 전달하는 역할을 한다.The
디버깅 서비스 엔진(143)은 교차 디버깅 클라이언트(310)가 요구한 사용자 프로그램(150)내의 프로세스(151)가 프로시듀어 강제 호출을 실행하게 해준다.The
도 3은 본 발명이 적용되는 프로시듀어 강제 호출 서비스 실현 전체 흐름도로서, 먼저 교차 디버깅 클라이언트로부터의 프로시듀어 강제 호출 서비스 요청 메시지를 기다리는 것으로 시작하는(S1) 서비스 데몬은 교차 디버깅 클라이언트로부터의 프로시듀어 강제 호출 서비스 요청 메시지를 수신하면(S2) 요청 메시지를 조사하여 서비스 요청에 따른 수락 여부를 결정한다(S3).3 is a flowchart illustrating a procedure forced call service realization to which the present invention is applied. First, a service daemon starting with waiting for a procedure forced call service request message from a cross-debugging client (S1) is a program from a cross-debugging client. Upon receiving the procedure forced call service request message (S2), the request message is examined to determine whether to accept the service request (S3).
상기 서비스 요청 수락 여부를 판단하여(S4) 수락할 수 없으면 오류메시지를 교차 디버깅 클라이언트에게 전송하고(S5), 수락하는 경우에는 디버깅 서비스 엔진을 이용한 사용자 프로세스가 프로시듀어 강제 호출을 실행할 수 있도록 준비한다(S6).It is determined whether or not the service request is accepted (S4). If it is not accepted, an error message is transmitted to the cross-debugging client (S5). If the service request is accepted, the user process using the debugging service engine is prepared to execute a procedure forced call. (S6).
사용자 프로세스가 프로시듀어 강제 호출을 실행할 수 있도록 준비한 후 서비스 데몬이 준비한 제반 여건을 바탕으로 하여 디버깅 서비스 엔진을 이용한 사용자 프로세스는 프로시듀어 강제 호출을 실행한다(S7).After the user process prepares to execute the procedure forced call, the user process using the debugging service engine executes the procedure forced call based on various conditions prepared by the service daemon (S7).
상기 서비스 데몬은 사용자 프로세스가 프로시듀어 강제 호출을 실행하는 동안 기다렸다가 사용자 프로세스로부터 실행 완료 여부 메시지를 수신하면 교차 디버깅 클라이언트에게 서비스 결과를 전송하는 등의 프로시듀어 강제 호출 서비스를 마무리하는 작업을 수행한다(S8).The service daemon waits while the user process executes the procedure forced call and finishes the procedure forced call service such as sending the service result to the cross-debugging client when receiving the execution completion message from the user process. (S8).
도 4는 본 발명에 따른 프로시듀어 강제 호출 서비스 요청 수락 단계 처리흐름도로서, 프로시듀어 강제 호출 실행 단계에서 필요한 관련 정보를 저장하기 위한 메모리 장소를 마련하고(S3a), 교차 디버깅 클라이언트로부터 수신한 서비스 요청 메시지에서 메시지 길이, 강제 호출 프로시듀어의 시작 주소, 정적 링크 정보, 입력 파라미터 및 반환값 저장 공간에 대한 정보가 올바른지 조사하고(S3b), 올바른가를 판단한다(S3c).4 is a flowchart illustrating a procedure forced call service request accepting step according to the present invention, and prepares a memory location for storing related information required in the procedure forced call execution step (S3a), and receives from a cross debugging client. In the service request message, the message length, the start address of the forced call procedure, the static link information, the input parameter, and the return value information about the storage space are checked (S3b), and it is determined (S3c).
상기 판단 후 올바르지 않으면 오류메시지를 교차 디버깅 클라이언트에게 전송하고(S3d) 종료한다.If it is not correct after the determination, an error message is sent to the cross-debugging client (S3d), and the process ends.
판단 후 올바른 경우는, 프로시듀어 강제 호출 실행 단계에서 사용하기 위해 강제 호출할 프로시듀어 시작 주소, 호출형태, 정적링크, 입력 파라미터들 및 반환값 여부 등에 대한 관련 정보를 미리 마련해 놓은 장소에 저장한다(S3e).If it is correct after the decision, store it in a place where information related to the procedure start address, call type, static link, input parameters, and return value etc. to be forced is used for the procedure execution call execution step. (S3e).
상기 관련 정보를 마련해 놓은 장소에 저장한 후 교차 디버깅 클라이언트가 요구한 프로시듀어 강제 호출을 실행할 프로세스의 존재 여부를 조사한(S3f) 후 프로세스가 존재하는가를 판단한다(S3g).After storing the related information in a place where the related information is prepared, it is determined whether a process exists after the existence of a process for executing a procedure forced call requested by the cross-debugging client (S3f) (S3g).
상기 판단 후 존재하면, 그 프로세스가 속해 있는 프로그램의 상태가 프로그램 실행중단 상태인가를 판단하여(S3h) 만약 프로그램 실행중단 상태이면 오류메시지를 교차 디버깅에게 전송하고(S3d) 종료한다.If it exists after the determination, it is determined whether the state of the program to which the process belongs is a program execution stop state (S3h). If the program execution stop state, an error message is sent to cross debugging (S3d).
만약, 프로그램 실행중단 상태가 아닌 경우에는 프로시듀어 강제 호출 실행 단계에서 주소 재계산이 요구되는 입력 파라미터들 및 반환값 저장 장소들을 조사하여 관련 정보를 저장(S3i) 한 다음 프로시듀어 강제 호출 서비스 수락 단계를 완료한다(S3j).If the program is not in the execution stop state, the input parameters and return value storage locations for which address recalculation is required in the procedure forced call execution step are stored and related information is stored (S3i), and then the procedure forced call service is performed. Complete the acceptance step (S3j).
도 5는 본 발명에 따른 프로시듀어 강제 호출 서비스 준비 단계 처리흐름도로서, 프로시듀어 강제 호출 서비스를 준비하는 단계에서는 먼저, 프로시듀어 강제 호출을 실행할 사용자 프로세스의 실행을 중단시키고(S6a), 실행중단 되기 직전의 프로세스 상태정보를 교차 디버깅 서버의 프로세스 상태 관리 큐에 저장한다(S6b).5 is a flowchart of a procedure forced call service preparation step according to the present invention. In the process of preparing a procedure forced call service, first, execution of a user process to execute a procedure forced call is stopped (S6a). The process state information immediately before being suspended is stored in the process state management queue of the cross-debugging server (S6b).
프로시듀어 강제 호출 서비스를 수행하기 위해 강제로 실행 중단시킨 사용자 프로세스를 서비스가 완료되는 시점에 복원할 수 있도록 모든 레지스터들의 내용을 저장한다(S6c).The contents of all registers are stored so that a user process forcibly interrupted to perform a procedure forced call service can be restored at the time of completion of service (S6c).
상기 실행 중단시킨 사용자 프로세스가 프로시듀어 강제 호출을 실행하는데 필요한 프로세스 스택을 준비하고 스택 포인트를 재조정한다(S6d).The suspended user process prepares a process stack necessary for executing a procedure forced call and readjusts the stack point (S6d).
스택 포인터 재조정 작업이 완료되면, 실행 중단시킨 사용자 프로세스가 중앙처리장치(Central processing unit, 이하 CPU라 칭함)를 점유하게 될 때 프로시듀어를 강제 호출할 수 있도록 하여 주는 디버깅 서비스 엔진내의 서비스 실행 시작 지점에서 곧바로 실행할 수 있도록 프로그램 카운터(Program Counter, 이하 PC라 칭함)와 다음 프로그램 카운터(Next Program Counter, 이하 NPC라 칭함)를 강제 조정한(S6e) 다음, 프로세스의 상태변화없이 CPU만 점유하여 프로시듀어 강제 호출을 실행하도록 프로세스 스케쥴링을 위한 프로세스 준비 큐에 넣는다(S6f).When the stack pointer rebalancing is complete, the service execution in the debugging service engine is allowed to force the procedure to be called when the interrupted user process occupies the central processing unit (CPU). The program counter (hereinafter referred to as the PC) and the next program counter (hereinafter referred to as the NPC) are forced to run immediately at the point (S6e). It is put in the process preparation queue for process scheduling to execute the procedure forced call (S6f).
서비스 준비 단계에서 필요한 모든 과정이 완료되면, 서비스 데몬은 프로시듀어 강제 호출 서비스가 시작되었음을 호스트 컴퓨터에 있는 교차 디버깅 클라이언트에게 알려주는 것(S6g)을 마지막으로 서비스 준비 단계에서의 작업을 완료한다.When all the necessary steps are completed in the service preparation phase, the service daemon finally completes the work in the service preparation phase by informing the cross-debugging client on the host computer that the procedure forced call service has started (S6g).
도 6은 본 발명에 따른 프로시듀어 강제 호출 서비스 실행 단계 처리흐름도로서, 먼저 서비스 요청 수락단계에서 저장한 프로시듀어 강제 호출 서비스 관련 정보를 조회하여 주소 재계산이 요구되는 입력 파라미터들에 대한 정확한 주소를 계산하고(S7a) 입력 파라미터들을 프로시듀어 강제 호출시 전달할 수 있도록 프로시듀어 호출형태에 따른 파라미터 전달용 레지스터들의 값을 조정하여(S7b), 강제 호출하고자 하는 프로시듀어를 호출한다(S7c).6 is a flowchart of a procedure forced call service execution step according to the present invention. First, the procedure forced call service related information stored in the service request acceptance step is inquired to accurately input parameters requiring address recalculation. Compute the address (S7a) and adjust the values of the parameter passing registers according to the procedure call type so that the input parameters can be passed in the procedure forced call (S7b), and call the procedure to be forced to call ( S7c).
강제 호출하고자 하는 프로시듀어를 호출한 후 호출함에 따라 실행된 프로시듀어의 반환값이 저장된 레지스터의 내용을 따로 저장하고, 교차 디버깅 클라이언트로부터 반환값 전송 요청을 받았는지의 여부를 조사하여, 전송 요구를 받은 경우는 반환값 저장 장소의 주소가 재계산이 필요한지 조사하여, 필요한 경우 주소 재계산을 수행한다(S7d).After calling the procedure that you want to call, save the contents of the register where the return value of the executed procedure is stored separately, and check whether the request for sending the return value is received from the cross-debugging client. When the request is received, the address of the return value storage location is examined to determine whether it is necessary to recalculate and if necessary, the address is recalculated (S7d).
주소 재계산을 수행한 후 프로세스들의 스케쥴링을 중단시키고(S7e), 프로시듀어 강제 호출을 실행하기 전의 상태로 복귀할 수 있도록 프로세스 준비 큐에서 제외시킴과 아울러 프로세스의 상태를 프로시듀어 강제 호출을 실행하기 전의 상태로 복원시킨다(S7f).After performing the address recalculation, the process stops scheduling (S7e), removes the state of the process from the process preparation queue so that it can return to the state it was in before executing the procedure forced call, and also executes the procedure forced call. Restore to the state before execution (S7f).
프로세스의 상태를 프로시듀어 강제 호출을 실행하기 전의 상태로 복원시킨 후 프로시듀어의 강제 호출 실행을 완료하였음을 서비스 데몬에게 알리고(S7g), 서비스 준비 단계에서 저장하여 둔 레지스터들의 내용을 프로세스 제어 블록으로 로딩시킨다(S7h).After restoring the state of the process to the state it was in before executing the forced procedure call, inform the service daemon that the procedure has been forced to execute (S7g), and process the contents of the registers stored in the service preparation step. It is loaded into the block (S7h).
마지막으로, 서비스 요청 수락 단계에서 프로시듀어 강제 호출 서비스 수행에 필요한 정보를 저장하기 위해 할당해 놓은 메모리 자원을 해제시키고(S7i), 프로세스들의 스케줄링을 재개시킨다(S7j).Finally, the memory resource allocated to store the information required to perform the procedure forced call service in the service request acceptance step is released (S7i), and the scheduling of the processes is resumed (S7j).
도 7은 본 발명에 따른 프로시듀어 강제 호출 서비스 마무리 단계 처리흐름도로서, 서비스 데몬이 프로시듀어 강제 호출을 실행한 프로세스로부터 실행 종료 메시지를 받을 때까지 기다린다(S8a).7 is a flowchart illustrating a procedure forced call service finishing step according to the present invention, and waits until the service daemon receives an execution end message from a process that executes a procedure forced call (S8a).
실행종료 메시지를 수신하면, 정상적으로 실행하여 종료되었는지의 여부를 조사한다(S8b).When the execution end message is received, it is checked whether it has been normally executed and terminated (S8b).
종료되었는지 여부 조사 후 정상종료인가를 판단하여(S8c) 정상종료가 아닌 경우는 오류메시지를 교차 디버깅 클라이언트에게 전송하고(S8d) 프로시듀어강제 호출 서비스를 위해 실행중단시켰던 사용자 프로세스를 실행재개시키고(S8e) 종료한다.After checking whether or not it is terminated, it is judged whether it is normally terminated (S8c). If it is not normal, it sends an error message to the cross-debugging client (S8d) and resumes the user process that was stopped for the procedure forced calling service (S8d). S8e) End.
만약 정상적으로 실행하여 종료하였음을 확인한 경우는 교차 디버깅 클라이언트로부터 반환값 전송 요청을 받았는지의 여부를 판단하여(S8f) 반환값 전송이 필요없는 경우는 프로시듀어 강제 호출 서비스를 완료하였음을 교차디버깅 클라이언트에게 알린(S8g) 다음, 프로시듀어 강제 호출 서비스를 위해 실행 중단시킨 사용자 프로세스를 실행재개시키고(S8e) 종료한다.If it is confirmed that the program is normally executed and terminated, it is determined whether a request for sending a return value is received from the cross-debugging client (S8f). If no return value is required, the cross-debugging client indicates that the procedure forced call service is completed. (S8g) Next, the user process which has been suspended for the procedure forced call service is resumed (S8e) and terminated.
만약 교차디버깅 클라이언트로 전송할 반환값들이 있는 경우는 반환해야 하는 모든 내용을 포함하는 메시지를 구성하여 교차 디버깅 클라이언트에게 전송한(S8h) 다음, 프로시듀어 강제 호출 서비스를 위해 실행 중단시킨 사용자 프로세스를 실행재개시키고(S8e) 종료한다.If there are return values to be sent to the cross-debugging client, construct a message containing all the contents that should be returned, send it to the cross-debugging client (S8h), and then execute the user process that was suspended for the procedure forced call service. Resume (S8e) and end.
상술한 바와 같이 본 발명은 디버깅 중인 프로그램의 임의의 프로시듀어를 강제로 임의의 시점, 임의의 프로세스에서 호출할 수 있도록 하여, 즉, 임의의 프로세스의 실행 수순에 있지 않은 프로시듀어를 강제로 호출할 수 있게 하여, 프로그램 작성 과정이나 프로그램의 시험 및 디버깅 과정에서 반복하여 프로그램을 작성하거나 새로 프로그램을 컴파일하지 않고 온라인 상에서 효과적으로 수행할 수 있게 해 줌으로써 프로그램 작성 과정이나 시험 과정을 상당히 단축할 수 있으므로 소프트웨어의 생산성 향상에 기여하는 효과가 있다.As described above, the present invention allows any procedure of a program being debugged to be called at any point in time and in any process, that is, forcing a procedure not in the execution order of any process. Calls can be made, which significantly reduces the programming process or the test process by allowing the program to be repeated in the program writing process or the test and debugging process of the program, or effectively performed online without compiling a new program. This contributes to improving the productivity of the software.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970062781A KR100258084B1 (en) | 1997-11-25 | 1997-11-25 | Forced procedure call service implementation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970062781A KR100258084B1 (en) | 1997-11-25 | 1997-11-25 | Forced procedure call service implementation method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990042078A KR19990042078A (en) | 1999-06-15 |
KR100258084B1 true KR100258084B1 (en) | 2000-06-01 |
Family
ID=19525568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970062781A KR100258084B1 (en) | 1997-11-25 | 1997-11-25 | Forced procedure call service implementation method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100258084B1 (en) |
-
1997
- 1997-11-25 KR KR1019970062781A patent/KR100258084B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19990042078A (en) | 1999-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634728B (en) | Job scheduling method and device, terminal equipment and readable storage medium | |
US6345240B1 (en) | Device and method for parallel simulation task generation and distribution | |
US6321181B1 (en) | Device and method for parallel simulation | |
US7334162B1 (en) | Dynamic distribution of test execution | |
CN111399897A (en) | Application issuing method and system based on kubernets | |
CN108710536A (en) | A kind of multi-level fine-grained virtualization GPU method for optimizing scheduling | |
CN111026530A (en) | Task scheduling method and device, computer equipment and storage medium | |
CN115185787B (en) | Method and device for processing transaction log | |
EP1327198A1 (en) | A network component management system | |
CN112948077A (en) | Batch processing method, device, equipment and storage medium | |
JP3701816B2 (en) | Method and apparatus for notifying task termination | |
CN114924971A (en) | Test environment deployment method and device | |
CN111082964B (en) | Distribution method and device of configuration information | |
KR100258084B1 (en) | Forced procedure call service implementation method | |
Shin et al. | A distributed real-time operating system | |
US6338080B1 (en) | Device and process for handling the execution of a job in a data processing system | |
AU2023200878B2 (en) | Method, apparatus and device for software testing, and compute-readable storage medium | |
Itoh et al. | A prototype of a concurrent behavior monitoring tool for testing of concurrent programs | |
JP2001265603A (en) | Automatic division software distribution system and method therefor | |
Leangsuksun et al. | Designs and experiments on heterogeneous mapping heuristics | |
KR100289039B1 (en) | Method for executing control of process in cross debugging server | |
Fagg et al. | Taskers and general resource managers: PVM supporting DCE process management | |
CN113986519B (en) | Data scheduling processing method, device, equipment and storage medium | |
CN115421824B (en) | Micro-service execution engine, running method and application method | |
Thuente et al. | Rate-monotonic analysis of an advanced field artillery data system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20040302 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |