Smalltalk80LanguageImplementationKor:Part 03

From 흡혈양파의 번역工房
Jump to navigation Jump to search
제 3 부

제 3부는 Smalltalk-80 시스템에서 이산적, 이벤트 구동 시뮬레이션을 모델화하는 예제를 제시하고자 한다. 시뮬레이션은 실제 세계나 환상의 세계에서 객체의 시스템을 표현한 것이다. 컴퓨터 시뮬레이션을 생성하는 목적은 시뮬레이션 상황을 이해하기 위한 프레임워크를 제공하기 위해서다. Smalltalk-80 시뮬레이션을 생성하기 위해 먼저 확률 분포를 나타내는 클래스의 계층구조를 설명한다. 손님(customer) 등의 다양한 객체의 도착 시간을 시뮬레이션에 포함시키도록 결정하는 데에 다양한 확률 분포가 사용되며, 시뮬레이션 내에서 노동자의 서비스 시간이나 반응을 무작위로 선정하는 데 사용되기도 한다. SimulationObject 클래스 예제는 하나 또는 그 이상의 과제를 수행하기 위해 시뮬레이션으로 추가하는 객체라면 무엇이든 표현하며, Simulation 클래스는 시뮬레이션 자체를 표현하고, 업무를 허용하거나 새로운 SimulationObjects로 할당하기 위한 제어 구조를 제공한다.


이벤트 구동 시뮬레이션에 참가하는 객체는 다소 서로 독립적으로 작동한다. 따라서 객체들의 활동을 조정하고 동시적으로 발생하게 만드는 데 생기는 문제를 고려할 필요가 있다. Smalltalk-80 시스템 클래스인 Process, Semaphore, SharedQueue는 본래 독립적인 시뮬레이션 이벤트에 대해 동기화 기능을 제공한다. 이 부분에서 정의되는 클래스의 프레임워크는 소모 가능, 소모 불가, 재생 가능한 자원을 사용하는 시뮬레이션의 생성을 지원한다. 또한 프로그래머가 실행 중인 시뮬레이션에 관한 통계를 수집할 수 있는 다수의 방법을 제공한다.


Notes