KR20120109197A - 휴대용 장치 상의 데이터 스트림 관리 시스템에서 메모리를 관리하는 방법 및 이를 위한 휴대용 장치 - Google Patents

휴대용 장치 상의 데이터 스트림 관리 시스템에서 메모리를 관리하는 방법 및 이를 위한 휴대용 장치 Download PDF

Info

Publication number
KR20120109197A
KR20120109197A KR1020110027559A KR20110027559A KR20120109197A KR 20120109197 A KR20120109197 A KR 20120109197A KR 1020110027559 A KR1020110027559 A KR 1020110027559A KR 20110027559 A KR20110027559 A KR 20110027559A KR 20120109197 A KR20120109197 A KR 20120109197A
Authority
KR
South Korea
Prior art keywords
memory area
data stream
scoring function
memory
data
Prior art date
Application number
KR1020110027559A
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 KR1020110027559A priority Critical patent/KR20120109197A/ko
Priority to US13/420,797 priority patent/US9298644B2/en
Publication of KR20120109197A publication Critical patent/KR20120109197A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/40ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the management of medical equipment or devices, e.g. scheduling maintenance or upgrades
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Epidemiology (AREA)
  • Information Transfer Between Computers (AREA)
  • Medical Informatics (AREA)
  • Primary Health Care (AREA)
  • Public Health (AREA)
  • Business, Economics & Management (AREA)
  • Biomedical Technology (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일 실시예에 따른 휴대용 장치 상의 DSMS에서 메모리를 관리하는 방법은, 복수의 메모리 영역 각각에 대하여 우선 순위에 따른 스코어링 함수(scoring function)를 계산하는 단계, 각각의 메모리 영역에 대한 스코어링 함수를 비교하여 우선 순위가 가장 낮은 메모리 영역을 선택하는 단계, 선택된 메모리 영역의 데이터를 2차 저장 장치로 이동하는 단계, 및 선택된 메모리 영역에 수신된 제 1 데이터 스트림을 저장하는 단계를 포함한다.

Description

휴대용 장치 상의 데이터 스트림 관리 시스템에서 메모리를 관리하는 방법 및 이를 위한 휴대용 장치{A method of managing memory for data stream management system on a portable device and portable device therefor}
본 발명은 데이터 처리(data processing)에 관한 것으로서, 특히 데이터 스트림 관리 시스템(Data Stream Management System: DSMS)에서의 메모리 관리에 관한 것이다.
최근의 건강 관리 분야에서는 환자가 병원에 방문하지 않고서도 집이나 직장에서 자신의 상태에 관한 정보를 의료진들에게 전달하여 진단하게 하고 이상이 있는 경우 치료 받을 수 있도록 하는 것을 목표로 하고 있다. 이와 같이 의료진들이 원격으로 환자에게 의료 서비스를 제공해 줄 수 있는 시스템을 커넥티드 헬스케어(connected healthcare) 시스템 또는 유-헬스케어(ubiquitous healthcare, 이를 줄여서 "U-헬스케어"라고도 한다) 시스템이라고 한다.
심질환 예방 및 관리를 위하여 심전도(Electro-Cardiogram: ECG)를 측정하여 원격지에 위치한 병원으로 보내주는 것이 U-헬스케어의 한 예이다.
U-헬스케어 시스템에서는 인체에 부착된 센서로부터 의료 정보를 수집하여 휴대용 장치를 경유하여 병원 등에 위치한 서버로 데이터를 전달한다. 그런데, 휴대용 장치의 메모리 공간은 제한적이어서 효율적인 사용을 위하여 관리의 필요성이 있게 된다.
본 발명이 이루고자 하는 기술적 과제는, 휴대용 장치 상의 데이터 스트림 관리 시스템(DSMS)에서 메모리를 관리하는 방법, 데이터 스트림 관리 시스템(DSMS)에서의 메모리 관리를 수행하기 위한 휴대용 장치, 및 상기 메모리 관리 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 것이다.
본 발명의 일 측면에 따른 메모리 관리 방법은, 복수의 메모리 영역 각각에 대하여 우선 순위에 따른 스코어링 함수(scoring function)를 계산하는 단계; 상기 각각의 메모리 영역에 대한 스코어링 함수를 비교하여 우선 순위가 가장 낮은 메모리 영역을 선택하는 단계; 상기 선택된 메모리 영역의 데이터를 2차 저장 장치로 이동하는 단계; 및 상기 선택된 메모리 영역에 수신된 제 1 데이터 스트림을 저장하는 단계를 포함하는 것이 바람직하다.
상기 각각의 영역에 대한 스코어링 함수를 계산하는 단계는, 상기 스코어링 함수를 계산하기 위하여 고려하는 요소들의 값에 각각의 요소들에 대한 가중치를 곱한 값들을 모두 더하여 상기 스코어링 함수를 계산하는 단계를 포함하는 것이 바람직하다.
상기 스코어링 함수를 계산하기 위하여 고려하는 요소들은, 해당 메모리 영역에 대응하는 적어도 하나 이상의 제 2 데이터 스트림이 다음에 수신될 것으로 예상되는 시간, 상기 휴대용 장치로 상기 제 2 데이터 스트림을 전송하는 센서로부터의 데이터 수신 상태, 상기 해당 메모리 영역의 크기, 및 상기 해당 메모리 영역에 대응하는 상기 제 2 데이터 스트림의 개수 중의 하나 이상을 포함하는 것이 바람직하다.
상기 메모리 관리 방법은 상기 DSMS의 사용자가 상기 제 2 데이터 스트림을 생성하기 위한 구문에 삽입한 주기 정보, 이전에 상기 제 2 데이터 스트림을 수신하였던 시간들을 이용하여 결정된 주기 정보, 및 상기 제 2 데이터 스트림에 태그 정보로서 포함된 주기 정보 중 어느 하나를 이용하여 상기 제 2 데이터 스트림이 다음에 수신될 것으로 예상되는 시간을 결정하는 단계를 더 포함하며, 상기 스코어링 함수를 계산하기 위하여 고려하는 요소들의 값에 각각의 요소들에 대한 가중치를 곱한 값들을 모두 더하여 상기 스코어링 함수를 계산하는 단계는, 상기 제 2 데이터 스트림이 수신될 것으로 예상되는 시간이 더 늦을수록 대응하는 가중치를 증가시켜서 상기 해당 메모리 영역의 우선 순위를 낮추는 단계를 포함하는 것이 바람직하다.
상기 스코어링 함수를 계산하기 위하여 고려하는 요소들의 값에 각각의 요소들에 대한 가중치를 곱한 값들을 모두 더하여 상기 스코어링 함수를 계산하는 단계는, 상기 제 2 데이터 스트림이 입력 예상 시간에 수신되지 않는 경우, 상기 데이터 수신 상태에 대응하는 가중치를 증가시켜 상기 해당 메모리 영역의 우선 순위를 낮추는 단계를 포함하는 것이 바람직하다.
상기 스코어링 함수를 계산하기 위하여 고려하는 요소들의 값에 각각의 요소들에 대한 가중치를 곱한 값들을 모두 더하여 상기 스코어링 함수를 계산하는 단계는, 상기 제 1 데이터 스트림에 관한 연산에 필요한 메모리의 크기와 상기 해당 메모리 영역의 크기가 비슷할수록 상기 해당 메모리 영역의 크기에 대응하는 가중치를 증가시켜 상기 해당 메모리 영역의 우선 순위를 낮추는 단계를 포함하는 것이 바람직하다.
상기 스코어링 함수를 계산하기 위하여 고려하는 요소들의 값에 각각의 요소들에 대한 가중치를 곱한 값들을 모두 더하여 상기 스코어링 함수를 계산하는 단계는, 상기 해당 메모리 영역에 대응하는 상기 적어도 하나 이상의 제 2 데이터 스트림의 개수가 많을수록 대응하는 가중치를 감소시켜서 상기 해당 메모리 영역의 우선 순위를 높이는 단계를 포함하는 것이 바람직하다.
상기 메모리 영역은 데이터 스트림에 대한 연산자(operator) 각각에 대응하는 메모리 영역인 시놉시스(synopsis) 또는 복수의 연산자에 공유되는 메모리 영역인 스토어(store)를 포함하는 것이 바람직하다.
본 발명의 다른 일 측면에 따른 휴대용 장치는, 데이터 스트림을 저장하기 위한 복수의 메모리 영역; 상기 복수의 메모리 영역 각각에 대하여 우선 순위에 따른 스코어링 함수를 계산하고, 상기 각각의 메모리 영역에 대한 스코어링 함수를 비교하여 상기 우선 순위가 가장 낮은 메모리 영역을 선택하는 계산부; 상기 선택된 메모리 영역의 데이터를 저장하기 위한 2차 저장 장치; 및 상기 선택된 메모리 영역의 데이터를 상기 2차 저장 장치로 이동하는 제어부를 포함하는 것이 바람직하다.
상기 계산부는, 상기 스코어링 함수를 계산하기 위하여 고려하는 요소들의 값에 각각의 요소들에 대한 가중치를 곱한 값들을 모두 더하여 상기 스코어링 함수를 계산하는 것이 바람직하다.
상기 스코어링 함수를 계산하기 위하여 고려하는 요소들은, 해당 메모리 영역에 대응하는 적어도 하나 이상의 제 2 데이터 스트림이 다음에 수신될 것으로 예상되는 시간, 상기 휴대용 장치로 상기 제 2 데이터 스트림을 전송하는 센서로부터의 데이터 수신 상태, 상기 해당 메모리 영역의 크기, 및 상기 해당 메모리 영역에 대응하는 상기 제 2 데이터 스트림의 개수 중의 하나 이상을 포함하는 것이 바람직하다.
상기 휴대용 장치는, 상기 DSMS의 사용자가 상기 제 2 데이터 스트림을 생성하기 위한 구문에 삽입한 주기 정보, 이전에 상기 제 2 데이터 스트림을 수신하였던 시간들을 이용하여 결정된 주기 정보, 및 상기 제 2 데이터 스트림에 태그 정보로서 포함된 주기 정보 중 어느 하나를 이용하여 상기 제 2 데이터 스트림이 다음에 수신될 것으로 예상되는 시간을 결정하는 스트림 주기 관리부를 더 포함하며, 상기 계산부는 상기 제 2 데이터 스트림이 수신될 것으로 예상되는 시간이 더 늦을수록 대응하는 가중치를 증가시켜서 상기 해당 메모리 영역의 우선 순위를 낮추는 것이 바람직하다.
상기 계산부는, 상기 제 2 데이터 스트림이 입력 예상 시간에 수신되지 않는 경우, 상기 데이터 수신 상태에 대응하는 가중치를 증가시켜 상기 해당 메모리 영역의 우선 순위를 낮추는 것이 바람직하다.
상기 계산부는, 상기 제 1 데이터 스트림에 관한 연산에 필요한 메모리의 크기와 상기 해당 메모리 영역의 크기가 비슷할수록 상기 해당 메모리 영역의 크기에 대응하는 가중치를 증가시켜 상기 해당 메모리 영역의 우선 순위를 낮추는 것이 바람직하다.
상기 계산부는, 상기 해당 메모리 영역에 대응하는 상기 적어도 하나 이상의 제 2 데이터 스트림의 개수가 많을수록 대응하는 가중치를 감소시켜서 상기 해당 메모리 영역의 우선 순위를 높이는 것이 바람직하다.
상기 메모리 영역은 데이터 스트림에 대한 연산자(operator) 각각에 대응하는 메모리 영역인 시놉시스(synopsis) 또는 복수의 연산자에 공유되는 메모리 영역인 스토어(store)를 포함하는 것이 바람직하다.
본 발명의 또 다른 일 실시예에 따른 휴대용 장치 상의 데이터 스트림 관리 시스템에서 메모리를 관리하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 있어서, 상기 메모리 관리 방법은, 복수의 메모리 영역 각각에 대하여 우선 순위에 따른 스코어링 함수(scoring function)를 계산하는 단계; 상기 각각의 메모리 영역에 대한 스코어링 함수를 비교하여 우선 순위가 가장 낮은 메모리 영역을 선택하는 단계; 상기 선택된 메모리 영역의 데이터를 2차 저장 장치로 이동하는 단계; 및 상기 선택된 메모리 영역에 수신된 제 1 데이터 스트림을 저장하는 단계를 포함하는 것이 바람직하다.
도 1은 U-헬스케어 시스템을 간단히 나타낸 도면이다.
도 2a 및 도 2b는 도면들에 사용된 부호의 notation을 설명하기 위한 도면이다.
도 3은 DSMS에서의 시놉시스의 구조의 일 예를 나타내는 도면이다.
도 4는 DSMS에서의 스토어의 구조의 일 예를 나타내는 도면이다.
도 5는 본 발명에 따른 휴대용 장치의 일 실시예를 나타낸 블록도이다.
도 6은 본 발명에 따른 메모리 관리 방법의 일 실시예를 나타낸 흐름도이다.
도 7은 구성 요소를 고려하고 관리하는 관리자들을 도시한 도면이다.
도 8은 본원 발명에 따른 메모리 관리 방법의 다른 일 실시예를 나타낸 흐름도이다.
도 9a는 테이블 형태로 저장된 주기 정보의 예를 나타낸 도면이고, 도 9b는 linked list의 형태로 저장된 주기 정보의 예를 나타낸 도면이다.
도 10a는 첫번째 victim을 선택한 경우의 이전 주기 정보를 나타낸 도면이고, 도 10b는 현재 시간을 기준으로 갱신된 다음 스트림의 입력 예상 시간을 나타낸 도면이다.
도 11은 스토어 매니저에서 시놉시스 또는 스토어 id를 관리하는 방식을 나타낸 도면이다.
<부호의 설명>
10 ... 센서 20 ... 휴대용 장치
30 ... 서버 100 ... 스토어 매니저
110 ... 스트림 주기 매니저
200 ... victim 매니저
210 ... 다음 입력 스트림 시간 관리 유니트
220 ... 인터미턴스 상황 식별 유니트
230 ... 스코어링 함수 계산 유니트
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세히 설명한다.
도 1은 U-헬스케어 시스템을 간단히 나타낸 도면이다.
도 1에 도시된 바와 같이 인체에 센서(10)를 부착하여 의료 정보를 수집하고 이를 궁극적으로는 병원 등에 위치한 서버(30) 측의 DSMS에 전달하게 된다. 그런데 인체에 부착하는 센서는 원격지로 데이터를 전송하기 어려우므로 스마트폰이나 핸드폰 등과 같은 휴대용 장치(portable device, 20)를 경유하여 서버로 데이터를 전달한다.
센서(10)가 무선으로 데이터를 전송하면 휴대용 장치(20)는 데이터를 수신하고 이를 서버로 전송한다. 즉, 휴대용 장치(20)는 게이트웨이(gateway)의 역할을 수행한다.
이때 휴대용 장치(20)는 센서에서 보내온 데이터를 단순히 서버(30)로 전달하는 것에 그치는 것이 아니라, 자신이 데이터를 처리하는 동작도 수행한다. 이를 위하여 휴대용 장치(20)에는 센서(10)로부터 전송된 데이터를 처리할 수 있는 수준의 하드웨어를 보유하고 있으며, 모바일 데이터 스트림 관리 시스템(mobile DSMS)이 설치되어 동작한다.
센서(10)나 휴대용 장치(20)는 크기의 제한 때문에 전원에서 공급되는 전력 양이 서버(30)에 비하여 적다. 따라서, 전력 소모량을 줄이기 위한 기법이 사용된다. 센서(10)의 경우 전력 소모량을 줄이기 위하여 초저전력(Ultra Low Power) 전송 시스템이나 SRP 시스템 등을 도입하여 사용하고 있다.
또한 센서(10)와 휴대용 장치(20)의 배터리 소모를 줄이기 위하여 전달하는 데이터의 양을 줄이는 다음과 같은 방법들이 사용되고 있다.
우선은 데이터의 압축이다. 이는 센서(10)에서 추출된 원 데이터(raw data)를 압축하는 것이다.
또한 실시간 전송보다는 주기적 전송이 사용된다. 실시간의 연속적 전송(real time continuous transmit)은 전력이 충분히 공급되는 경우라면 이상적인 전송 방법이지만, 센서(10)로부터 휴대용 장치(20)로의 무선 전송에 있어서는 전송에 사용되는 대역폭(bandwidth)보다 생성되어 전송되는 생체 신호 데이터의 크기가 많이 적기 때문에 주기적인 전송(periodic transmit)이 배터리의 전력 공급의 측면에서 더 효율적이다. 왜냐하면 전송 자체를 수행하기 위한 에너지 소비 전력이 크기 때문에, 낮은 데이터 레이트(data rate)로 연속적인 전송을 하는 것보다는 높은 데이터 레이트로 전송 시간을 줄이는 것이 소비 전력이 더 적게 되기 때문이다.
또한 사용자의 행동 패턴 등의 이유로 인해 실시간 전송이 불가능한 경우도 발생한다. 예를 들어 게이트웨이로 사용되는 핸드폰을 충전하기 위하여 자리에 둔 상태에서 사용자가 다른 일을 하기 위해 자리를 떠나 이동하게 되면 센서로부터 핸드폰으로의 데이터 전송은 불가능하게 된다. 이와 같이 데이터의 전송이 간헐적(intermittent)하게 되는 상황을 인터미턴스(intermittence) 상황이라고 한다. 인터미턴스 상황에서는 실시간으로 연속적인 전송을 수행하는 것은 무리가 있으므로, 주기적인 통신 또는 비주기적인 통신 방법으로 많은 양의 데이터를 한번에 송신하는 방식을 채택하게 된다.
모바일 환경에서의 센서의 사용은 게이트웨이인 휴대용 장치에 직접 탑재되어 있거나, 유선 또는 무선을 통하여 애드혹(ad-hoc)으로 연결되는 센서를 사용하게 된다. 이때 휴대용 장치 상의 모바일 DSMS에서 센서 데이터를 수신하는 형태는 전력 효율성(power efficiency)을 위하여 주기적인 전송 형태를 가지게 되는데, 이때 다수의 센서가 사용된다면 각각의 센서 별로 서로 다른 수신 주기를 가질 수도 있다.
일반적인 DSMS의 구동 환경은 서버에서 동작하는 것을 전제로 하고 있어 CPU 및 메모리가 충분하다는 가정 아래 실험을 수행하고 있다. 하지만 휴대용 장치의 시스템 환경은 서버에 비하여 아주 작은 규모의 시스템 사용을 가지고 있다. 메모리의 용량은 서버에 비하여 매우 작은데, 또한 개발자가 실제 사용할 수 있는 메모리 공간은 더 적게 된다. 따라서, 모바일 DSMS에서는 서버의 환경과는 다른 환경을 가정하여야 하며, CPU 및 메모리의 한정적인 사용을 전제하여야 한다.
또한 데이터 스트림 관리 시스템(DSMS)는 일반적인 데이터 베이스 관리 시스템(Database Management System: DBMS)과는 다른 구조를 가진다. 특히 데이터 스트림을 관계식(relation)으로 변환해 주는 부분이 필요하다. 이러한 변환을 수행하기 위하여 메모리 공간이 연산자(operator)에 배정된다. 이러한 메모리 공간의 예로는 시놉시스(synopsis)와 스토어(store) 등이 있다. 시놉시스는 스트림을 관계식으로 변환해 주는 메모리 공간으로서 각 연산자마다 하나씩 배정되어 사용된다. 그런데 유사한 성질을 가지는 시놉시스를 통합하여 여러 개의 연산자들이 메모리 공간을 공유해서 사용할 수 있는데 이러한 메모리 공간을 스토어라고 한다.
도 2a 내지 도 4를 참조하여 모바일 DSMS에서의 메모리 영역의 사용을 설명한다.
도 2a 및 도 2b는 도면들에 사용된 부호의 표기법(notation)을 설명하기 위한 도면이다. 도 2a 및 도 2b를 각각 참조하면 이하의 도면들에서 큐(queue)는 사다리와 비슷하게 표현되며, 연산자(operator)는 둥근 원 안에 해당 연산자의 이름을 표기하는 방식으로 표현된다. 도 2b에서는 select 연산자의 예를 표시하였다.
DSMS에서는 다양한 응용 프로그램(application)에 의해서 다수의 스트림 데이터를 수신할 수 있으며, 각각의 응용 프로그램 별로 다수의 질의문(query)가 사용될 수 있다.
이하에서는 다음과 같은 3개의 질의문(query)가 사용되는 경우를 가정한다.
[질의문 1]
Istream ( Select sum ( f3 ) From S3 [ Row 100] )
[질의문 2]
Istream( Select count (*) From S1 [ Row 100] Where S1 . f1 > 50 )
[질의문 3]
Istream( Select S1 . f1 , S2 . f2 From S1 [ Row 100], S2 [ Range 1 Min ] Where S1.f1 = S2 . f1 )
이들 질의문들에 의해 도 3 또는 도 4에서와 같은 메모리 환경이 생성될 수 있다. 이와 같은 구조를 physical plan이라고 한다.
도 3은 DSMS에서의 시놉시스의 구조의 일 예를 나타내는 도면이다.
먼저 상기 질의문에 따른 메모리 구조를 설명하면 데이터 스트림 S1은 큐(Queue) 1에 대응하며, 데이터 스트림 S2는 큐(Queue) 2에 대응하며, 데이터 스트림 S3은 큐(Queue) 3에 대응한다.
질의문 1에 의하면 데이터 스트림 S3의 100개의 열(Row 100)에 대하여 합(sum)을 구하는 연산이 수행된다. 따라서 100개의 열을 점검하는 Seq Window라는 연산자와 sum에 대응하는 aggregate라는 연산자가 생성된다. 각각의 연산자에는 시놉시스가 배정된다. 즉 Seq Window 연산자에는 시놉시스 6이 배정되며, aggregate 연산자에는 시놉시스 7이 배정된다.
질의문 2에 의하면 데이터 스트림 S1의 100개의 열(Row 100)에 대하여 S1.f1의 값이 50보다 큰 개수를 세는(count) 연산이 수행된다. 따라서 100개의 열을 점검하는 Seq Window 연산자에 대하여 시놉시스 1이 배정되었으며, 개수를 세는 count 연산에 대응하는 aggregate 연산자에 대하여 시놉시스 5가 배정된다.
질의문 3에 의하면 데이터 스트림 S1의 100개의 열(Row 100)과 데이터 스트림 S2의 1분 동안의 데이터(Range 1 Min)에 대하여 S1.f1의 값과 S2.f1의 값이 같은 데이터를 선택하는(Select) 연산이 수행된다. S2의 1분 동안의 데이터를 점검하는 Seq Window 연산자에 대하여 시놉시스 2가 배정되었으며, S1.f1의 값과 S2.f2의 값을 비교하기 위하여 두 데이터 스트림을 결합하는 join 연산자에 대하여 시놉시스 3과 시놉시스 4가 배정되었다.
이와 같이 하나의 연산자에 하나의 시놉시스가 배정되기도 하며(시놉시스 1, 2, 5, 6, 7), 하나의 연산자에 복수 개의 시놉시스가 배정되기도 한다(시놉시스 3, 4).
그런데, 각 시놉시스를 살펴보면, 시놉시스 1, 3, 5는 데이터 스트림 S1의 데이터들이 저장되는 영역으로서 서로 유사하며, 시놉시스 2와 4는 데이터 스트림 S2의 데이터들이 저장되는 영역으로서 서로 유사하고, 시놉시스 6과 7은 데이터 스트림 S3의 데이터들이 저장되는 영역으로서 서로 유사하다.
이와 같이 유사한 시놉시스들을 하나의 메모리 영역으로 통합하여 스토어로서 배정할 수 있다.
도 4에서는 DSMS에서의 스토어의 구조의 일 예를 나타내고 있다.
도 4의 예에서는 시놉시스 1, 3, 5를 통합하여 스토어 1에 배정하고, 시놉시스 2와 4를 통합하여 스토어 2에 배정하고, 시놉시스 6과 7을 통합하여 스토어 6에 배정하였다.
서버 환경에서는 메모리 공간이 충분하므로 상기 시놉시스 또는 스토어가 점유하는 메모리 공간은 충분하다고 가정한다. 즉 시놉시스 또는 스토어가 배정되면 질의문에 의한 연산이 모두 수행될 때까지 해당 메모리 영역을 점유하는 것이 가능하다.
반면 휴대용 장치의 DSMS에서는 메모리 공간이 충분하지 않으므로, 시놉시스 또는 스토어가 질의문에 의한 연산이 모두 수행될 때까지 해당 메모리 영역을 점유하게 되면, 시스템에서 메모리가 부족하게 된다.
도 5는 본 발명에 따른 휴대용 장치의 일 실시예를 나타낸 블록도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 휴대용 장치(300)는 메모리(310), 계산부(320), 제어부(330), 및 2차 저장 장치(340)를 포함한다.
메모리(310)는 데이터 스트림을 저장하기 위한 복수의 메모리 영역으로 이루어진다. 복수의 메모리 영역은 시놉시스 또는 스토어인 것이 바람직하다.
계산부(320)는 상기 복수의 메모리 영역 각각에 대하여 스코어링 함수(scoring function)를 계산한다. 스코어링 함수란 해당 메모리 영역에 저장된 데이터의 우선 순위를 점수로 나타낸 것이다. 예를 들어, 해당 메모리 영역의 우선 순위가 낮을수록 높은 스코어링 함수가 높게 설정하면, 스코어링 함수가 가장 높은 메모리 영역이 2차 저장 장치로 이동시키기 위한 대상이 된다(이하 이를 victim이라고 부르기로 한다).
제어부(330)는 각각의 영역에 대한 스코어링 함수를 비교하여 우선 순위가 가장 낮은 메모리 영역의 데이터를 2차 저장 장치(340)로 이동시킨다.
2차 저장 장치(340)는 우선 순위가 낮은 메모리 영역의 데이터를 저장하기 위한 저장 장치이다. 2차 저장 장치는 secondary storage라 불리며, 자기 디스크, 광디스크, 플래시 디스크 등이 있다.
도 6은 본 발명에 따른 메모리 관리 방법의 일 실시예를 나타낸 흐름도이다.
도 6을 참조하면, 휴대용 장치 상의 DSMS에서는 복수의 메모리 영역 각각에 대하여 우선 순위에 따른 스코어링 함수를 계산하고(S310), 각각의 영역에 대한 스코어링 함수를 비교하여 우선 순위가 가장 낮은 메모리 영역을 선택하고(S320), 선택된 메모리 영역의 데이터를 2차 저장 장치로 이동시키고(S330), 선택된 메모리 영역에 수신된 데이터 스트림을 저장 한다(S340).
즉, 본 발명의 일 실시예에 따르면 시놉시스나 스토어가 점유하는 메모리 영역을 효율적으로 사용하기 위하여, 스코어링 함수를 계산하여 시놉시스나 스토어 중에서 가장 낮은 우선 순위를 가지는 것을 victim으로 선택하고, victim으로 선택된 메모리의 내용, 즉 해당 메모리 영역의 데이터를 스토리지(2차 저장 장치)로 이동시킨다. 스토리지에 저장된 해당 메모리 영역의 데이터가 다시 필요한 경우 다시 메모리로 이동(이를 load라고 한다)시킨다.
스코어링 함수를 계산하기 위하여 고려하여야 하는 요소를 구성 요소라고 한다. 구성 요소의 예로는 해당 메모리 영역에 대응하는 데이터 스트림이 다음에 수신될 것으로 예상되는 시간(이를 입력 예상 시간이라고 하자), 센서와의 연결 및 수신 상태, 해당 메모리 영역(시놉시스 또는 스토어)의 크기, 해당 메모리 영역이 데이터 스트림에 공유되는 개수(스토어의 경우) 등이 있다.
스코어링 함수를 계산하기 위하여는 상기 구성 요소의 값에 해당 요소의 가중치를 곱한 값들을 모두 더한다. 예를 들어 구성 요소 A와 B를 고려하는 경우, 스코어링 함수 = A * (A의 가중치) + B * (B의 가중치)의 식에 의해 구한다.
다음 데이터 스트림의 입력 예상 시간을 고려하는 경우, 데이터 스트림의 수신 주기를 활용하여 현재 시간을 기준으로 다음 입력 예상 시간을 알 수 있다.
센서 연결 및 수신 상태를 고려하는 경우, 만일 데이터 스트림이 수신 주기를 지나서도 수신되지 않은 경우 센서의 연결 및 수신 상태를 인터미턴스 상태로 판단한다. 인터미턴스 상황이 지속되면, 가중치를 다르게 설정하는 방법이 사용될 수 있다. 예를 들어 처음으로 수신 주기를 벗어나게 되면 가중치가 작지만, 다음으로 수신 주기를 벗어나면 2배 또는 그 이상으로 가중치를 설정하도록 한다. 수신 주기를 벗어날 때마다 가중치가 커지므로 victim이 될 가능성이 높아진다.
시놉시스 또는 스토어의 크기를 고려하는 이유는 필요한 메모리 공간과 최대한 비슷한 크기의 메모리 영역을 선택하기 위함이다.
스토어의 공유 개수를 고려하는 경우, 공유가 많이 되어 있는 스토어는 가중치를 낮게 설정하여 victim으로 선택될 가능성이 낮아지도록 한다. 공유가 많이 되어 있는 경우 입력되는 데이터 스트림과 스토어의 관계가 밀접할 가능성이 많기 때문에 2차 저장 장치로 이동시킨다면 얼마 지나지 않아 다시 필요하게 되어 메모리로 load하여야 되기 때문이다.
스토어의 크기와 공유 개수는 질의문을 등록하는 시점, 즉 register query 연산의 수행 시점에서 등록이 가능하다.
기타 고려 요소로는 시놉시스 또는 스토어에서 필요한 파라미터가 있을 수 있다.
도 7은 구성 요소를 고려하고 관리하는 관리자(manager)들을 도시한 도면이다. 스토어 매니저(store manager, 100)는 스토어의 크기와 공유 개수를 관리한다. 스트림 주기 매니저(stream periodic manager, 110)는 스트림의 수신 주기를 관리한다. victim 매니저(200)는 도 5에서 설명된 계산부(320)에 대응하는 부분이다. victim 매니저(200)는 다음 입력 스트림 시간(next input stream time)을 관리하는 부분(210), 인터미턴스(intermittence) 상황을 식별하는 부분(220), 스코어링 함수를 계산하는 부분(230)을 포함한다.
도 8은 본원 발명에 따른 메모리 관리 방법의 다른 일 실시예를 나타낸 흐름도이다.
도 7 및 도 8을 참조하면, 다음 입력 스트림 시간을 관리하는 유니트(210)에서는 스트림 주기 매니저(110)로부터 수신 주기를 전달받고 현재 시간을 기준으로 다음 입력 예상 시간을 결정한다(S100).
인터미턴스 상황 식별 유니트(220)는 센서 연결 및 수신 상태를 계산한다(S110).
victim 매니저(200)는 스토어 매니저(100)과 스트림 주기 매니저(110)로부터 구성 요소에 관한 정보를 전달받고 이를 이용하여 스코어링 함수를 계산한다(S120).
victim 매니저(200)는 스코어링 함수가 가장 큰 메모리 영역(시놉시스 또는 스토어)를 선택한다(S130).
선택된 메모리 영역의 데이터는 2차 저장 장치(storage)로 이동된다(S140).
스트림의 주기를 파악하는 방법은 다음과 같다.
1. 데이터 스트림을 생성하기 위한 CREATE STREAM 구문에 주기 정보를 삽입하는 방법이다.
해당 구문은 다음과 같다.
CREATE STREAM S1 ( sid , value , timestamp ) PERIOD 1 hour
2. 스트림의 수신 주기를 스트림의 입력 값을 기준으로 파악하는 방법이다. 즉 이전에 데이터 스트림을 수신하였던 시간들을 이용하여 주기 정보를 결정한다.
이를 위하여 이전 스트림이 들어오는 신호의 마지막 시간 값과, 현재 들어오는 스트림의 시간 값을 메모리에 저장해두고 비교한다. 이때 통계적인 추론 방법, 예를 들어 평균값을 계산하는 방식 등에 의해 주기를 파악한다. 이러한 방식에 의하면 예를 들어 스트림 S1의 주기는 평균 11분, 스트림 S2의 주기는 평균 15분과 같은 주기 정보가 산출된다.
3. 스트림 내에 태그 정보를 두거나 혹은 특정한 신호를 이용하는 등의 stream notification을 두는 방법이다.
태그 정보를 수신하면, 태그 정보에 포함된 시간을 메모리에 기록하고, 이전 수신 시간을 알아내어서 이들을 비교하여 수신 주기를 파악한다. 이때 태그 정보는 원래의 스트림 정보와는 구분되는 것으로서, 현재 시간 및 sid 등이 포함된다. 센서에서는 스트림의 송신 시에, 스트림의 묶음에 태그 정보를 부가하여 송신한다.
스트림의 주기를 관리하는 방법은 다음과 같다.
1. 구문에 주기 정보를 포함하는 경우
스트림 주기 매니저(110)에서 테이블 형식으로 관리한다. 도 9a는 테이블 형태로 저장된 주기 정보의 예를 나타낸 도면이다.
또한, 주기 순서대로 linked-list의 형식으로 관리한다. 도 9b는 linked list의 형태로 저장된 주기 정보의 예를 나타낸 도면이다.
2. 파악된 스트림의 수신 주기 관리 방법
이전 스트림과 현재 스트림의 시간 값으로 파악한 후, 관리는 메모리에서 테이블 형태 또는 순서가 매겨진 linked list (ordered linked-list)의 형태로 관리한다.
다음 스트림의 입력 예상 시간을 구하는 것은 다음과 같다. 이는 victim을 선택하는 과정에서 계산을 하게 된다.
도 10a에는 첫번째 victim을 선택한 경우의 이전 주기 정보를 나타내고 있다. 도 10a의 상태로부터 8분이 경과하여 현재 시간을 기준으로 갱신(update)하면 도 10b와 같이 다음 스트림의 남은 시간, 즉 입력 예상 시간이 산출된다.
이러한 입력 예상 시간은 스코어링 함수를 계산할 때 고려되는 구성 요소로서 입력된다.
센서 연결 및 수신 상태를 고려하는 경우, victim을 선택하는 과정에서 계산을 하게 되며, Last Time Stamp(최근 스트림의 입력 시간)를 기준으로, 주기 정보를 참조하여 현재의 스트림의 수신 상태를 알 수 있다. 또한 얼마의 시간 동안 인터미턴스 상태가 되었는지 판단할 수 있다.
예를 들어 다음 식과 같이 이전 스트림의 입력 시간으로부터 현재 시간까지의 차이가 주기를 크게 벗어나면 인터미턴스 상태라고 결정할 수 있다.
현재 시간 - 주기 >> Last Time Stamp
이러한 인터미턴스 상황이 지속되면 대응하는 가중치 값을 크게 하여 해당 메모리 영역의 우선 순위를 낮추도록 한다. 오랫동안 수신되지 않은 데이터 스트림의 경우 앞으로도 인터미턴스가 지속될 가능성이 높으므로 2차 스토리지로 이동하여도 무방할 것이기 때문이다.
도 11은 스토어 매니저(100)에서 시놉시스 또는 스토어 id를 관리하는 방식을 나타낸 도면이다.
스토어 매니저(100)에서는 physical plan을 생성할 때, 시놉시스의 id 또는 스토어의 id를 생성하며, 이들 id는 스토어 매니저(100)에서 관리한다. id의 관리를 위하여 해쉬(hash) 또는 linked list 같은 자료 구조가 사용될 수 있다.
해쉬로 연산자(operator)에서 사용하는 모든 id를 관리하고, 시놉시스나 스토어의 데이터들이 스토리지에 저장되어 있는지 메모리에 존재하는지를 표시한다.
만일 스토리지에 저장되어 있는 경우, 바이트(byte) 단위의 크기, 섹터 번호(sector no.), 섹터 카운트(sector count)가 기록된다.
victim으로 선택되었을 때는 해쉬 구조에서 해당 시놉시스나 스토어에 대응하는 id를 검색하여, 스토리지에 있는지 메모리에 존재하는지의 표시, 크기, 섹터 번호 및 섹터 카운트를 기재한다.
본 발명에 따른 메모리 관리 방식은 시놉시스나 스토어에 한정되지 않으며, 모바일 DSMS를 사용하는 모든 분야에 적용 가능하다.
본 발명에 따른 메모리 관리 방법과 이를 수행하기 위한 휴대용 장치에 의하면 한정된 메모리를 사용하는 모바일 DSMS에서 시놉시스나 스토어 등의 메모리 영역을 효율적으로 사용할 수 있다. 스트림의 주기적인 수신 속성을 이용하여 한정된 메모리를 사용하는 모바일 DSMS에서 스코어링 함수를 사용하여 사용할 가능성이 가장 낮은 메모리 영역을 선택하고 해당 메모리 영역의 데이터를 스토리지로 이동하고 즉시 사용될 메모리 공간을 확보할 수 있게 된다.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함하며, 특히 본 발명에 따른 휴대용 장치를 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장 장치 등이 있다.
비록 상기 설명이 다양한 실시예들에 적용되는 본 발명의 신규한 특징들에 초점을 맞추어 설명되었지만, 본 기술 분야에 숙달된 기술을 가진 사람은 본 발명의 범위를 벗어나지 않으면서도 상기 설명된 장치 및 방법의 형태 및 세부 사항에서 다양한 삭제, 대체, 및 변경이 가능함을 이해할 것이다. 따라서, 본 발명의 범위는 상기 설명에서보다는 첨부된 특허청구범위에 의해 정의된다. 특허청구범위의 균등 범위 안의 모든 변형은 본 발명의 범위에 포섭된다.

Claims (17)

  1. 휴대용 장치(portable device) 상의 데이터 스트림 관리 시스템(Data Stream Management System: DSMS)에서 메모리를 관리하는 방법에 있어서,
    복수의 메모리 영역 각각에 대하여 우선 순위에 따른 스코어링 함수(scoring function)를 계산하는 단계;
    상기 각각의 메모리 영역에 대한 스코어링 함수를 비교하여 우선 순위가 가장 낮은 메모리 영역을 선택하는 단계;
    상기 선택된 메모리 영역의 데이터를 2차 저장 장치로 이동하는 단계; 및
    상기 선택된 메모리 영역에 수신된 제 1 데이터 스트림을 저장하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  2. 제 1 항에 있어서,
    상기 각각의 영역에 대한 스코어링 함수를 계산하는 단계는,
    상기 스코어링 함수를 계산하기 위하여 고려하는 요소들의 값에 각각의 요소들에 대한 가중치를 곱한 값들을 모두 더하여 상기 스코어링 함수를 계산하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  3. 제 2 항에 있어서,
    상기 스코어링 함수를 계산하기 위하여 고려하는 요소들은,
    해당 메모리 영역에 대응하는 적어도 하나 이상의 제 2 데이터 스트림이 다음에 수신될 것으로 예상되는 시간, 상기 휴대용 장치로 상기 제 2 데이터 스트림을 전송하는 센서로부터의 데이터 수신 상태, 상기 해당 메모리 영역의 크기, 및 상기 해당 메모리 영역에 대응하는 상기 제 2 데이터 스트림의 개수 중의 하나 이상을 포함하는 것을 특징으로 하는 메모리 관리 방법.
  4. 제 3 항에 있어서,
    상기 DSMS의 사용자가 상기 제 2 데이터 스트림을 생성하기 위한 구문에 삽입한 주기 정보, 이전에 상기 제 2 데이터 스트림을 수신하였던 시간들을 이용하여 결정된 주기 정보, 및 상기 제 2 데이터 스트림에 태그 정보로서 포함된 주기 정보 중 어느 하나를 이용하여 상기 제 2 데이터 스트림이 다음에 수신될 것으로 예상되는 시간을 결정하는 단계를 더 포함하며,
    상기 스코어링 함수를 계산하기 위하여 고려하는 요소들의 값에 각각의 요소들에 대한 가중치를 곱한 값들을 모두 더하여 상기 스코어링 함수를 계산하는 단계는, 상기 제 2 데이터 스트림이 수신될 것으로 예상되는 시간이 더 늦을수록 대응하는 가중치를 증가시켜서 상기 해당 메모리 영역의 우선 순위를 낮추는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  5. 제 3 항에 있어서,
    상기 스코어링 함수를 계산하기 위하여 고려하는 요소들의 값에 각각의 요소들에 대한 가중치를 곱한 값들을 모두 더하여 상기 스코어링 함수를 계산하는 단계는, 상기 제 2 데이터 스트림이 입력 예상 시간에 수신되지 않는 경우, 상기 데이터 수신 상태에 대응하는 가중치를 증가시켜 상기 해당 메모리 영역의 우선 순위를 낮추는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  6. 제 3 항에 있어서,
    상기 스코어링 함수를 계산하기 위하여 고려하는 요소들의 값에 각각의 요소들에 대한 가중치를 곱한 값들을 모두 더하여 상기 스코어링 함수를 계산하는 단계는, 상기 제 1 데이터 스트림에 관한 연산에 필요한 메모리의 크기와 상기 해당 메모리 영역의 크기가 비슷할수록 상기 해당 메모리 영역의 크기에 대응하는 가중치를 증가시켜 상기 해당 메모리 영역의 우선 순위를 낮추는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  7. 제 3 항에 있어서,
    상기 스코어링 함수를 계산하기 위하여 고려하는 요소들의 값에 각각의 요소들에 대한 가중치를 곱한 값들을 모두 더하여 상기 스코어링 함수를 계산하는 단계는, 상기 해당 메모리 영역에 대응하는 상기 적어도 하나 이상의 제 2 데이터 스트림의 개수가 많을수록 대응하는 가중치를 감소시켜서 상기 해당 메모리 영역의 우선 순위를 높이는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  8. 제 1 항에 있어서,
    상기 메모리 영역은 데이터 스트림에 대한 연산자(operator) 각각에 대응하는 메모리 영역인 시놉시스(synopsis) 또는 복수의 연산자에 공유되는 메모리 영역인 스토어(store)를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  9. 데이터 스트림 관리 시스템(DSMS)에서의 메모리 관리를 수행하기 위한 휴대용 장치에 있어서,
    데이터 스트림을 저장하기 위한 복수의 메모리 영역;
    상기 복수의 메모리 영역 각각에 대하여 우선 순위에 따른 스코어링 함수를 계산하고, 상기 각각의 메모리 영역에 대한 스코어링 함수를 비교하여 상기 우선 순위가 가장 낮은 메모리 영역을 선택하는 계산부;
    상기 선택된 메모리 영역의 데이터를 저장하기 위한 2차 저장 장치; 및
    상기 선택된 메모리 영역의 데이터를 상기 2차 저장 장치로 이동하는 제어부를 포함하는 것을 특징으로 하는 휴대용 장치.
  10. 제 9 항에 있어서,
    상기 계산부는, 상기 스코어링 함수를 계산하기 위하여 고려하는 요소들의 값에 각각의 요소들에 대한 가중치를 곱한 값들을 모두 더하여 상기 스코어링 함수를 계산하는 것을 특징으로 하는 휴대용 장치.
  11. 제 10 항에 있어서,
    상기 스코어링 함수를 계산하기 위하여 고려하는 요소들은,
    해당 메모리 영역에 대응하는 적어도 하나 이상의 제 2 데이터 스트림이 다음에 수신될 것으로 예상되는 시간, 상기 휴대용 장치로 상기 제 2 데이터 스트림을 전송하는 센서로부터의 데이터 수신 상태, 상기 해당 메모리 영역의 크기, 및 상기 해당 메모리 영역에 대응하는 상기 제 2 데이터 스트림의 개수 중의 하나 이상을 포함하는 것을 특징으로 하는 휴대용 장치.
  12. 제 11 항에 있어서,
    상기 DSMS의 사용자가 상기 제 2 데이터 스트림을 생성하기 위한 구문에 삽입한 주기 정보, 이전에 상기 제 2 데이터 스트림을 수신하였던 시간들을 이용하여 결정된 주기 정보, 및 상기 제 2 데이터 스트림에 태그 정보로서 포함된 주기 정보 중 어느 하나를 이용하여 상기 제 2 데이터 스트림이 다음에 수신될 것으로 예상되는 시간을 결정하는 스트림 주기 관리부를 더 포함하며,
    상기 계산부는 상기 제 2 데이터 스트림이 수신될 것으로 예상되는 시간이 더 늦을수록 대응하는 가중치를 증가시켜서 상기 해당 메모리 영역의 우선 순위를 낮추는 것을 특징으로 하는 휴대용 장치.
  13. 제 11 항에 있어서,
    상기 계산부는, 상기 제 2 데이터 스트림이 입력 예상 시간에 수신되지 않는 경우, 상기 데이터 수신 상태에 대응하는 가중치를 증가시켜 상기 해당 메모리 영역의 우선 순위를 낮추는 것을 특징으로 하는 휴대용 장치.
  14. 제 11 항에 있어서,
    상기 계산부는, 상기 제 1 데이터 스트림에 관한 연산에 필요한 메모리의 크기와 상기 해당 메모리 영역의 크기가 비슷할수록 상기 해당 메모리 영역의 크기에 대응하는 가중치를 증가시켜 상기 해당 메모리 영역의 우선 순위를 낮추는 것을 특징으로 하는 휴대용 장치.
  15. 제 11 항에 있어서,
    상기 계산부는, 상기 해당 메모리 영역에 대응하는 상기 적어도 하나 이상의 제 2 데이터 스트림의 개수가 많을수록 대응하는 가중치를 감소시켜서 상기 해당 메모리 영역의 우선 순위를 높이는 것을 특징으로 하는 휴대용 장치.
  16. 제 9 항에 있어서,
    상기 메모리 영역은 데이터 스트림에 대한 연산자(operator) 각각에 대응하는 메모리 영역인 시놉시스(synopsis) 또는 복수의 연산자에 공유되는 메모리 영역인 스토어(store)를 포함하는 것을 특징으로 하는 휴대용 장치.
  17. 휴대용 장치(portable device) 상의 데이터 스트림 관리 시스템(Data Stream Management System: DSMS)에서 메모리를 관리하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 있어서,
    상기 메모리 관리 방법은,
    복수의 메모리 영역 각각에 대하여 우선 순위에 따른 스코어링 함수(scoring function)를 계산하는 단계;
    상기 각각의 메모리 영역에 대한 스코어링 함수를 비교하여 우선 순위가 가장 낮은 메모리 영역을 선택하는 단계;
    상기 선택된 메모리 영역의 데이터를 2차 저장 장치로 이동하는 단계; 및
    상기 선택된 메모리 영역에 수신된 제 1 데이터 스트림을 저장하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 기록 매체.
KR1020110027559A 2011-03-28 2011-03-28 휴대용 장치 상의 데이터 스트림 관리 시스템에서 메모리를 관리하는 방법 및 이를 위한 휴대용 장치 KR20120109197A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110027559A KR20120109197A (ko) 2011-03-28 2011-03-28 휴대용 장치 상의 데이터 스트림 관리 시스템에서 메모리를 관리하는 방법 및 이를 위한 휴대용 장치
US13/420,797 US9298644B2 (en) 2011-03-28 2012-03-15 Method and portable device for managing memory in a data stream management system using priority information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110027559A KR20120109197A (ko) 2011-03-28 2011-03-28 휴대용 장치 상의 데이터 스트림 관리 시스템에서 메모리를 관리하는 방법 및 이를 위한 휴대용 장치

Publications (1)

Publication Number Publication Date
KR20120109197A true KR20120109197A (ko) 2012-10-08

Family

ID=46928891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110027559A KR20120109197A (ko) 2011-03-28 2011-03-28 휴대용 장치 상의 데이터 스트림 관리 시스템에서 메모리를 관리하는 방법 및 이를 위한 휴대용 장치

Country Status (2)

Country Link
US (1) US9298644B2 (ko)
KR (1) KR20120109197A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113688062B (zh) * 2020-05-18 2022-08-26 北京市商汤科技开发有限公司 用于存储数据的方法和相关产品
WO2023062468A1 (en) * 2021-10-12 2023-04-20 Medtronic, Inc. Managing telemetry session with implantable device

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944815A (en) * 1998-01-12 1999-08-31 Advanced Micro Devices, Inc. Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access
JP4822598B2 (ja) * 2001-03-21 2011-11-24 ルネサスエレクトロニクス株式会社 キャッシュメモリ装置およびそれを含むデータ処理装置
US6728837B2 (en) * 2001-11-02 2004-04-27 Hewlett-Packard Development Company, L.P. Adaptive data insertion for caching
US7502901B2 (en) * 2003-03-26 2009-03-10 Panasonic Corporation Memory replacement mechanism in semiconductor device
WO2005018216A2 (en) * 2003-08-05 2005-02-24 Indesign, Llc. Bit slicer system and method for synchronizing data streams
US7457626B2 (en) * 2004-03-19 2008-11-25 Microsoft Corporation Virtual private network structure reuse for mobile computing devices
KR20050096623A (ko) 2004-03-31 2005-10-06 주식회사 비앤디 미디어 재생 장치 및 재생 방법
KR100577384B1 (ko) * 2004-07-28 2006-05-10 삼성전자주식회사 페이지 정보를 이용한 페이지 대체 방법
US7949714B1 (en) * 2005-12-05 2011-05-24 Google Inc. System and method for targeting advertisements or other information using user geographical information
US7475069B2 (en) * 2006-03-29 2009-01-06 International Business Machines Corporation System and method for prioritizing websites during a webcrawling process
US7603522B1 (en) * 2006-05-10 2009-10-13 Globalfoundries Inc. Blocking aggressive neighbors in a cache subsystem
US20090097623A1 (en) * 2007-10-10 2009-04-16 Gowrishankar Bharadwaj Remote Patient Handset and System for Remote Collection of Bio-Metric Data and Device Control
US7802057B2 (en) * 2007-12-27 2010-09-21 Intel Corporation Priority aware selective cache allocation
US8799396B2 (en) * 2008-02-04 2014-08-05 Cisco Technology, Inc. Method and system for an efficient distributed cache with a shared cache repository
KR20090120722A (ko) 2008-05-20 2009-11-25 엘지전자 주식회사 이동 단말기 및 이것의 콘텐츠 다운로드 방법
US20100080143A1 (en) 2008-09-30 2010-04-01 Topaltzas Dimitrios M System and Method for Testing Mobile Telephone Data Services
KR101003667B1 (ko) 2008-11-13 2010-12-27 아이쓰리시스템 주식회사 방송망을 이용한 사용자 서비스 제공 시스템 및 방법
WO2011010688A1 (ja) * 2009-07-22 2011-01-27 日本電気株式会社 コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信プログラム
US8301840B2 (en) * 2009-12-15 2012-10-30 International Business Machines Corporation Assigning cache priorities to virtual/logical processors and partitioning a cache according to such priorities
EP2369515A1 (en) * 2010-03-10 2011-09-28 Vodafone Holding GmbH Mobile communication device adapter for connecting to sensors
US8954490B2 (en) * 2010-06-24 2015-02-10 International Business Machines Corporation Speculative and coordinated data access in a hybrid memory server
US8443149B2 (en) * 2010-09-01 2013-05-14 International Business Machines Corporation Evicting data from a cache via a batch file
US20130144682A1 (en) * 2011-12-01 2013-06-06 Avaya Inc. System and method for enhancing communication services based on user behavior and relative trending patterns
WO2013095639A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Utility and lifetime based cache replacement policy

Also Published As

Publication number Publication date
US20120254575A1 (en) 2012-10-04
US9298644B2 (en) 2016-03-29

Similar Documents

Publication Publication Date Title
Zhang et al. Remote mobile health monitoring system based on smart phone and browser/server structure
Almalki et al. EERP‐DPM: energy efficient routing protocol using dual prediction model for healthcare using IoT
US20110084806A1 (en) Wireless Tracking System And Method For Backhaul Of Information
CN203117987U (zh) 一种家用远程移动健康监护系统
Varshney A framework for supporting emergency messages in wireless patient monitoring
US11678152B2 (en) Wearable data storage and transmission device for processing sensor data
CN106134246A (zh) 用于医学体域网(mban)以满足占空比规则的多信道通信方案
CN104754501A (zh) 一种数据传输方法及装置
US20160135206A1 (en) Mban channel management scheme using patient acuity information
CN104867083A (zh) 一种基于移动终端的移动医疗系统
WO2019089291A1 (en) Clinical telemetry patient monitoring battery management system and method
CN104867082A (zh) 一种面向个人的移动医疗系统
KR20120109197A (ko) 휴대용 장치 상의 데이터 스트림 관리 시스템에서 메모리를 관리하는 방법 및 이를 위한 휴대용 장치
Varshney Managing wireless health monitoring for patients with disabilities
CN104933318A (zh) 一种基于云的面向个人的移动医疗系统
CN105376295B (zh) 选择便携式遥测设备的系统、方法及便携式遥测设备
Bahanfar et al. Reliable communication in wireless body area sensor network for health monitoring
CN109076100A (zh) 用于智能设备的协作传输管理
KR20120072464A (ko) 환자 및 의료진을 위한 모바일 기반 천식 관리 시스템 및 방법
CN210095738U (zh) 一种智能人居用远程医养健康系统
CN202257578U (zh) 一种无线远程移动医疗监护网络系统
Gomes et al. A proposal for a healthcare environment with a real-time approach
US20200258625A1 (en) Server-neutral network architecture
Nasser et al. Anytime and anywhere monitoring for the elderly
Cheng et al. An evolutionary game theoretic approach for configuring cloud-integrated body sensor networks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application