1295.21 논리적 동시성과 물리적 동시성의 구분
1. 동시성의 두 가지 차원
컴퓨터 과학에서 동시성(concurrency)은 논리적 동시성(logical concurrency)과 물리적 동시성(physical concurrency, parallelism)이라는 두 가지 상이한 차원으로 구분된다. 이 구분은 행동 트리의 Parallel 노드를 정확하게 이해하는 데 본질적이다(Colledanchise & Ögren, 2018).
2. 논리적 동시성(Logical Concurrency)
논리적 동시성은 복수의 실행 단위가 동시에 진행 중(in progress)인 상태를 의미하되, 실제 물리적 시점에서는 한 번에 하나의 실행 단위만 활성화(active)되는 모델이다. 각 실행 단위는 교대로 제어권을 부여받아 일정량의 작업을 수행하고, 제어권을 양도한다.
\text{논리적 동시성}: \quad T_1 \rightarrow T_2 \rightarrow T_3 \rightarrow T_1 \rightarrow T_2 \rightarrow T_3 \rightarrow \cdots
위에서 T_1, T_2, T_3는 세 개의 실행 단위이며, 하나의 실행 흐름에서 교대로 실행된다. 외부 관찰자의 관점에서는 세 가지 작업이 “동시에” 진행되는 것처럼 보이지만, 물리적으로는 임의 시점에 하나의 작업만 실행 중이다.
행동 트리의 Parallel 노드는 이 논리적 동시성 모델을 따른다. 매 틱 주기에서 C_1, C_2, \ldots, C_N이 순차적으로 틱을 수신하며, 각 자식은 틱 수신 후 즉시 상태를 반환하고 제어권을 양도한다.
3. 물리적 동시성(Physical Concurrency / Parallelism)
물리적 동시성은 복수의 실행 단위가 동일한 물리적 시점에 실제로 동시에 실행되는 모델이다. 이는 다중 코어 프로세서, 다중 프로세서 시스템, 또는 하드웨어 수준의 병렬 처리에 의해 가능해진다.
\text{물리적 동시성}: \quad \begin{matrix} \text{Core}_1: & T_1 \rightarrow T_1 \rightarrow T_1 \rightarrow \cdots \\ \text{Core}_2: & T_2 \rightarrow T_2 \rightarrow T_2 \rightarrow \cdots \\ \text{Core}_3: & T_3 \rightarrow T_3 \rightarrow T_3 \rightarrow \cdots \end{matrix}
물리적 동시성에서는 T_1, T_2, T_3가 서로 다른 프로세서 코어에서 동일 시점에 실제로 실행된다.
4. 두 동시성 모델의 상세 비교
| 비교 항목 | 논리적 동시성 | 물리적 동시성 |
|---|---|---|
| 동시 실행 수 | 1 (교대 실행) | N (실제 병렬) |
| 필요 하드웨어 | 단일 코어 | 다중 코어 |
| 경합 조건 | 발생 불가 | 발생 가능 |
| 교착 상태 | 발생 불가 | 발생 가능 |
| 결정론성 | 보장 | 미보장 |
| 공유 상태 접근 | 동기화 불필요 | 뮤텍스 등 필요 |
| 처리량 향상 | 미미 | 유의미 |
| 응답 시간 | 틱 주기에 종속 | 코어 수에 비례 |
| 대표 예 | 코루틴, 이벤트 루프, 행동 트리 | POSIX 스레드, OpenMP |
5. 로봇 공학에서의 적용 구분
로봇 시스템에서 두 동시성 모델은 서로 다른 계층에서 적용된다.
5.1 행동 계층: 논리적 동시성
행동 트리의 Parallel 노드는 로봇의 행동 수준(behavior level)에서 논리적 동시성을 구현한다. “이동하면서 동시에 감시한다“는 행동 수준의 동시성은, 두 행동이 물리적으로 동시에 계산될 필요는 없으며, 매 틱마다 교대로 갱신되면 충분하다.
5.2 계산 계층: 물리적 동시성
포인트 클라우드 처리, 경로 계획 알고리즘, 심층 신경망 추론 등의 계산 집약적 작업은 물리적 동시성을 통해 다중 코어의 성능을 활용해야 한다. 이러한 작업은 행동 트리 외부의 ROS2 노드에서 멀티스레드로 실행되고, 행동 트리에서는 결과만을 비동기적으로 확인한다.
[행동 트리: 논리적 동시성]
Parallel
├── NavigateAction (RUNNING → 외부 계산 대기)
└── MonitorAction (RUNNING → 외부 계산 대기)
[ROS2 실행기: 물리적 동시성]
Thread 1: Nav2 경로 계획 실행
Thread 2: 센서 데이터 처리 실행
6. 동시성 모델 선택의 기준
행동 트리 설계에서 논리적 동시성과 물리적 동시성의 적용 영역을 구분하는 기준은 다음과 같다.
| 기준 | 논리적 동시성 적합 | 물리적 동시성 적합 |
|---|---|---|
| 실행 시간 | 짧음 (밀리초 이내) | 길음 (수십 밀리초 이상) |
| 결정론 요구 | 높음 | 낮음 |
| 공유 상태 접근 | 빈번함 | 적음 |
| 안전 요구 수준 | 높음 | 중간 |
| 계산 집약도 | 낮음 | 높음 |
7. 혼합 모델의 실제
실제 로봇 시스템에서는 두 동시성 모델이 혼합되어 사용된다. 행동 트리는 논리적 동시성으로 상위 수준의 행동 조율을 담당하고, 각 행동의 실제 실행은 물리적 동시성을 활용하는 외부 시스템에 위임한다. 이 혼합 모델은 행동 수준의 결정론성과 계산 수준의 성능을 동시에 확보하는 효과적인 아키텍처이다.
8. 참고 문헌
- Colledanchise, M., & Ögren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
- Faconti, D., & contributors. (2024). BehaviorTree.CPP Documentation. https://www.behaviortree.dev/
- Herlihy, M., & Shavit, N. (2012). The Art of Multiprocessor Programming. Morgan Kaufmann.
Version: 1.0-2026.04.03