Claims (3)
사용자 어드레스 영역 및 시스템 어드레스 영역으로 이루어진 어드레스 영역을 갖는 메모리 시스템에서 운용되는 멀티 타스킹, 멀티 쓰레드 운영체제에 의해 제어되는 데이타 처리시스템에서 사용자 어드레스 영역에 저장되어 시스템 자원을 할당받아 복수의 쓰레드를 가지고 있으며 예외가 발생했을 때 쓰레드 단위로 예외를 처리하는 프로세스, 사용자 어드레스 영역에서 상기 프로세스를 선택적으로 실행하고 시스템 어드레스 영역에서 운영체제를 선택적으로 실행하는 프로세서, 상기 프로세스의 쓰레드에서 예외가 발행했을 때 상기 예외가 하드웨어 인터럽트인지를 판별하는 하드웨어 인터럽트 테이블, 상기 예외가 커널 예외인지 사용자 예외인지를 판별하여 디스패치하는 커널 예외 디스패쳐, 커널 예외이면 이를 처리하는 시스템 예외 처리기로 이루어진 쓰레드 예외처리 시스템에 있어서, 상기 프로세스는 가장 최근에 처리한 예외를 저장하고 있는 예외 레코드와 상기 예외를 처리한 예외 처리기의 주소를 저장하고 있는 예외 처리기 포인터를 포함하고 있는 쓰레드; 사용자 어드레스 영역에서 발생하는 예외를 처리하는 예외처리 루틴들을 저장하고 있는 예외처리 루틴 테이블; 상기 커널 예외 디스패쳐에서 예외가 사용자 예외일 때 이를 넘겨받아 상기 쓰레드의 예외 레코드에 저장된 예외와 비교하여 같으면 상기 쓰레드의 예외 처리기 포인터를 구동하고, 다르면 상기 예외처리 루틴 테이블에서 해당되는 예외를 찾게 하고, 상기 예외처리 루틴 테이블에도 없으면 시스템 예외처리기를 구동하여 예외를 처리하게 하는 사용자 예외 더스패쳐를 포함함을 특징으로 하는 쓰레드 예외처리 시스템.In a data processing system controlled by a multi-threaded, multi-threaded operating system operating in a memory system having an address area composed of a user address area and a system address area, the system resource is allocated to system resources and has a plurality of threads. A process that handles exceptions on a per-thread basis when an exception occurs, a processor that selectively runs the process in the user address area and optionally runs an operating system in the system address area, and when the exception is issued by a thread of the process Hardware interrupt table to determine whether it is a hardware interrupt, a kernel exception dispatcher that determines and dispatches whether the exception is a kernel exception or a user exception, and a system exception processing that processes the kernel exception. In the thread exception handling system of the process is the thread that contains the most recently processed the exception handler pointer that stores the exception and stores the address of the exception handler to process the exception as the exception record in the; An exception handling routine table that stores exception handling routines for handling exceptions occurring in the user address area; When the exception is a user exception in the kernel exception dispatcher, the exception is passed to the exception stored in the thread's exception record, and if it is the same, the exception handler pointer of the thread is found. If it is different, the exception handling routine table is found. And a user exception dispatcher for driving an exception by operating a system exception handler if not present in the exception handling routine table.
제1항에 있어서, 상기 예외처리 루틴 테이블은 쓰레드의 고유번호(ID)를 나타내는 쓰레드 고유번호; 예외의 종류를 나타내는 예외; 예외 처리를 하는 예외처리기를 구성요소로 하는 쓰레드 예외처리 시스템.The system of claim 1, wherein the exception handling routine table comprises: a thread unique number representing a unique number (ID) of a thread; An exception indicating the type of exception; A thread exception handling system whose component is an exception handler that handles exceptions.
멀티 타스킹, 멀티 쓰레드 운영체제에 의해 제어되는 데이타 처리 시스템에서의 쓰레드 예외처리 방법에 있어서, 쓰레드에서 정상적으로 작업을 수행하다가 예외가 발생했을 때 프로세서가 운영체제에게 예외가 발생했음을 알려주는 과정; 상기에서 발생한 예외가 하드웨어 인터럽트인지 커널 예외인지 아니면 사용자 예외인지를 판별하는 과정; 사용자 예외이면 이를 쓰레드에서 가장 최근에 처리된 예외가 저장되어 있는 쓰레드의 예외 레코드와 비교하는 과정; 상기 비교 과정에서 같으면 가장 최근에 처리된 예외를 처리하는 예외 처리기의 포인터가 저장되어 있는 쓰레드의 예외 처리기 포인터를 액세스하여 예외를 처리하고, 상기 비교 과정에서 같지 않으면 예외 처리 루틴 테이블에서 해당되는 예외를 찾아, 해당 예외를 상기 쓰레드의 예외 레코드에 기록하고 예외 처리기의 포인터는 상기 쓰레드의 예외 처리기 포인터에 기록한 후 예외를 처리하고, 상기 예외 처리 루틴 테이블에 해당되는 예외가 존재하지 않으면 시스템 예외 처리기에서 예외를 처리하는 과정을 포함함을 특징으로 하는 쓰레드의 예외 처리 방법.A thread exception handling method in a data processing system controlled by a multitasking and multithreaded operating system, the method comprising: informing a operating system of an exception when an exception occurs while a thread normally executes a task; Determining whether the generated exception is a hardware interrupt, a kernel exception, or a user exception; If it is a user exception, comparing it with the exception record of the thread that stores the most recently handled exception in the thread; If the comparison is the same, the exception handler pointer of the thread where the exception handler that handles the most recently handled exception is stored is accessed to handle the exception. If the comparison is not the same, the exception is handled in the exception handling routine table. Locates the exception in the thread's exception record, and the exception handler's pointer writes to the thread's exception handler pointer to handle the exception, and if no exception exists in the exception handling routine table, the system exception handler Exception handling method of a thread, characterized in that it comprises a process of processing.
※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.※ Note: The disclosure is based on the initial application.