병행 컴퓨팅
synchronization
병행 컴퓨팅 또는 컨커런트 컴퓨팅(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일에 확인함
외부 링크
편집이 글은 컴퓨터 과학에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |