병행 컴퓨팅

synchronization

병행 컴퓨팅 또는 컨커런트 컴퓨팅(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일에 확인함 

외부 링크 편집