병행성

정의
병행성(並行性)은 여러 작업이나 과정이 동시에 진행될 수 있는 성질이나 상태를 의미한다. 주로 컴퓨터 과학·공학 분야에서 하나의 시스템이 여러 연산을 동시에 수행하도록 설계·구현된 특성을 지칭한다.

개요
병행성은 하드웨어 수준에서 다중 코어·프로세서를 활용하거나, 소프트웨어 수준에서 멀티스레드·멀티프로세스 구조를 이용해 작업을 나누어 처리함으로써 전체 실행 시간을 단축하고 자원 활용 효율을 높이는 것을 목표로 한다. 병행성을 구현하기 위해서는 작업 간의 의존관계와 경쟁 조건을 명시적으로 관리하고, 동기화·스케줄링 메커니즘을 적용해야 한다.

어원/유래
‘병행(並行)’은 한자어 ‘並(나란히)’와 ‘行(행할)’이 결합된 말로, “나란히 행한다”는 의미를 갖는다. 뒤에 붙는 명사형 접미사 ‘‑성’은 성질·특성을 나타낸다. 따라서 ‘병행성’은 “나란히 행하는 성질”이라는 의미로 해석된다. 정확한 최초 사용 시기와 출처에 대한 구체적인 문헌 기록은 확인되지 않는다.

특징

구분 내용
목표 연산 수행 시간 감소, 시스템 자원 효율 향상
구현 방법 다중 코어·프로세서 활용, 멀티스레드·멀티프로세스 프로그래밍, 비동기 I/O 등
주요 고려 사항 작업 간 의존성, 경쟁 상태(race condition), 교착 상태(deadlock), 스케줄링 전략
성능 지표 스루풋(throughput), 레이턴시(latency), 스케일링 효율(weak/strong scaling)
제한점 병목 현상, 동기화 오버헤드, 메모리 일관성 문제 등

관련 항목

  • 병렬 처리: 다수의 연산을 동시에 수행하는 기술 전반을 일컫는 용어.
  • 동시성(Concurrency): 병행성을 포함하거나 그와 대비되는 개념으로, 여러 작업이 겹쳐 실행되는 논리적 구조를 강조한다.
  • 멀티스레딩(Multithreading): 하나의 프로세스 내에서 여러 스레드가 병행적으로 실행되는 기법.
  • 멀티프로세싱(Multiprocessing): 여러 프로세스가 동시에 동작하는 형태.
  • 병렬 컴퓨팅(Parallel Computing): 고성능 컴퓨팅에서 대규모 연산을 병행적으로 처리하는 연구·실천 분야.
  • 스케줄링(Scheduling): 작업을 언제·어떤 순서로 실행할지 결정하는 알고리즘.

※ 본 항목은 ‘병행성’이 널리 알려진 개념이지만, 학술·공식 사전 등에 수록된 정의가 제한적이므로, 구체적인 정의나 용례는 분야·맥락에 따라 차이가 있을 수 있다.

둘러보기

더 찾아볼 만한 주제