병행 컴퓨팅

병행 컴퓨팅 또는 컨커런트 컴퓨팅(concurrent computing)은 여러 개의 계산들을 연속적(하나씩 일을 마치는 것)으로가 아닌, 병행 처리하는 것을 말한다. 병행 시스템은 다른 계산들이 모두 끝날 때까지 기다리지 않고 계산을 진행할 수 있는 환경을 말하며, 즉 하나 이상의 계산은 동시에 진행이 가능하다.[1]

병행 컴퓨팅의 선구자들로는 에츠허르 데이크스트라, 페르 브린치 한센, 토니 호어 등을 들 수 있다.

모델

병행 시스템을 이해하고 분석하는데 사용할 수 있는 병행 컴퓨팅의 모델은 여러 가지가 있다. 여기에는 다음을 포함한다:

  • 액터 모델
  • 페트리 네트
  • 프로세스 계산
  • 입출력 오토마톤

역사

병행 컴퓨팅은 19세기부터 20세기 초 사이에 철도와 전보의 초기 작업을 통해 개발되었으며, 세마포어와 같은 일부 용어들은 이 시기로 거슬러올라간다. 동일한 철도 시스템에 여러 열차들을 어떻게 관리할 것인지, 또 1870년대 시분할 다중화와 같이 효율성 개선을 위해 주어진 선로에서 여러 전송들을 어떻게 관리할 것인지에 대한 질문에서 출발하였다.

병행 알고리즘의 학술적 연구는 상호 배제를 식별하고 해결하는, 이 분야에서 최초의 논문을 작성하였던 Dijkstra(1965년)과 함께 1960년대에 시작되었다.[2]

같이 보기

참고 문헌

각주

  1. Operating System Concepts 9th edition, Abraham Silberschatz. "Chapter 4: Threads"
  2. “PODC Influential Paper Award: 2002”, 《ACM Symposium on Principles of Distributed Computing》, 2009년 8월 24일에 확인함 

외부 링크