KR880000338B1 - 프로그램 제어 시스템에 프로그램 변화를 이입하기 위한 방법 및 장치 - Google Patents

프로그램 제어 시스템에 프로그램 변화를 이입하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR880000338B1
KR880000338B1 KR8205266A KR820005266A KR880000338B1 KR 880000338 B1 KR880000338 B1 KR 880000338B1 KR 8205266 A KR8205266 A KR 8205266A KR 820005266 A KR820005266 A KR 820005266A KR 880000338 B1 KR880000338 B1 KR 880000338B1
Authority
KR
South Korea
Prior art keywords
program
function
sequence number
decision
decision function
Prior art date
Application number
KR8205266A
Other languages
English (en)
Other versions
KR840002548A (ko
Inventor
패트릭 비숍 토마스
진 피커스 스산
Original Assignee
오레그 이 · 엘버
웨스턴 일렉트릭 캄파니 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 오레그 이 · 엘버, 웨스턴 일렉트릭 캄파니 인코포레이티드 filed Critical 오레그 이 · 엘버
Publication of KR840002548A publication Critical patent/KR840002548A/ko
Application granted granted Critical
Publication of KR880000338B1 publication Critical patent/KR880000338B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23327Modification of program in real time
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23329Modification, correction entered values

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Circuits Of Receivers In General (AREA)
  • Selective Calling Equipment (AREA)

Abstract

내용 없음.

Description

프로그램 제어 시스템에 프로그램 변화를 이입하기 위한 방법 및 장치
제1도는 프로그램 가능의 현재 형태 혹은 변형된 형태간의 어드레싱 관계를 보이는 본 발명의 실시예에 대한 메모리 설계도.
제2도는 프로그램 제어 시스템의 프로셋서에 대한 블록선도.
제3도는 더 이상 필요치 않을 때 프로그램의 과거형태에 대한 기억을 되찾기 위한 결산 프로그램의 유통도.
* 도면의 주요부분에 대한 부호의 설명
100 : 시스템 순서 번호 110 : 프로세서 제어블록
120 : 전달 백터표 130 : 원래의 기능블록
140 : 변형된 기능블록 150 : 제2변형의 기능블록
200 : 프로셋서 201 : 메모리
203 : 입·출력 장비 202 : 중앙처리장치
본 발명의 시스템을 전체적으로 혹은 부분적으로 정지시킨 다음에 개시할 필요없이 기억된 프로그램 제어 시스템에 프고그램 변화를 이입하는 방법에 관한 것이다.
프로그램 제어시스템은 데이타 처리 및 응용에 광범위하게 응용되어 왔다. 이 시스템의 기능적 가요성(flexibility)은 그러한 시스템의 메모리에 기억된 동작을 제어하는 프로그램에서 비롯된다.
프로그램 제어 시스템에서는, 새로운 서비스 장비 및 또는 새로운 하드웨어(hardware)를 수용하도록 초기 설정한 후에 프로그램 변화를 주는 것이 필요하다. 그러한 변화를 이입하는 가장 일반적인 방법은 시스템을 정지시키고 그것을 완전히 다시 초기 설정하는 것에 의한다. 그렇지만, 이는 시스템이 개시간격, 보통수분 혹은 수시간의 기간동안 서비스를 제공할 수 없는 단점이 있다. 더우기, 초기치 설정은 흔히 다음의 시스템 수행에 영향을 줄 수도 있는 장기간(longterm)데이타의 일부분을 파괴하며, 예을 들어, 자기 서비스의 몇가지 특징을 한정하는 전화고객에 의해 제공된 데이타를 클리어(clear)시킬 수도 있다. 초기치 설정은 프로그램 제어 시스템이 화학공정과 같은 연속공정을 제어하는 경우에 특히 바람직하지 못하며, 제어화학 공정이 모두 중단되거나 어떤 평형상태에 도달할 때에 그와 같이 초기치 설정할 조심스런 계획이 마련되어야 한다.
부분적인 초기치 설정으로 프로그램을 변화시키는 덜 개량된 방법은 1964년 9월에 발간된 Bell system Technical Journal에 기재되고, 또 미국 특허 제3,570,008호에 기재된 제1 전자 스위칭 시스템에 확립되어 있다. 이 시스템의 특징은 이미 다른 고객에 연결된 어떤 고객에 방해를 주지 않고 변화를 일으키는 것이 가능하다는 점이다. 완성된 연결 및 고객서비스를 다루는 모든 데이타는 격리되어 초기치 설정 프로그램에 의해 특별히 처리된다. 이 시스템은 프르셋서를 복제한 것이며, 그것중 하나는 온라인(on-line)이고 다른 것은 제어를 행할 준비가 된 대기장치이다. 수정된 프로그램은 프로셋서 대기(standby)모드에 있는 동안 프로셋서중의 하나에 실리게 된다. 그것은 온라인으로 절환되어 연결 혹은 고객서비스를 완성하는 것과 관련된 데이타를 수정하지 않는 초기치 설정 프로그램을 실행한다. 수정된 프로그램은 다음에 역시 다른 프로셋서에 실리게 되며 그 시스템은 안정상태에 있게 된다. 다이얼을 돌리는 도중에 고객은 그들의 호출을 완성하지 않을 것이며 그러므로 이러한 종류의 변화는 방해를 최소화하도록 매우 낮은 시스템 활성시간동안 이루어진다.
이와같이 프로그램변화를 주는 방법은 더욱 세련된 현대 프로그램 제어 시스템에 응용할 수 없다. 이 시스템들은 프로세스라 불리는 다른 프로그램을 초기 설정하는 동작 시스템으로 불리는 복잡합 프로그램의 제어를 받아 정상적으로 동작된다. 이 시스템 작업의 실행은 프로그램 기능으로 일컬어지는 일련의 프로그램 세그먼트의 실행을 통한 프로세서에 의해 정상적으로 완성된다. 프로그램 기능의 실행은 시스템의 어떤 프로세서로부터의 기능호출에 의해 초기 설정될 수도 있다. 프로그램기능은 공통 데이타 베이스를 인출하며, 그것은 대부분은 다수의 프로세스에 의하여 제어되는데 여기에서 여러 관련 데이타 항목간의 연결은 다양하고 복잡하다. 그러한 복잡한 데이타는 위에서 언급한 종래의 시스템에 사용된 데이타 선택부의 특별한 처리의 종류를 아주 복잡하게 한다. 따라서, 어떤 프로세스를 초기 설정하는 반면 다른 프로세스는 보유하며, 또한편으로 동일한 데이타 베이스를 지속하는 것은 매우 어렵다. 더우기, 프로그램 변화의 성질을 예상하여 데이타베이스를 설계할 때 이와같은 변화를 계획하는 것이 필요하다. 위의 모든 이유 때문에, 대량의 초기치 설정 없이 더욱 세련된 현대 프로그램제어 시스템에 가장 소량의 프로그램변화를 제외한 전부를 주는 것은 어려웠다.
이 문제점은 본 발명에 따른 방법으로 해결되었는데, 이 방법은 주어진 방향으로 단지 단음적으로 변하되는 시스템 순서번호를 발생하는 단계와, 프로세스가 시작되는 시간에서 프로세스 순서번호에 따라 프로세스 순서번호를 프로세스에 지정하는 단계와, 선택된 프로그램의 변형된 형태를 프로그램 메모리에 기억하는 반면 선택된 프로그램기능의 현재 형태를 보유하는 단계와, 주어진 방향으로 시스템순서를 넘어서는 결정 기능 순서번호를 기록하는 단계와, 결정기능 순서번호에 따라 최소한 주어진 방향까지의 값에 도달하도록 주어진 방향으로 시스템 순서 번호를 변화시키는 단계와, 프로세스 순서번호가 주어진 방향의 결정기능순서번호 이전인 경우에 선택된 프로그램 기능의 현재형태를 실행하는 단계와, 프로세서 순서번호가 최소한 주어진 방향의 결정기능순서 번호까지인 경우 선택된 프로그램 기능의 변형된 형태를 실행하는 단계를 포함한다.
본 발명의 목적은 시스템이 정상부하하에서 동작하는 동안에도 계속되는 프로세스와 간섭하지 않고 프로그램 변화를 프로그램 제어 시스템에 주는 것이다.
본 발명에 의하면, 프로그램 기능의 변형된 형태를 기억하는 반면 현재형태는 보유하며, 다음에 변화이전에 시작된 모든 프로세서는 프로그램 기능의 현재형태를 실행하게 하고 변화후에 시작된 모든 프로세서는 프로그램 기능의 변형된 형태를 실행하게 하므로써, 프로그램 제어 시스템의 프로그램에 변화를 준다.
한 실시예에 따르자면, 이것은 시스템 순서번호의 도움을 받아 완성되고 시스템에 의해 지속된다. 시스템 순서번호는 주어진 방향에서 단지 단음적으로 변화되고 최소한 변형된 프로그램 기능이 시스템에 이입되는 때마다 변화된다. 시스템 순서번호의 현재 값은 프로세스가 시작되는 때마다 프로세스와 함께 기록된다. 프로그램 기능의 변형된 형태가 시스템에 기억될 때 마다, 결정함수 순서번호는 주어진 방향에서 그러한 프로그램 기능을 사용하는 현재의 능동 프로세스의 프로세스 순서 번호 값을 넘어서는 값을 갖는 변형된 기능에 지적된다. 그후 시스템 순서번호가 변형되므로, 그것은 결정기능 순서번호에 따라 주어진 방향까지가 된다. 다음에 프로세스가 변형되었던 기능을 호출할 때 마다, 결정 기능 순서번호는 프로세스 번호와 비교된다. 비교 결과가 호출 공정이 시작되기 이전에 변형된 형태가 시스템에 기억되었다는 것을 지시해주는 경우에, 프로그램 기능의 변형된 형태가 실행되고, 그렇지 않은 경우에는 현재 형태가 실행된다.
본 발명의 특정 실시예 에서는, 프로그램 기능이 소정의 프로그램 기능은 정상적으로 직접 지적해주는 기억된 전달 벡터표에서 벡터의 사용을 통한 프로세스에 의하여 호출될 수 있다. 변형된 프로그램 기능이 시스템에 이입되는 경우에, 벡터는 대신에 결정기능을 지적할 것이다. 다음에 결정기능은 프로그램기능의 현재 형태가 실행 될 것인지 혹은 변형된 형태가 기록될 것인지의 여부에 대하여 결정한다. 현재 형태가 실행되려면, 현재형태의 프로그램 부문이 실행되고 그렇지 않은 경우에는 변형된 형태의 프로그램 부문이 실행된다. 유리하게도, 결정기능은 변형된 형태에 직접 선행하며 따라서 프로그램 기능의 과거 형태가 더 이상 필요치 않을 때 기억장소를 되찾는 과정을 간단하게 할 수 있다.
주기적으로, 결산프로그램이 수정되었던 프로그램 기능을 처리하는 어떤 능동프로세스가 순서번호를 가지는 가 즉 프로그램 기능의 변형된 형태의 프로세스 이전인가를 결정하도록 수행될 수도 있다. 이러한 프로그램이 없는 경우에는, 프로그램 기능의 현재 형태는 삭제될 것이며, 벡터는 결정기능을 지적하는 대신에 기능의 변형 형태를 직접 지적할 것이며, 프로그램 기능의 현재 형태에 의해 채워진 메모리 블록은 다른 새로운 혹은 변형된 프로그램 기능에 대한 이용 가능한 장소가 된다.
유리하게도, 시스템 순서는 증가되거나 혹은 감소되므로써 단음적으로 변화하는 어떤 번호 세트일 것이며, 따라서 주어진 순서번호가 다른 순서번호 이전에 지정 되었는지 알려주는 것이 가능하다. 순서번호를 최소한 프로그램 변화가 생기는 한 종종 변화되어야 하며 훨씬 더 자주 변화될 수도 있다. 예를들어, 시스템순서로서 날짜와 시간을 표시하는 양을 사용하는 것이 가능한데, 그 이유는 이 양이 양의 값으로 증가되므로써 단음적으로 계속 변화하기 때문이다. 이는 과잉 기간동안 능동상태에 있었던 프로세스를 검출하는데 부가 사용되었을 순서번호를 사용할 수 있다는 장점을 제공해 준다.
또한, 변형이 수행되기 이전에 가끔 변형을 싣는 것이 바람직하다면, 결정기는 순서번호는 수행시간을 표시하는 양으로 미리 정해질 수 있으며, 다음에 그 변형은 수행시간 이전에는 사용되지 않을 것이다.
프로그램 제어 시스템은 그것의 메모리에 기억된 두가지 형태의 정보 즉 프로그램 및 데이타를 갖는다. 프로그램은 프로셋서의 기본 명령어의 집합으로 이루어지는데, 이 명령어의 각각은 어떤 기본단계를 지령하며, 따라서 이 기본 명령어의 집합은 실행될 때 어떤 더 광범위한 시스템 작업 혹은 일련의 작업을 완성한다. 데이타는 현재의 작업 상태에 대한 정보와, 외부원으로부터 생겨나 이전에 시스템 내에 기억된 정보와, 시스템의 기능적 작업을 완결하도록 발생된 정보로서 이루어진다. 프로그램은 데이타를 처리하고 또 현재의 데이타 값에 따라 입력/출력 시스템을 제어하므로써 작업을 수행한다.
현대의 프로그램 제어 시스템에서는, 시스템에 대한 기본적인 제어가 관련데이타와 함께 동작 시스템으로 불리는 마스터 프로그램에 주재하고 있다. 동작 시스템은 프로세스를 만들어 실시하므로써 시스템 작업의 실행을 지시한다. 프로세스란 프로세스 제어블록이라 불리는 프로그램 플러스 관련제어 데이타의 기록이다. 프로세스 제어블록은 프로세스식별, 현재의 프로세스상태, 프로세스 우선권, 프로세스 개시때의 시스템 시간등을 포함하는 각 프로레스의 내용을 기억한다. 프로세스는 차례로 일련이 프로그램 기능의 실행을 요구하므로써 작업을 완성한다.
정상적으로 동작 할 때, 프로그램 제어시스템은 보통 어떤 작동하는 프로세스와 정지한 프로세스를 가질것이다. 프로세스는 작업을 능동적으로 실행하고, 작업의 실행을 계속하도록 한 블록의 시간을 기다리거나 입력 또는 출력장치에 대기하는 기간동안 작동될 것으로 생각된다. 한가지 작업, 혹은 일련의 작업을 완성한 때, 그것은 정지상태를 취하며 그것이 다시 또 다른 한가지 작업 혹은 일련이 작업을 실행하기 시작할때 까지 그 상태에 머무르게 된다. 프로세스가 정지상태에 들어가게 되면, 최소의 데이타가 프로세스가 다시 초기 설정될 때 연속 사용하기 위해 실행된다. 프로세스가 정지하게 되면 아무런 직접 프로그램 기준어가 보유되지 않는다.
프로세스 과정 중의 어떤 단계에서 프로세스 변화는 메모리내의 어떤 이용 가능한 장소에 변형된 프로그램기능을 기억하므로써 이입될 수도 있다. 그러나, 변형된 프로그램 기능이 변화의 이입에 앞서 이미 작동되었던 프로세스에 의해 사용된다. 각 프로세스가 그것이 능동적이된 시간을 통하여 동일한 프로그램 기능을 사용하도록 하기 위하여, 결정기능은 각 프로그램기능의 변형된 형태와 관련된다. 결정기능은 프로그램 기능의 변형된 형태가 시스템내에 실리게 되기 이전 혹은 이후에 프로그램 기능이라 불리는 프로세스가 언제 초기 설정되었는지 결정하는 짧은 프로그램이다. 변형된 형태가 프로그램이 시작되기 이전에 실리게 되면 변형된 형태가 사용되며, 변형된 형태가 프로그램이 시작된 이후에 시리게 되면, 현재의 형태가 사용된다.
시스템 순서번호는 사진의 순서, 즉 프로세스가 프로그램 기능의 변형된 형태가 시스템내에 실리기 이전에 혹은 실린 이후에 시작되었는지를 기억하는 데 사용된다. 시스템 순서번호는 두가지 다른 순서번호간의 순번조정이 달성될 수 있도록 단음적으로 변화되는 양일 것이다.
예를들어, 시스템 순서번호가 향상 양으로 증가되는 경우에, 더 큰 시스템 순서번로는 더 작은 시스템 순서번호보다도 더 늦은 시점과 관련된다. 날짜 및 하루의 시간을 포함한 시간이 이 실시예에서 시스템 순서번호로서 사용된다.
제1도에서, 블록(100)은 시스템 순서 번호, 시스템 클럭을 사용한 동작시스템에 의해 자동적으로 갱신되는 시간을 포함하고 있다. 시스템 클럭은 프로셋서(200)의 부분이다. 그것은 공지된 기술이므로 도면에 도시하지 않는다. 메모리내의 시간기입항목을 갱신하기 위한 기구도 역시 공지되어 있으며 여기에 기재하지 않는다.
시간을 표시하는 프로세스 순서번호는 그것이 시작될 때마다 프로세스의 프로세스 제어블록에 기억된다. 프로세스 제어블록(110)은 전형적인 프로세스와 관련된 프로세스 제어정보를 포함한다. 앞에서 언급한 바와같이, 프로세스 제어블록은 프로세스와 관련된 몇가지 항목의 정보를 포함한다. 블록(110)의 장소(111)는 관련 프로세스가 시작될 때 시간을 지시해주는 프로세스 순서번호를 포함한다. 프로세스가 작용될 때 마다 현재의 프로세스 순서번호 값은 장소(111)에 위치한다.
1초만큼 증가된 현재의 시간을 표시하는 결정기능 순서번호는 변형된 프로그램 기능이 메모리 내에 실리게 되는 시간에 결정 기능에 기정된다.
제1도의 기능 블록(130, 140, 150)은 각각 프로그램을 기억하기 위한 메모리 영역을 표시한다. 각각은 결정기능을 기억하기 위한 영역(131, 141, 151)및 프로그램 기능을 기억하기 위한(132, 142, 152)를 갖는다. 프로그램 기능은 현재 형태F(132), 변형된 형태 F'(142) 및 제2변형태 F"(152)를 표시한다. 결정기능 블록(141)은 결정 기능 프로그램(144) 및 결정 기능순서번호(143)를 포함한다. 결정 기능 프로그램은 다음과 같이 말할 수 있다. 즉, 프로세스 순서번호 n(pc)가 결정순서번호 m보다 더 작은 경우에는 f(2)(블록(132))로 가고, 그렇지 않은 경우에는 f'(2)(블록(142))로 가라. 다른 말로하여, 변화가 이입되기 이전에 프로세스가 시작되는 경우에는 현재의 프로그램 기능 형태 F를 사용하고, 그렇지 않은 경우에는 프로그램 기능의 변형된 형태 F'을 사용한다.
프로그램은 이용 가능한 메모리의 세그먼트에 지정된다. 개개의 프로그램 기능은 여러 프로세스에 의해 사용될 수도 있지만, 이용 가능한 메모리 장소를 아끼도록 한번만 기억된다. 여러 프로그램이 프로그램기능의 기준을 정할 것이므로, 모든 프로그램 기능의 현재의 어드레스 값에 대한 리스트(list)가 지속되어 모든 호출 프로그램을 이용한다. 이 리스트는 전달 백터표로서 일컬어진다. 변화가 시스템에 실리게 될때, 전달벡터표 어드레스는 변형된 형태와 관련된 결정기능 지점으로 갱신된다. 프로세스가 변형되었던 프로그램 기능을 호출하였을 때, 전달 벡터표에 의해 지시된 결정기능이 프로그램 기능의 현재 형태가 사용될 것인지 혹은 변형 형태가 사용될 것인지의 여부를 결정할 것이다. 전달 벡터표(120)에서, 엔트리(121)는 프로그램 기능 혹은 결정기능의 일례에 대한 어드레스에 대하여 지적한다. 프로그램의 한가지 형태만이 시스템에 실리는 경우, 엔트리(121)는 프로그램 기능의 어드레스이며, 한가지 이상의 형태가 시스템에 실리는 경우에는 엔트리(121)는 정확한 프로그램 형태가 선택되게 할 결정기능의 어드레스이다. 프로그램 기능의 변형된 형태 F'가 시스템 메모리에 실리게 될 경우, 벡터표 엔트리(121)는 프로그램 기능의 현재 형태의 어드레스인 f(2)로 부터 F'와 관련된 결정기능의 어드레스인 F'(2)으로 바뀌게 된다. 결과적으로, 프로그램 기능의 어느 형태가 실행되기 이전에, 프로세스 변화가 이입되기 이전에 시작되었는지 혹은 이입된 이후에 시작되었는지 결정하도록 프로세스와 결정기능 순서번호를 비교한다. 프로세스가 변화이전에 시작된 경우에는 현재형태의 부문 F가 발생되고, 그렇지 않은 경우에는 변형된 형태 F'가 실행된다.
어떤 부가적인 변형이 필요하다면, 블록(150)에서 F"로 표시된 제2의 변형이 이입되어야 한다. F"이 시스템에 실리게 될 때, 전달벡터표에서 엔트리(121)은 f"(1) 즉 F"과 관련된 결정기능의 지점으로 변화된다. 블록(150)은 결정기능 즉 블록(151)과 프로그램 기능 F" 즉 블록(152)를 포함한다. 결정기능 블록은 P로 표시된 결정 기능 순서번호(153) 및 경정기능 프로그램(154)를 포함한다. 결정기능 프로그램(154)은 다음과 같이 말할 수 있다. 즉, 프로세스 순서번호 n(pc)가 결정 순서번호 p 보다 작다면 f'(1)으로 가고, 그렇지 않으면 f"(2)로 가라.
다른 말로하자면, 프로세스가 F"에 실리게 되기 이전에 시작된다면, 형태 F'과 관련된 결정 기능 프로그램(144)로 점프되고, 그렇지 않다면 F"이 실행된다. 결정 기능 프로그램(144)의 결과는 프로세스 순서번호 n(pc)가 결정기능 순서번호 m보다 작을 경우에 원래의 기능 F로 점프되고, 그렇지 않을 경우에는 프로그램 F'이 실행된다. 이 실시예에서, 프로세스는 프로그램 F, F' 또는 F"를 사용한다. 가장 오래된 프로세스는 F를 사용하고, 중간 프로세스는 F'을 사용하여, 가장 최근에 시작된 프로세스는 F"를 사용한다.
기능 그룹을 동시에 변형할 필요가 있는 경우에는 결정기능이 그러한 각 프로그램 기능을 위해 삽입되고 동일한 순서번호가 그 그룹과 관련된 모든 결정기능에 지정된다. 프로그램 변형의 지연작용도 역시 가능하다. 그러한 변형과 관련된 결정 기능 순서번호는 지연된 작용시간일 것이다.
다음에 변형된 작용시간까지 실시되지 않을 것이다.
이와 같은 기술 사항은 단일 프로그램 기능의 변형에 관점을 두고 있다. 명백한 바와 같이, 여러 프로그램 기능이 본 발명의 기술을 사용하여 변형될 수 있다. 다른 시간에 실리고 각각 그것 자체의 관련 결정기능을 갖는 프로그램 기능으로 변형되는 여러가지 다른 프로그램 기능에 대한 프로그램 변형은 동일한 시간에 시스템에 존재할 것이다.
제2도는 프로그램 제어 시스템의 세개의 주요부품 즉 중앙처리장치(202), 주메모리(201) 및 입력/출력 장비(203)을 예시하고 있다. 중앙처리장치 및 이와 관련된 메모리는 다수의 공지된 현대의 프로셋서 중 하나일 것이다. 입력/출력 장비는 자기 테이프 장치 및 고정식 혹은 이동식 헤드 디스크와 같은 보조 메모리 장치를 포함할 수도 있다. 중앙처리장치는 프로세스 및 메모리내에 기억된 프로그램기능을 실행한다. 그러한 프로세스 및 프로그램 기능을 실행하는데 있어서, 중앙처리장치는 메모리에 기억된 데이타를 인출하여 변형시킨다. 중앙처리장치는 두 번호들의 비교, 그러한 비교에 근거한 조건적 부문의 수행, 메모리에서의 양증가, 한 장소에서 다른 장소로 메모리에 기억된 양의 이동시킴, 간접적으로 혹은 직접적으로 표시된 어드레스에대해 무조건적으로 부문화 하는 것과 같은 간단한 단계를 실행한다. 중앙처리장치는 또한 프로그램 기능의 변형된 형태를 입력/출력 장비(203)로부터 주메모리(201)로 실을 수 있다.
주기적으로, 이미 필요치 않는 결정기능을 우회시키기 위하여 결산 프로그램이 이미 사용되지 않는 프로그램 기능의 과거 형태에 의해 채워진 메모리장소를 되찾고 또 프로그램 기능의 변형된 형태의 어드레스를 갖는 전달 벡터표를 갱신하는데 사용된다. 제3도는 과거의 프로그램기능 F혹은 변형된 형태 F중 하나를 사용할 수도 있는 프로세스를 검사하는 결산 프로그램에 대한 유통도이다. 이 예에서는, 결산프로그램의 변형 F'이 시스템내에 이입된 후 그리고 변형 F"이 발생하기 전에 수행된다고 가정한다.
결산 프로그램은 세 부분으로 생각될 수도 있다. 즉 초기단계(300-302), 루우핑(looping)(300-306) 및 되찾음 메모리(307-308)로 생각할 수 있다. 결산 프로그램은 동작시스템에 의하여 개시된다. 결산 프로그램은 프로그램기능의 현재 혹은 변형된 형태를 사용할 수도 있는 모든 능동 프로세스의 프로세스 순서번호 m을 읽어야 한다. 제1프로세스는 다음에 인출된다. 단계의 루우핑열은 프로세스가 정지할 것인지 알아보기 위한 점검으로서 시작된다. 프로세스가 정지하지 않는다면 프로세스 순서번호는 결정기능 순서번호와 비교된다. 프로세스 순서번호가 결정기능 순서번호 만큼 크지 않다면, 결산 프로그램은 종료되며, 이는 어떤 능동프로세스가 아직도 프로그램 기능의 현재 형태를 사용하고 있다는 것을 의미한다. 이와는 달리, 루우핑 프로세스는 모든 적당한 프로세스가 검사될 때까지 계속된다. 결산 프로그램이 모든 적당한 프로세스가 검사된 후에도 종료되지 않는다면, 결산 프로그램은 메모리를 되찾도록 진행할 수 있다. 이는 벡터표 엔트리를 변형된 형태에 대한 직접적인 지점으로 변화시키고 또 메모리 장소가 다른 목적상 재 지령을 위한 동작시스템에 이용할 수 있는 현재 형태에 의해 채워지게 하므로써 그와 같이 행한다.
제3도의 유통도의 블록(300)에서 설명하였듯이, 결산 프로그램은 동작 프로그램에 의해 시작된 후 실행하기 시작한다. F'과 관련된 결정 기능 순서번호 m은(301)내의 결산 프로그램에 의하여 읽혀진다. (302)에서, 결산 프로그램은 F혹은 F'을 사용하는 제1 프로세스를 인출한다. 다음에 결정지점(303, 304)에서 각각 결산 프로그램은 프로세스가 정지해 있는 지의 여부와, 그것의 순서번호 n(pc)가 F'과 관련된 결정기능 순서번호보다 더 큰지 혹은 같은지의 여부를 결정한다. 이 양쪽의 결정이 모두 부정이라면, 결산 프로그램은 프로세스가 능동이며 프로그램 기능의 현재형태 F를 사용하라는 결론을 내린다. F가 아직도 능동 프로세스에 의해 사용되므로, 그것은 삭제될 수 없다. 결과적으로, 결산 프로그램은(309)에서 종료한다. 결정중 어느 하나가 공정이라면, 결산 프로그램은 프로세스가 정지해 있고 그것이 시작될 때 프로그램 기능 F'의 변형된 형태를 사용할 준비가 되어 있거나, 혹은 이미 F'을 사용하고 있다는 결론을 내린다. 결산 프로그램이 F혹은 F'을 사용하는 프로세스가 많이 있는지 결정하는 결정지점(305)로 진행된다. 그러한 프로세스가 많이 있는 경우에 결산 프로그램은 다음 프로세스에서 진행되고, 다시결정(303, 304 및 305) 지점을 통하여 순환한다.
결산 프로그램은 기능 F 혹은 F'을 사용하는 모든 프로세스가 검사될 때 까지 순환을 계속한다. F을 사용한 능동 프로세스가 발견되었다면, 전달 벡터표에서 결정기능을 보유할 이유가 없다. 그러므로, 블록(307)에서, 결산프로그램을 전달벡터표 엔트리(121)를 새로운 프로그램 함수 F의 어드레스 f'(2)로 직접 향하는 지점으로 변화한다. 프로그램기능 F가 이미 어떤 프로세스에 의해 기준이 정해지지 않고 더 이상 결정기능으로부터 어드레스 될 수 없기 때문에 쓸데 없에 메모리 장소를 차지한다. 그것의 장소가 어떤 다른 목적상 사용될 수 있으므로, 결산 프로그램은 프로그램 기능 F를 삭제하고 블록(130)을 (308)의 자유 메모리 장소로서 내놓고(309)에서 종료한다. 블록(130)이 또한 F가 프로그램 변형으로서 이입되었을 때 결정기능에 의해 공식적으로 채워진 장소를 포함한다는 것에 유의한라.
변형과 이와 관련된 결정기능을 함께 지속하므로써, 메모리의 전체블록이 F가 더 이상 필요치 않을 때 이용될 수도 있다.
어떤 시스템에서는, 결산 프로그램이 프로세스가 능동적이지 혹은 정지해 있는 지의 여부를 결정하는 것이 어려울 것이다. 그런 경우에, 블록(303)의 점검은 우회될 수도 있다. F를 사용할 것인지 혹은 F'을 사용할 것인지 모든 프로세스를 검사하는 것이 더욱 편리할 수도 있다. 그러한 간단화의 유일한 역효과는 결정기능이 필요한 기간보다 더욱 오랫동안 능동상태에 머루르고 또 프로그램 기능의 현재형태에 의해 채워진 기억장소가 재빨리 되찾아 질 수 없다는 점이다.
대규모의 프로그램 변형이 프로세스를 시작하고 실행하는 프로그램에서의 변형을 포함한, 본 발명의 기술을 사용하여 이입될 수 있다. 나아가서, 그러한 프로그램은 또한 역시 일군의 프로그램 기능인 동작시스템에 의해 호출된 프로그램기능이다. 직접적으로 호출되는 어떤 프로그램은 이론상 본 발명의 기술을 사용하여 바뀌어질 수 있다.
그러나 프로그램 기능의 현재 형태와 변형된 형태에 의해 다르게 해석된 데이타를 사용한 프로그램 기능에 대하여 변형을 시키는데 있어서, 특히 그러한 데이타가 프로세스의 정지기간동안 보유되는 곳에서 혹은 그러한 데이타가 둘 또는 그이상의 프로세스에 의해 나누어지는 곳에서 어떤 제한을 일으킨다. 그러한 데이타를 인출할 때 조차도 프로그램 기능에 대한 결정기능과 관련하여 데이타를 대한 결정기능의 조심스런 사용은 변형이 본 발명의 기술을 사용한 그런 데이타에 이입되게 할 수 있다. 시사된 선행조건이 결정기능이 그러한 데이타를 인출하는데 사용될 때마다 사용되는 프로그램 기능에 대한 전달 벡터와 같은 단일 인출 지점이라는 것에 유의하라 위에서 기술한 실시예가 단순히 본 발명의 원리에 대하여 예시한 것에 불과하며 다른 구성이 본 발명의 취지 및 범위로부터 벗어나지 않고 숙련기술자에 의해 설계될 수 있다는 점을 이해하여야 할 것이다.

Claims (1)

  1. 부분적으로 혹은 전체적으로 시스템을 정지시킨 다음에 개시하지 않고 기억된 프로그램 제어시스템내로 프로그램 변화를 이입하기 위한 방법에 있어서, 주어진 방향으로 단지 단조롭게 변화되는 시스템 순서번호(100)를 만들어 내는 단계와, 프로세스가 시작된 때에 프로세스 순서번호(111)에 따라서 시스템 순서번호(100)를 프로세스(110)에 지정하는 단계와, 선택된 프로그램 기능의 현재형태(F)를 보유하는 동안 선택된 프로그램기능의 변형된 형태(F')를 프로그램 메모리(140)내에 기억하기 위한 단계와, 주어진 방향에서 프로세스 순서번호n(pc)이상인 결정기능 순서버호(m)를 기록하는 단계와, 프로세스 순서번호n(pc)가 결정 기능순서번호(m)에 따라 최소한 주어진 방향에 까지의 값에 이르도록 프로세스 순서번호를 주어진 방향으로 바꾸는 단계와, 프로세스 순서번호n(pc)가 주어진 방향에서 결정기능 순서번호(m)보다 앞선다면 현재의 형태(F)를 실행하고 또 프로세스 순서번호가 최소한 주어진 방향에서 결정 기능 순서번호까지인 경우에는 변형된 형태(F')를 실행하는 단계를 포함하는 것을 특징으로 하는 프로그램 제어 시스템에 프로그램 변화를 이입하기 위한 방법.
KR8205266A 1981-11-23 1982-11-22 프로그램 제어 시스템에 프로그램 변화를 이입하기 위한 방법 및 장치 KR880000338B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US06/323,812 US4425618A (en) 1981-11-23 1981-11-23 Method and apparatus for introducing program changes in program-controlled systems
US323,812 1981-11-23
US323812 1981-11-23

Publications (2)

Publication Number Publication Date
KR840002548A KR840002548A (ko) 1984-07-02
KR880000338B1 true KR880000338B1 (ko) 1988-03-20

Family

ID=23260828

Family Applications (1)

Application Number Title Priority Date Filing Date
KR8205266A KR880000338B1 (ko) 1981-11-23 1982-11-22 프로그램 제어 시스템에 프로그램 변화를 이입하기 위한 방법 및 장치

Country Status (11)

Country Link
US (1) US4425618A (ko)
EP (1) EP0094416B1 (ko)
JP (1) JPS58502025A (ko)
KR (1) KR880000338B1 (ko)
AU (2) AU556190B2 (ko)
CA (1) CA1175153A (ko)
DE (1) DE3279423D1 (ko)
ES (2) ES517568A0 (ko)
HK (1) HK4390A (ko)
IT (1) IT1153094B (ko)
WO (1) WO1983001847A1 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2500659B1 (fr) * 1981-02-25 1986-02-28 Philips Ind Commerciale Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur
US4979107A (en) * 1985-02-21 1990-12-18 International Business Machines Corporation Modification of device configuration wherein the system specifies and prompts the user with only parameters required to be changed
JPS6276954A (ja) * 1985-09-30 1987-04-09 Toshiba Corp 通信制御装置
US5133066A (en) * 1985-10-24 1992-07-21 International Business Machines Corporation Method for selecting multiple versions of data in a reduced record units text editing system
PH24865A (en) * 1987-03-24 1990-12-26 Ibm Mode conversion of computer commands
DE59108978D1 (de) * 1990-08-28 1998-06-10 Landis & Gyr Tech Innovat Verfahren zum Aendern einer in einem Computer eines Gerätes abgespeicherten Maschinensprachenfassung eines ersten Programms in eine Maschinensprachenfassung eines durch mindestens eine Aenderung vom ersten Programm abgeleiteten zweiten Programms
DE59109077D1 (de) * 1990-08-28 1999-01-28 Landis & Gyr Tech Innovat Verfahren zum Aendern eines in einer Computeranordnung eines Gerätes gespeicherten Computerprogramms in ein geändertes Computerprogramm und Anordnung zum Durchführen des Verfahrens
JP2886961B2 (ja) * 1990-09-19 1999-04-26 株式会社日立製作所 プログラム入替方法
US5579509A (en) * 1991-02-08 1996-11-26 International Business Machines Corporation Apparatus and method for verifying compatibility of system components
US5297285A (en) * 1991-07-23 1994-03-22 Telefonaktiebolaget L M Ericsson System for dynamically linking modular portions of computer software
EP0548869B1 (en) * 1991-12-23 2000-06-14 Microsoft Corporation Method for integrating a discrete subprogram into a main program
US5590347A (en) * 1992-12-07 1996-12-31 Microsoft Corporation Method and system for specifying alternate behavior of a software system using alternate behavior indicia
US5896531A (en) * 1993-02-26 1999-04-20 International Business Machines Corporation Method and system for managing environments with a data processing system
US5787444A (en) * 1993-03-15 1998-07-28 International Business Machines Corp. Method and apparatus for maintaining revision contol of a set of objects within a data processing system
US5590318A (en) * 1993-11-18 1996-12-31 Microsoft Corporation Method and system for tracking files pending processing
US5452339A (en) * 1994-02-09 1995-09-19 Harris Corporation Local/remote modification of electronically alterable operating system firmware resident in redundant flash memory of remote unit for testing/conditioning subscriber line circuits
US5862370A (en) * 1995-09-27 1999-01-19 Vlsi Technology, Inc. Data processor system with instruction substitution filter for deimplementing instructions
US5761677A (en) * 1996-01-03 1998-06-02 Sun Microsystems, Inc. Computer system method and apparatus providing for various versions of a file without requiring data copy or log operations
US6044477A (en) * 1996-01-31 2000-03-28 International Business Machines Corporation System and method for auditing buffer usage in a data processing system
US5938766A (en) * 1997-03-21 1999-08-17 Apple Computer, Inc. System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables
FR2764392B1 (fr) * 1997-06-04 1999-08-13 Sgs Thomson Microelectronics Procede d'identification d'un circuit integre et dispositif associe
US5896527A (en) * 1997-10-31 1999-04-20 Lucent Technologies Inc. Accessing data during the transition between program releases
US6289503B1 (en) * 1998-09-24 2001-09-11 International Business Machines Corporation System and method for trace verification
US6397385B1 (en) 1999-07-16 2002-05-28 Excel Switching Corporation Method and apparatus for in service software upgrade for expandable telecommunications system
US6857119B1 (en) * 2001-09-25 2005-02-15 Oracle International Corporation Techniques for modifying a compiled application
CA2379732A1 (en) * 2002-04-02 2003-10-02 Turbocor Inc. System and method for controlling an electric motor
US7657616B1 (en) 2002-06-10 2010-02-02 Quest Software, Inc. Automatic discovery of users associated with screen names
AU2003239220A1 (en) 2002-06-10 2003-12-22 Akonix Systems, Inc. Systems and methods for a protocol gateway
US7707401B2 (en) * 2002-06-10 2010-04-27 Quest Software, Inc. Systems and methods for a protocol gateway
US7774832B2 (en) * 2002-06-10 2010-08-10 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
US20080196099A1 (en) * 2002-06-10 2008-08-14 Akonix Systems, Inc. Systems and methods for detecting and blocking malicious content in instant messages
US7428590B2 (en) * 2002-06-10 2008-09-23 Akonix Systems, Inc. Systems and methods for reflecting messages associated with a target protocol within a network
US7818565B2 (en) * 2002-06-10 2010-10-19 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
US7333992B2 (en) 2003-05-22 2008-02-19 Microsoft Corporation System and method for identifying and storing changes made to a table
AU2004272201A1 (en) * 2003-09-11 2005-03-24 Akonix Systems, Inc. Systems and methods for dynamically updating software in a protocol gateway
CN100461164C (zh) * 2004-03-29 2009-02-11 微软公司 用于基于版本控制的触发器的系统和方法
US7756981B2 (en) 2005-11-03 2010-07-13 Quest Software, Inc. Systems and methods for remote rogue protocol enforcement
US20090076628A1 (en) * 2007-09-18 2009-03-19 David Mark Smith Methods and apparatus to upgrade and provide control redundancy in process plants
WO2010016058A2 (en) * 2008-08-04 2010-02-11 Red Bend Ltd. Performing an in-place update of an operating storage device
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3568157A (en) * 1963-12-31 1971-03-02 Bell Telephone Labor Inc Program controlled data processing system
US3597739A (en) * 1965-08-25 1971-08-03 Bell Telephone Labor Inc Method for operating a data processor
SE330455B (ko) * 1969-06-17 1970-11-16 Ericsson Telefon Ab L M
US3652804A (en) * 1969-10-24 1972-03-28 Bell Telephone Labor Inc Maintenance busy link map marking in a stored program controlled switching system
US3772654A (en) * 1971-12-30 1973-11-13 Ibm Method and apparatus for data form modification
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
US3969701A (en) * 1973-04-09 1976-07-13 Telefonaktiebolaget L M Ericsson Function block oriented SPC system
US3909795A (en) * 1973-08-31 1975-09-30 Gte Automatic Electric Lab Inc Program timing circuitry for central data processor of digital communications system
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US3969723A (en) * 1974-07-03 1976-07-13 General Electric Company On-line modification of computer programs
GB1548401A (en) * 1975-10-08 1979-07-11 Plessey Co Ltd Data processing memory space allocation and deallocation arrangements
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus

Also Published As

Publication number Publication date
EP0094416A4 (en) 1986-11-10
ES527125A0 (es) 1984-09-16
JPS58502025A (ja) 1983-11-24
AU556190B2 (en) 1986-10-23
EP0094416A1 (en) 1983-11-23
EP0094416B1 (en) 1989-02-01
HK4390A (en) 1990-01-25
US4425618A (en) 1984-01-10
CA1175153A (en) 1984-09-25
ES8407347A1 (es) 1984-09-16
WO1983001847A1 (en) 1983-05-26
IT8224362A1 (it) 1984-05-22
AU1042082A (en) 1983-06-01
IT1153094B (it) 1987-01-14
KR840002548A (ko) 1984-07-02
ES8402093A1 (es) 1984-02-01
DE3279423D1 (en) 1989-03-09
IT8224362A0 (it) 1982-11-22
ES517568A0 (es) 1984-02-01

Similar Documents

Publication Publication Date Title
KR880000338B1 (ko) 프로그램 제어 시스템에 프로그램 변화를 이입하기 위한 방법 및 장치
KR0138468B1 (ko) 마이크로 컴퓨터
US5911060A (en) Computer method and apparatus for unfreezing an apparently frozen application program being executed under control of an operating system
JPH0736848A (ja) 情報処理装置および処理方法
US4342082A (en) Program instruction mechanism for shortened recursive handling of interruptions
US4937780A (en) Single instruction updating of processing time field using software invisible working registers
Pike Process control software
US6820153B2 (en) Interrupt processing and memory management method in an operation processing device and a device using the same
US5241634A (en) Method of handling system calls to an operating system of a computer by system service routines stored as firmware
CA1092714A (en) Extended interruption handling
JP2000181707A (ja) 命令制御装置及びその方法
CA1233271A (en) Cache disable for a data processor
JPH064477A (ja) 副ロードモジュール置換方式
JPH033037A (ja) マイクロプログラム制御方式
KR0159635B1 (ko) 소용량 교환기에 있어서 국데이타 생성 장치 및 방법
KR950007937B1 (ko) 피엘씨 게이트 어레이의 내부 레지스터 운용회로
JPH07152652A (ja) 仮想記憶制御方法及び情報処理装置
JPS6220032A (ja) 情報処理装置
JPH05120349A (ja) データベース更新管理方式
JPS61153701A (ja) プロセス制御装置
JPS6235694B2 (ko)
KR930015541A (ko) 전전자 교환기의 상호 대화형 데이터 처리방법
JPH0644070A (ja) データ処理装置
JPH0553791A (ja) 制御情報読出し装置
JPH08297583A (ja) 割り込み処理装置およびその方法