병행성

위키백과, 우리 모두의 백과사전.

식사하는 철학자들 문제는 병행성과 공유 자원을 동반하는 고전적인 문제이다.

병행성(concurrency)은 컴퓨터 과학에서 여러 계산을 동시에 수행하는 시스템의 특성으로, 잠재적으로는 서로 상호 작용이 가능하다.

문제[편집]

병행 시스템의 계산이 그들이 실행 중일 때에만 상호 작용이 가능하기 때문에 시스템에서 가능성 있는 실행 경로의 수는 매우 많고 그 결과의 산물은 부정확하다. 공유 자원을 동시에 이용하는 일은 교착 상태, 기아 상태와 같은 문제들로 이어지는 부정확성의 요인이 되기도 한다.[1]

병행 시스템의 설계는 실행, 데이터 교환, 메모리 할당, 실행 스케줄링을 조화롭게 하여 응답 시간을 최소화하고 스루풋을 최대화하는 미더운 기술들을 찾아내는 일을 동반한다.[2]

이론[편집]

병렬[편집]

병행 시스템을 모델링하고 이해하는 형태들이 많이 개발되었으며 다음을 포함한다:[3]

같이 보기[편집]

참고 문헌[편집]

  • Lynch, Nancy A. (1996). 《Distributed Algorithms》. Morgan Kauffman. ISBN 1-55860-348-4. 
  • Tanenbaum, Andrew S.; Van Steen, Maarten (2002). 《Distributed Systems: Principles and Paradigms》. Prentice Hall. ISBN 0-13-088893-1. 
  • Kurki-Suonio, Reino (2005). 《A Practical Theory of Reactive Systems》. Springer. ISBN 3-540-23342-3. 
  • Garg, Vijay K. (2002). 《Elements of Distributed Computing》. Wiley-IEEE Press. ISBN 0-471-03600-5. 
  • Magee, Jeff; Kramer, Jeff (2006). 《Concurrency: State Models and Java Programming》. Wiley. ISBN 0-470-09355-2. 

각주[편집]

  1. Cleaveland, Rance; Scott Smolka (December 1996). “Strategic Directions in Concurrency Research”. 《ACM Computing Surveys》 28 (4): 607. doi:10.1145/242223.242252. 
  2. Campbell, Colin; Johnson, Ralph; Miller, Ade; Toub, Stephen (August 2010). 《Parallel Programming with Microsoft .NET》. Microsoft Press. ISBN 978-0-7356-5159-3. 2016년 2월 12일에 원본 문서에서 보존된 문서. 2015년 11월 24일에 확인함. 
  3. Filman, Robert; Daniel Friedman (1984). 《Coordinated Computing - Tools and Techniques for Distributed Software》. McGraw-Hill. ISBN 0-07-022439-0. 2007년 5월 16일에 원본 문서에서 보존된 문서. 2007년 4월 22일에 확인함. 
  4. Keller, Jörg; Christoph Keßler; Jesper Träff (2001). 《Practical PRAM Programming》. John Wiley and Sons. 

외부 링크[편집]