首页 / 专利库 / 电脑零配件 / 嵌入式系统 / 임베디드 시스템에서 싱글태스크로 멀티테스킹하는 기법

임베디드 시스템에서 싱글태스크로 멀티테스킹하는 기법

阅读:643发布:2023-05-19

专利汇可以提供임베디드 시스템에서 싱글태스크로 멀티테스킹하는 기법专利检索,专利查询,专利分析的服务。并且본 발명은 임베디드시스템(Enbedded System)에서 타이머 인터럽트를 이용하여 싱글 태스크로 멀티 태스킹의 장점들을 구현하는 기법에 관한 것으로, 특히 멀티태스킹을 지원하는 OS가 없는 경우에 시스템 프로그램을 구축하는데 적당하도록 한 시스템 프로그램 기법에 관한 것이다.
본 발명의 구성은 임베디드 시스템에서 싱글태스크로 멀티태스킹의 장점을 얻기위해, 기능불록들을 쪼개진 각각의 기능들을 린크드 리스트로 구성하며, 플라이오리티(priority)와 그 기능이 다시 수행되기 까지 걸리는 시간과 그 기능이 수행되는데 걸리는 최대시간들을 조건사항으로 준다. 그리고 가능한한 모든 기능이 주어진 시간에 수행될 수 있는 상황하에서 가장 플라이어티가 높은 기능을 우선적으로 실행시키기 위해서 타이머를 이용하여 주기적으로 인터럽트를 발생시키고, 인터럽트가 발생하면 각 기능들의 카운터를 감소시켜 시스템프로그램으로 하여금 하나의 기능이 종료될 경우, 이 카운터의 값과 이전까지 그 기능이 수행되는데 걸린 최대시간, 그리고 플라이어리티를 가지고 해당 기능이 수행되기까지 남은 시간을 계산하여 그 값이 카운터의 값보다 작은 조건을 만족하도록 린크드 리스트를 변경하여 린크드 리스크의 제일 앞의 기능부터 먼저 수행시킨다. 해당기능이 수행되기까지 남은 시간을 계산할때는 해당 기능의 앞에 위치하는 모든 기능의 시간값을 더하는 방법을 사용하고, 이 시간값은 해당 기능이 종료할 때마다 이전에 저장된 값과 현재 그 기능이 수행되면서 소요된 시간을 비교하여 큰값을 선택하는 방법에 의하여 저장되는, 각 기능간의 독립된 데이타 영역을 확보함으로써, 시스템 동작시 기능의 삭제 또는 추가에 의하여 다른 기능에 미칠 수있는 영향을 최대한 줄이는 동시에, 각 기능간의 통신을 위해 최소한의 글로발데이타 영역을 확보하는 것을 특징으로 하는 임베디드시스템에서 싱글태스크로 멀티태스킹 하는 기법이다.,下面是임베디드 시스템에서 싱글태스크로 멀티테스킹하는 기법专利的具体信息内容。

  • 임베디드 시스템에서 싱글태스크로 멀티태스킹의 장점을 얻기위해, 기능볼록들을 쪼개진 각각의 기능들을 린크드 리스트로 구성하며, 플라이어리티와 그 기능이 다시 수행되기 까지 걸리는 시간과 그 기능이 수행되는데 걸리는 최대시간들을 조건사항으로 줌으로써, 가능한한 모든 기능이 주어진 시간에 수행된 수 있는 상황하에서 가장 플라이어티가 높은 기능을 우선적으로 실행시키는 것에 있어 타이머를 이용하여 주기적으로 인터럽트를 발생시키고, 인터럽트가 발생하면 각기능들의 카운터를 감소시켜, 시스템프로그램으로 하여금 하나의 기능이 종료될경우, 이 카운터의 값과 이전까지 그 기능이 수행되는데 걸린 최대시간 그리고 플라이어리티를 가지고 해당 기능이 수행되기까지 남은 시간을 계산하여, 그 값이 카운터의 값보다 작은 조건을 만족하도록 린크드 리스트를 변경하여 린크드 리스크의 제일 앞의 기능부터 먼저 수행시키는데, 해당기능이 수행되기까지 남은시간을 계산할때는 해당 기능의 앞에 위치하는 모든 기능의 시간값을 더하는 방법을 사용하고, 이 시간값은 해당 기능이 종료할 때마다 이전에 저장된 값과 현재 그 기능이 수행되면서 소요된 시간을 비교하여 큰 값을 선택하는 방법에 의하여 저장되는, 각 기능간의 독립된 데이타 영역을 확보함으로써, 시스템 동작 시기등의 삭제 또는 추가에 의하여 다른 기능에 미칠 수 있는 영향을 최대한 줄이는 동시에, 각 기능간의 통신을 위해 최소한의 글로발 데이타 영역을 확보하는 것을 특징으로 하는 임베디드시스템에서 싱글태스크로 멀티태스킹 하는 기법.
  • 说明书全文

    임베디드 시스템에서 싱글태스크로 멀티테스킹하는 기법

    도 1은 종래기술의 구성도

    도 2는 본 발명에 따른 시스템구성도

    * 도면의 주요부분에 대한 부호의 설명

    101 : 타이머 102 : CPU

    103 : 태스크1 104 : 태스크2

    105 : 태스크3 106 : 더미(Dummy)

    107 : 글로발데이타

    클럭닢(C1ock tip) : 일정한 주기로 발생하는 타이머 인터럽트

    플라이어리티(Priority) : 각 태스크의 우선순위(높을수록 우선순위가 높다)

    타임슬라이스(time slice) : 각 태스크가 다시 수행되기 까지의 시간

    타임익스큐트드(Time Executed) : 각 태스크가 수행되는 시간

    본 발명은 임베디드시스템(Enbedded System)에서 타이머 인터럽트를 이용하여 싱글 태스크로 멀티 태스킹의 장점들을 구현하는 기법에 관한 것으로, 특히 멀티태스킹을 지원하는 0S가 없는 경우에 시스템 프로그램을 구축하는데 적당하도록 한 시스템 프로그램 기법에 관한 것이다.

    종래 임베디드시스템(Embedded System)의 경우 대용량의 시스템을 제외하고는 OS기반의 시스템 프로그램 보다는 개발자가 시스템 구동부터 종료까지 모든 과정을 직접 작성해야 하는 것이 보통이다. 그러나, 시스템의 복잡화되고 기능이 다양해질 수록 오에스(OS)의 도음 없이 개발자의 의도에 따라 명확한 인터페이스와 효을적인 성능을 가지는 프로그램을 작성하는 것이 상당히 어려워지고 있다,

    여기서 필요한 오에스(OS)의 주된 기능중에 하나가 바로 멀티 태스킹이다.

    대개의 임베디드시스템의 경우 싱글태스크로 구행하는 것이 보통인데, 멀티 태스킹을 사용하면 다음과 같은 장점들이 있다.

    (1) 관련된 기능블록 단위로 테스크를 구성하여 각 테스크의 기능과 인터페이스를 명확히 규정함으로써, 코딩과 디버깅 시간을 줄일 수 있다.

    (2) 각 테스크에 대해 독자적인 개발과 테스크가 가능함으로써, 공동작업시 작업분화와 화일관리가 쉬워진다.

    (3) 동시에 수행되는 여러 태스크에 대한 효울적인 스캐듀링(Scheduling)을 통해, 특정한 기능의 수행(예를들어, I/0기능의 수행)으로 인한 다른 기능의 지연을 제거함으로써 시스템의 성능을 향상시킬 수 있다.

    (4) 프로그램을 모듈화 함으로써 유지관리가 쉬워진다.

    이러한 장점에도 불구하고 기존의 임베디드시스템 프로그램은, 싱글태스크로 폴링(polling)기법을 구현하는 것이 보통이다.

    이와같이 구성된 종래의 기술상의 문제점으로서는 제 1 도와 같이 단순한 폴링(polling)기법은 일련의 기능을 순차적으로 수행하는데 불과하기 때문에, 이러한 기능들이 수행되는데 소요되는 시간이나 하나의 기능이 다시 수행되기까지 걸리는 시간 등을 예측할 수가 없다. 따라서 임베디드시스템에서 흔히 존재하는 타이밍에 클리티칼(Critical)한 기능은 지원할 수가 없게 된다. 예를 들어, 기능 3은 10ms마다 한번식은 반드시 수행되어야 한다는 조건이 있다면, 위의 시스템은 그 조건을 만족할 수 없게 된다.

    설혹 개발자가 이러한 기능들의 타이밍을 미세 조정하여 조건들을 모두 만족시킨다 하더라도 새로운 기능이 추가되면 다른 모든 기능의 타이밍을 다시 조절해야 되는 불편함이 존재한다.

    또한 각각의 기능들이 공통된 데이타를 엑세스함으로써 새로운 기능의 추가, 또는 삭제시 시스템의 이상 현상을 유발할 수도 있게 된다.

    따라서 본 발명은 종래의 문제점을 해걸하기 위해 하나의 기능이 수행되는데 필요한 시간(Time Executed), 그 기능이 다시 수행되기까지의 시간(Time Slice)과 플라이어리티(Priority)를 제한 조건으로 가지고 동적으로 변화하는 T-리스트 (각각의 기능들로 이루어진 리스트)를 제공함으로써, 각각의 기능이 주어진 시간안에 할당된 우선순위(Priority) 순서대로 다시 수행될 수 있는 구조를 제공한다. 또한 각각의 기능들은 독립된 데이타영역과 제한된 IPC(Inter Process Communiation)를 가짐으로써 최대한의 독립성이 보장된다. 이는 곧 멀티태스킹의 기법을 의미한다. 즉, 제안된 아이피씨(IPC)가 제공되는 독립된 태스크들을 순차적으로 수행하는 것이 아니라 적절히 스케듈링(Scheduling)하므로써(주어진 priority에 따라) 주어진 타이밍 제한 조건을 만족시키고 프로그램을 모듈화함으로써 코딩 및 디버깅시간을 감소시키고, 유지관리를 효율적으로 할 수 있게 하는것이다.

    본 발명에서는 위의 기능들을 싱글 태스크로 구현하기 위해 타이머 인터럽트와 카운터(counter)를 이용한다.

    이하 상세한 설명을 첨부된 제 2 도를 참조하여 상세히 설명한다.

    제 2 도는 본 발명에 따른 시스템 구성도로서 크게 타이머와 각 기능들의 리스트인 T-LIST 그리고 시스템 플로우(FIow)를 제어하는 부분의 세부분으로 나눌수 있다. 지금부터는 설명상의 편의를 위해 기능을 태스크(Task)라 명한다.

    먼저 타이머는 시스템의 타이밍조건에 적절한 클럭 팁(C1ock Tip)으로 초기화되어야 한다. 여기서 클럭이란 타이머가 인터럽트를 발생시키는 주기를 말한다.

    이는 시스템 초기화 루틴에 의해 수행된다.

    다음으로 T-LIST의 각 태스크에 대해 아래에서 설명한다.

    (1) 각 태스크는 플라이어리티(Priority)를 가지며 여러개의 태스크(Task)가 동시에 수행되어야 하는 상황하에서는 제일 높은 플라이어리티를 가진 태스크가 수행된다.

    (2) 각 태스크는 타임슬라이스에 대한 카운터를 가지는데, 이 타임슬라이스(Time Slice)는 해당 태스크 한번 수행되고 다음에 다시 수행되기까지의 시간을 의S미한다. 따라서 해당 태스크는 이 카운터가 종료되기 전에는 반드시 수행되어야 한다.

    (3) 각 태스크는 독립된 데이타영역을 유지해야 한다. 즉 하나의 태스크에서 다른 태스크의 데이타를 엑세스할 수 없다. 각 태스크간의 통신은 제한된 형식을 지니며 글로발(Global)하게 사용된다.

    (4) 각각의 태스크는 T-LIST라는 린크드리스트(linked list)에 연결되어 있으며 동적으로 삽입 또는 삭제가 가능하다. T-LIST는 되는 각 태스크의 플라이어리티, 타임슬라이스, 타임익스큐티드(Task의 Priority, Time Slice, Time Executed)값에 따라 배열된다. 이 리스트의 마지막은 항상 더미태스크(Dummy Task)이다.

    (5) 각 태스크는 타임익스큐트에 대한 카운터를 가진다. 이는 해당 태스크가 수행되는데 소요된 최대시간을 의미한다. 따라서 해당 태스크의 수행시간이 이전보다 크면 갱신해야 한다. 마지막으로, 시스템의 플로우는 동작설명에서 설명한다.

    먼저 시스템이 초기화되면, 타이머를 적당한 클럭 팁(Clock Tip)으로 설명하고, T-LIST를 더미태스크(Dummy Task)만 가지도록 초기화한다.

    이와같이 구성된 본 발명의 동작은 시스템에서 필요한 각각의 태스크는 이의 플라이어리티 타임슬라이스 그리고 타임익스큐트드(Time Excuted)값에 대한 초가치를 가지고 있게 된다. 타임익스큐트드(Time Excuted)의 초기값은 0이다.

    그러면 시스템은 각각의 태스크를 플라이어리티와 타임슬라이스 값에 따라 순서대로 T-LIST에 삽입된다. 삽입되는 순서는 다음과 같다. 일단 플라이어리티가 높은 태스크가 앞에 삽입된다. 만약 같은 플라이어리티를 가진 여러 태스크가 존재할 경우 타임슬라이스 값이 작은 것부터 차례대로 삽입된다. 이렇게 함으로써 시스템의 회답시간을 줄일 수 있다. 왜냐하면 타임슬라이스 값이 작은 태스크 타이밍에 클리티컬한 태스크일 가능성이 높기 때문이다.

    이렇게 삽입된 태스크들은 사용자에 의해 삽입 또는 삭제가 가능하며, 또한 플라이어리티와 타임슬라이스 값의 변경도 가능하다. 물론 이때는 T-LIST를 재배열해야 한다.

    이미 정해진 클럭 팁 간격으로 타이머 인터럽트가 발생하게되면, 타이머 인터럽트 처리루틴은 각각의 태스크가 가지고 있는 타임슬라이스 값을 하나씩 감소시킨다. 이 타임슬라이스 값이 0으로 되기 전에 이 태스크는 반드시 수행되어야한다.

    하나의 태스크가 수행이 종료하게 되면 시스템은 해당 태스크에 대한 타임익스큐트드 값을 변경하게 된다. 이 값은 현재까지 여러번 수행된 것 중에서 가장 오랫동안 수행된 시간을 의미한다.

    따라서 현재 수행시간이 기존값보다 클때에만 변경해야 한다.

    각각의 태스크가 종료할때마다 시스템은 각각의 태스크에 대해 타임슬라이스안에 수행되는 것을 보장하기 위해 T-LIST의 각 태스크에 대해 해당 태스크가 수행되기까지 걸리는 시간(T)을 계산하여 이 값에 따라 T-LIST를 변경해야 한다.

    시간 T는 해당 태스트앞에 있는 모든 태스크의 타임익스큐트드 값을 더하면 된다.

    예를 들어, 제 2도에서 태스크3(103)의 T를 계산하면,

    T = 태스크1(103)의 타임익스큐트드 + 태스크2(104)의 타임익스큐트드 = 20 + 5 = 25와 같이 된다. 따라서 태스크3(105)은 타임슬라이스(40)안에 수행될 수 있다고할 수 있다.

    만약 태스크(103)의 타임슬라이스 값이 20으로 되어 있다면, 제 2 도의T-LIST를

    103 -105 -104 -106

    와 같이 변경하면, 태스크3의 T값이 20이 되어 주어진 타임슬라이스를 만족하게 된다. 이때 다른 태스크의 타임슬라이스 조건도 조사해야 하는데 태스크2의 T값을 계산하면,

    T = 태스크1(103)의 타임익스큐트드 + 태스크3(104)의 타임익스큐트드

    = 20 + 15 = 35

    와 같이 된다. 따라서 태스크2도 타임슬라이스(35)안에 수행될 수 있게 된다. 이렇게 모든 타임슬라이스조건이 만족하게 되면 T-LIST의 제일 앞에 있는 태스크를 수행함으로써 태스크 스케듈링(Task Scheduling)을 완료한다.

    각각의 태스크는 실제로는 각각의 기능을 의미하는 자료구조가 된다. 즉 태스크를 실행한다는 의미는 해당 기능을 구현한 기능(Function)을 콜(Call)한다는 것을 의미한다. 따라서 각각의 태스크의 데이타는 해당 기능에서 엑세스가 가능한 데이타를 의미한다. 그러므로 각각의 태스크가 독립된 데이타영역을 가지도록 함은 구현과정에서 해당 데이타의 클링스코우프(Calling Scope)엑세스범위가 해당 기능만 국한되도록 하면된다. 또는 IPC, 즉 태스크간의 커뮤니케이션도 글로발 데이타를 선언함으로서 가능해진다.

    본 발명에서 주의해야될 사항은, 타이어 인터럽트루틴의 역할은 각 태스크의 타임슬라이스 값을 감소시키는 것 뿐이라는 점이다. 즉 태스크의 수행과 종료, 그리고 T-LIST의 변경등은 모두 시스템의 플로우를 제어하는 시스템 소프트웨어에서 담당해야만 한다. 이는 인터럽트를 최소화시켜야 한다는 소프트웨어 개발에 있어서의 대전제를 만족시키고 시스템의 플로우를 명확히 하기 위함이다.

    이상과 같은 기법으로 된 본 발명의 효과는 싱글 태스크로 멀티태스킹 기법을 구현함으로서, 사용자에게 주어진 기능에 대한 타이밍 조건을 만족시킴과 동시에 플라이어리티를 부여할 수 있는 기능을 제공함으로써 보다 정확하고 효율적인 시스템의 구축에 도움을 주는 잇점이 있다.

    또한 동적으로 변화될 수 있는 구조를 제공함으로써 실시간 처리에 적합하며 프로그램 구조를 모듈화함으로써 개발기간 및 관리유지를 효율적으로 할 수 있게 해주는 잇점이 있다.

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈