병행 컴퓨팅
보이기
프로그래밍 패러다임 |
---|
병행 컴퓨팅 또는 컨커런트 컴퓨팅(concurrent computing)은 여러 개의 계산들을 연속적(하나씩 일을 마치는 것)으로가 아닌, 병행 처리하는 것을 말한다. 병행 시스템은 다른 계산들이 모두 끝날 때까지 기다리지 않고 계산을 진행할 수 있는 환경을 말하며, 즉 하나 이상의 계산은 동시에 진행이 가능하다.[1]
병행 컴퓨팅의 선구자들로는 에츠허르 데이크스트라, 페르 브린치 한센, 토니 호어 등을 들 수 있다.
모델
[편집]병행 시스템을 이해하고 분석하는데 사용할 수 있는 병행 컴퓨팅의 모델은 여러 가지가 있다. 여기에는 다음을 포함한다:
역사
[편집]병행 컴퓨팅은 19세기부터 20세기 초 사이에 철도와 전보의 초기 작업을 통해 개발되었으며, 세마포어와 같은 일부 용어들은 이 시기로 거슬러올라간다. 동일한 철도 시스템에 여러 열차들을 어떻게 관리할 것인지, 또 1870년대 시분할 다중화와 같이 효율성 개선을 위해 주어진 선로에서 여러 전송들을 어떻게 관리할 것인지에 대한 질문에서 출발하였다.
병행 알고리즘의 학술적 연구는 상호 배제를 식별하고 해결하는, 이 분야에서 최초의 논문을 작성하였던 Dijkstra(1965년)과 함께 1960년대에 시작되었다.[2]
같이 보기
[편집]참고 문헌
[편집]- Dijkstra, E. W. (1965). “Solution of a problem in concurrent programming control”. 《Communications of the ACM》 8 (9): 569. doi:10.1145/365559.365617.
- Herlihy, Maurice (2008) [2008]. 《The Art of Multiprocessor Programming》. Morgan Kaufmann. ISBN 978-0123705914.
- Downey, Allen B. (2005) [2005]. 《The Little Book of Semaphores》 (PDF). Green Tea Press. ISBN 1-4414-1868-7. 2016년 3월 4일에 원본 문서 (PDF)에서 보존된 문서. 2015년 11월 24일에 확인함.
- Filman, Robert E.; Daniel P. Friedman (1984). 《Coordinated Computing: Tools and Techniques for Distributed Software》. New York: McGraw-Hill. 370쪽. ISBN 0-07-022439-0.
- Leppäjärvi, Jouni (2008). 《A pragmatic, historically oriented survey on the universality of synchronization primitives》 (PDF). University of Oulu. 2017년 8월 30일에 원본 문서 (PDF)에서 보존된 문서. 2015년 11월 24일에 확인함.
- Taubenfeld, Gadi (2006). 《Synchronization Algorithms and Concurrent Programming》. Pearson / Prentice Hall. 433쪽. ISBN 0-13-197259-6.
각주
[편집]- ↑ Operating System Concepts 9th edition, Abraham Silberschatz. "Chapter 4: Threads"
- ↑ “PODC Influential Paper Award: 2002”, 《ACM Symposium on Principles of Distributed Computing》, 2009년 8월 24일에 확인함
외부 링크
[편집]이 글은 컴퓨터 과학에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |