GPSS
GPSSGPSS(General Purpose Simulation System)는 이산 시간 시뮬레이션 범용 프로그래밍 언어로, 시뮬레이션 클럭이 이산 단계로 진행됩니다.시스템은 트랜잭션이 시스템에 들어오면서 모델링되며 하나의 서비스(블록으로 표시됨)에서 다른 서비스로 전달됩니다.주로 프로세스 흐름 지향 시뮬레이션 [1]언어로 사용되며, 특히 공장 등의 문제에 적합합니다.
역사
GPSS는 1960년대 초에 IBM의 Geoffrey Gordon에 의해 개발되었습니다.그는 그것을 고든의 프로그램 가능한 시뮬레이션 시스템이라고 명명했다.IBM이 [2]제품을 출시하기로 결정하면서 이름이 변경되었습니다.
새로운 이름의 "일반 목적" 부분은 대기 줄 시뮬레이션에서 표준을 만드는 것이었습니다.
원래 릴리스는 IBM의 7044 및 7090 메인프레임용이었습니다.그 후 IBM 360,[3] Univac 1108 및 [4]CDC용 릴리스가 있었습니다.
시간이 지남에 따라 대규모 Univac [7]시스템 전용 APL 버전인 DEC의 VAX와 Macintosh [8]등 다양한 규모의 시스템을 대상으로 한 다른 구현이 개발되었습니다.
JGPSS
JGPSS(Java General Purpose Simulation System)는 GPSS 시뮬레이션 [2][9]언어를 가르치기 위해 개발된 Java 기반의 도구입니다.
언어 설명
GPSS는 특정 시스템을 [10]모방하는 특정 기능을 위해 모델러에 의해 블록이 선택되는 레고 구조와 유사합니다.
이 언어는 절차적 프로그래밍, 객체 지향 프로그래밍 또는 기능적 프로그래밍이 아닙니다.세계는 [11]모델을 통해 이동하는 실체로 시뮬레이션됩니다.트랜잭션이라고 하는 이러한 엔티티는 블록에서 블록으로 이동하는 것으로 간주됩니다. 여기서 블록은 코드 행이며 트랜잭션 자체 또는 다른 엔티티에 영향을 미치는 단위 액션을 나타냅니다.
블록은 설비 지향(예: 작업장의 기계) 또는 트랜잭션 지향(예: 처리 중인 작업의 일부, 전자 구성 요소의 신호 또는 관료적 절차의 문서)일 수 있습니다.GPSS는 시뮬레이션 끝에 고정된 형태를 가져오는 통계를 표준 보고서로 자동으로 추적한다.GPSS는 최초의 객체 지향 접근법의 가장 오래된 언어 후보 중 하나입니다. 왜냐하면 트랜잭션은 실제로 모델 객체의 인스턴스이지만 블록은 OOP의 현대 개념에서 메서드이기 때문입니다.
엔티티는 자원, 계산 엔티티 및 통계 [11]엔티티로 광범위하게 분류할 수 있다.설비 및 스토리지와 같은 리소스는 제한된 용량 리소스를 나타냅니다.Ampervariable(변수), Functions(함수), Random Generator(랜덤 생성기)와 같은 계산 엔티티는 트랜잭션 상태 또는 해당 환경의 요소를 나타내기 위해 사용됩니다.큐 또는 테이블(이력 그래프)과 같은 통계 엔티티는 관심 통계 정보를 수집합니다.
샘플코드
GPSS를 [12]사용한 시뮬레이션에서 가져온 다음 예는 GPSS의 "Hello world!"이며 주요 개념을 설명합니다.
목적은 이발소의 하루 운영을 시뮬레이션하는 것입니다.손님들은 무작위로 도착해 가게에 들어가 이발사가 바쁘면 줄을 서고 선착순으로 머리를 자르고 가게를 나간다.평균 및 최대 대기 줄과 고객 수를 알고 싶습니다.
SIMAL ;모델 정의 * *모델 세그먼트 1 * GENTER 18,6 ;고객은 18±6 mn 큐의자마다 도착한다 ;CAPE Joe ;이발사의자 캡쳐 ;라인 ADVANCE 16,4 ;라인은 그대로 두고 16±4 mn REAS로 헤어컷을 한다.E Joe ; 이발사 TERMINAT ; 가게를 떠납니다 * * 모델 세그먼트 2 * Generate 480 ; 타이머가 시간에 도착합니다 = 480 mn TERMINAT 1 ; 실행 종료 * 제어 카드 * START 1 ; 실행 1회 시작 END ; 종료 모델
'프로그램'은 다음 중 하나로 구성됩니다.SIMULATE
그리고.END
"모델 세그먼트"와 "컨트롤 카드"로 나뉩니다.
첫 번째 세그먼트는 고객을 모델로 합니다.그GENERATE
block은 Transactions의 흐름을 생성하여 18±6 범위에 걸쳐 균일하게 분포된 도착간 시간으로 모델에 들어가도록 스케줄링합니다.이러한 트랜잭션을 고객으로 해석하고 시간을 분 단위로 계산해야 한다는 것을 이해하는 것은 프로그래머의 책임입니다.트랜잭션의 존재는GENERATE
특정 규칙에 따라 블록에서 블록으로 진행되며 블록이 에 도달할 때까지 진행됩니다.TERMINATE
모델로부터 제외됩니다.
일반적으로 트랜잭션은 한 블록에서 다음 블록으로 진행되기 때문에 고객 트랜잭션은 다음 블록으로 진행됩니다.GENERATE
진입을 차단하다QUEUE Chairs
블록. 이 블록은 대기 회선을 시뮬레이션하고 그에 따라 통계를 수집합니다.이 예에서는 의자 라인을 구체화하고 시뮬레이션이 끝나면 최대 큐 크기(의자 수)와 평균 대기 시간을 알 수 있습니다.그QUEUE
모델에 둘 이상의 큐가 존재할 수 있으므로 블록에는 큐의 이름이 매개 변수로 필요합니다.각각에 관련지어져 있습니다.DEPART
block: 트랜잭션이 큐에서 나갈 때 트리거됩니다.GPSS는 큐에 어떤 트랜잭션이 있는지 기억하기 때문에 평균 소요 시간을 알 수 있으며 큐에 미리 입력하지 않고 큐에서 버그가 있는 트랜잭션이 없는지 확인할 수 있습니다.
그 후QUEUE chairs
block, 트랜잭션은 다음 순서로 진행됩니다.SEIZE Joe
블록은 Joe라는 이름의 시설의 캡처를 시뮬레이트하는 블록입니다.설비에서는 용량 1의 단일 서버를 모델화합니다.설비가 비지일 경우SEIZE
는, 개시하는 트랜잭션을 입력할 권리를 거부합니다.이 예에서는, 고객이 대기하고 있습니다.QUEUE
블록이 무료인 경우, 또는 이용 가능하게 되는 즉시, 트랜잭션은 시설을 캡처하고, 다른 트랜잭션에 대해 비지 상태로 표시하며, 동일한 트랜잭션이 해당 트랜잭션을 통과할 때까지 서비스 시간 및 기타 통계 계산을 시작할 수 있습니다.RELEASE Joe
차단합니다.
그SEIZE
/RELEASE
모델에는 다수의 독립된 설비가 존재할 수 있기 때문에 쌍은 설비명으로 링크됩니다.이발사, 수리공, 대리점 등의 오퍼레이터를 모델링할 수 있을 뿐만 아니라 크레인, 주유소, 허가서 등 실제로 용량이 있는 모든 장비를 모델링할 수 있습니다.5명의 이발사 팀이나 10명의 오븐과 같은 여러 병렬 서버를 시뮬레이션하기 위해 GPSS는 다음과 같은 엔티티를 사용합니다.STORAGE
s.
고객이 Joe를 파악한 후 다음 단계로 넘어갑니다.ADVANCE 16,4
여기서 16-4=12에서 16+4=20mn 사이의 난수를 선택합니다.기타 서비스 시간 분포는 GPSS를 통해 제공됩니다.FUNCTION
(다른 프로그래밍 언어의 기능과는 다소 다른 개념입니다).이 기간 동안 다른 트랜잭션은 모델을 통해 이동할 수 있으며 모델에 존재할 수 있는 다른 일부 설비는 차단되지만, 이 설비는 동결된 고객으로 인해 사용 중이므로 Joe는 차단되지 않습니다.정해진 시간이 지나면 고객은 깨어나 다음 문장으로 넘어갑니다.그러면 Joe가 해방됩니다.TERMINATE
.
그러면 이전 블록의 다음 거래, 즉 의자에 앉아 있는 고객이 다음을 수행할 수 있습니다.SEIZE Joe
GPSS는 '다음' 거래를 선택하기 위해 선착순으로 우선권을 부여합니다.다른 선택 정책은 미래의 이벤트 체인 엔티티를 직접 조작하여 프로그래밍할 수 있습니다.
이 첫 번째 세그먼트와 병행하여 두 번째 모델 세그먼트는 고객의 행동을 시뮬레이션하고 하루의 종료를 시뮬레이션합니다.시각 480mn = 8h에서 엔티티는GENERATE
d, 그러면,TERMINATE
다음 블록에서요이번에는TERMINATE
특수 카운터가 1만큼 감소함을 의미합니다.카운터가 0에 도달하면 프로그램이 중지되고 출력이 출력됩니다.이 특별한 카운터는 다음과 같이 설정됩니다.START
진술.이 예에서는 1로 설정되어 있기 때문에 시뮬레이션 시간은 480 mn의 1회 실행 후 종료됩니다.
출력은 다음과 같습니다.
설비평균수평균세이즈ING 프리엠프션 이용 엔트리 시간/TRAN 전송. No. TRANS. Joe . 860 26 15 . 884 26 큐의 총 평균 0% 평균 표 현재 콘텐츠 엔트리 0시간/트랜스 시간/트랜스 번호 컨텐츠 의자 1.160 27 12 44.4 2.851 5.120 1 평균 시간/트랜스 = 0 엔티티를 제외한 평균 시간/트랜스
이는 Joe가 86.0%가 바쁘고, 26명의 고객에게 머리를 자르고, 머리를 자르는 데 평균 15.88분이 걸린다는 것을 나타냅니다.참고로 시뮬레이션이 종료되었을 때 조는 26번 고객의 머리를 자르고 있었습니다.가게 문을 닫기 전에 이발사가 이발을 끝낼 수 있는 프로그램 조항은 없었다.
또한 최대 1명의 고객이 차례를 기다리고 있음을 나타냅니다. 실제로 대기 고객 수는 평균 0.160명이었습니다.총 27명의 고객이 대기열에 들어섰기 때문에 조가 가게 문을 닫았을 때 27번 고객은 여전히 앉아서 차례를 기다리고 있었다.이 27명의 고객 중 12명이 기다리지 않고 서비스를 제공받았다.실제로 큐는 44.4%가 비어 있었습니다.평균 대기 시간은 2.851분, 실제로 대기한 15=27-12 고객의 평균 대기 시간은 5.150분입니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Arne Thesen; J. William Schmidt (2014). Computer Methods in Operations Research. ISBN 978-1483260747.
GPSS is a process flow oriented simulation language
- ^ a b P. Fonseca Casas (2009). "jgpss, an open source gpss framework to teach simulation" (PDF).
simplify the development of a complete simulation tool following the GPSS syntax. This paper presents ... In the original, GPSS meant Gordon's Programmable Simulation System, in honor of Geoffrey Gordon, its creator.
- ^ (GPSS/360, MFT/MVT 상이지만 DOS 상은 아님)
- ^ D. C. Div (1968). "Technical Note". IEEE Transactions on Systems Science and Cybernetics. 4 (4): 446–447. doi:10.1109/TSSC.1968.300174.
IBM has available GPSS III for the 7044 and 7090 series and GPSS/360 for the larger 360 ... GPSS II has also been available on the UNIVAC 1108
- ^ "Introduction to GPSS" (PDF).
about the simulation modeling language GPSS. ... summarized; sources comparing GPSS and other .... Corporation's GPSS for Univac 1108 hardware)
- ^ B. Liskov (1981). "GPSS Session". History of Programming Languages. ScienceDirect. pp. 403–437. doi:10.1016/B978-0-12-745040-7.50013-2. ISBN 9780127450407.
Background: The General Purpose Simulation System (GPSS) is a ... manufacturers that have produced versions of GPSS are UNIVAC (Gorchow, 1968), CDC
- ^ Nabil R. Adam; Ali Dogramaci (2014). Current Issues in Computer Simulation. p. 25. ISBN 978-1483258034.
GPSS-like ... in the APL version of GPSS, although APL happens to be an interpretive language. ... Univac Corporation, GPSS 1100 for UNIVAC 1108 system.
- ^ Ståhl, Ingolf (1990). Introduction to Simulation With Gpss on the Pc, MacIntosh and Vax. ISBN 0-1348-323-10.
- ^ "Java General Purpose Simulation System".
Learn simulation building a simulation engine. JGPSS is an implementation of the GPSS system based in Java.
- ^ "GPSS 50 years old, but still young". ResearchGate.net. August 1, 2018.
In 2011, GPSS, the General Purpose Simulation System, ... class room the students can study a very simple Lego railroad model
- ^ a b Stanley Greenberg (1972). GPSS Primer. New York: Wiley-Interscience. ISBN 0471324906.
- ^ Schriber, Thomas (1974). Simulation using GPSS. Wiley. ISBN 9780471763109.
외부 링크
- Wolverine 소프트웨어 GPSS/H 버전
- Minuteman Software, 몇 가지 구현을 제공하는 회사
- aGPSS: PC&Mac: 교육 및 전문가 대상
- JGPSS Java 범용 시뮬레이션 시스템.
- GPSS360 온라인 GPSS360 - 오리지널 GPSS의 후예