WO2014109487A1 - 응용프로그램 관리장치 및 관리방법 - Google Patents

응용프로그램 관리장치 및 관리방법 Download PDF

Info

Publication number
WO2014109487A1
WO2014109487A1 PCT/KR2013/011654 KR2013011654W WO2014109487A1 WO 2014109487 A1 WO2014109487 A1 WO 2014109487A1 KR 2013011654 W KR2013011654 W KR 2013011654W WO 2014109487 A1 WO2014109487 A1 WO 2014109487A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
module
thread
stopped
stack
Prior art date
Application number
PCT/KR2013/011654
Other languages
English (en)
French (fr)
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 CN201380069667.0A priority Critical patent/CN104919415A/zh
Priority to EP13871170.0A priority patent/EP2945054A4/en
Priority to US14/759,912 priority patent/US9348667B2/en
Priority to JP2015551594A priority patent/JP5981050B2/ja
Publication of WO2014109487A1 publication Critical patent/WO2014109487A1/ko

Links

Images

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/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/22Microcontrol or microprogram arrangements
    • 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
    • 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/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]

Definitions

  • the present invention relates to a management apparatus and a management method for managing an application program (hereinafter referred to as "AP"). More specifically, on the operating system side, even when a thread for each AP execution process of a suspended AP (eg, a user unused AP) is stopped, a module and a stack related to dynamic data exchange (DDE) message processing are processed. By including only the thread that is included in the normally terminated environment, and relates to the AP management device and management method that can guide users to easily avoid various problems due to delay processing DDE message.
  • AP application program
  • the Republic of Korea Patent No. 10-1053681 (name: user terminal and its software management control method and device) (2011.8.2. Self notification) in the step of 1 monitoring the user terminal, 2 the user terminal provides the software Determining whether the software is in an unused state for a predetermined time by accessing the software running in the device, and if not, determining to forcibly terminate the connection of the user terminal to the software; Requesting the user terminal to create a process for temporarily storing the work contents and forcibly terminating access to the software of the user terminal, and 4 providing the user terminal with a control message of the process for temporary storage and forced termination of the work contents.
  • Software connection control method using the technical gist of the steps It is disclosed.
  • An embodiment of the present invention is an AP management apparatus that communicates with an operating system that controls an application program (AP) through an application program interface (API) function in a state installed in an information processing device.
  • a selection unit configured to select a stationary AP from among APs in a running state according to previously stored AP stop procedure setting information;
  • a first information acquisition unit that acquires detailed information of an AP execution process corresponding to the AP in the running state;
  • the controller information of the AP execution process corresponding to the stationary AP is read after reading the detailed information of the AP execution process corresponding to the stationary AP, in communication with the first information acquisition unit.
  • a second information acquisition unit for acquiring handle information of threads for each AP execution process corresponding to the AP to be stopped, module information for each thread, and stack information for each module;
  • handle information of an AP execution process corresponding to the stop target AP handle information of threads for each AP execution process corresponding to the stop target AP, module information for each thread, and the respective An AP stop processor that stops threads for each AP execution process corresponding to the AP to be stopped after reading stack information for each module;
  • the thread for each AP execution process corresponding to the AP to be stopped is stopped by the stop processor, the thread is communicated with the stop processor to read module information for each thread and stack information for each module, and then for each thread.
  • a suspended state canceling unit configured to select a module and a stack in charge of processing a dynamic data exchange (DDE) message among modules and stacks of each module, and to terminate a suspended state of a thread including the selected modules and stacks;
  • a control unit which controls the selection unit, the first information acquisition unit, the second information acquisition unit, the AP stop processing unit, and the stop state canceling unit.
  • DDE dynamic data exchange
  • the AP management method for communicating with the operating system for controlling the execution of an application program (AP) via an application program interface (API) function Selecting an AP to be stopped from the APs in the running state according to the AP stop procedure setting information that has been set; Acquiring details of an AP running process corresponding to the AP in a running state;
  • the handle information of the AP running process corresponding to the stationary AP and the corresponding information of the stationary AP Acquiring handle information of threads for each AP execution process, module information for each thread, and stack information for each module;
  • the handle information of the thread for each AP running process corresponding to the AP to be stopped After reading the handle information of the AP running process corresponding to the AP to be stopped, the handle information of the thread for each AP running process corresponding to the AP to be stopped, the module information for each thread and the stack information for each module, Stopping a thread for each AP running process corresponding to the AP to be stopped;
  • a computer module within the program block of the information processing device including the operating system, a computer module, an API (Application Program Interface) function that can select the AP to be stopped from the AP (Application Program) in the running state is called
  • an API Application Program Interface
  • the API function is called to stop the AP.
  • Handle information of each AP execution process handle information of threads for each AP execution process, module information for each thread, and stack information for each module can be obtained.
  • Computing module handle information of AP execution process corresponding to AP to be stopped, handle information of thread for each AP execution process, module information for each thread, and stack definition for each module
  • call the API function to stop the thread for each AP running process corresponding to the AP to be stopped, and if the thread for each AP running process corresponding to the AP is stopped, then for each thread
  • select modules and stacks in charge of processing dynamic data exchange (DDE) messages among modules for each thread and stacks for each module and select the selected modules and stacks.
  • DDE processing dynamic data exchange
  • FIG. 1 is a conceptual diagram illustrating a program arrangement form of an AP management apparatus according to the present invention.
  • FIG. 2 is an exemplary diagram conceptually showing a detailed configuration of an AP management apparatus according to the present invention.
  • FIG. 3 is an exemplary diagram conceptually showing a detailed functional procedure of the AP management apparatus according to the present invention.
  • the information processing device 1 (eg, notebook PC, desktop PC, smartphone, tablet PC, etc.) employing the AP management apparatus 100 according to the present invention includes an operating system 2 (eg, , A Windows-based operating system released by Microsoft.
  • the operating system uses various types of APs 3 and 3a (e.g., dynamic link library (DLL) files 4, application program interface (API) functions 5), and the like. Closely control the execution status of document creation AP, drawing AP, office management AP, communication AP, Internet access AP, etc.
  • DLL dynamic link library
  • API application program interface
  • the operating system 2 includes, among the threads 7, 7a of the suspended AP 3a, a module including a module 8a and a stack 9a that are responsible for processing the DDE message. (7a) can not be utilized at all. As a result, the overall processing of the DDE message of the information processing device 1 is inevitably greatly delayed.
  • the AP management apparatus 100 is a module for each thread (7,7a) when the thread (7,7a) for each AP execution process (6a) corresponding to the suspended target AP (3a) is stopped After reading the information and stack information for each module 8, 8a, processing the DDE message among the modules 8, 8a for each thread 7, 7a and the stacks 9, 9a for each module 8, 8a. Select the module (8a) and stack (9a) in charge of. Thereafter, by canceling the suspended state of the thread 7a including the selected module 8a and the stack 9a, the function of the suspended target AP (for example, unused user AP, etc.) is stopped on the operating system 2 side. Even if you do not have to deal with unnecessary DDE message processing delays.
  • the AP management apparatus 100 communicates with the operating system 2 via the interface unit 102, and operates the operation information storage unit 103, the selection unit 104, Configurations in the first information acquisition unit 105, the second information acquisition unit 106, the AP suspension processing unit 107, the suspension state canceling unit 108, the AP suspension state cancellation processing unit 109, and the AP management apparatus 100.
  • the control unit 101 or the like for controlling the elements may take a close combination.
  • the operation information storage unit 103 controlled by the control unit 101 has a variety of operation information required for the AP management service according to the present invention, for example, registration information of the operating system 2, AP stop procedure in its information storage area.
  • Setting information for example, setting information for selecting a non-used AP as a stationary AP for a specific time or setting information for selecting a specific AP as a stationary AP
  • component information necessary for processing of each computer module.
  • the selector 104 controlled by the control module 101 communicates with the operating system 2 via the interface module 102 as shown in FIG. 3. This checks the execution history of each AP (3, 3a), and communicates with the operation information storage unit 103 to read the AP stop procedure setting information previously stored in its information storage area. Thereafter, according to the read contents, respective AP execution processes 6 and 6a are performed to select the stationary target AP 3a from the APs 3 and 3a in the running state.
  • an AP that is not used by the user for 20 minutes may be selected as the stationary AP 3a.
  • the AP AP released by BB may be selected as the stationary AP 3a.
  • an AP unknown by the company may be selected as the stationary AP 3a. (The stationary AP may be modified in various situations.)
  • the first information acquisition unit 105 controlled by the control unit 101 communicates with the selection unit 104 to determine which AP is the stationary target AP 3a.
  • the first information acquisition unit 105 then communicates with the operating system 2 via the interface unit 102 to select the DLL file 4 (e.g., the dbghelp.dll file), and the API function 5 ) (For example, GetProcAddress function).
  • the first information acquisition unit 105 may perform detailed information of the AP execution processes 6 and 6a corresponding to the APs 3 and 3a in the running state (for example, the virtual address of the AP execution processes 6 and 6a).
  • Spatial information, executable file information loaded in the virtual address space of the AP execution process 6, 6a, various resource information allocated by the operating system 2 for the AP execution process 6, 6a, AP execution process (6, 6a) ), The kernel object information), the thread information of the AP execution process 6, 6a, etc.) can be obtained (see FIG. 3).
  • the first information acquisition unit 105 acquires the detailed information of the AP execution processes 6 and 6a corresponding to the APs 3 and 3a in the execution state, it is controlled by the control unit 101.
  • the second information acquiring section 106 communicates with the selecting section 104 to determine which AP is the stationary target AP 3a.
  • the second information acquisition unit 106 communicates with the first information acquisition unit 105 and, among the detailed information of the AP execution processes 6 and 6a corresponding to the APs 3 and 3a in the execution state, Details of the AP execution process 6a corresponding to the stationary AP 3a (e.g., virtual address space information of the AP execution process 6a, executable file information loaded into the virtual address space of the AP execution process 6a, Various resource information allocated by the operating system 2 for the AP execution process 6a, kernel object information of the AP execution process 6a, thread information of the AP execution process 6a, etc.) can be read (see FIG. 3). ).
  • the second information acquisition unit 106 After the second information acquisition unit 106 determines which AP is the stationary AP 3a and reads detailed information of the AP execution process 6a corresponding to the stationary AP 3a, the second information acquisition unit 106 acquires the second information.
  • the unit 106 communicates with the operating system 2 via the interface unit 102, so that the API function 5 (e.g., OpenProcess API function, CreateToolhelp32Snapshot API function, SymLoadModule64 API function, GetThreadContext API function, StackWalk64 API function, etc.) ).
  • the API function 5 e.g., OpenProcess API function, CreateToolhelp32Snapshot API function, SymLoadModule64 API function, GetThreadContext API function, StackWalk64 API function, etc.
  • Symbol table information, memory address value information of each module (8,8a), IMAGEHELP_MODULE64 structure value information of each module (8,8a), and stack information for each module (8,8a) can be acquired (refer FIG. 3).
  • the OpenProcess API function is utilized to obtain the handle information of the AP execution process (6a)
  • the CreateToolhelp32Snapshot API function is a thread (7) for each AP execution process (6a).
  • 7a) is used to obtain the handle information.
  • the SymLoadModule64 API function is used to obtain module information for each thread (7,7a)
  • the GetThreadContext API function is used to obtain a context (Thread) (7,7a) for each AP execution process (6a).
  • Context structure value information is used
  • the StackWalk64 API function is used to obtain stack information for each module (8, 8a).
  • the handle information of the AP execution process 6a corresponding to the stationary AP 3a the handle information of threads 7, 7a for each AP execution process 6a, Context structure value information of threads 7 and 7a for each AP execution process 6a, Module information for each thread 7 and 7a, and each module 8 and 8a.
  • the AP stop processing unit 107 controlled by the control unit 101 communicates with the second information acquisition unit 106, so that the above-mentioned stop target AP details (e.g., Handle information of the AP execution process 6a corresponding to the stationary AP 3a, handle information of the threads 7, 7a for each AP execution process 6a, module information for each thread 7, 7a, and each module. (8,8a) stack information, etc.) are read (refer to FIG. 3).
  • the above-mentioned stop target AP details e.g., Handle information of the AP execution process 6a corresponding to the stationary AP 3a, handle information of the threads 7, 7a for each AP execution process 6a, module information for each thread 7, 7a, and each module. (8,8a) stack information, etc.
  • the AP suspension processing unit 107 communicates with the operating system 2 via the interface module 102, and the API function 5 (e.g., SuspendThread API function) Call Through this, the AP stop processor 107 stops the threads 7 and 7a for each AP execution process 6a corresponding to the AP 3a to be stopped (see FIG. 3).
  • the API function 5 e.g., SuspendThread API function
  • the stop state canceling unit 108 controlled by the control unit 101 ) Communicates with the AP stop processor 107 to determine the context structure value of the threads 7 and 7a for each AP execution process 6a and the module for each thread 7 and 7a.
  • Module information e.g., symbol table information of each module 8, 8a, memory address value information of each module 8, 8a, IMAGEHELP_MODULE64 structure value information of each module 8, 8a, etc.
  • read stack information e.g., stack trace information of each stack 9, 9a, etc.
  • the stop state canceling unit 108 is configured to stack the modules 8 and 8a for each thread 7 and 7a and the stacks for each module 8 and 8a. Selects a stack 9a of 9, 9a, in which a module 8a (for example, USER32.dll) that is in charge of processing a DDE message, and a symbol name thereof are assumed to be in charge of processing a DDE message, such as, for example, GetMessage or UserwaitMessage. . Thereafter, the suspended state of the thread 7a including the selected module 8a and the stack 9a is released (see FIG. 3).
  • a module 8a for example, USER32.dll
  • a thread 7a that includes a module 8a (e.g., USER32.dll) that is responsible for processing DDE messages and a stack 9a whose symbol names are assumed to be responsible for processing DDE messages, such as, for example, GetMessage, UserwaitMessage, and the like. ) Is stopped, the thread 7a is restored to run smoothly. In this case, even when the function of the stationary target AP 3a (for example, the user unused AP, etc.) is stopped, the operating system 2 does not suffer any unnecessary DDE message processing delay problem.
  • a module 8a e.g., USER32.dll
  • a stack 9a whose symbol names are assumed to be responsible for processing DDE messages, such as, for example, GetMessage, UserwaitMessage, and the like.
  • an embodiment of the present invention can select the stationary target AP 3a among the APs 3 and 3a in the running state in the program block of the information processing device 1 including the operating system 2.
  • Computation module, API function which is a computer module that can obtain the detailed information of the AP execution process (6,6a) corresponding to the AP (3,3a) in the running state, corresponding to the target AP (3a)
  • the API function is called to handle information of the AP execution process 6a corresponding to the stationary AP 3a, and the threads 7 for each AP execution process 6a.
  • 7a handle information, a computer module for acquiring module information for each thread (7, 7a) and stack information for each module (8, 8a), and an AP execution process (6a) corresponding to the stop target AP (3a). ), Handle information of threads (7, 7a) for each AP execution process (6a), module information for each thread (7, 7a) and stack information for each module (8, 8a) are read. After that, by calling an API function, a computer module capable of stopping the threads 7, 7a for each AP execution process 6a corresponding to the target AP 3a, each AP corresponding to the target AP 3a.
  • the module information of each thread 7 and 7a and the stack information of each module 8 and 8a are read, and then each thread 7 and 7a is read.
  • a module 8a and a stack 9a that are responsible for processing DDE messages are selected, and the selected modules 8a and stack are selected.
  • a computer module and the like are provided for systematically disabling the suspended state of the thread 7a including 9a. Therefore, under the implementation environment of the present invention, the operating system 2 side can perform the DDE message processing even when the thread 7 for each AP execution process 6a of the AP 3a (for example, the user unused AP) is stopped. Only the thread 7a including the associated module 8a and the stack 9a can be placed in the normally stopped environment. As a result, the user can easily avoid various problems caused by delay in processing the DDE message.
  • the AP stop state cancellation processing unit 109 controlled by the control unit completes the stop state of the stop target AP from the operating system 2 while communicating with the operating system 2 via the interface unit 102. Checks whether a request message for revocation has been sent.
  • the user using the information processing device 1 proceeds with a computing procedure such as selecting an icon (not shown) of the stationary target AP 3a, which has been in a minimized state, for example. From 2) it is possible to check whether a request message for completely canceling the suspended status of the AP to be stopped is transmitted. If it is determined that the request message has been transmitted, the AP stop state canceling processing unit 109 communicates with the operating system 2 via the interface unit 102 and calls the API function 5. Through this, the suspended state of the thread 7 for each AP execution process 6a corresponding to the suspended target AP 3a may be released (see FIG. 3).
  • the stationary AP 3a side includes all the modules including the module 8a and the stack 9a related to the processing of the DDE message, as well as the other modules 8 and the stack 9. Even the thread 7 restores its function normally. As a result, the user side can easily utilize the AP 3a without the inconvenience of having to execute the stationary target AP 3a again from the beginning.
  • the present invention is not limited to a specific field, and exhibits useful effects generally in various fields requiring management of various APs.
  • a thread for each AP execution process of a suspended AP eg, a user unused AP
  • a thread including a module and a stack related to DDE message processing may be used. Can be terminated normally. As a result, various problems caused by delay in processing a DDE message can be easily avoided at the user side.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명의 일 실시예는 응용프로그램(AP: Application Program) 관리장치 및 관리방법에 관한 것으로, 본 발명에서는 운영체제를 포함하는 정보처리기기의 프로그램 블록 내에 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드가 정지되면, 각 쓰레드별 모듈정보 및 각 모듈별 스택정보를 판독한 후, 각 쓰레드별 모듈 및 각 모듈별 스택 중에서 동적데이터교환(DDE: Dynamic data Exchange) 메시지 처리를 담당하는 모듈 및 스택을 선별하고, 선별된 모듈 및 스택을 포함하는 쓰레드의 정지상태를 해지할 수 있는 전산모듈을 포함할 수 있다. 이를 통해, 정지대상 AP(예컨대, 사용자 미사용 AP)의 각 AP 실행 프로세스별 쓰레드가 정지된 상태에서도, DDE 메시지 처리 지연에 따른 각종 문제점을 손쉽게 회피할 수 있도록 가이드 할 수 있다.

Description

응용프로그램 관리장치 및 관리방법
본 발명은 응용프로그램(AP: Application Program; 이하, "AP"라 함)을 관리해주는 관리장치 및 관리방법에 관한 것이다. 보다 상세하게는, 운영체제 측에서, 정지대상 AP(예컨대, 사용자 미사용 AP)의 각 AP 실행 프로세스별 쓰레드가 정지된 상태에서도, 동적데이터교환(DDE: Dynamic data Exchange) 메시지 처리와 관련된 모듈 및 스택을 포함하는 쓰레드만은 정상적으로 정지 해지된 환경에 놓일 수 있도록 함으로써, 사용자 측에서 DDE 메시지 처리 지연에 따른 각종 문제점을 손쉽게 회피할 수 있도록 가이드 할 수 있는 AP 관리장치 및 관리방법에 관한 것이다.
근래에, 전기/전자/통신 관련기술이 급격한 발전을 이루면서, 다양한 종류의 AP(예컨대, 문서작성 AP, 도면작성 AP, 사무관리 AP, 통신 AP, 인터넷 접속 AP 등)이 폭 넓게 개발/보급되고 있다. 이에 따라, 해당 AP를 보다 효과적으로 관리해주기 위한 다양한 종류의 기반기술들이 개발되고 있다.
예를 들어, 대한민국 등록특허 제10-1053681호(명칭: 사용자 단말 및 이의 소프트웨어 관리 제어방법 및 장치)(2011.8.2.자 공고)에는 ① 사용자 단말을 모니터링 하는 단계, ② 상기 사용자 단말이 소프트웨어 제공장치에서 동작하는 소프트웨어에 접속하여 소프트웨어가 일정시간 이상 미사용 상태인지 여부를 판단하고, 미사용 상태인 경우, 사용자 단말의 소프트웨어에의 접속을 강제 해지하기로 결정하는 단계, ③ 상기 소프트웨어로 사용자 단말이 현재까지 작업한 내용을 임시 저장하고 사용자 단말의 소프트웨어에의 접속을 강제 해지하기 위한 프로세스의 생성을 사용자 단말에 요청하는 단계, ④ 작업내용 임시저장 및 강제 해지를 위한 프로세스의 제어 메시지를 사용자 단말에 제공하는 단계 등을 그 기술적 요지로 하는 소프트웨어 접속 제어방법이 개시되어 있다.
그러나, 상기 특허 제10-1053681호에 개시되어 있는 소프트웨어 미사용 단말의 강제 해지 기술은 그 주요 프로세스가 모두 서버 단에서 이루어지기 때문에, 서버 단의 부하 증가가 극심해진다. 뿐만 아니라, 전체적인 프로세스 진행시간이 크게 증가하는 심각한 문제점을 유발하게 된다.
특히, 상기 특허 제10-1053681호에 개시되어 있는 소프트웨어 미사용 단말의 강제 해지 기술은 미사용 소프트웨어를 일시 정지시키는 것이 아니라, 아예 종료시키는 극단적 방법을 채택하고 있다. 따라서, 사용자 측에서는 소프트웨어의 재사용 시, 종료되어 있던 해당 소프트웨어를 처음부터 다시 실행시켜야 하는 불편함을 고스란히 감수해야 한다.
이러한 문제점을 감안하여, 종래에는 정지대상 AP(예컨대, 미사용 AP)를 선별한 후, 선별 완료된 AP의 실행 프로세스별 쓰레드(Thread)를 정지시켜, 해당 정지대상 AP를 일시 정지시키는 방안이 설득력 있게 대두되고 있다. 이 경우, 해당 정지대상 AP는 완전 종료되는 것이 아니라, 그 동작이 일시 정지된다. 따라서, 사용자 측에서는 정지대상 AP의 재사용 시에도, 이를 처음부터 다시 실행시켜야 하는 등의 불편함을 손쉽게 회피할 수 있다.
그러나, 이러한 종래의 기술에 따른 AP 정지기술의 경우, 정지대상 AP의 프로세스에 포함된 모든 쓰레드를 일괄적으로 정지시킨다. 따라서, 별다른 조치가 취해지지 않을 경우, 종래의 AP 정지기술을 채용한 정보처리기기의 운영체제 측에서는 정지대상 AP의 각 쓰레드 중에서, 동적데이터교환(DDE: Dynamic Data Exchange) 메시지 처리를 담당하는 모듈 및 스택을 포함하는 쓰레드까지도 전혀 활용할 수 없게 된다. 따라서, 정보처리기기의 전체적인 DDE 메시지 처리가 크게 지연되는 심각한 상황에 직면하게 된다.
물론, DDE 메시지의 처리가 지연되면, 사용자 측에서는 정지대상 AP 뿐만 아니라, 다른 AP까지도 원활하게 사용할 수 없게 된다. 결국, 전체적인 AP 이용 품질이 크게 저하 된다.
따라서, 본 발명의 실시예들은 운영체제 측에서, 정지대상 AP(예컨대, 사용자 미사용 AP)의 각 AP 실행 프로세스별 쓰레드가 정지된 상태에서도, DDE 메시지 처리와 관련된 모듈 및 스택을 포함하는 쓰레드만은 정상적으로 정지 해지될 수 있도록 한다. 이로써, 사용자 측에서 DDE 메시지 처리 지연에 따른 각종 문제점을 손쉽게 회피할 수 있도록 한다.
본 발명의 다른 목적들은 다음의 상세한 설명과 첨부된 도면으로부터 보다 명확해질 것이다.
본 발명의 일 실시예는 정보처리기기 내에 설치된 상태에서, 응용프로그램 인터페이스(API: Application Program Interface) 함수를 매개로 하여, 응용프로그램(AP: Application Program) 을 제어하는 운영체제와 통신하는 AP 관리 장치로서, 기 저장되어 있는 AP 정지절차 설정정보에 따라, 실행 상태에 있는 AP 중에서, 정지대상 AP를 선별하는 선별부; 상기 실행 상태에 있는 AP에 상응하는 AP 실행 프로세스의 세부정보를 취득하는 제 1 정보 취득부; 상기 제 1 정보 취득부와 통신하여, 상기 AP 실행 프로세스 중에서, 상기 정지대상 AP에 상응하는 AP 실행 프로세스의 세부정보를 판독한 후, 상기 정지대상 AP에 상응하는 AP 실행 프로세스의 핸들정보(Handle information), 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드(Thread)의 핸들정보, 각 쓰레드별 모듈정보(Module information) 및 각 모듈별 스택정보(Stack information)를 취득하는 제 2 정보 취득부; 상기 제 2 정보 취득부와 통신하여, 상기 정지대상 AP에 상응하는 AP 실행 프로세스의 핸들정보, 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드의 핸들정보, 상기 각 쓰레드별 모듈정보 및 상기 각 모듈별 스택정보를 판독한 후, 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드들을 정지시키는 AP 정지 처리부; 상기 정지 처리부에 의해 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드가 정지되면, 상기 정지 처리부와 통신하여, 상기 각 쓰레드별 모듈정보 및 상기 각 모듈별 스택정보를 판독한 후, 각 쓰레드별 모듈 및 각 모듈별 스택 중에서 동적데이터교환(DDE: Dynamic data Exchange) 메시지 처리를 담당하는 모듈 및 스택을 선별하고, 선별된 모듈 및 스택을 포함하는 쓰레드의 정지상태를 해지하는 정지상태 해지부; 및 상기 선별부, 상기 제 1 정보 취득부, 상기 제 2 정보 취득부, 상기 AP 정지 처리부 및 상기 정지상태 해지부를 제어하는 제어부를 포함하는 것을 특징으로 하는 AP 관리장치를 개시한다.
또한, 본 발명의 다른 실시예에서는 응용프로그램 인터페이스(API: Application Program Interface) 함수를 매개로 하여, 응용프로그램(AP: Application Program)의 실행을 제어하는 운영체제와 통신하는AP 관리방법에 있어서, 기 저장되어 있던 AP 정지절차 설정정보에 따라, 실행 상태에 있는 AP 중에서, 정지대상 AP를 선별하는 단계; 실행 상태에 있는 AP에 상응하는 AP 실행 프로세스의 세부정보를 취득하는 단계; 상기 AP 실행 프로세스 중에서, 상기 정지대상 AP에 상응하는 AP 실행 프로세스의 세부정보를 판독한 후, 상기 정지대상 AP에 상응하는 AP 실행 프로세스의 핸들정보(Handle information), 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드(Thread)의 핸들정보, 각 쓰레드별 모듈정보(Module information) 및 각 모듈별 스택정보(Stack information)를 취득하는 단계; 상기 정지대상 AP에 상응하는 AP 실행 프로세스의 핸들정보, 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드의 핸들정보, 상기 각 쓰레드별 모듈정보 및 상기 각 모듈별 스택정보를 판독한 후, 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드를 정지시키는 단계; 및 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드가 정지되면, 상기 각 쓰레드별 모듈정보 및 상기 각 모듈별 스택정보를 판독한 후, 각 쓰레드별 모듈 및 각 모듈별 스택 중에서 동적데이터교환(DDE: Dynamic data Exchange) 메시지 처리를 담당하는 모듈 및 스택을 선별하고, 선별된 모듈 및 스택을 포함하는 쓰레드의 정지상태를 해지하는 단계를 포함하는 것을 특징으로 하는 AP 관리방법을 개시한다.
본 발명의 일 실시예에서는, 운영체제를 포함하는 정보처리기기의 프로그램 블록 내에, 실행 상태에 있는 AP(Application Program) 중 정지대상 AP를 선별할 수 있는 전산모듈, API(Application Program Interface) 함수를 호출하여, 실행 상태에 있는 AP에 상응하는 AP 실행 프로세스의 세부정보를 취득할 수 있는 전산모듈, 정지대상 AP에 상응하는 AP 실행 프로세스의 세부정보를 판독한 후, API 함수를 호출하여, 정지대상 AP에 상응하는 AP 실행 프로세스의 핸들정보(Handle information), 각 AP 실행 프로세스별 쓰레드(Thread)의 핸들정보, 각 쓰레드별 모듈정보(Module information) 및 각 모듈별 스택정보(Stack information)를 취득할 수 있는 전산모듈, 정지대상 AP에 상응하는 AP 실행 프로세스의 핸들정보, 각 AP 실행 프로세스별 쓰레드의 핸들정보, 각 쓰레드별 모듈정보 및 각 모듈별 스택정보를 판독한 후, API 함수를 호출하여, 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드를 정지시킬 수 있는 전산모듈, 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드가 정지되면, 각 쓰레드별 모듈정보 및 각 모듈별 스택정보를 판독한 후, 각 쓰레드별 모듈 및 각 모듈별 스택 중에서 동적데이터교환(DDE: Dynamic data Exchange) 메시지 처리를 담당하는 모듈 및 스택을 선별하고, 선별된 모듈 및 스택을 포함하는 쓰레드의 정지상태를 해지할 수 있는 전산모듈 등을 체계적으로 배치하여 제공한다. 따라서, 본 발명의 구현환경 하에서, 운영체제 측에서는 정지대상 AP(예컨대, 사용자 미사용 AP)의 각 AP 실행 프로세스별 쓰레드가 정지된 상태에서도, DDE 메시지 처리와 관련된 모듈 및 스택을 포함하는 쓰레드만은 정상적으로 정지 해지된 환경에 놓일 수 있게 된다. 결국, 사용자 측에서는 DDE 메시지 처리 지연에 따른 각종 문제점을 손쉽게 회피할 수 있게 된다.
도 1은 본 발명에 따른 AP 관리장치의 프로그램 배치 형태를 개념적으로 도시한 예시도이다.
도 2는 본 발명에 따른 AP 관리장치의 세부적인 구성을 개념적으로 도시한 예시도이다.
도 3은 본 발명에 따른 AP 관리장치의 세부적인 기능수행절차를 개념적으로 도시한 예시도이다.
이하, 첨부된 도면을 참조하여, 본 발명에 따른 AP 관리장치 및 관리방법이 상세히 설명된다.
도 1에 도시된 바와 같이, 본 발명에 따른 AP 관리장치(100)를 채용한 정보처리기기(1)(예컨대, 노트북 PC, 데스크탑 PC, 스마트폰, 태블릿 PC 등)에는 운영체제(2)(예컨대, 마이크로소프트사에서 출시된 윈도우 계열의 운영체제)가 설치된다. 이 경우, 운영체제는 동적 연결 라이브러리(DLL: Dynamic Link Library) 파일(4), 응용프로그램 인터페이스(API: Application Program Interface) 함수(5) 등을 매개로 하여, 각종 AP(3,3a)(예컨대, 문서작성 AP, 도면작성 AP, 사무관리 AP, 통신 AP, 인터넷 접속 AP 등)의 실행상태를 면밀하게 제어한다.
이러한 환경 하에서, 종래의 기술에 따른 AP 정지기술이 적용될 경우, 정지대상 AP(3a)의 실행 프로세스(6a)에 포함된 모든 쓰레드(7,7a)가 일괄적으로 정지된다. 따라서, 별다른 조치가 취해지지 않을 경우, 운영체제(2)는 정지대상 AP(3a)의 각 쓰레드(7,7a) 중에서, DDE 메시지 처리를 담당하는 모듈(8a) 및 스택(9a)을 포함하는 쓰레드(7a)까지도 전혀 활용할 수 없게 된다. 결국, 정보처리기기(1)의 전체적인 DDE 메시지 처리가 크게 지연될 수밖에 없다.
한편, 본 발명에 따른 AP 관리장치(100) 는 정지대상 AP(3a)에 상응하는 각 AP 실행 프로세스(6a)별 쓰레드(7,7a)가 정지되었을 때, 각 쓰레드(7,7a)별 모듈정보 및 각 모듈(8,8a)별 스택정보를 판독한 후, 각 쓰레드(7,7a)별 모듈(8,8a) 및 각 모듈(8,8a)별 스택(9,9a) 중에서 DDE 메시지 처리를 담당하는 모듈(8a) 및 스택(9a)을 선별한다. 그 후, 선별된 모듈(8a) 및 스택(9a)을 포함하는 쓰레드(7a)의 정지상태를 해지함으로써, 운영체제(2) 측에서 정지대상 AP(예컨대, 사용자 미사용 AP 등)의 기능이 정지되었을 때에도, 불필요한 DDE 메시지 처리 지연 문제점을 전혀 겪지 않도록 할 수 있다.
도 2에 도시된 바와 같이, 본 발명에 따른 AP 관리장치(100)는 인터페이스부(102)를 매개로 하여 운영체제(2)와 통신하고, 운영정보 저장부(103), 선별부(104), 제 1 정보 취득부(105), 제 2 정보 취득부(106), AP 정지 처리부(107), 정지상태 해지부(108), AP 정지상태 해지 처리부(109) 및 AP 관리장치(100) 내의 구성요소들을 제어하는 제어부(101) 등이 긴밀하게 조합된 구성을 취할 수 있다.
이때, 제어부(101)에 의해 제어되는 운영정보 저장부(103)는 자신의 정보저장영역에 본 발명에 따른 AP 관리 서비스에 필요한 각종 운영정보, 예컨대, 운영체제(2)의 등록정보, AP 정지절차 설정정보(예컨대, 특정 시간 동안 사용자가 미사용 중인 AP를 정지대상 AP으로 선별하도록 하는 설정정보 또는 특정 AP를 정지대상 AP로 선별하도록 하는 설정정보 등) 및 각 전산모듈들의 프로세스 진행에 필요한 컴포넌트 정보 등을 저장 및 관리함으로써, 본 발명에 따른 일련의 AP 관리절차가 별다른 문제점 없이 정상적으로 진행될 수 있도록 보조하는 역할을 수행한다.
이러한 기반 인프라를 통해, 제어모듈(101)에 의해 제어되는 선별부(104) 는, 도 3에 도시된 바와 같이, 인터페이스 모듈(102)을 매개로 운영체제(2)와 통신한다. 이로써 각 AP(3,3a)의 실행내역을 점검하고, 운영정보 저장부(103)와 통신을 취하여 이의 정보저장영역에 기 저장되어 있던 AP 정지절차 설정정보를 판독한다. 그 후, 판독된 내용에 따라, 각자의 AP 실행 프로세스(6,6a)를 수행시켜, 실행 상태에 놓여 있는 AP(3,3a) 중에서, 정지대상 AP(3a)를 선별한다.
예컨대, 20분 동안 사용자가 미사용 중인 AP가 정지대상 AP(3a)로 선별될 수 있다. 다른 예로, BB사에서 출시한 ○○ AP가 정지대상 AP(3a)로 선별될 수도 있고, 또 다른 예로, 출시 회사가 불분명한 △△ AP가 정지대상 AP(3a)로 선별될 수도 있다. (이러한 정지대상 AP는 상황에 따라 다양하게 변형될 수 있다).
이렇게 함으로써, 정지대상 AP(3a)가 선별되면, 제어부(101)에 의해 제어되는 제 1 정보 취득부(105)는 선별부(104)와 통신을 취하여, 어느 AP이 정지대상 AP(3a)인지를 파악한다. 그 다음, 제 1 정보 취득부(105)는 인터페이스부(102)를 매개로 운영체제(2)와 통신을 취하여, DLL 파일(4)(예컨대, dbghelp.dll 파일)을 선택하고, API 함수(5)(예컨대, GetProcAddress 함수)를 호출한다. 이를 통해, 제 1 정보 취득부(105)는 실행 상태에 있는 AP(3,3a)에 상응하는 AP 실행 프로세스(6,6a)의 세부정보(예컨대, AP 실행 프로세스(6,6a)의 가상주소공간정보, AP 실행 프로세스(6,6a)의 가상주소공간에 로드된 실행파일정보, AP 실행 프로세스(6,6a)를 위해 운영체제(2)가 할당한 각종 리소스 정보, AP 실행 프로세스(6,6a)의 커널객체정보, AP 실행 프로세스(6,6a)의 쓰레드정보 등)를 취득할 수 있다(도 3 참조).
상술한 절차를 통해, 제 1 정보 취득부(105)가 실행 상태에 있는 AP(3,3a)에 상응하는 AP 실행 프로세스(6,6a)의 세부정보를 취득하면, 제어부(101)에 의해 제어되는 제 2 정보 취득부(106) 는 선별부(104)와 통신을 취하여, 어느 AP이 정지대상 AP(3a)인지를 파악한다. 또한, 제 2 정보 취득부(106)는 제 1 정보 취득부(105)와 통신을 취하여, 실행 상태에 있는 AP(3,3a)에 상응하는 AP 실행 프로세스(6,6a)의 세부정보 중에서, 정지대상 AP(3a)에 상응하는 AP 실행 프로세스(6a)의 세부정보(예컨대, AP 실행 프로세스(6a)의 가상주소공간정보, AP 실행 프로세스(6a)의 가상주소공간에 로드된 실행파일정보, AP 실행 프로세스(6a)를 위해 운영체제(2)가 할당한 각종 리소스 정보, AP 실행 프로세스(6a)의 커널객체정보, AP 실행 프로세스(6a)의 쓰레드정보 등)를 판독할 수 있다(도 3 참조).
제 2 정보 취득부(106)가 어느 AP이 정지대상 AP(3a)인지 파악하고, 해당 정지대상 AP(3a)에 상응하는 AP 실행 프로세스(6a)의 세부정보를 판독하고 나면, 제 2 정보 취득부(106)는 인터페이스부(102)를 매개로 운영체제(2)와 통신을 취하여, API 함수(5)(예컨대, OpenProcess API 함수, CreateToolhelp32Snapshot API 함수, SymLoadModule64 API 함수, GetThreadContext API 함수, StackWalk64 API 함수 등)를 호출한다. 이를 통해, 정지대상 AP(3a)에 상응하는 AP 실행 프로세스(6a)의 핸들정보(Handle information), 각 AP 실행 프로세스(6a)별 쓰레드(Thread)(7,7a)의 핸들정보, 각 AP 실행 프로세스(6a)별 쓰레드(Thread)(7,7a)의 컨텍스트 구조 값(Context structure value) 정보, 각 쓰레드(7,7a)별 모듈정보(Module information)(예컨대, 각 모듈(8,8a)의 심볼 테이블(Symbol table) 정보, 각 모듈(8,8a)의 메모리 주소 값 정보, 각 모듈(8,8a)의 IMAGEHELP_MODULE64 구조 값 정보 등) 및 각 모듈(8,8a)별 스택정보(Stack information)(예컨대, 각 스택(9,9a)의 스택 트레이스(Stack trace) 정보 등)를 취득할 수 있다(도 3 참조).
이 경우, 앞서 언급한 API 함수(5) 중에서, OpenProcess API 함수는 AP 실행 프로세스(6a)의 핸들정보를 취득하는데 활용되며, CreateToolhelp32Snapshot API 함수는 각 AP 실행 프로세스(6a)별 쓰레드(Thread)(7,7a)의 핸들정보를 취득하는데 활용된다. 또한, SymLoadModule64 API 함수는 각 쓰레드(7,7a)별 모듈정보(Module information)를 취득하는데 활용되며, GetThreadContext API 함수는 각 AP 실행 프로세스(6a)별 쓰레드(Thread)(7,7a)의 컨텍스트 구조 값(Context structure value) 정보를 취득하는데 활용되고, StackWalk64 API 함수는 각 모듈(8,8a)별 스택정보(Stack information)를 취득하는데 활용된다.
상술한 절차를 통해, 정지대상 AP(3a)에 상응하는 AP 실행 프로세스(6a)의 핸들정보(Handle information), 각 AP 실행 프로세스(6a)별 쓰레드(Thread)(7,7a)의 핸들정보, 각 AP 실행 프로세스(6a)별 쓰레드(Thread)(7,7a)의 컨텍스트 구조 값(Context structure value) 정보, 각 쓰레드(7,7a)별 모듈정보(Module information), 각 모듈(8,8a)별 스택정보(Stack information) 등이 취득되면, 제어부(101)에 의해 제어되는 AP 정지 처리부(107)는 제 2 정보 취득부(106)와 통신을 취하여, 상술한 정지대상 AP 세부정보(예컨대, 정지대상 AP(3a)에 상응하는 AP 실행 프로세스(6a)의 핸들정보, 각 AP 실행 프로세스(6a)별 쓰레드(7,7a)의 핸들정보, 각 쓰레드(7,7a)별 모듈정보, 각 모듈(8,8a)별 스택정보 등)를 판독한다(도 3 참조).
이렇게 하여, 정지대상 AP 세부정보의 판독이 완료되면, AP 정지 처리부(107)는 인터페이스 모듈(102)을 매개로 운영체제(2)와 통신을 취하여, API 함수(5)(예컨대, SuspendThread API 함수)를 호출한다. 이를 통해, AP 정지 처리부(107)는 정지대상 AP(3a)에 상응하는 각 AP 실행 프로세스(6a)별 쓰레드(7,7a)를 정지시킨다(도 3 참조).
한편, 상술한 절차를 통해, 정지대상 AP(3a)에 상응하는 각 AP 실행 프로세스(6a)별 쓰레드(7,7a)가 정지되었을 때, 제어부(101)에 의해 제어되는 정지상태 해지부(108)는 AP 정지 처리부(107)와 통신을 취하여, 각 AP 실행 프로세스(6a)별 쓰레드(Thread)(7,7a)의 컨텍스트 구조 값(Context structure value) 정보, 각 쓰레드(7,7a)별 모듈정보(Module information)(예컨대, 각 모듈(8,8a)의 심볼 테이블(Symbol table) 정보, 각 모듈(8,8a)의 메모리 주소 값 정보, 각 모듈(8,8a)의 IMAGEHELP_MODULE64 구조 값 정보 등), 각 모듈(8,8a)별 스택정보(Stack information)(예컨대, 각 스택(9,9a)의 스택 트레이스(Stack trace) 정보 등) 등을 판독 또는 취득한다(이러한 각 정보들은 상황에 따라, 제 2 정보 취득부(106)와의 통신을 통해 판독 또는 취득되어도 무방하다).
이렇게 함으로써, 각 AP 실행 프로세스(6a)별 쓰레드(Thread)(7,7a)의 컨텍스트 구조 값(Context structure value) 정보, 각 쓰레드(7,7a)별 모듈정보(Module information), 각 모듈(8,8a)별 스택정보(Stack information) 등이 판독 또는 취득되면, 정지상태 해지부(108)는 각 쓰레드(7,7a)별 모듈(8,8a) 및 각 모듈(8,8a)별 스택(9,9a) 중에서 DDE 메시지 처리를 담당하는 모듈(8a)(예컨대, USER32.dll) 및 그 심볼 네임이 예컨대, GetMessage, UserwaitMessage 등과 같이 DDE 메시지 처리를 담당하는 것으로 추정되는 스택(9a)을 선별한다. 그 후, 선별된 모듈(8a) 및 스택(9a)을 포함하는 쓰레드(7a)의 정지상태를 해지한다(도 3 참조).
이처럼, DDE 메시지 처리를 담당하는 모듈(8a)(예컨대, USER32.dll) 및 그 심볼 네임이 예컨대, GetMessage, UserwaitMessage 등과 같이 DDE 메시지 처리를 담당하는 것으로 추정되는 스택(9a)이 포함된 쓰레드(7a)의 정지상태가 해지되면, 해당 쓰레드(7a)가 원활히 구동되도록 복구된다. 이 경우, 운영체제(2)는 정지대상 AP(3a)(예컨대, 사용자 미사용 AP 등)의 기능이 정지되었을 때에도, 불필요한 DDE 메시지 처리 지연 문제점을 전혀 겪지 않게 된다.
이와 같이, 본 발명의 일 실시예는 운영체제(2)를 포함하는 정보처리기기(1)의 프로그램 블록 내에, 실행 상태에 있는 AP(3,3a) 중 정지대상 AP(3a)를 선별할 수 있는 전산모듈, API 함수를 호출하여, 실행 상태에 있는 AP(3,3a)에 상응하는 AP 실행 프로세스(6,6a)의 세부정보를 취득할 수 있는 전산모듈, 정지대상 AP(3a)에 상응하는 AP 실행 프로세스(6a)의 세부정보를 판독한 후, API 함수를 호출하여, 정지대상 AP(3a)에 상응하는 AP 실행 프로세스(6a)의 핸들정보, 각 AP 실행 프로세스(6a)별 쓰레드(7,7a)의 핸들정보, 각 쓰레드(7,7a)별 모듈정보 및 각 모듈(8,8a)별 스택정보를 취득할 수 있는 전산모듈, 정지대상 AP(3a)에 상응하는 AP 실행 프로세스(6a)의 핸들정보, 각 AP 실행 프로세스(6a)별 쓰레드(7,7a)의 핸들정보, 각 쓰레드(7,7a)별 모듈정보 및 각 모듈(8,8a)별 스택정보를 판독한 후, API 함수를 호출하여, 정지대상 AP(3a)에 상응하는 각 AP 실행 프로세스(6a)별 쓰레드(7,7a)를 정지시킬 수 있는 전산모듈, 정지대상 AP(3a)에 상응하는 각 AP 실행 프로세스(6a)별 쓰레드(7,7a)가 정지되었을 때, 각 쓰레드(7,7a)별 모듈정보 및 각 모듈(8,8a)별 스택정보를 판독한 후, 각 쓰레드(7,7a)별 모듈(8,8a) 및 각 모듈(8,8a)별 스택(9,9a) 중에서 DDE 메시지 처리를 담당하는 모듈(8a) 및 스택(9a)을 선별하고, 선별된 모듈(8a) 및 스택(9a)을 포함하는 쓰레드(7a)의 정지상태를 해지할 수 있는 전산모듈 등을 체계적으로 배치하여 제공한다. 따라서, 본 발명의 구현환경 하에서, 운영체제(2) 측에서는 정지대상 AP(3a)(예컨대, 사용자 미사용 AP)의 각 AP 실행 프로세스(6a)별 쓰레드(7)가 정지된 상태에서도, DDE 메시지 처리와 관련된 모듈(8a) 및 스택(9a)을 포함하는 쓰레드(7a)만은 정상적으로 정지 해지된 환경에 놓일 수 있게 된다. 결국, 사용자 측에서는 DDE 메시지 처리 지연에 따른 각종 문제점을 손쉽게 회피할 수 있다.
한편, 도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 제어부(101)의 제어 하에서는 상술한 전산모듈들뿐만 아니라 AP 정지상태 해지 처리부(109)가 추가 배치될 수 있다.
이때, 제어부에 의해 제어되는 AP 정지상태 해지 처리부(109)는 인터페이스부(102)를 매개로 하여, 운영체제(2)와 통신을 취하면서, 해당 운영체제(2)로부터 정지대상 AP의 정지상태를 완전 해지하기 위한 요청메시지가 전송되었는가의 여부를 점검한다.
이 때, 정보처리기기(1)를 사용하는 사용자는, 예컨대, 최소화 상태에 놓여있던 정지대상 AP(3a)의 아이콘(Icon)(도시 안됨)을 선택하는 것과 같은 전산절차를 진행하여, 운영체제(2)로부터 정지대상 AP의 정지상태를 완전 해지하기 위한 요청메시지가 전송되었는지 여부를 점검할 수 있다. 상기 요청메시지가 전송된 것으로 판단되는 경우, AP 정지상태 해지 처리부(109)는 인터페이스부(102)를 매개로 운영체제(2)와 통신을 취하여, API 함수(5)를 호출한다. 이를 통해, 정지대상 AP(3a)에 상응하는 각 AP 실행 프로세스(6a)별 쓰레드(7)의 정지상태를 해지할 수 있다(도 3 참조).
물론, 이 경우, 정지대상 AP(3a) 측에서는 DDE 메시지 처리와 관련된 모듈(8a) 및 스택(9a)을 포함하는 쓰레드(7a) 뿐만 아니라, 다른 모듈(8) 및 스택(9)을 포함하는 모든 쓰레드(7)까지도 그 기능을 정상적으로 회복하게 된다. 결국, 사용자 측에서는 정지대상 AP(3a)를 처음부터 다시 실행시켜야 하는 불편함 없이도, 해당 AP(3a)를 손쉽게 활용할 수 있다.
본 발명은 특정 분야에 국한되지 아니하며, 각종 AP의 관리가 필요한 여러 분야에서, 전반적으로 유용한 효과를 발휘한다.
그리고, 앞에서, 본 발명의 특정한 실시 예가 설명되고 도시되었지만 본 발명이 당업자에 의해 다양하게 변형되어 실시될 가능성이 있는 것은 자명한 일이다.
이와 같은 변형된 실시 예들은 본 발명의 기술적 사상이나 관점으로부터 개별적으로 이해되어서는 안되며, 본 발명의 첨부된 특허청구의 범위 안에 속해야 할 것이다.
본 발명의 일 실시예에 따르면, 운영체제 측에서, 정지대상 AP(예컨대, 사용자 미사용 AP)의 각 AP 실행 프로세스별 쓰레드가 정지된 상태에서도, DDE 메시지 처리와 관련된 모듈 및 스택을 포함하는 쓰레드만은 정상적으로 정지 해지될 수 있다. 이로써, 사용자 측에서 DDE 메시지 처리 지연에 따른 각종 문제점을 손쉽게 회피할 수 있다.

Claims (4)

  1. 정보처리기기 내에 설치된 상태에서, 응용프로그램 인터페이스(API: Application Program Interface) 함수를 매개로 하여, 응용프로그램(AP: Application Program) 을 제어하는 운영체제와 통신하는 AP 관리 장치로서,
    기 저장되어 있는 AP 정지절차 설정정보에 따라, 실행 상태에 있는 AP 중에서, 정지대상 AP를 선별하는 선별부;
    상기 실행 상태에 있는 AP에 상응하는 AP 실행 프로세스의 세부정보를 취득하는 제 1 정보 취득부;
    상기 제 1 정보 취득부와 통신하여, 상기 AP 실행 프로세스 중에서, 상기 정지대상 AP에 상응하는 AP 실행 프로세스의 세부정보를 판독한 후, 상기 정지대상 AP에 상응하는 AP 실행 프로세스의 핸들정보(Handle information), 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드(Thread)의 핸들정보, 각 쓰레드별 모듈정보(Module information) 및 각 모듈별 스택정보(Stack information)를 취득하는 제 2 정보 취득부;
    상기 제 2 정보 취득부와 통신하여, 상기 정지대상 AP에 상응하는 AP 실행 프로세스의 핸들정보, 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드의 핸들정보, 상기 각 쓰레드별 모듈정보 및 상기 각 모듈별 스택정보를 판독한 후, 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드들을 정지시키는 AP 정지 처리부;
    상기 정지 처리부에 의해 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드가 정지되면, 상기 정지 처리부와 통신하여, 상기 각 쓰레드별 모듈정보 및 상기 각 모듈별 스택정보를 판독한 후, 각 쓰레드별 모듈 및 각 모듈별 스택 중에서 동적데이터교환(DDE: Dynamic data Exchange) 메시지 처리를 담당하는 모듈 및 스택을 선별하고, 선별된 모듈 및 스택을 포함하는 쓰레드의 정지상태를 해지하는 정지상태 해지부; 및
    상기 선별부, 상기 제 1 정보 취득부, 상기 제 2 정보 취득부, 상기 AP 정지 처리부 및 상기 정지상태 해지부를 제어하는 제어부를 포함하는 것을 특징으로 하는 AP 관리장치.
  2. 제 1 항에 있어서, 상기 제어부에 의해 제어되며, 상기 운영체제로부터 상기 정지대상 AP의 정지상태를 해지하기 위한 요청메시지를 수신한 경우, 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드의 정지상태를 해지하는 AP 정지상태 해지 처리부를 더 포함하는 것을 특징으로 하는 AP 관리장치.
  3. 응용프로그램 인터페이스(API: Application Program Interface) 함수를 매개로 하여, 응용프로그램(AP: Application Program)의 실행을 제어하는 운영체제와 통신하는AP 관리방법에 있어서,
    기 저장되어 있던 AP 정지절차 설정정보에 따라, 실행 상태에 있는 AP 중에서, 정지대상 AP를 선별하는 단계;
    실행 상태에 있는 AP에 상응하는 AP 실행 프로세스의 세부정보를 취득하는 단계;
    상기 AP 실행 프로세스 중에서, 상기 정지대상 AP에 상응하는 AP 실행 프로세스의 세부정보를 판독한 후, 상기 정지대상 AP에 상응하는 AP 실행 프로세스의 핸들정보(Handle information), 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드(Thread)의 핸들정보, 각 쓰레드별 모듈정보(Module information) 및 각 모듈별 스택정보(Stack information)를 취득하는 단계;
    상기 정지대상 AP에 상응하는 AP 실행 프로세스의 핸들정보, 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드의 핸들정보, 상기 각 쓰레드별 모듈정보 및 상기 각 모듈별 스택정보를 판독한 후, 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드를 정지시키는 단계; 및
    상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드가 정지되면, 상기 각 쓰레드별 모듈정보 및 상기 각 모듈별 스택정보를 판독한 후, 각 쓰레드별 모듈 및 각 모듈별 스택 중에서 동적데이터교환(DDE: Dynamic data Exchange) 메시지 처리를 담당하는 모듈 및 스택을 선별하고, 선별된 모듈 및 스택을 포함하는 쓰레드의 정지상태를 해지하는 단계를 포함하는 것을 특징으로 하는 AP 관리방법.
  4. 제 3 항에 있어서, 상기 운영체제로부터 상기 정지대상 AP의 정지상태를 해지하기 위한 요청메시지를 수신한 경우, 상기 정지대상 AP에 상응하는 각 AP 실행 프로세스별 쓰레드의 정지상태를 해지하는 단계를 더 포함하는 것을 특징으로 하는 AP 관리방법.
PCT/KR2013/011654 2013-01-08 2013-12-16 응용프로그램 관리장치 및 관리방법 WO2014109487A1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201380069667.0A CN104919415A (zh) 2013-01-08 2013-12-16 用于管理应用程序的装置和方法
EP13871170.0A EP2945054A4 (en) 2013-01-08 2013-12-16 DEVICE FOR MANAGING AN APPLICATION PROGRAM AND METHOD THEREFOR
US14/759,912 US9348667B2 (en) 2013-01-08 2013-12-16 Apparatus for managing application program and method therefor
JP2015551594A JP5981050B2 (ja) 2013-01-08 2013-12-16 アプリケーションプログラムの管理装置及び管理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0002053 2013-01-08
KR20130002053A KR101396781B1 (ko) 2013-01-08 2013-01-08 응용프로그램 관리장치 및 관리방법

Publications (1)

Publication Number Publication Date
WO2014109487A1 true WO2014109487A1 (ko) 2014-07-17

Family

ID=50894600

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/011654 WO2014109487A1 (ko) 2013-01-08 2013-12-16 응용프로그램 관리장치 및 관리방법

Country Status (6)

Country Link
US (1) US9348667B2 (ko)
EP (1) EP2945054A4 (ko)
JP (1) JP5981050B2 (ko)
KR (1) KR101396781B1 (ko)
CN (1) CN104919415A (ko)
WO (1) WO2014109487A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677460A (zh) * 2015-12-28 2016-06-15 小米科技有限责任公司 应用程序处理方法以及装置
CN113630424A (zh) * 2021-09-15 2021-11-09 上海哔哩哔哩科技有限公司 WebRTC通信方法及***

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256454B (zh) * 2020-10-30 2023-05-12 上海哔哩哔哩科技有限公司 消息延时处理方法和***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100652021B1 (ko) * 2005-07-26 2006-12-01 한국전자통신연구원 무선 인터넷 플랫폼 기반의 전자태그 정보처리 장치 및 그방법
KR101053681B1 (ko) 2010-05-19 2011-08-02 계영티앤아이 (주) 사용자 단말 및 이의 소프트웨어 관리제어방법 및 장치
KR20120003088A (ko) * 2010-07-02 2012-01-10 삼성전자주식회사 결정적 프로그레스 인덱스를 이용한 스레드 프로그레스 트래킹 방법 및 장치
KR101164289B1 (ko) * 2008-04-04 2012-07-09 에스케이플래닛 주식회사 웹 활동 추출 시스템 및 방법
KR20120089924A (ko) * 2010-12-27 2012-08-16 에스케이텔레콤 주식회사 M2m 어플리케이션의 api 함수 호출 정책 관리 시스템 및 그 구현 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301326A (en) * 1991-09-24 1994-04-05 Microsoft Corporation Method and system for controlling the execution of an application program
US6237024B1 (en) * 1998-03-20 2001-05-22 Sun Microsystem, Inc. Method and apparatus for the suspension and continuation of remote processes
US6473820B1 (en) * 1998-12-08 2002-10-29 Sun Microsystems, Inc. Method and apparatus for user level monitor implementation
US6338084B1 (en) * 1998-12-17 2002-01-08 International Business Machines Corporation Method for process-specific exchange of data between machines in a network
JP2003067200A (ja) * 2001-08-28 2003-03-07 Sony Corp 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びに記憶媒体
US7243267B2 (en) * 2002-03-01 2007-07-10 Avaya Technology Llc Automatic failure detection and recovery of applications
US20030217287A1 (en) * 2002-05-16 2003-11-20 Ilya Kruglenko Secure desktop environment for unsophisticated computer users
US7216346B2 (en) * 2002-12-31 2007-05-08 International Business Machines Corporation Method and apparatus for managing thread execution in a multithread application
US7784059B2 (en) * 2006-08-22 2010-08-24 Microsoft Corporation Stateless asynchronous message transmission
CN102117240B (zh) * 2009-12-31 2016-01-20 腾讯科技(深圳)有限公司 一种获取进程阻塞信息的方法及装置
US8843684B2 (en) * 2010-06-11 2014-09-23 International Business Machines Corporation Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration
CN102103676B (zh) * 2011-02-28 2013-09-25 南京邮电大学 一种基于进程间继承关系的爪哇程序进程守护方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100652021B1 (ko) * 2005-07-26 2006-12-01 한국전자통신연구원 무선 인터넷 플랫폼 기반의 전자태그 정보처리 장치 및 그방법
KR101164289B1 (ko) * 2008-04-04 2012-07-09 에스케이플래닛 주식회사 웹 활동 추출 시스템 및 방법
KR101053681B1 (ko) 2010-05-19 2011-08-02 계영티앤아이 (주) 사용자 단말 및 이의 소프트웨어 관리제어방법 및 장치
KR20120003088A (ko) * 2010-07-02 2012-01-10 삼성전자주식회사 결정적 프로그레스 인덱스를 이용한 스레드 프로그레스 트래킹 방법 및 장치
KR20120089924A (ko) * 2010-12-27 2012-08-16 에스케이텔레콤 주식회사 M2m 어플리케이션의 api 함수 호출 정책 관리 시스템 및 그 구현 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2945054A4

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677460A (zh) * 2015-12-28 2016-06-15 小米科技有限责任公司 应用程序处理方法以及装置
CN105677460B (zh) * 2015-12-28 2019-07-23 小米科技有限责任公司 应用程序处理方法以及装置
CN113630424A (zh) * 2021-09-15 2021-11-09 上海哔哩哔哩科技有限公司 WebRTC通信方法及***

Also Published As

Publication number Publication date
JP2016505987A (ja) 2016-02-25
EP2945054A1 (en) 2015-11-18
KR101396781B1 (ko) 2014-05-20
US9348667B2 (en) 2016-05-24
CN104919415A (zh) 2015-09-16
US20160004576A1 (en) 2016-01-07
EP2945054A4 (en) 2016-10-05
JP5981050B2 (ja) 2016-08-31

Similar Documents

Publication Publication Date Title
JP6571277B2 (ja) 端末アプリケーションをロードする方法及び装置
CN109669758A (zh) 服务器资源的调配方法、装置、设备及存储介质
CN106897299B (zh) 一种数据库访问方法及装置
CN110457197B (zh) 服务测试方法、装置、计算机设备和存储介质
CN104468638B (zh) 一种分布式数据处理方法及***
CN101419579A (zh) 一种在动态随机存储器上提供服务质量的装置和方法
CN111104208A (zh) 进程调度管理方法、装置、计算机设备及存储介质
US8832215B2 (en) Load-balancing in replication engine of directory server
WO2014109487A1 (ko) 응용프로그램 관리장치 및 관리방법
CN101169737A (zh) 任务切换控制方法以及计算机***
CN111464331B (zh) 一种线程创建的控制方法、***及终端设备
JP2008107966A (ja) 計算機システム
US20180270306A1 (en) Coexistence of a synchronous architecture and an asynchronous architecture in a server
CN111052083A (zh) 用于在启动期间管理服务的调度的方法和装置
CN111143063B (zh) 任务的资源预约方法及装置
CN112671945A (zh) 管理ip代理池的方法、装置、计算机设备及存储介质
CN109240914B (zh) 安全测试任务的监控管理方法及终端设备
CN115629809A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN112604267B (zh) 游戏处理方法、***、装置、设备和介质
CN115098272A (zh) Gpu资源调度方法、调度器、电子设备和存储介质
CN108491300A (zh) 一种基于分布式的日志处理***
WO2024025143A1 (ko) 성능 정보를 고려하는 메모리 관리 방법 및 장치
CN111008375B (zh) 一种数据保护方法及装置
CN111831411B (zh) 任务处理方法、装置、存储介质及电子设备
CN114356227B (zh) 固态硬盘指令处理方法、装置、***与可读存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13871170

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015551594

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14759912

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2013871170

Country of ref document: EP