• 제목/요약/키워드: 쓰레드

검색결과 290건 처리시간 0.024초

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

  • 김이른;이영구;장지웅;황규영
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2001년도 봄 학술발표논문집 Vol.28 No.1 (B)
    • /
    • 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)

  • 정지훈;한세영;박성용
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제31권3_4호
    • /
    • pp.213-223
    • /
    • 2004
  • 본 논문에서는 다중 쓰레드 기반의 서버 프로그래밍을 위한 예측 기반의 동적 쓰레드 풀 기법을 제안하였다. 기존의 쓰레드 풀(Thread fool) 모델은 고정된 쓰레드 풀(Hounded Thread Pool)모델로, 서버에 최적화된 개수의 쓰레드를 유지하면서 다수의 요청에 대해 빠르게 응답할 수 있다는 장점이 있으나, 사용자의 접속이 적을 경우에도 고정된 시스템 자원을 점유하여야 하므로, 자원의 효율적인 사용에 문제가 있다. 이를 극복하기 위해 동적으로 쓰레드 풀의 크기를 변경하는 워터마크 쓰레드 풀 모델이 개발되었고, 본 논문에서는 이를 기반으로 지수평균을 사용하여 앞으로 필요한 쓰레드의 개수를 예측하고 쓰레드를 사전에 생성하여 더욱 효율적으로 자원을 활용하도록 하는 예측기반의 동적 쓰레드 풀 기법을 제안하였다. 제안한 기법은 사용자의 요청이 많을 경우 사용자 요청에 대한 응답시간을 빠르게 하구 요청 량이 적을 경우에는 불필요한 자원을 점유하지 않게 하여 기존의 워터마크 쓰레드 풀 모델에 비해 보다 성능이 좋고 자원을 효율적으로 활용함을 실험을 통해 확인하였다.

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

  • 손강민;강태근;함호상
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2002년도 추계학술발표논문집 (상)
    • /
    • 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)

  • 유서희;강동현;이권용;박성용
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제16권1호
    • /
    • pp.23-34
    • /
    • 2010
  • 네트워크의 발전에 따라 사용자들이 늘어나게 되면서 웹 서버들은 동시에 접속하는 다수 사용자의 서비스 요청을 처리할 수 있는 다중 쓰레드 기법을 활용하고 있다. 고정된 쓰레드 풀 기법은 고정적인 시스템 자원을 점유해야 하는 문제점이 있다. 반면에 동적으로 쓰레드 풀 기법인 워터마크 쓰레드 풀기법은 사용자의 요청량에 따라 쓰레드 수를 적절하게 조절하지만, 지정한 최대값을 넘는 요청량에 대해서는 응답이 제때에 이루이지지 않는 단점이 있다. 따라서 본 논문에서는 다양한 요청량이 존재하는 다중 쓰레드 환경의 서버 프로그래밍을 위한 학습 기반의 동적 쓰레드 풀 기법을 적용한 웹 서버를 제안한다. 제안하는 기법은 쓰레드 풀을 사용하는 웹 서버 중 아파치(Apache) worker 다중 처리 모듈(Multi processing Module)에 AR(Auto Regressive) 기법을 통해 다음 주기의 작업 요청량을 예측하고 사전에 쓰레드를 생성한다. 기존 기법과 달리, 일정주기의 증감 추세가 없는 작업 요청량에도 필요한 쓰레드의 수를 정확하게 설정하기 위해 최근접 이웃(K-Nearest Neighbor) 알고리즘을 사용하여 작업 요청량에 따른 쓰레드의 수를 사전에 학습한다. 필요한 쓰레드의 수를 설정하기 위해 사전에 학습 되어진 개체들과 비교하여 유사한 개체를 선택하여 예측된 작업 요청량에 따른 쓰레드의 수를 결정하고 쓰레드를 생성한다. 본 논문에서는 필요한 쓰레드의 수를 동적으로 변경함으로써 사용자 응답 시간을 빠르게 하고, 사용자의 요청량에 맞게 쓰레드 수를 관리함으로써 시스템 자원의 활용도를 높일 수 있다.

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

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

  • PDF

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

  • 문세원;창병모
    • 정보처리학회논문지A
    • /
    • 제13A권3호
    • /
    • pp.205-210
    • /
    • 2006
  • 본 연구에서는 견고한 멀티 쓰레드 소프트웨어 개발을 돕기 위한 쓰레드 모니터링 시스템을 개발하였다. 이 시스템은 쓰레드 실행 과정과 동기화 과정를 시각적으로 추적, 모니터링 할 수 있다. 또한 사용자는 실행 전에 옵션 선택을 통해 관심 있는 쓰레드와 동기화만을 선택하여 이들을 중점적으로 모니터링 할 수 있으며 실행 후에는 실행된 쓰레드와 동기화의 특징을 요약한 프로파일 정보를 제공한다. 본 연구에서는 코드 인라인 기법을 기반으로 이 시스템을 구현하였으며 실험을 통한 실험 결과를 통해 그 효융성을 보인다.

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

  • 서양민;박정근;김기정;홍기정
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1998년도 가을 학술발표논문집 Vol.25 No.2 (3)
    • /
    • 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)

  • 류희열;김은정
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2002년도 추계학술발표논문집 (하)
    • /
    • pp.2055-2058
    • /
    • 2002
  • 병행 자바 프로그램의 슬라이싱 방법은 Jianjun Zhao에 의해 제안된 다중 쓰레드 종속성 그래프를 이용하여 Susan Horwitz, Thomas Reps, David Binkly가 제안한 2단계 마킹 알고리즘을 적용하여 슬라이스를 계산한다. 다중 쓰레드 종속성 그래프를 이용하는 방법은 쓰레드동기화 문장들 사이의 동기화 종속성과 서로 다른 쓰레드에 존재하는 공유객채들 사이의 통신 종속성 관계를 표현하여 병행 자바 프로그램의 슬라이스를 계산할 수 있는 것이다. 그러나 프로그램 종속성 그래프를 기반으로 하기 때문에 클래스 맴버 변수들에 대한 formal_in, formal_out, actual_in, actual_out정점들의 추가로 그래프의 복잡도가 증가하고 또한 부정확한 슬라이스 계산을 위한 다중 쓰레드 종속성 그래프를 개선하여 제안한다. 제안하는 개선된 다중 쓰레드 종속성 그래프는 주어진 슬라이싱 기준에 대한 2단계 마킹 알고리즘을 적용한 결과 정확한 슬라이스 계산과 복잡도 개선을 확인하였다.

  • PDF

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

  • 양영록;손봉기;김명준
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2003년도 가을 학술발표논문집 Vol.30 No.2 (1)
    • /
    • 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

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

  • 서양민;박정근;홍성수
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1998년도 가을 학술발표논문집 Vol.25 No.2 (3)
    • /
    • 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