KR102616610B1 - 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치및 방법 - Google Patents

동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치및 방법 Download PDF

Info

Publication number
KR102616610B1
KR102616610B1 KR1020230083998A KR20230083998A KR102616610B1 KR 102616610 B1 KR102616610 B1 KR 102616610B1 KR 1020230083998 A KR1020230083998 A KR 1020230083998A KR 20230083998 A KR20230083998 A KR 20230083998A KR 102616610 B1 KR102616610 B1 KR 102616610B1
Authority
KR
South Korea
Prior art keywords
client
socket
connection
data
processing
Prior art date
Application number
KR1020230083998A
Other languages
English (en)
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 KR1020230083998A priority Critical patent/KR102616610B1/ko
Application granted granted Critical
Publication of KR102616610B1 publication Critical patent/KR102616610B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1038Load balancing arrangements to avoid a single path through a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치 및 방법에 관한 것이다.
본 발명의 일 실시예에 따른 전자 장치는 메모리(memory) 및 상기 메모리와 연결된 프로세서(processor)를 포함하고, 상기 프로세서는, 제1 클라이언트의 연결요청을 수신하는 서버소켓을 생성하고, 상기 제1 클라이언트의 연결요청을 수신하는 경우, 상기 제1 클라이언트의 연결요청에 기반하여, 상기 제1 클라이언트의 제1 클라이언트소켓과 데이터소켓을 연결하고, 상기 제1 클라이언트의 연결요청에 기반하여 상기 데이터소켓에 기반하는 스레드를 선택하고, 선택된 스레드를 통하여 상기 제1 클라이언트의 제1 처리요청을 처리하도록 스케쥴링정보를 생성할 수 있다.

Description

동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치 및 방법{APPARATUS AND METHOD FOR SOCKET HANDLING AND MULTI-THREAD CONTROLLING FOR CONCURRENCY MANAGEMENT}
본 발명은 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치 및 방법에 관한 것이다.
본 명세서에서 달리 표시되지 않는 한, 이 섹션에 설명되는 내용들은 이 출원의 청구항들에 대한 종래 기술이 아니며, 이 섹션에 포함된다고 하여 종래 기술이라고 인정되는 것은 아니다.
채팅앱과 같은 실시간 앱들은 서버와 동접(Concurrent Connection)을 유지해야 한다. 그래서 사용자가 증가하면 동접처리로 인한 서버수가 기하급수적으로 늘어나는 이슈가 있다.
따라서, 하나의 서버에서 처리할 수 있는 동접수를 최대한 늘리게 되면 경제적으로 서버를 유지할 수 있다.
이에, 본 발명에서는, 소켓핸들링 및 멀티스레드 제어를 통해 다수의 클라이언트와의 접속을 처리할 수 있는 기술을 제안하고자 한다.
한국등록특허 제10-1588876호 (2016.01.20.)
본 발명의 일 실시예는 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치 및 방법을 제공하는 것이다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상술한 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 전자 장치는 메모리(memory) 및 상기 메모리와 연결된 프로세서(processor)를 포함하고, 상기 프로세서는, 제1 클라이언트의 연결요청을 수신하는 서버소켓을 생성하고, 상기 제1 클라이언트의 연결요청을 수신하는 경우, 상기 제1 클라이언트의 연결요청에 기반하여, 상기 제1 클라이언트의 제1 클라이언트소켓과 데이터소켓을 연결하고, 상기 제1 클라이언트의 연결요청에 기반하여 상기 데이터소켓에 기반하는 스레드를 선택하고, 선택된 스레드를 통하여 상기 제1 클라이언트의 제1 처리요청을 처리하도록 스케쥴링정보를 생성할 수 있다.
이 때, 상기 데이터소켓은, 비동기(Asyncronous) 소켓일 수 있다.
이 때, 상기 프로세서는, 상기 제1 클라이언트의 연결요청을 수신하는 시점에서, 생성된 데이터소켓의 수와 기설정된 임계데이터소켓수를 비교하여, 상기 데이터소켓의 수가 상기 임계데이터소켓수 미만인 경우, 새로운 데이터소켓을 생성하여 상기 제1 클라이언트의 상기 제1 클라이언트소켓과 연결하고, 상기 데이터소켓의 수가 상기 임계데이터소켓수와 동일한 경우, 기존에 생성된 데이터소켓에 연결되어 있는 제2 클라이언트에 대한 연결중요도를 도출하고, 상기 연결중요도가 가장 낮은 제2 클라이언트가 연결된 데이터소켓을 상기 제1 클라이언트와 연결할 제1 선택데이터소켓으로 선택하고, 상기 제1 선택데이터소켓과 연결된 상기 제2 클라이언트의 제2 클라이언트소켓과의 연결을 해제하고, 상기 제1 선택데이터소켓과 상기 제1 클라이언트의 상기 제1 클라이언트소켓과 연결할 수 있다.
이 때, 상기 프로세서는, 상기 제2 클라이언트별로 상기 연결중요도를 도출하되, 해당 제2 클라이언트가 현재 연결을 통하여 진행중인 제2 처리요청의 종류, 해당 제2 클라이언트의 연결경과시간, 해당 제2 클라이언트가 기설정된 제1 기간 동안 송신한 처리요청의 수 및 해당 제2 클라이언트가 상기 제1 기간동안 송신한 제2 처리요청의 주기를 기반으로 도출할 수 있다.
이 때, 상기 연결중요도는, 아래 수학식에 의하여 도출되되,
CI(Connection Importance)는 상기 연결중요도를 의미하고, a는 해당 제2 클라이언트가 상기 제1 기간동안 송신한 제2 처리요청의 수를 의미하고, b는 해당 제2 클라이언트가 상기 제1 기간동안 송신한 제2 처리요청의 주기를 의미하고, c는 해당 제2 클라이언트의 연결경과시간에 따른 예상잔여시간을 의미할 수 있다.
이 때, 상기 예상잔여시간는, 아래 수학식에 의하여 도출되되,
c는 상기 예상잔여시간을 의미하고, ADt(Average Duration time)는 해당 제2 클라이언트가 현재 연결을 통하여 진행중인 제2 처리요청의 종류에 따른 제2 평균연결지속시간을 의미하고, t_1은 해당 제2 클라이언트가 현재 연결된 최초시점의 시간을 의미하고, t_2는 상기 연결중요도를 도출하는 현재시점의 시간을 의미할 수 있다.
이 때, 상기 프로세서는, 상기 제1 선택데이터소켓과 연결되어 있던 제2 클라이언트는 대기시키고, 기설정된 제2 기간 마다 어떤 클라이언트소켓과도 연결되지 않은 빈데이터소켓이 존재하는지 여부를 확인하고, 상기 빈데이터소켓이 존재하는 경우, 상기 제2 클라이언트의 상기 제2 클라이언트소켓과 상기 빈데이터소켓을 연결하고, 상기 빈데이터소켓이 존재하지 않는 경우, 상기 데이터소켓과 연결된 전체 클라이언트소켓 중에서 상기 제1 클라이언트를 제외한 제3 클라이언트에 대한 연결중요도를 도출하고, 상기 제2 클라이언트의 연결중요도보다 낮은 연결중요도를 갖는 상기 제3 클라이언트 중에서 연결중요도가 가장 낮은 상기 제4 클라이언트의 제4 클라이언트소켓이 연결된 데이터소켓을 제2 선택데이터소켓으로 선택하고, 상기 제2 선택데이터소켓과 상기 제4 클라이언트소켓의 연결을 해제하고, 상기 제2 선택데이터소켓과 상기 제2 클라이언트소켓을 연결할 수 있다.
이 때, 상기 프로세서는, 상기 제1 처리요청에 기반하여 상기 스레드를 선택하되, 스레드 풀(Thread Pool) 방식으로 생성된 스레드 중에서 선택할 수 있다.
이 때, 상기 프로세서는, 상기 제1 처리요청에 기반하여 상기 스레드를 선택하되, 상기 스레드 풀에 생성된 전체 스레드 중에서 클라이언트와 연결되지 않은 잔여스레드의 수와 기설정된 임계스레드수를 비교하여, 상기 잔여스레드의 수가 상기 임계스레드수를 초과하는 경우, 상기 잔여스레드 중에 임의로 선택된 제1 스레드를 선택하여, 상기 제1 처리요청을 처리하도록 스케쥴링정보를 생성하고, 상기 잔여스레드의 수가 상기 임계스레드수 이하인 경우, 상기 제1 처리요청의 종류에 따른 제1 평균연결지속시간과 기설정된 임계지속시간을 비교하여, 상기 제1 평균연결지속시간이 상기 임계지속시간 이하인 경우, 상기 잔여스레드 중에 임의로 선택된 제2 스레드를 선택하여, 상기 제1 처리요청을 처리하도록 스케쥴링정보를 생성하고, 상기 제1 평균연결지속시간이 상기 임계지속시간을 초과하는 경우, 다른 클라이언트에게 할당되어 있는 스레드 중에서 제3 스레드를 선택하여, 상기 제1 처리요청을 처리하도록 상기 스케쥴링정보를 생성할 수 있다.
이 때, 상기 프로세서는, 상기 제3 스레드를 선택하되, 스레드를 할당받고 있는 제4 클라이언트의 상기 예상잔여시간을 비교하여, 상기 예상잔여시간이 가장 적은 제5 클라이언트에 할당된 스레드를 상기 제3 스레드로 선택하고, 상기 제5 클라이언트의 처리요청이 완료되면 상기 제1 처리요청을 처리하도록 상기 스케쥴링정보를 생성할 수 있다.
이와 같이 본 발명의 일 실시예에 따르면, 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치 및 방법을 제공할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 특정한 바람직한 실시예들의 상기에서 설명한 바와 같은 또한 다른 측면들과, 특징들 및 이득들은 첨부 도면들과 함께 처리되는 하기의 설명으로부터 보다 명백하게 될 것이다.
도 1은 본 발명의 일 실시예에 따른 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치의 개념도이다.
도 2는 본 발명의 일 실시예에 따른 전자 장치의 블록도이다.
도 3은 본 발명의 일 실시예에 따라 데이터소켓과 제1 클라이언트소켓의 연결을 나타내는 흐름도이다.
도 4는 본 발명의 일 실시예에 따라 데이터소켓과 제2 클라이언트소켓의 연결을 나타내는 흐름도이다.
도 5는 본 발명의 일 실시예에 따라 스케쥴링정보의 생성을 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 방법의 흐름도이다.
상기 도면들을 통해, 유사 참조 번호들은 동일한 혹은 유사한 엘리먼트들과, 특징들 및 구조들을 도시하기 위해 사용된다는 것에 유의해야만 한다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
본 발명의 실시예들을 구체적으로 설명함에 있어서, 특정 시스템의 예를 주된 대상으로 할 것이지만, 본 명세서에서 청구하고자 하는 주요한 요지는 유사한 기술적 배경을 가지는 여타의 통신 시스템 및 서비스에도 본 명세서에 개시된 범위를 크게 벗어나지 아니하는 범위에서 적용 가능하며, 이는 당해 기술분야에서 숙련된 기술적 지식을 가진 자의 판단으로 가능할 것이다.
도 1은 본 발명의 일 실시예에 따른 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치의 개념도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치는 소켓핸들링 및 멀티스레드 제어를 통해 다수의 클라이언트와의 접속을 처리할 수 있다.
한편, 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치는 본 발명에서 '전자 장치(100)'로 호칭될 수도 있다.
이 때, 클라이언트는 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등을 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 전자 장치(100)의 블록도이다.
일 실시예에 따른 전자 장치(100)는 프로세서(110) 및 메모리(120)를 포함한다. 프로세서(110)는 전술한 적어도 하나의 방법을 수행할 수 있다. 메모리(120)는 상술한 방법과 관련된 정보를 저장하거나 상술한 방법이 구현된 프로그램을 저장할 수 있다. 메모리(120)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다. 메모리(120)는 '데이터베이스', '저장부' 등으로 호칭될 수 있다.
프로세서(110)는 프로그램을 실행하고, 전자 장치(100)를 제어할 수 있다. 프로세서(110)에 의하여 실행되는 프로그램의 코드는 메모리(120)에 저장될 수 있다. 장치(100)는 입출력 장치(미도시)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다.
이 때, 상기 프로세서(110)는, 제1 클라이언트의 연결요청을 수신하는 서버소켓을 생성할 수 있다.
이 때, 소켓은 클라이언트소켓과 서버소켓으로 구분되며, 소켓간 통신을 위해서는 네트워크상에서 클라이언트와 서버에 해당되는 컴퓨터를 식별하기 위한 IP주소와 해당 컴퓨터내에서 현재 통신에 사용되는 응용프로그램을 식별하기 위한 포트번호가 사용될 수 있다.
또한, 상기 서버소켓과 후술하는 데이터소켓을 구분해보면, 서버소켓은 서버 애플리케이션에서 실행되며, 클라이언트의 연결 요청을 수락하고 통신을 위한 소켓을 생성하는 역할을 한다. 서버소켓은 특정 포트에서 클라이언트의 연결 요청을 수신하고, 클라이언트와의 통신을 위한 개별적인 소켓을 생성한다. 이렇게 생성된 소켓은 서버와 클라이언트 간의 데이터 교환을 담당한다. 서버소켓은 다중 클라이언트 연결을 처리하며, 각 클라이언트와 개별적으로 소통하기 위한 소켓을 생성하는데 이게 데이터소켓이다.
이 때, 데이터소켓에 대해 보다 상세하게 살펴보면, 데이터소켓은 클라이언트나 서버 애플리케이션에서 사용되는 소켓이다. 데이터소켓은 서버 소켓에서 생성된 클라이언트소켓이나 클라이언트 애플리케이션에서 직접 생성될 수 있다. 데이터소켓은 서버와 클라이언트 간의 실제 데이터 전송을 처리하는 역할을 한다. 데이터소켓은 연결된 상대방과 데이터를 주고받을 수 있는 인터페이스를 제공한다.
이 때, 상기 프로세서는, 상기 제1 클라이언트의 연결요청을 수신하는 경우, 상기 제1 클라이언트의 연결요청에 기반하여, 상기 제1 클라이언트의 제1 클라이언트소켓과 데이터소켓을 연결할 수 있다.
이 때, 상기 데이터소켓은, 비동기(Asyncronous) 소켓일 수 있다.
이 때, 비동기 소켓은 I/O 작업을 비차단(non-blocking) 방식으로 처리하는 소켓이다. 이는 한 번에 여러 작업을 처리하거나, 작업이 완료되기를 기다리는 동안 다른 작업을 수행할 수 있는 효율적인 방식이다.
이 때, 비동기 소켓 프로그래밍은 다음과 같은 특징을 가진다.
(1) 비차단(non-blocking) 입출력: 비동기 소켓은 입출력 작업을 요청하고, 해당 작업이 완료되지 않았더라도 즉시 결과를 반환한다. 이는 블로킹(blocking) 방식과 달리 작업이 완료될 때까지 대기하지 않고 다른 작업을 수행할 수 있는 장점을 가진다.
(2) 이벤트 기반(Event-driven) 프로그래밍: 비동기 소켓은 이벤트 기반으로 동작한다. 이벤트 루프(Event loop)라는 메인 루프에서 입출력 이벤트를 감지하고 처리한다. 이벤트 루프는 요청된 작업을 비동기적으로 처리하고, 완료되면 콜백(callback) 함수를 호출하여 결과를 처리한다.
(3) 비동기 콜백: 비동기 소켓은 작업이 완료되면 콜백 함수를 호출하여 결과를 처리한다. 이 콜백 함수는 비동기적으로 실행되므로, 작업 완료 시점에 실행되는 로직을 콜백 함수에 구현하여 비동기 작업을 처리할 수 있다.
(4) 확장성과 성능: 비동기 소켓은 여러 작업을 동시에 처리하고, 작업이 완료되는 동안 다른 작업을 수행할 수 있기 때문에 높은 확장성과 성능을 제공한다. 특히 대규모 클라이언트 요청을 처리하는 서버 환경에서 많은 이점을 가진다.
이를 통하여, 많은 수의 동시접속을 처리할 수 있다.
또한, 상기 프로세서는, 상기 제1 클라이언트의 연결요청에 기반하여 상기 데이터소켓에 기반하는 스레드를 선택하고, 선택된 스레드를 통하여 상기 제1 클라이언트의 제1 처리요청을 처리하도록 스케쥴링정보를 생성할 수 있다.
도 3은 본 발명의 일 실시예에 따라 데이터소켓과 제1 클라이언트소켓의 연결을 나타내는 흐름도이다.
도 3을 참조하면, 상기 프로세서는, 상기 제1 클라이언트의 연결요청을 수신하는 시점에서, 생성된 데이터소켓의 수와 기설정된 임계데이터소켓수를 비교하여, 상기 데이터소켓의 수가 상기 임계데이터소켓수 미만인 경우, 새로운 데이터소켓을 생성하여 상기 제1 클라이언트의 상기 제1 클라이언트소켓과 연결하고, 상기 데이터소켓의 수가 상기 임계데이터소켓수와 동일한 경우, 기존에 생성된 데이터소켓에 연결되어 있는 제2 클라이언트에 대한 연결중요도를 도출할 수 있다.
이 때, 상기 임계데이터소켓수는 본 발명의 전자 장치(100)의 운영 체제, 시스템 리소스, 네트워크 스택에 기반하여 시스템 내에서 허용될 수 있는 소켓의 수로 설정될 수 있다.
또한, 상기 연결중요도는 해당 클라이언트의 연결을 유지할 필요의 정도에 대한 것으로 보다 상세하게는 후술하도록 한다.
또한, 상기 프로세서는, 상기 연결중요도가 가장 낮은 제2 클라이언트가 연결된 데이터소켓을 상기 제1 클라이언트와 연결할 제1 선택데이터소켓으로 선택하고, 상기 제1 선택데이터소켓과 연결된 상기 제2 클라이언트의 제2 클라이언트소켓과의 연결을 해제하고, 상기 제1 선택데이터소켓과 상기 제1 클라이언트의 상기 제1 클라이언트소켓과 연결할 수 있다.
이 때, 상기 프로세서는, 상기 제2 클라이언트별로 상기 연결중요도를 도출하되, 해당 제2 클라이언트가 현재 연결을 통하여 진행중인 제2 처리요청의 종류, 해당 제2 클라이언트의 연결경과시간, 해당 제2 클라이언트가 기설정된 제1 기간 동안 송신한 처리요청의 수 및 해당 제2 클라이언트가 상기 제1 기간동안 송신한 제2 처리요청의 주기를 기반으로 도출할 수 있다.
이 때, 상기 제1 기간은 본 발명의 관리자에 의하여 임의로 설정되되, 예를 들면, 1일, 1주일, 1개월 등으로 설정될 수 있다.
보다 상세하게 살펴보면, 상기 연결중요도는, 아래 수학식 1에 의하여 도출될 수 있다.
[수학식 1]
이 때, CI(Connection Importance)는 상기 연결중요도를 의미하고, a는 해당 제2 클라이언트가 상기 제1 기간동안 송신한 제2 처리요청의 수를 의미하고, b는 해당 제2 클라이언트가 상기 제1 기간동안 송신한 제2 처리요청의 주기를 의미하고, c는 해당 제2 클라이언트의 연결경과시간에 따른 예상잔여시간을 의미할 수 있다.
상기 제1 기간 내에 처리요청이 많은 경우, 연결을 유지할 필요가 더욱 높은 것으로써, 상기 연결중요도가 높게 산출되도록 설정하고, 처리요청의 주기가 짧은 경우에도 연결을 끊고 다시 연결하는 것은 불필요하므로 처리요청의 주기가 짧을수록 상기 연결중요도가 높게 산출되도록 설정하고, 처리요청의 종류에 따른 연결지속시간을 기반으로 예상잔여시간을 예상하여, 예상잔여시간이 길게 남은 것은 잠시 연결이 끊겨도 체감하지 못할 수 있으므로, 상기 예상잔여시간이 많이 남아있을 수록 상기 연결중요도가 낮게 산출되도록 설정할 수 있다.
이 때, 상기 예상잔여시간는, 아래 수학식 2에 의하여 도출될 수 있다.
[수학식 2]
이 때, c는 상기 예상잔여시간을 의미하고, ADt(Average Duration time)는 해당 제2 클라이언트가 현재 연결을 통하여 진행중인 제2 처리요청의 종류에 따른 제2 평균연결지속시간을 의미하고, t_1은 해당 제2 클라이언트가 현재 연결된 최초시점의 시간을 의미하고, t_2는 상기 연결중요도를 도출하는 현재시점의 시간을 의미할 수 있다.
이 때, 상기 처리요청의 종류는 채팅, 데이터 전송 등으로 본 발명의 관리자가 임의로 설정할 수 잇고, 상기 제2 평균연결지속시간은 종류별로 연결지속시간의 평균으로 설정될 수 있다. 이를 통하여, 처리요청의 종류에 따라 예상잔여시간을 도출할 수 있다.
도 4는 본 발명의 일 실시예에 따라 데이터소켓과 제2 클라이언트소켓의 연결을 나타내는 흐름도이다.
상기 제1 클라이언트소켓과의 연결에 의하여 연결이 해제된 제2 클라이언트소켓을 방치할 수 없기 때문에, 후속조치로 제2 클라이언트소켓의 연결을 시도할 필요가 있다.
이를 위하여, 도 4를 참조하면, 상기 프로세서는, 상기 제1 선택데이터소켓과 연결되어 있던 제2 클라이언트는 대기시키고, 기설정된 제2 기간 마다 어떤 클라이언트소켓과도 연결되지 않은 빈데이터소켓이 존재하는지 여부를 확인하고, 상기 빈데이터소켓이 존재하는 경우, 상기 제2 클라이언트의 상기 제2 클라이언트소켓과 상기 빈데이터소켓을 연결하고, 상기 빈데이터소켓이 존재하지 않는 경우, 상기 데이터소켓과 연결된 전체 클라이언트소켓 중에서 상기 제1 클라이언트를 제외한 제3 클라이언트에 대한 연결중요도를 도출하고, 상기 제2 클라이언트의 연결중요도보다 낮은 연결중요도를 갖는 상기 제3 클라이언트 중에서 연결중요도가 가장 낮은 상기 제4 클라이언트의 제4 클라이언트소켓이 연결된 데이터소켓을 제2 선택데이터소켓으로 선택하고, 상기 제2 선택데이터소켓과 상기 제4 클라이언트소켓의 연결을 해제하고, 상기 제2 선택데이터소켓과 상기 제2 클라이언트소켓을 연결할 수 있다.
이 때, 상기 제2 기간은 제2 클라이언트소켓의 대기상태를 길게 유지하면 안되므로, 짧은 시간으로 본 발명의 관리자가 임의로 설정할 수 있다. 예를 들면, 1ms, 10ms, 1s 등으로 설정할 수 있다.
이를 통하여, 모든 클라이언트의 연결을 유지할 수 있다.
도 5는 본 발명의 일 실시예에 따라 스케쥴링정보의 생성을 나타내는 흐름도이다.
클라이언트와 연결하여 통신을 수행할 때, 스레드 할당 방식은 구현에 따라 다를 수 있습니다. 일반적으로는 두 가지 방식이 사용될 수 있다.
이 때, 스레드 풀(Thread Pool) 방식은 미리 생성된 스레드 풀에서 스레드를 할당하는 방식이다. 스레드 풀은 미리 정의된 개수의 스레드를 생성하고 유지한다. 클라이언트의 연결 요청이 발생하면, 생성된 스레드 중 하나가 할당되어 해당 연결을 처리하고, 처리가 완료되면 스레드는 다음 연결을 처리하기 위해 다시 풀에 반환된다.
또 다른 방식은 단일 스레드 방식으로 하나의 스레드만을 사용하여 클라이언트 연결을 처리하는 방식이다. 클라이언트의 연결 요청이 발생하면, 이미 존재하는 스레드가 해당 연결을 처리하고, 처리가 완료된 후에야 다음 연결을 처리할 수 있다.
이에, 많은 수의 동시접속을 처리하기 위하여, 상기 프로세서는, 상기 제1 처리요청에 기반하여 상기 스레드를 선택하되, 스레드 풀(Thread Pool) 방식으로 생성된 스레드 중에서 선택할 수 있다. 이 때, 스레드 풀 방식은 스레드의 재사용을 통해 오버헤드를 줄이고, 동시에 다중 클라이언트 요청을 효율적으로 처리할 수 있다.
도 5를 참조하면, 상기 프로세서는, 상기 제1 처리요청에 기반하여 상기 스레드를 선택하되, 상기 스레드 풀에 생성된 전체 스레드 중에서 클라이언트와 연결되지 않은 잔여스레드의 수와 기설정된 임계스레드수를 비교하여, 상기 잔여스레드의 수가 상기 임계스레드수를 초과하는 경우, 상기 잔여스레드 중에 임의로 선택된 제1 스레드를 선택하여, 상기 제1 처리요청을 처리하도록 스케쥴링정보를 생성하고, 상기 잔여스레드의 수가 상기 임계스레드수 이하인 경우, 상기 제1 처리요청의 종류에 따른 제1 평균연결지속시간과 기설정된 임계지속시간을 비교하여, 상기 제1 평균연결지속시간이 상기 임계지속시간 이하인 경우, 상기 잔여스레드 중에 임의로 선택된 제2 스레드를 선택하여, 상기 제1 처리요청을 처리하도록 스케쥴링정보를 생성하고, 상기 제1 평균연결지속시간이 상기 임계지속시간을 초과하는 경우, 다른 클라이언트에게 할당되어 있는 스레드 중에서 제3 스레드를 선택하여, 상기 제1 처리요청을 처리하도록 상기 스케쥴링정보를 생성할 수 있다.
이 때, 상기 임계스레드수는, 본 발명의 전자 장치의 사양에 따라 부하로 인한 성능저하가 발생하는 스레드의 수를 기반으로 설정될 수 있다.
또한, 상기 임계지속시간은 전체 처리요청의 연결지속시간의 평균으로 설정될 수 있다.
또한, 상기 프로세서는, 상기 제3 스레드를 선택하되, 스레드를 할당받고 있는 제4 클라이언트의 상기 예상잔여시간을 비교하여, 상기 예상잔여시간이 가장 적은 제5 클라이언트에 할당된 스레드를 상기 제3 스레드로 선택하고, 상기 제5 클라이언트의 처리요청이 완료되면 상기 제1 처리요청을 처리하도록 상기 스케쥴링정보를 생성할 수 있다.
이를 통하여, 시스템의 부하를 최소화하면서 다수의 클라이언트의 처리요청을 효율적으로 처리할 수 있다.
도 6은 본 발명의 일 실시예에 따른 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 방법의 흐름도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 방법은 제1 클라이언트의 연결요청을 수신하는 서버소켓을 생성할 수 있다(S101).
또한, 본 발명의 일 실시예에 따른 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 방법은 상기 제1 클라이언트의 연결요청을 수신하는 경우, 상기 제1 클라이언트의 연결요청에 기반하여, 상기 제1 클라이언트의 제1 클라이언트소켓과 데이터소켓을 연결할 수 있다(S103).
또한, 본 발명의 일 실시예에 따른 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 방법은 상기 제1 클라이언트의 연결요청에 기반하여 상기 데이터소켓에 기반하는 스레드를 선택할 수 있다(S105).
또한, 본 발명의 일 실시예에 따른 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 방법은 선택된 스레드를 통하여 상기 제1 클라이언트의 제1 처리요청을 처리하도록 스케쥴링정보를 생성할 수 있다(S107).
또한, 본 발명의 일 실시예에 따른 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 방법은 도 1 내지 도 5에 개시된 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치와 동일하게 구성될 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (5)

  1. 전자 장치에 있어서,
    메모리(memory); 및
    상기 메모리와 연결된 프로세서(processor); 를 포함하고,
    상기 프로세서는:
    제1 클라이언트의 연결요청을 수신하는 서버소켓을 생성하고,
    상기 제1 클라이언트의 연결요청을 수신하는 경우,
    상기 제1 클라이언트의 연결요청에 기반하여, 상기 제1 클라이언트의 제1 클라이언트소켓과 데이터소켓을 연결하고,
    상기 제1 클라이언트의 연결요청에 기반하여 상기 데이터소켓에 기반하는 스레드를 선택하고, 선택된 스레드를 통하여 상기 제1 클라이언트의 제1 처리요청을 처리하도록 스케쥴링정보를 생성하고,
    상기 데이터소켓은,
    비동기(Asyncronous) 소켓이고,
    상기 프로세서는,
    상기 제1 클라이언트의 연결요청을 수신하는 시점에서,
    생성된 데이터소켓의 수와 기설정된 임계데이터소켓수를 비교하여,
    상기 데이터소켓의 수가 상기 임계데이터소켓수 미만인 경우,
    새로운 데이터소켓을 생성하여 상기 제1 클라이언트의 상기 제1 클라이언트소켓과 연결하고,
    상기 데이터소켓의 수가 상기 임계데이터소켓수와 동일한 경우,
    기존에 생성된 데이터소켓에 연결되어 있는 제2 클라이언트에 대한 연결중요도를 도출하고,
    상기 연결중요도가 가장 낮은 제2 클라이언트가 연결된 데이터소켓을 상기 제1 클라이언트와 연결할 제1 선택데이터소켓으로 선택하고,
    상기 제1 선택데이터소켓과 연결된 상기 제2 클라이언트의 제2 클라이언트소켓과의 연결을 해제하고,
    상기 제1 선택데이터소켓과 상기 제1 클라이언트의 상기 제1 클라이언트소켓과 연결하고,
    상기 프로세서는,
    상기 제2 클라이언트별로 상기 연결중요도를 도출하되,
    해당 제2 클라이언트가 현재 연결을 통하여 진행중인 제2 처리요청의 종류, 해당 제2 클라이언트의 연결경과시간, 해당 제2 클라이언트가 기설정된 제1 기간 동안 송신한 처리요청의 수 및 해당 제2 클라이언트가 상기 제1 기간동안 송신한 제2 처리요청의 주기를 기반으로 도출하고,
    상기 연결중요도는,
    아래 수학식에 의하여 도출되되,

    CI(Connection Importance)는 상기 연결중요도를 의미하고, a는 해당 제2 클라이언트가 상기 제1 기간동안 송신한 제2 처리요청의 수를 의미하고, b는 해당 제2 클라이언트가 상기 제1 기간동안 송신한 제2 처리요청의 주기를 의미하고, c는 해당 제2 클라이언트의 연결경과시간에 따른 예상잔여시간을 의미하고,
    상기 예상잔여시간는,
    아래 수학식에 의하여 도출되되,

    c는 상기 예상잔여시간을 의미하고, ADt(Average Duration time)는 해당 제2 클라이언트가 현재 연결을 통하여 진행중인 제2 처리요청의 종류에 따른 제2 평균연결지속시간을 의미하고, t_1은 해당 제2 클라이언트가 현재 연결된 최초시점의 시간을 의미하고, t_2는 상기 연결중요도를 도출하는 현재시점의 시간을 의미하고,
    상기 프로세서는,
    상기 제1 선택데이터소켓과 연결되어 있던 제2 클라이언트는 대기시키고,
    기설정된 제2 기간 마다 어떤 클라이언트소켓과도 연결되지 않은 빈데이터소켓이 존재하는지 여부를 확인하고,
    상기 빈데이터소켓이 존재하는 경우,
    상기 제2 클라이언트의 상기 제2 클라이언트소켓과 상기 빈데이터소켓을 연결하고,
    상기 빈데이터소켓이 존재하지 않는 경우,
    상기 데이터소켓과 연결된 전체 클라이언트소켓 중에서 상기 제1 클라이언트를 제외한 제3 클라이언트에 대한 연결중요도를 도출하고,
    상기 제2 클라이언트의 연결중요도보다 낮은 연결중요도를 갖는 상기 제3 클라이언트 중에서 연결중요도가 가장 낮은 제4 클라이언트의 제4 클라이언트소켓이 연결된 데이터소켓을 제2 선택데이터소켓으로 선택하고,
    상기 제2 선택데이터소켓과 상기 제4 클라이언트소켓의 연결을 해제하고,
    상기 제2 선택데이터소켓과 상기 제2 클라이언트소켓을 연결하는 것을 특징으로 하는, 전자 장치.
  2. 청구항 1에 있어서,
    상기 프로세서는,
    상기 제1 처리요청에 기반하여 상기 스레드를 선택하되,
    스레드 풀(Thread Pool) 방식으로 생성된 스레드 중에서 선택하는 것을 특징으로 하는, 전자 장치.
  3. 삭제
  4. 삭제
  5. 삭제
KR1020230083998A 2023-06-29 2023-06-29 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치및 방법 KR102616610B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230083998A KR102616610B1 (ko) 2023-06-29 2023-06-29 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230083998A KR102616610B1 (ko) 2023-06-29 2023-06-29 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치및 방법

Publications (1)

Publication Number Publication Date
KR102616610B1 true KR102616610B1 (ko) 2023-12-27

Family

ID=89377614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230083998A KR102616610B1 (ko) 2023-06-29 2023-06-29 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치및 방법

Country Status (1)

Country Link
KR (1) KR102616610B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000005691A (ko) * 1998-06-12 2000-01-25 포만 제프리 엘 스레디드서버의성능을향상시키기위한시스템및방법
KR101588876B1 (ko) 2014-12-26 2016-02-12 유비벨록스 주식회사 복수개의 클라이언트 단말기에 의한 동시 접속 부하를 동적으로 분산시키기 위한 방법 및 시스템 리소스를 최대로 사용할 수 있도록 구현되는 접속 서버
KR20190035407A (ko) * 2017-09-26 2019-04-03 주식회사 빅솔론 전자 장치의 제어 방법 및 통신 채널의 형성 방법
KR20230086380A (ko) * 2021-12-08 2023-06-15 현대오토에버 주식회사 차량용 이더넷 제어기 및 그 제어 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000005691A (ko) * 1998-06-12 2000-01-25 포만 제프리 엘 스레디드서버의성능을향상시키기위한시스템및방법
KR101588876B1 (ko) 2014-12-26 2016-02-12 유비벨록스 주식회사 복수개의 클라이언트 단말기에 의한 동시 접속 부하를 동적으로 분산시키기 위한 방법 및 시스템 리소스를 최대로 사용할 수 있도록 구현되는 접속 서버
KR20190035407A (ko) * 2017-09-26 2019-04-03 주식회사 빅솔론 전자 장치의 제어 방법 및 통신 채널의 형성 방법
KR20230086380A (ko) * 2021-12-08 2023-06-15 현대오토에버 주식회사 차량용 이더넷 제어기 및 그 제어 방법

Similar Documents

Publication Publication Date Title
US11294714B2 (en) Method and apparatus for scheduling task, device and medium
US9645743B2 (en) Selective I/O prioritization by system process/thread
US20160306680A1 (en) Thread creation method, service request processing method, and related device
CN110806923A (zh) 一种区块链任务的并行处理方法、装置、电子设备和介质
US20150301854A1 (en) Apparatus and method for hardware-based task scheduling
CN113918101B (zh) 一种写数据高速缓存的方法、系统、设备和存储介质
US20100083272A1 (en) Managing pools of dynamic resources
CN110083399B (zh) 小程序运行方法、计算机设备及存储介质
CN110737534A (zh) 任务的处理方法、装置和服务器
US20180341516A1 (en) Processing jobs using task dependencies
KR101392584B1 (ko) 리소스 모니터링을 이용한 동적 데이터 처리 장치 및 그 방법
CN112035255A (zh) 线程池资源管理任务处理方法、装置、设备及存储介质
CN104702534A (zh) 一种实现多进程共享端口的数据处理的方法及装置
CN109002286A (zh) 基于同步编程的数据异步处理方法及装置
US10216654B1 (en) Data service-aware input/output scheduling
KR102616610B1 (ko) 동접 관리를 위한 소켓핸들링 및 멀티스레드 제어 장치및 방법
US10289329B2 (en) Burst buffer dynamic logical volume sizing in high performance computing environment
US10523746B2 (en) Coexistence of a synchronous architecture and an asynchronous architecture in a server
CN111290842A (zh) 一种任务执行方法和装置
CN110018782B (zh) 一种数据读/写方法及相关装置
CN114327259B (zh) 一种闪存通道控制器运行方法、装置、设备及存储介质
CN115981893A (zh) 消息队列任务处理方法、装置、服务器及存储介质
US20190108077A1 (en) System and method for mpi implementation in an embedded operating system
JP5678347B2 (ja) Itシステムの構成方法、そのコンピュータプログラムおよびitシステム
US20170052827A1 (en) Using Multiple Central Processing Unit Cores for Packet Forwarding in Virtualized Networks

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant