{{위키데이터 속성 추적}}
{{프로그래밍 패러다임}}
'''병행 컴퓨팅''' 또는 '''컨커런트 컴퓨팅'''({{lang|en|concurrent computing}})은 여러 개의 계산들을 연속적(하나씩 일을 마치는 것)으로가 아닌, [[병행성|병행]] 처리하는 것을 말한다. 병행 시스템은 다른 계산들이 모두 끝날 때까지 기다리지 않고 계산을 진행할 수 있는 환경을 말하며, 즉 하나 이상의 계산은 동시에 진행이 가능하다.<ref>''Operating System Concepts'' 9th edition, Abraham Silberschatz. "Chapter 4: Threads"</ref>

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

== 모델 ==
병행 시스템을 이해하고 분석하는데 사용할 수 있는 병행 컴퓨팅의 모델은 여러 가지가 있다. 여기에는 다음을 포함한다:
* [[액터 모델]]
* [[페트리 네트]]
* [[프로세스 계산]]
* [[입출력 오토마톤]]

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

병행 알고리즘의 학술적 연구는 [[상호 배제]]를 식별하고 해결하는, 이 분야에서 최초의 논문을 작성하였던 Dijkstra(1965년)과 함께 1960년대에 시작되었다.<ref>{{인용 | url=http://www.podc.org/influential/2002.html | 제목=PODC Influential Paper Award: 2002 | work=ACM Symposium on Principles of Distributed Computing | accessdate=2009-08-24}}</ref>

== 같이 보기 ==
* [[병행성]]

== 참고 문헌 ==
* {{저널 인용 | last = Dijkstra | first = E. W. | authorlink = Edsger W. Dijkstra | 제목 = Solution of a problem in concurrent programming control | doi = 10.1145/365559.365617 | journal = [[Communications of the ACM]]| volume = 8 | issue = 9 | pages = 569 | year = 1965 | ref = harv }}
* {{서적 인용 |last=Herlihy |first=Maurice |제목=The Art of Multiprocessor Programming |year=2008 |origyear=2008 | url=https://www.amazon.co.uk/The-Multiprocessor-Programming-Maurice-Herlihy/dp/0123705916 |publisher=Morgan Kaufmann |isbn=978-0123705914}}
* {{서적 인용 |last=Downey |first=Allen B. |제목=The Little Book of Semaphores |year=2005 |origyear=2005 |url=http://www.greenteapress.com/semaphores/downey08semaphores.pdf |publisher=Green Tea Press |isbn=1-4414-1868-7 |확인날짜=2015년 11월 24일 |보존url=https://web.archive.org/web/20160304031330/http://www.greenteapress.com/semaphores/downey08semaphores.pdf |보존날짜=2016년 3월 4일 |url-status=dead }}
* {{서적 인용 |last=Filman |first=Robert E. |author2=Daniel P. Friedman |제목=Coordinated Computing: Tools and Techniques for Distributed Software |publisher=McGraw-Hill |location= New York |isbn=0-07-022439-0 |page=370| year=1984}}
* {{서적 인용 |last=Leppäjärvi |first=Jouni |제목=A pragmatic, historically oriented survey on the universality of synchronization primitives |year=2008 |url=http://www.enseignement.polytechnique.fr/informatique/INF431/X09-2010-2011/AmphiTHC/SynchronizationPrimitives.pdf |publisher=University of Oulu |access-date=2015-11-24 |archive-date=2017-08-30 |archive-url=https://web.archive.org/web/20170830062719/http://www.enseignement.polytechnique.fr/informatique/INF431/X09-2010-2011/AmphiTHC/SynchronizationPrimitives.pdf |url-status= }}
* {{서적 인용 |last=Taubenfeld |first=Gadi |제목=Synchronization Algorithms and Concurrent Programming |url=http://www.faculty.idc.ac.il/gadi/book.htm |publisher=Pearson / Prentice Hall |isbn=0-13-197259-6 |year=2006 |page=433}}

== 각주 ==
<references />

== 외부 링크 ==
* {{언어링크|en}} [https://web.archive.org/web/20060128114620/http://vl.fmnet.info/concurrent/ Concurrent Systems Virtual Library]

{{프로그래밍 언어의 유형}}
{{전거 통제}}
{{토막글|컴퓨터 과학}}

[[분류:병행 컴퓨팅| ]]
[[분류:에츠허르 데이크스트라]]