• Title/Summary/Keyword: 쓰레드

Search Result 290, Processing Time 0.025 seconds

Design and Implementation of a Multi-Process/Multi-Thread Model for the COSMOS Object Storage System (COSMOS/MT: 객체 저장 시스템 COSMOS를 위한 멀티프로세스/멀티쓰레드 모델의 설계 및 구현)

  • 김이른;이영구;장지웅;황규영
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2001.04b
    • /
    • pp.169-171
    • /
    • 2001
  • 다수 사용자를 지원하는 프로그램에서 쓰레드의 중요성이 증가함에 따라 데이터베이스 관리 시스템의 하부구조인 객체 저장 시스템들도 쓰레드를 이용하도록 확장되고 있다. 기존의 프로세스/쓰레드 모델는 멀티프로세스/단일쓰레드 모델, 단일프로세스/멀티쓰레드 모델, 그리고 멀티프로세스/멀티쓰레드 모델로 분류할 수 있다. 이 중 멀티프로세스/멀티쓰레드 모델은 다른 모델들을 포괄할 수 있는 일반적인 형태의 구조이다. 본 논문에서는 멀티프로세스/단일쓰레드 모델로 개발된 객체 저장 시스템 COSMOS를 멀티프로세스/멀티쓰레드 모델로 확장한 COSMOS/MT를 설계하고 구현한다. 먼저 COSMOS의 트랜잭션 컨텍스트를 분석하여 공유 트랜잭션 컨텍스트와 비공유 트랜잭션 컨텍스트로 분류 후, 각 트랜잭션 컨텍스트의 유지방법을 제안한다. 그리고, 구현한 모델의 유용성을 보이기 위하여 TPC-A 벤치마크에 대해 성능 평가를 수행한다. 실험결과 1000개의 클라이언트를 서비스하는 경우 COSMOS/MT가 COSMOS에 비하여 처리율이 최고 5배까지 향상됨을 보인다. 마지막으로, 멀티프로세스/멀티쓰레드 모델의 성능을 결정하는 중요 요소인 프로세스 당 쓰레드 개수에 따른 성능 변화에 대하여 고찰하고, 실험을 통하여 프로세스당 쓰레드 개수에 따른 시스템의 성능 변화를 보인다.화를 보인다.

  • PDF

Prediction-based Dynamic Thread Pool Model for Efficient Resource Usage (효율적인 자원 사용을 위한 예측기반 동적 쓰레드 풀 기법)

  • 정지훈;한세영;박성용
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.31 no.3_4
    • /
    • pp.213-223
    • /
    • 2004
  • A dynamic thread pool model is one of a multi-thread server programming model that handles many requests from users concurrently. In most cases, bounded thread pool model is used for server programming. Because it reduces a thread overhead by creating a pool of threads in advance, it ran response more quickly to users' requests. But this model always occupies system resource when there are small amount of requests, which prevents other applications from using available resources. In this paper, for the utilization of occupied but unused resources, we proposed and implemented a prediction-based dynamic thread pool scheme using customized exponential average. From the experiments, we show that this scheme outperforms hounded thread pool model and uses small resources.

Implementing Socket Polling Server in Java (자바 언어를 이용한 소켓폴링 서버구현)

  • Sohn, Kang-Min;Kang, Tae-Gun;Ham, Ho-Sang
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2002.11a
    • /
    • pp.115-118
    • /
    • 2002
  • 소켓 프로그래밍(socket programming) 인터페이스를 지원하는 C/C++, perl, python 과 같은 언어들은 폴링(polling) 기능을 갖는 select() 함수를 제공한다. 이 select()함수를 이용할 경우, 단일 쓰레드(또는 프로세스)로 다중의 클라이언트 요청을 처리할 수 있다. 최근 네트워크 프로그래밍 분야에서 주목받는 자바 언어의 경우, 최신 JDK 1.4 의 비동기 입출력 패키지에서 select()함수를 제공하고 있으나, JDK 1.3을 포함한 그 이하의 버전에서는 아직까지 이 함수를 제공하지 않고 있다. 일반적으로 다중 쓰레드를 이용하여 소켓서버 응용프로그램을 개발할 경우, 코드가 단순해지고 응답이 빠른 장점이 있는 반면에 네트워크 연결이 증가할수록 다수의 쓰레드를 관리하는 일이 CPU에 큰 부담이 된다. 반면에 소켓폴링(socket polling)을 사용할 경우, 이러한 연결 유지에 대한 부담이 줄어드는 대신, 다중 쓰레드를 이용하는 방법에 비하여 구현이 어렵다. 본 논문에서는 다양한 시뮬레이션 환경에서 세가지 소켓 프로그래밍 모델에 대하여 그 성능을 비교평가 하였다. 이 세가지 모델은 단순 다중 쓰레드 모델(typical multi-thread model), 단일 쓰레드 소켓폴링 모델(socket polling with single-thread model), 다중 쓰레드 소켓폴링 모델(socket polling with multi-threadmodel)이다. 본 논문에서는 다중 쓰레드 소켓폴링 모델을 제안하고 JDK 1.3.1을 이용하여 구현하였다. 이 모델의 경우 복잡한 구조에도 불구하고 단순 다중 쓰레드 모델와 유사하거나 더 나은 성능을 보여주었다. 또한 동일한 용량의 쓰레드 풀(thread pool)을 사용하더라도 단순 다중 쓰레드 모델보다 더 많은 수의 클라이언트를 수용할 수 있는 장점이 있다. 이러한 결과를 바탕으로 본 연구팀에서 수행중인 MoIM-Messge서버의 네트워크 모듈로 다중 쓰레드 소켓폴링 모델을 적용하였다.

  • PDF

Design and Implementation of a Web Server Using a Learning-based Dynamic Thread Pool Scheme (학습 기반의 동적 쓰레드 풀 기법을 적용한 웹 서버의 설계 및 구현)

  • Yoo, Seo-Hee;Kang, Dong-Hyun;Lee, Kwon-Yong;Park, Sung-Yong
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.16 no.1
    • /
    • pp.23-34
    • /
    • 2010
  • As the number of user increases according to the improvement of the network, the multi-thread schemes are used to process the service requests of several users who are connected simultaneously. The static thread pool scheme has the problem of occupying a static amount of system resources. On the other hand, the dynamic thread pool scheme can control the number of threads according to the users' requests. However, it has disadvantage that this scheme cannot react to the requests which are larger than the maximum value assigned. In this paper, a web server using a learning-based dynamic thread pool scheme is suggested, which will be running on a server programming of a multi-thread environment. The suggested scheme adds the creation of the threads through the prediction of the next number of periodic requests using Auto Regressive scheme with the web server apache worker MPM (Multi-processing Module). Unlike previous schemes, in order to set the exact number of the necessary threads during the unchanged number of work requests in a certain period, K-Nearest Neighbor algorithm is used to learn the number of threads in advance according to the number of requests. The required number of threads is set by comparing with the previously learned objects. Then, the similar objects are selected to decide the number of the threads according to the request, and they create the threads. In this paper, the response time has decreased by modifying the number of threads dynamically, and the system resources can be used more efficiently by managing the number of threads according to the requests.

Synchronization between Real-time threads and Java threads in embedded real-time systems. (내장형 실시간 시스템에서의 실시간 쓰레드와 자바 쓰레드간의 동기화)

  • 임종구;박성호;강순주
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2002.04b
    • /
    • pp.439-441
    • /
    • 2002
  • 내장명 실시간 시스템을 위한 프로그래밍의 방법으로. 플랫폼에 의존적이며 실시간성이 고려되어야 하는 태스크는 실시간 쓰레드를 이용하고, GUI나 인터넷통신과 같은 실시간성이 고려되지 않는 태스크는 자바 쓰레드를 이용해서 프로그래밍하는 것이 편리하다. 이런 경우, 서로 다른 이들 쓰레드간에 동기화를 위한 방법이 필요하게 된다. 따라서, 본 논문에서는 실시간 쓰레드와 자바 쓰레드간의 동기화를 위만 방법을 제시하고 이를 위한 API(Application Programming Interface)를 설계 및 구현한다 즉, 실시간 운영체제인 RT-Linux상에서 수행되는 실시간 쓰레드들이 RT-FIFO와 네이티브 IPC(Inter-process communication) 메커니즘을 사용해 자바 쓰레드들과 동기화 되어질 수 있게 구현한 것이다. 구현된 이 네이티브 IPC API들은 재사용 가능한 공유 라이브러리와 클래스파일로 제작되어 활용될 수도 있다.

  • PDF

A Thread Monitoring System for Java (Java 언어를 위한 쓰레드 모니터링 시스템)

  • Moon Se-Won;Chang Byeong-Mo
    • The KIPS Transactions:PartA
    • /
    • v.13A no.3 s.100
    • /
    • pp.205-210
    • /
    • 2006
  • To assist developing robust multithreaded software, we develop a thread monitoring system for multithreaded Java programs, which can trace or monitor running threads and synchronization. We design a monitoring system which has options to select interesting threads and synchronizations. Using this tool, programmers can monitor only interesting threads and synchronization in more details by selecting options. It also provides profile information after execution, which summarizes behavior of running threads and synchronizations during execution. We implement the system based on code inlining, and presents some experimental results.

Performance Evaluation of ARX Thread Library in Java Virtual Machine (자바 가상 머신을 통한 ARX 쓰레드 라이브러리의 성능 측정)

  • 서양민;박정근;김기정;홍기정
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 1998.10a
    • /
    • pp.157-159
    • /
    • 1998
  • 쓰레드는 프로그램의 동시성을 표현하는데 적합하고, 프로세서 모델에 비하여 동기화나 문맥교환의 비용을 줄일 수 있어 기존의 멀티 프로세스 프로그래밍을 대체하고 있다. 운영체계에서 멀티쓰레팅 환경의 제공은 이제 필수적이며, 좋은 성능을 위해서는 운영체계의 지원이 필요하다. ARX 실시간 운영체계는 유저 레벨 멀티쓰레팅을 지원하고 있으며 쓰레드의 성능을 높이고 유저 레벨에서 실시간 스케쥴링이 가능하도록 하기 위하여 동적 가상 쓰레드 바인딩(dynamic virtual stack binding)과 스케쥴링 이벤트 업콜(scheduling event upcall)등의 기법을 지원한다. 본 논문에서는 자바 가상 머신을 통하여 ARX 운영체계의 쓰레드 라이브러리의 성능을 측정하고 다른 운영체계의 멀티쓰레드 라이브러리와 성능 비교를 하였다. 실험결과 ARX 가 제공하는 쓰레드 라이브러리가 다른 운영체계에 비해 우수한 성능을 보여줌을 확인하였다.

  • PDF

A Study on Enhancement of Multithreaded Dependence Graphs for Concurrent Java Program Slicing (병행 자바 프로그램 슬라이싱을 위한 다중쓰레드 종속성 그래프의 개선에 대한 연구)

  • Ryu, Hee-Yeol;Kim, Eun-Jung
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2002.11c
    • /
    • pp.2055-2058
    • /
    • 2002
  • 병행 자바 프로그램의 슬라이싱 방법은 Jianjun Zhao에 의해 제안된 다중 쓰레드 종속성 그래프를 이용하여 Susan Horwitz, Thomas Reps, David Binkly가 제안한 2단계 마킹 알고리즘을 적용하여 슬라이스를 계산한다. 다중 쓰레드 종속성 그래프를 이용하는 방법은 쓰레드동기화 문장들 사이의 동기화 종속성과 서로 다른 쓰레드에 존재하는 공유객채들 사이의 통신 종속성 관계를 표현하여 병행 자바 프로그램의 슬라이스를 계산할 수 있는 것이다. 그러나 프로그램 종속성 그래프를 기반으로 하기 때문에 클래스 맴버 변수들에 대한 formal_in, formal_out, actual_in, actual_out정점들의 추가로 그래프의 복잡도가 증가하고 또한 부정확한 슬라이스 계산을 위한 다중 쓰레드 종속성 그래프를 개선하여 제안한다. 제안하는 개선된 다중 쓰레드 종속성 그래프는 주어진 슬라이싱 기준에 대한 2단계 마킹 알고리즘을 적용한 결과 정확한 슬라이스 계산과 복잡도 개선을 확인하였다.

  • PDF

A Java M: N Thread Mapping Model for Guaranteeing Soft Real-Time (연성 실시간을 보장하는 자바 M: N 쓰레드 맵핑 모델)

  • 양영록;손봉기;김명준
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.10a
    • /
    • pp.301-303
    • /
    • 2003
  • 사용자 쓰레드와 시스템 쓰레드간의 1:1 맵핑 모델은 병렬성을 지원하는 장점이 있고, M: N 맵핑은 병렬성 지원과 빠른 문맥교환의 장점이 있다. 리눅스 자바 가상 머신에서는 1:1 맵핑 모델만을 지원한다. 연성 실시간을 보장하기 위해서는 쓰레드간의 문맥교환을 최소화하여 성능 향상시킬 필요가 있다. 이 논문에서는 자바 어플리케이션 레벨에서 경량 프로세스(Light Weight Process, LWP) 개념을 도입하여 리눅스 자바 가상 머신에서 M: N 맵핑을 지원하는 자바 쓰레드 모델을 제안한다. 제안한 모델은 그린 쓰레드 (Green Thread)의 빠른 문맥교환과 네이티브 쓰레드(Native Thread)의 병렬성 지원 장점을 혼합한 것으로 빠른 처리속도와 자바 플랫폼의 독립성을 그대로 유지할 수 있다. 또한, MTR-LS 알고리즘을 경량 프로세스 스케줄링에 채택함으로서, 자바 응용프로그램의 연성 실시간을 보장한다. 1:l 및 M:1 맵핑 모델과의 성능 비교를 통해 제안한 모델이 좋은 성능과 연성 실시간을 보장한다는 것을 보인다.

  • PDF

User-Level Threads for the ARX Real-Time Operating System (ARX 실시간 운영체계를 위한 사용자 레벨 쓰레드)

  • Seo, Yang-Min;Park, Jung-Keun;Hong, Seong-Soo
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 1998.10a
    • /
    • pp.65-67
    • /
    • 1998
  • 내장 실시간 시스템이 높은 우선순위의 비동기적 이벤트를 적시에 처리하면서 필수적으로 적은 비용의 선점 다중쓰레드를 지원해야한다. 사용자 레벨 쓰레드는 커널 레벨 쓰레드 보다 적은 비용의 유연한 추상적 기법들을 제공하지만, 기존의 실시간 시스템에서는 스케줄링과 시그날(signal) 처리가 단순하다는 이류로 커널 레벨 쓰레드가 선호 되어왔다. 본 논문에서는 내장 실시간 시스템에 적합한 새로운 사용자 레벨 다중 쓰레드 방식을 제안한다. 이 기법은 가상 쓰레드(virtual threads)와 개선된 스케줄링 이벤트 업콜(scheduling event upcall) 메카니즘을 기반으로 한다. 가상 쓰레드는 사용자 레벨 쓰레드에게 커널 레벨의 실행 환경을 제공할 수 있도록 사용자 레벨 쓰레드를 커널 레벨로 형상화한 것이다. 이 쓰레드는 필요에 의해 잠시동안 사용자 레벨 쓰레드에 묶이는 소동적인 존재이다. 스케줄링 이벤트 업콜 메카니즘은 쓰레드 블록킹과 타이머 만기와 같은 커널 이벤트를 유저 프로세서에게 전달할 수 있게 한다. 본 논문의 개선된 업콜 방식은 scheduler activation과 시그날과 같은 전통적인 업콜 구조에서 예측하기 힘든 요소들을 배제했다. 순간적인 시스템의 과부하 상황에서도 이벤트를 놓치지 않으면서 커널과 유저 프로세서의 비싼 동기화 작업들을 피할 수 있도록 하는 잠금(lock)이 필요 없는 이벤트 큐를 상용한다. 본 기법은 서울대학교 실시간 운영체계 실험실에서 구현한 ARX위에 완벽하게 구현되었다. ARX 사용자 레벨 쓰레드가 사용자 레벨 쓰레드의 장점을 손상하지 않으면서 솔라리스와 윈도즈98과 같은 상용 운영체제의 커널 쓰레드보다 성능이 우수함을 실험적 비교에 의해서 입증한다.분에서 uronic acid를 분리동정하였을 때 점미는 0.90%, 백미는 0.66%, 흑미는 1.8%로서 흑미에서 uronic acid 함량이 두 배 이상으로 나타났다. 흑미의 uronic acid 함량이 가장 많이 용출된 분획은 sodium hydroxide 부분으로서 hemicellulose구조가 polyuronic acid의 형태인 것으로 사료된다. 추출획분의 구성단당은 여러 곡물연구의 보고와 유사하게 glucose, arabinose, xylose 함량이 대체로 높게 나타났다. 점미가 수가용성분에서 goucose대비 용출함량이 고르게 나타나는 경향을 보였고 흑미는 알칼리가용분에서 glucose가 상당량(0.68%) 포함되고 있음을 보여주었고 arabinose(0.68%), xylose(0.05%)도 다른 종류에 비해서 다량 함유한 것으로 나타났다. 흑미는 총식이섬유 함량이 높고 pectic substances, hemicellulose, uronic acid 함량이 높아서 콜레스테롤 저하 등의 효과가 기대되며 고섬유식품으로서 조리 특성 연구가 필요한 것으로 사료된다.리하였다. 얻어진 소견(所見)은 다음과 같았다. 1. 모년령(母年齡), 임신회수(姙娠回數), 임신기간(姙娠其間), 출산시체중등(出産時體重等)의 제요인(諸要因)은 주산기사망(周産基死亡)에 대(對)하여 통계적(統計的)으로 유의(有意)한 영향을 미치고 있어 $25{\sim}29$세(歲)의 연령군에서, 2번째 임신과 2번째의 출산에서 그리고 만삭의 임신 기간에, 출산시체중(出産時體重) $3.50{\sim}3.99kg$사이의 아이에서 그 주산기사망률(周産基死亡率)이 각각 가장 낮았다. 2. 사산(死産)과 초생

  • PDF