행위자 모델

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

행위자 모델 또는 액터 모델(actor model)은 컴퓨터 과학에서 행위자를 병행 연산의 범용적 기본 단위로 취급하는 병행 컴퓨팅수학적 모델이다. 행위자가 받는 메시지에 대응하여, 행위자는 자체적인 결정을 하고 더 많은 행위자를 만들며, 더 많은 메시지를 보내고, 다음에 받을 메시지에 대한 응답 행위를 결정할 수 있다. 행위자는 개인 상태를 수정할 수 있지만, 메시지를 통해서만 서로에게 영향을 줄 수 있다. (락의 필요성을 제거함)

행위자 모델은 1973년에 기원하였다.[1] 연산에 대한 이론적 이해를 위한 프레임워크로서, 또 병행 시스템현실적인 구현체를 위한 이론적인 기초로서 사용되고 있다.

역사[편집]

칼 휴이트에 따르면, 이전의 연산 모델과는 달리, 행위자 모델은 일반 상대성이론, 양자역학을 포함한 물리학에 의해 착안되었다. 또, 리스프, 시뮬라, 초기 버전의 스몰토크, 역량 기반 시스템, 패킷 교환을 통해서도 영향을 받았다.

기본 개념[편집]

행위자 모델은 모든 것이 행위자라는 철학을 채택한다. 이는 일부 객체 지향 프로그래밍 언어에서 사용된 "모든 것이 객체"라는 철학과 비슷하다.

행위자는 받은 메시지에 대해 응하는 연산의 실체로서 다음을 병행 처리할 수 있다:

  • 유한한 수의 메시지를 다른 행위자에게 보낸다.
  • 유한한 수의 새로운 행위자를 만든다.
  • 앞으로 받을 다음 메시지에 사용할 행위를 지정한다.

정규 시스템[편집]

해가 지남에 따라 각기 다른 정규 시스템들이 개발되어 행위자 모델의 시스템에 대한 추론을 가능케 한다. 여기에는 다음을 포함한다:

같이 보기[편집]

각주[편집]

  1. Carl Hewitt; Peter Bishop; Richard Steiger (1973). “A Universal Modular Actor Formalism for Artificial Intelligence”. IJCAI. 
  2. Irene Greif (August 1975). “Semantics of Communicating Parallel Processes”. EECS Doctoral Dissertation. MIT. 
  3. Gul Agha; Ian Mason; Scott Smith; Carolyn Talcott (January 1993). “A Foundation for Actor Computation”. 《Journal of Functional Programming》. 
  4. Henry Baker; Carl Hewitt (August 1977). “Laws for Communicating Parallel Processes”. IFIP. 
  5. William Clinger (June 1981). “Foundations of Actor Semantics”. Mathematics Doctoral Dissertation. MIT. 
  6. Carl Hewitt (2006년 4월 27일). “What is Commitment? Physical, Organizational, and Social” (PDF). COIN@AAMAS. 
  7. Gul Agha (1986). “Actors: A Model of Concurrent Computation in Distributed Systems”. Doctoral Dissertation. MIT Press.