[myLV.net 집필진 강좌 – 웅킹킹킹]
안녕하세요. 웅킹킹킹 입니다.
지난 시간까지 Actor Framework로 이루어진 예제(더하기, 곱하기 계산기)를 실습하면서 Actor Framework의 메커니즘을 느껴보았습니다. 바로 Actor Framework의 메커니즘을 이론상으로 알아보는 것보단 간단한 예제를 통해서 몸으로 체험한 후에 이론적으로 공부하는 것이 훨씬 도움이 될 것이라는 판단 때문이었습니다.
이번 시간부터는 Actor Framework의 라이브러리를 하나하나 분해하면서 원리를 이론적으로 알아보는 시간을 가지도록 하겠습니다.
Actor Framework 라이브러리는 지난 강의에 자주 설명한 바와 같이 LabVIEW를 설치할 때 기본적으로 LabVIEW가 설치된 폴더에 함께 설치됩니다. LabVIEW 2015버전 기준으로
National Instruments\LabVIEW 2015\vi.lib\ActorFramework 폴더에 설치됩니다.
Actor Framework.lvlib 파일을 실행하게 되면 Actor Framework 라이브러리를 사용할 수 있습니다.
그림 1 Actor Framework 라이브러리 구성요소
그림 과 같이 각각의 구성요소는 하나 또는 여러 개의 클래스로 구성되어 있습니다
각각의 구성요소에 대해서 간단히 알아보면
그림 2 Messages Queue 클래스의 Data멤버
그림의 클래스의 멤버의 구성은 클래스로 이루어져 있습니다이 클래스들은 그림 에서 명시한 구조 클래스의 한 부분입니다즉클래스는 다른 관련 클래스의 상속구조에서는 상위클래스는 아니지만 멤버로 해당 클래스의 정보를 가짐으로써 상위개념으로 생각할 수 있습니다
그림 3 Messages Queue 클래스의 Method
Messages Queue 클래스는 그림 3과 같이 Obtain Message Queue, Read Dequeuer, Read Enqueuer, Release Message Queue 총 4개의 Method를 가집니다.
그림 4 Obtain Messages Queue
Actor Framework는 우선순위를 할당해서 다양한 조건의 Queue를 사용하기 위해 Queue Buffers, Wait Msg, Wait Prior 등의 Queue를 생성합니다.
* Message Priority Queue에서 자세하게 다룹니다.
생성한 Queue 정보는 Message Queue 클래스의 Data멤버에 저장합니다.
그림 5 Read Enqueuer
Obtain Messages Queue에서 Enqueue 용도 사용하기 위해 저장한 Queue 정보를 가져옵니다.
그림 6 Read Dequeuer
Obtain Messages Queue에서 Dequeue 용도 사용하기 위해 저장한 Queue 정보를 가져옵니다.
그림 7 Release Message Queue
Obtain Messages Queue에서 생성한 Queue를 해제합니다. 해제하면서 아직 소비되지 못한 Queue를 확인할 수 있습니다.
Actor Framework 라이브러리와 라이브러리의 구성요소(Messages, Actor, Queue구조)를 알아보고 그 중 Queue구조 중 하나인 Message Queue 클래스의 소스코드를 알아보았습니다.
Message Queue클래스는 Queue 생성, Queue를 생성하거나 소비하기 위한 Queue정보 가져오기, Queue해제 등 Queue구조를 이루기 위한 기본 기능을 합니다.
다음 시간에는 Queue를 활용하는 Message Enqueuer, Messages Dequeuer, Messages Priority Queue 클래스의 Data멤버, Method를 분석하면서 그 역할에 대해서 알아보는 시간을 가지도록 하겠습니다