• Title/Summary/Keyword: 스레드

Search Result 277, Processing Time 0.026 seconds

Design of Translator for generating Java Bytecode in Distributed environment from Thread code of Multithreaded Models (다중스레드 모델의 스레드 코드를 분산환경에서 실행 가능한 자바 바이트 코드로 변환하기 위한 번역기 설계)

  • 김기태;조선문;고훈준;이갑래;유원희
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2001.04a
    • /
    • pp.49-51
    • /
    • 2001
  • 다중스레드 모델은 데이터플로우 모델의 내부적인 병렬성, 비동기적 자료 가용성과 폰 노이만 모델의 실행 지역성을 결합하여 병렬처리 시스템의 성능을 향상시켰다. 이 모델은 프로그램의 실행을 위하여 컴파일러에 의해 생성된 스레드를 수행하며, 스레드의 생성 방법에 따라 자원 활용 빈도나 동기화 빈도와 같은 스레드의 질이 결정되는 특징이 있다. 하지만 다중스레드 모델은 실행 모델이 특정 플랫폼에 제한되는 단점을 가지고 있다. 이에 반해 자바는 플랫폼에 독립거인 특징을 가지고 있어 다중스레드 모델의 스레드 코드를 실행 단위인 자바 언어로 변환하여 다중스레드 모델의 특징을 여러 플랫폼에서 수정 없이 사용할 수 있게 된다. 자바는 분산된 환경에 적합한 언어이기 때문에 본 논문에서 제안한 번역기에 의해 다중스레드 모델의 스레드 코드를 자바 언어로 변환한 후 자바의 원격 매소드 호출을 이용하여 다중스레드 모델의 스레드 코드를 분산된 환경에서 처리하였다. 본 논문은 다중스레드 코드가 로컬 컴퓨터에서 여러 스레드를 생성하여 처리하던 것을 자바의 원격 메소드 호출을 이용하여 분산된 환경에서 실행 가능하도록 한다. 다중스레드 모델의 스레드 코드를 분산 환경에서 실행 가능한 자바 바이트 코드로 변환하는 번역기를 설계, 구현한다.

The thread scheduling method based on the priority of threads on the multithread models (다중 스레드 모델에서 스레드 우선 순위에 따른 스레드 스케쥴링 기법)

  • 이정호;고훈준;양창모;유원희
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2000.10c
    • /
    • pp.659-661
    • /
    • 2000
  • 폰 노이만 모델의 지역성과 데이터플로우 모델의 병렬성을 결합하여 등장한 모델이 다중 스레드 모델이다. 다중스레드 모델의 목적은 통신시간과 계산 시간을 겹침으로써 프로세서의 활용도를 높이고자 하는 것이다. 기존의 대부분의 다중 스레드 모델의 스레드 스케쥴링 기법은 FIFO 혹은 FILO 방식을 사용하고 있다. 본 논문에서는 프로세서의 활용도를 높이고 프로세서의 휴지 시간을 줄이기 위해서 원격 함수 호출 혹은 원격 메모리 참조 기능의 스레드(이후로는 원격 스레드라 부름)와 계산 기능의 스레드가 동시에 활성화되었을 때 원격 스레드들을 먼저 수행하는 것이 프로세서의 지연 시간을 줄이고 병렬성을 높이는 데 효과적임을 제안한다. 이것을 구현하기 위해서 프레임 내부의 지속 벡터(CV)를 CCV(call continuation vector)와 LCV(local continuation vector) 둘로 구분하였다. 스레드가 활성화될 때 CCV에는 원격 스레드들을, LCV에는 계산 스레드들을 저장한 후, CCV에 저장된 스레드들을 먼저 수행하고 LCV를 나중에 수행한다.

  • PDF

Design of Translator for generating Java Bytecode from Thread code of Multithreaded Models (다중스레드 모델의 스레드 코드를 자바 바이트 코드로 변환하기 위한 번역기 설계)

  • 김기태;이갑래;양창모;유원희
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2000.04a
    • /
    • pp.68-70
    • /
    • 2000
  • 다중스레드 모델은 데이터플로우 모델의 내부적인 병렬성, 비동기적 자료 가용성과 폰 노이만 모델의 실행 지역성을 결합하여 병렬처리 시스템의 성능을 향상 시켰다. 이 모델은 프로그램의 실행을 위하여 컴파일러에 의해 생성된 스레드를 수행하며, 스레드의 생성 방법에 따라 자원 활용 빈도나 동기화 빈도와 같은 스레드의 질이 결정 되는 특징이 있다. 하지만 다중스레드 모델은 실행 모델이 특정 플랫폼에 제한되는 단점을 가지고 있다. 이에 반해 자바는 플랫폼에 독립적인 특징을 가지고 있어 다중스레드 모델의 스레드 코드를 실행 단위인 자바 언어로 변환하면 다중스레드 모델의 특징을 여러 플랫폼에서 수정 없이 사용할 수 있게 된다. 자바는 원시 언어를 중간 언어 형태의 바이트 코드로 변환하여 각 아키텍처에 맞게 설계된 자바 가상 머신이 설치된 시스템에서 자바 언어를 수행한다. 이러한 자바 언어의 바이트 코드는 번역기의 중간 언어와 같은 역할을 수행하고, 자바 가상 머신은 번역기의 후위부와 같은 역할을 한다. 본 논문은 다중스레드 코드가 플랫폼에 독립적인 특성을 갖출 수 있도록 다중스레드 코드를 자바 가상 머신에서 실행 가능하도록 한다. 즉, 다중스레드 모델의 스레드 코드를 자바 바이트 코드로 변환하는 번역기를 설계, 구현하고, 자바 가상 머신의 실행을 분석한다.

  • PDF

A History-based Dynamic Thread Pool Method for Reducing Thread Creation and Removal Overheads (스레드 생성 및 삭제 오버헤드를 줄이기 위한 히스토리 기반의 동적 스레드풀 방법)

  • Oh, Sam-Kweon;Kim, Jin-Sub
    • Journal of Advanced Navigation Technology
    • /
    • v.17 no.2
    • /
    • pp.189-195
    • /
    • 2013
  • In an environment with frequent job requests and short job processing times, thread pool methods are frequently used to increase throughput by reducing overheads due to thread creation and removal. A watermark method normally reduces unnecessary uses of resources by keeping the number of threads less than those needed in the maximum. In the absence of available threads, however, it processes jobs by creating additional threads up to a specified limit so that the system overhead increases due to creation of threads, which results in throughput degradation. This paper presents a history-based dynamic method that alleviates throughput degradation. By estimating and maintaining the number of threads needed for jobs, it reduces overheads due to thread creation and removal. According to experiments, compared to the watermark thread pool method, it shows average 33% increase in the number of threads kept and average 62% reduction in the number of threads created, which results in 6% increase in terms of system throughput.

A Thread Partitioning of Conditional Expression of Non-Strict Programs for Multithreaded Models (다중스레드 모델을 위한 Non-Strict 프로그램의 조건식 스레드 분할)

  • 조선문;김기태;고훈준;이갑래;유원희
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2001.04a
    • /
    • pp.67-69
    • /
    • 2001
  • 다중스레드 모델은 긴 메모리 참조 지체 시간과 동기화의 문제점을 해결할 수 있다는 점에서 대규모 병렬 시스템에 매우 효과적이다. 다중스레드 병렬기계를 위하여 Non-Strict 함수 프로그램을 번역할 때 가장 중요한 것은 순차적으로 수행될 수 있는 부분을 찾아내어 스레드로 분할하는 것이다. 스레드 분할의 목적은 스레드의 크기를 크게 만들어 Non-Strict 함수 프로그램이 수행되는 동안 발생하는 동기화 횟수와 스레드간의 문맥 전환 횟수를 최소화하는 것이다. 본 논문에서는 Non-Strict 함수 프로그램을 보다 큰 스레드로 분할하는 조건식의 스레드 분할 알고리즘을 제안한다.

The Enhanced Thread Partitioning of Conditional Expressions of Non-Strict Programs (Non-Strict 프로그램 조건식의 향상된 스레드 분할)

  • Jo, Sun-Moon;Yang, Chang-Mo;Yoo, Weon-Hee
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2000.04a
    • /
    • pp.277-280
    • /
    • 2000
  • 다중스레드 병렬기계(multithreaded parallel machine)를 위하여 함수 프로그램을 번역할 때 스레드 분할이란 수행 순서를 번역시간에 알 수 있어 정적 스케줄링이 가능한 프로그램의 부분을 식별하여 스레드로 모으는 작업을 말한다. 조건식에서 연산의 수행 순서는 판단식 -> 참실행식 또는 판단식 -> 거짓실행식이므로 번역시간에는 수행순서를 결정할 수 없다. 따라서 기존의 분할 알고리즘은 조건식의 판단식, 참실행식, 거짓실행식을 기본 블록으로 나누고 각각에 대하여 지역 분할을 적용한다. 이러한 제약은 스레드의 정의를 약간 수정하여 스레드 내에서의 분기를 허용한다면 좀더 좋은 분할을 얻을 수 있다. 스레드내에서의 분기는 병렬성을 감소시키거나 동기화의 횟수를 증가시키거나 또는 교착상태를 발생시키는 등의 스레드 분할의 기본 원칙을 어기지 않으며 오히려 스레드 길이를 증가시키거나 동기화 횟수를 줄이는 장점을 가질 수 있다. 본 논문에서는 조건식의 세 가지 기본 블록을 하나 또는 두 개의 기본 블록으로 병합함으로서 스레드 분할을 향상시키는 방법을 제안한다.

  • PDF

Exception Analysis for Multithreaded Java Programs (다중 스레드 Java 프로그램의 실행 중 처리되지 않는 예외상황을 예측하는 방법)

  • 류석영;이광근
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2001.04a
    • /
    • pp.73-75
    • /
    • 2001
  • 본 논문에서는 다중 스레드 Java 프로그램의 실행 중 처리되지 않는 예외상황을 실행 전에 미리 예측하는 분석 방법을 제안한다. Java에서는 안전성 문제 때문에 다중 스레드 사이에서 예외 상황을 발생시키지 않도록 제한하고 있는데 반해, 본 연구에서는 프로그래머가 자유롭게 다중 스레드 사이에 예외상황을 발생시킬 수 있도록 언어를 확장한 후에 그 프로그램에서 처리되지 않는 예외상황을 예측해낸다. 이 분석 방법은 다중 스레드 Java 프로그램의 각 스레드에서 동시에 수행될 수 있는 부분들을 미리 예측해내고, 이 분석 정보를 이용하여 다중 스레드 사이에서 예외상황을 발생시킬 때 처리되지 않는 예외상황을 예측한다.

Typed Separation Set Partitioning for Thread Partitioning of Non-strict functional Programs (비평가인자 함수 프로그램의 스레드 분할 향상을 위한 자료형 분리 집합 분할알고리즘)

  • Yang, Chang-Mo;Joo, Hyung-Seok;Yoo, Weon-Hee
    • The Transactions of the Korea Information Processing Society
    • /
    • v.5 no.8
    • /
    • pp.2127-2136
    • /
    • 1998
  • 비평가인자 함수 언어는 비평가인자 어의로 인하여 기존의 von Neumann 형 병렬기에서 효율적인 수행을 어렵게 하는 미세수준의 동적 스케줄링 단위로 병합하는 과정이 중요하다. 이러한 과정을 스레드 분할이라 한다. 본 논문에서는 비평가인자 함수 프로그램을 스레드로 분할하는 자료형 분리집합 분할이라는 스레드 분할 알고리즘을 제안한다. 자료형 분리 집합 분할 알고리즘은 자료형을 비교할 수 없는 입력명과 출력명 사이에는 잠재 종속이 존재할 수 없다는 사실을 이용하여 스레드 분할을 수행한다. 이 방법을 사용하면 기존의 스레드 분할 방법에서 실패하는 스레드의 병합이 가능하며, 기존의 분할 알고리즘보다 더 큰 스레드를 생성할 수 있다.

  • PDF

Design and Evaluation of Flexible Thread Partitioning System (융통성 있는 스레드 분할 시스템 설계와 평가)

  • Jo, Sun-Moon
    • Journal of Internet Computing and Services
    • /
    • v.8 no.3
    • /
    • pp.75-83
    • /
    • 2007
  • Multithreaded model is an effective parallel system in that it can reduce the long memory reference latency time and solve the synchronization problems. When compiling the non-strict functional programs for the multithreaded parallel machine, the most important thing is to find an set of sequentially executable instructions and to partitions them into threads. The existing partitioning algorithm partitions the condition of conditional expression, true expression and false expression into the basic blocks and apply local partitioning to these basic blocks. We can do the better partitioning if we modify the definition of the thread and allow the branching within the thread. The branching within the thread do not reduce the parallelism, do not increase the number of synchronization and do not violate the basic rule of the thread partitioning. On the contrary, it can lengthen the thread and reduce the number of synchronization. In the paper, we enhance the method of the partition of threads by combining the three basic blocks into one of two blocks.

  • PDF

Improvement of colored thread algorithm for network reachability test (칼라 스레드 알고리즘을 이용한 네트워크 도달성 검사)

  • Kim, Han-Kyoung;Lee, Kwang-Hui
    • Journal of Internet Computing and Services
    • /
    • v.10 no.5
    • /
    • pp.27-32
    • /
    • 2009
  • Colored thread algorithm, suggested to be used for the label switching network, needs to be modified for the packet switching network. In this paper, it is recommended to add a merged state, besides the 3 states - null, colored and transparent - which are resulted from the behaviors of extend, rewind, stall, withdraw and merge events. The original colored thread algorithm is designed to generate a new thread and extend it to the downstream direction with unknown hop count when the thread has revisited the node that was visited. It also suggested rewinding the thread to the downstream direction by the source node, instead of rewinding it upstream direction by the revisited node. If a node received multiple threads which had a same forward equivalent class, then it checks first whether the hop counts are ascending or not. If it is in ascending order, then threads are merged. Otherwise the later thread is stalled until the former thread's color is to be changed to transparent or it is removed. This idea removes the effort of generating a new thread with unknown hop count.

  • PDF