KR0161003B1 - 복수로보트의 동시제어방법 - Google Patents

복수로보트의 동시제어방법 Download PDF

Info

Publication number
KR0161003B1
KR0161003B1 KR1019920018726A KR920018726A KR0161003B1 KR 0161003 B1 KR0161003 B1 KR 0161003B1 KR 1019920018726 A KR1019920018726 A KR 1019920018726A KR 920018726 A KR920018726 A KR 920018726A KR 0161003 B1 KR0161003 B1 KR 0161003B1
Authority
KR
South Korea
Prior art keywords
data
shared memory
semaphore
robots
setting
Prior art date
Application number
KR1019920018726A
Other languages
English (en)
Other versions
KR940008824A (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 윤종용
Priority to KR1019920018726A priority Critical patent/KR0161003B1/ko
Publication of KR940008824A publication Critical patent/KR940008824A/ko
Application granted granted Critical
Publication of KR0161003B1 publication Critical patent/KR0161003B1/ko

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 복수로 구성된 로보트의 동시제어방법에 관한 것으로, 공유메모리안에 있으면서 세머포어함수 P(S) 및 V(S)의 정수변수인 S의 초기치를 설정하는 단계와, 통신데이터를 생성하는 단계, 공유메모리내의 비어있는 메모리영역을 확인하여 데이터를 메모리에 저장하고 유효한 데이터수의 증가를 전달하는 단계와, 유효한 데이터의 유무를 확인하여 데이터를 꺼낸 후 비어있는 슬롯수를 1개씩 증가시키는 단계와, 데이터를 소비하여 동기화된 동작을 구현시키는 단계로 이루어져 상호 배제 원칙에 의거한 공유메모리의 억세스를 행함으로써 프로세서간에 데이터 통신이 이루어지며 로보트간의 정확한 동기화 동작이 이루어질 수 있도록 한다.

Description

복수로보트의 동시제어방법
제1도는 종래 동시제어방법을 구현하는 프로세서 구성도.
제2도는 본 발명 동시제어방법을 구현하는 프로세서 구성도.
제3도는 제2도에 도시된 프로세서를 이용하여 통신데이터를 생성하는 과정을 설명한 플로우챠트.
제4도는 제2도에 도시된 프로세서를 이용하여 통신 데이터를 이용하는 과정을 설명한 플로우챠트.
* 도면의 주요부분에 대한 부호의 설명
1 : 마이크로프로세서 2 : 공유메모리
3, 4, 5 : 로보트
본 발명은 복수로 구성된 로보트를 제어하는 방법에 관한 것으로, 특히 동시처리기법을 이용하여 복수개의 로보트를 동시에 다중적으로 제어할 수 있도록 된 복수로보트의 동시제어방법에 관한 것이다.
하나 이상의 로보트를 이용하여 자동화시스템을 구성하고 로보트간에 여러 가지 다양한 동시동작이나 협력동작을 구현하기 위하여 멀티마이크로프로세서를 사용하게 된다. 즉, 로보트와 로보트간에 필요한 데이터를 송수신하면서 동시에 이들 두 로보트가 동시 동작하는 등 여러 로보트의 동작을 조합함으로써 특정작업을 하는 자동화가 이루어지고 있다.
그 예로써 종래에는 제1도에 도시된 바와 같이 로보트(20, 22, 24)마다 마이크로프로세서(30, 32, 34)를 설치하고 이들 마이크로프로세서 마다에는 통신케이블을 접속하여 상호간에 데이타통신이 가능하도록 함으로써 동시동작이나 협력동작이 가능하도록 하였다.
그러나, 상기와 같은 종래의 멀티마이크로프로세서구조는 로보트간에 어느 정도 동시 동작이나 협력동작이 이루어지게 되나 다수개의 마이크로프로세서를 복합적으로 제어할 수 있는 제어수단이 마련되어 있지 않아 동시동작을 하는 로보트를 증설할 경우 이들 로보트간에 유기적인 동작이 어렵게 되고 또한 로보트간의 상호 데이터 통신을 위해서는 어느 정도 시간이 소요되므로 그 기간만큼 작업에러가 발생되는 등의 문제점이 있었다.
이에 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 동시처리기법으로 로보트를 제어할 때 발생하는 공유데이터의 충돌을 방지하기 위하여 상호 배제원칙에 입각한 공유메모리의 억세스를 행함으로써 동기화를 구현할 수 있도록 된 복수로보트의 동시제어방법을 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명은 공유 메모리안에 있으면서 세머포어 함수P(S) 및 V(S)의 정수변수인 S의 초기치를 설정하여 복수개의 프로세서가 동시에 사용되지 않도록 크리티컬 섹션을 형성하는 단계와, 상기 크리티컬 섹션에 형성된 상태에서 로보트를 동작시키기 위한 통신데이터를 생성하는 단계와, 공유메모리(2)내의 비어있는 메모리영역을 확인한 후 뮤우트세머포어 플래그를 0으로하여 메모리내에 상기 통신 데이터의 서입을 가능하게 하는 단계와, 상기 통신 데이터의 서입이 종료됨을 판별한 후에 세머포어플래그를 1로하여 타 데이터의 서입을 배제하는 단계와, 상기 공유메모리(2)에 저장된 데이터의 양을 확인한 후 데이터의 독출과정으로 전환하는 단계와, 뮤우트세머포어 플래그를 0으로 하여 상기 공유메모리(2)에서 상기 데이터를 독출하는 단계와, 데이터의 독출이 완료되었음을 판별하고 뮤우트 세머포어 플래그를 1로하여 타프로세서에 의한 데이터의 독출을 배제하는 단계와, 상기 독출된 데이터를 이용하여 동기화된 동작을 구현하는 단계로 이루어진 것을 특징으로 한다.
다음은 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
제2도는 본 발명의 실시예인 복수로보트의 동시제어방법이 적용되는 복수로보트제어프로세서의 개략적인 블럭도를 나타낸 것이다.
상기 제2도를 설명하기에 앞서 본 발명이 적용되는 동시처리기법에 대하여 설명한다.
하나의 컴퓨터로 복수의 일을 병렬로 실행할 때 그 종류의 실행형태가 있다. 그 중 하나인 동시처리 예1은 복수의 기능을 동작시킬 수 있는 하드웨어를 가짐으로써, 실현되며 또 하나의 동시처리예2는 하나의 하드웨어를 다중화해서 사용하는 소프트웨어 기법을 적용함으로써 실현된다. 그러나 양자모두 어떤 시간에 각 작업을 서로 독점해서 실행할 수 있는 작업 시간의 논리적인 독립성을 필요로 한다. 이를 보다 구체적으로 설명하면 다음과 같다.
상기 동시처리예1에 있어서는 컴퓨터의 처리장치(CPU)가 어떤 연산을 실행하고 있을 때 병행하여 채널제어장치를 사이에 두고 외부기록장치로부터 데이터를 읽어 들이게 된다. 이러한 제어를 실현하기 위해서는 연산과 입출력 조작을 동시에 할 수 있는 하드웨어가 필요하다. 더욱이 연산과 입출력 조작의 사이에 논리적인 독립성이 존재하지 않으면 안된다.
한편 상기 동시처리예2에 있어서는 처리속도가 다른 두 종류의 장치가 서로 처리를 분담하고 있을 경우, 고속의 장치는 1대를 사용하여 여러대의 저속장치로부터의 처리요구에 대응할 수 있다. 이 경우, 저속장치의 쪽에서는 1대의 고속장치가 다중화되어 있는 것처럼 보인다. 이러한 논리적인 다중화는 하드웨어 및 소프트웨어에 의해서 실현된다.
그러나, 상기한 동시처리예 1 및 처리예2에 있어서는 프로세서상호간의 교신이나 동기를 제어하는 오퍼레이팅시스템의 구성과 기능이 중요한 역할을 하는데, 프로그램의 동기를 취급하기 위한 개념으로써 공유 데이터 영역을 의미하는 세머포어(semaphore)가 사용된다.
세머포머는 동시에 실행중이고 또한 정보를 공유하고 있는 2개 이상의 활동중인 프로그램 또는 처리를 서로 조정하기 위하여 사용하는 동기기본요소이다.
즉, 기본적인 상호처리통신, 공유하고 있는 데이터의 배타적인 액세스의 보증, 어떤 종류의 인터럽트에 의해 실행되는 코드, 즉, 크리티컬섹션[critical section, 또는 위험영역(critical region)이라고 함]의 보호 및 동일자원의 할당 뒤에 세머포어가 사용된다.
세머포어상에서는 두가지 조작 즉, P(기다림)와 V(속행)가 정의된다. 공유된 자원에 대한 프로토콜의 사용법은 다음과 같다. 자원의 제어를 필요로 하는 처리는 그 자원에 관계를 갖게된 세머포어상에서 P조작을 실행한다. 시스템은 자원이 이용가능케 될 때까지 처리를 연기하고 이용가능케되면 속행을 허가한다. 그 자원에 대한 처리가 종료되면 세머포어상에서 V(조작)를 실행하여 자원을 개방함으로써 별도의 처리가 사용될 수 있도록 한다.
상기 자원으로는 하드웨어 또는 소프트웨어의 어떤 구성요소라도 가능하며 데이터구조나 물리적인 장치 및 코드 세그먼트도 포함된다. 세머포어는 언제 프로그램이 어느 개소(個所)를 지나서 실행을 계속할 수 있느냐를 나타내는 데에도 사용된다. 예를 들면 처리 A가 처리 B에 의해서 만들어진 데이터를 얻지 않는다면 그로부터 앞으로의 실행이 불가능하다고 판단되는 경우, 세머포어를 사용하여 B가 데이터를 준비하고 V조작으로 A를 해방하기 까지 A를 블럭에 둘 수가 있다.
뮤덱스(상호배제) 세머포어는 일시에 하나의 처리만이 자원을 사용할 수가 있다. 이는 데이터구조가 복수의 처리로 동시에 갱신되는 것을 막는데 특히 유용한다. 본 발명에 관련된 세머포어는 다음과 같이 카운터를 사용한다.
1) 즉, 세머포어의 초기설정시 세머포어의 카운터에 자원요구의 총수를 세트한다. 예를 뮤텍스에 세머포어 1을 세트한다.
2) 세머포어 P는 세머포어의 카운터가 제로보다 클 경우에는 1을 감한 후 호출하는 처리가 속행되도록 한다. 제로 이하의 경우에는 호출처리를 블럭하고 블럭되어 있지 않은 다른 처리로 바꾼다.
3) 세머포어 V는 세모포어를 기다리고 있는 블럭된 처리가 있을 경우는 블럭된 처리를 골라 그 실행을 계획하고 블럭된 처리가 없으면 세머포어의 카운트를 1개 늘린다. 이 루틴의 본체는 분할되지 않는다. 즉 인더럽트가 허용되지 않는 조작인 것이다.
또한 세머포어는 공유 데이터로의 액세스 경쟁이 잘못된 결과를 가져오게 하는 일이 없도록 프로그램의 병렬 실행을 제어하는 기구를 갖추게 된다.
병렬실행제어의 명령으로는 실행중인 프로세서가 새로운 프로세서를 생성하여 처리를 독립된 2개의 프로세서로 분할하는 포크(fork)나, 실행중인 프로세서를 종료시켜 다른 프로세서와 병합하는 조인(Join) 또는 사용중인 자원을 보호상태로 하는 록크(lock)나 보호상태를 해제하는 언록크(Unlock)등이 있다.
한편, 프로그램은 메시지를 단위로 하여 서로 교신하거나 동기를 취하기 위하여 제2도에 도시된 바와 같이 다중처리시스템 내에 하나의 고속처리장치인 마이크로프로세서(1)에 공유메모리(2)를 접속하게 되며 상기 마이크로프로세서(1)의 입출력포트에는 액츄레이터를 각각 구성하는 복수의 로보트(3, 4, 5)가 접속되는데, 상기 로보트간에는 상호간에 이루어진 통신에 의하여 동기화된 동작이 이루어진다.
또한 병렬로 동작하는 프로그램사이의 조정은 기본적으로 오퍼레이팅 시스템의 기능을 사용하여 실현한다. 어떤 프로그램이 다른 프로그램의 실행을 개시하게 할 때 오퍼레이팅시스템은 프로세서제어블럭을 생성하여 시스템내에 있는 실행요구대기행렬(Queve)에 등록한다. 프로세서제어블럭이 할당된 프로세서는 그 프로그램의 실행을 개시한다, 본 발명에 따른 복수로보트의 동시제어방법에 있어서는 실행요구대기행렬이 공유메모리(2)내에 놓이고 어느 프로세서도 동등한 권리로 액세스할 수 있다.
즉, 상기한 바와 같이 본 발명의 실시예는 동시처리기법으로 로보트를 제어할 때 발생하는 공유데이터의 충돌을 방지하기 위한 방안으로 철저한 상호배제원칙에 의거하여 공유메모리(2)를 억세스함으로써 각 프로세서간에 완벽한 데어터통신이 이루어져 로보트간의 정확한 동기화된 동작을 구현할 수 있게 되는 것이다.
다음은 상술한 세머포어를 이용하여 각 프로세서간의 통신상호배제 실행에 의한 공유메모리의 특정값 생성과 사용에 대하여 설명한다.
설명을 용이하게 하기 위하여 2개의 세머포어 S1, S2를 사용하여 프로세서간에 이루어지는 데이터의 송수신제어를 설명하며, 공유메모리(2)는 최대 K개의 데이터를 간직할 수 있는 것으로 한다.
제3도에 도시된 바와 같이 특정값에 해당하는 통신데이터를 공유메모리(2)에 서입하는 첫단계로써 단계 S1에서 세머포어 함수P(S) 및 V(S)의 정수변수인 S를 설정한다. 즉 공유메모리(2)는 최대 K개의 데이터를 간직할 수 있게 된다. 그후 단계 S2에서 통신 데이터를 생성하게 되고, 단계 S3에서는 비어 있는 공유메모리(2)의 슬롯수를 확인하여 데이터를 공유메모리(2)에 모아 두게 되는데, 이때 단계 S4에서는 뮤우트세머포어 플래그를 0으로하여 데이터의 서입을 가능하게 한다. 데이터의 서입이 종료된 후에는 단계 S5에서는 세머포어 플레그를 1로하여 다른 프로세서에 의한 데이터의 서입을 배제함과 동시에 단계 S6으로 나아가서 공유메모리(2)에 채워진 데이터의 수를 확인한 후 동기화된 동작을 구현하기 위하여 제4도에 도시된 데이터의 이용과정으로 전환되며 동시에 공유메모리의 특정값 생성과정은 초기위치로 복귀한다.
상기에서는 통신 데이터의 생성에 대하여 설명하였으며 다음은 생성된 데이터의 이용과정에 대하여 설명한다.
제4도에 도시된 바와 같이 특정값에 해당하는 통신데이터를 공유메모리(2)에서 독출하는 첫단계로서 단계 S1에서는 세머포어 함수P(S) 및 V(S)의 정수변수인 S를 설정한다. 그 후 단계2에서는 공유 메모리(2)에 채워진 데이터의 수를 점차감소시키면서 단계 S3에서 뮤우트 세머포어 플래그를 0으로 하여 데이터를 공유메모리(2)에서 꺼내는 것을 가능하게 한다. 데이터의 독출이 끝난 후에는 단계 S4에서 뮤우트 세머포어 플래그를 1로 하여 다른 프로세서에 의한 데이터의 독출을 배제함과 동시에 단계 S5로 나아가서 공유메모리(2)의 빈 슬롯수를 확인하며 그 후 단계 S7에서 동기화된 동작을 구현시키기 위해 데이터를 소비하게 되는 것이다.
상술한 바와 같이 본 발명은 동시처리기법으로 로보트를 제어할 때 발생하는 공유데이터의 충돌을 방지하기 위하여 철저한 상호배제원칙에 의거한 공유메모리의 억세스를 행함으로써 각 프로세서간에 완벽한 데이터 통신이 이루어지며 로보트간의 정확한 동기화된 동작이 이루어질 수 있는 효과가 있는 것이다.

Claims (1)

  1. 복수개로 구성된 로보트의 제어방법에 있어서, 공유메모리안에 있으면서 세머포어 함수P(S) 및 V(S)의 정수변수인 S의 초기치를 설정하여 복수개의 프로세서가 동시에 사용되지 않도록 크리티컬 섹션을 형성하는 단계와, 상기 크리티컬 섹션이 형성된 상태에서 로보트를 동작시키기 위한 통신데이터를 생성하는 단계와, 공유메모리(2)내의 비어있는 메모리영역을 확인한 후 뮤우트세머포어 플래그를 0으로하여 메모리내에 상기 통신 데이터의 서입을 가능하게 하는 단계와, 상기 통신 데이터의 서입이 종료됨을 판별한 후에 세머포어플래그를 1로하여 타 데이터의 서입을 배제하는 단계와, 상기 공유메모리(2)에 저장된 데이터의 양을 확인한 후 데이터의 독출 과정으로 전환하는 단계와, 뮤우트세머포어 플래그를 0으로하여 상기 공유메모리(2)에서 상기 데이터를 독출하는 단계와, 데이터의 독출이 완료됐음을 판별하고 뮤우트 세머포어 플래그를 1로하여 타프로세서에 의한 데이터의 독출을 배제하는 단계와, 상기 독출된 데이터를 이용하여 동기화된 동작을 구현하는 단계로 이루어지는 것을 특징으로 하는 복수로보트의 동시제어방법.
KR1019920018726A 1992-10-12 1992-10-12 복수로보트의 동시제어방법 KR0161003B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019920018726A KR0161003B1 (ko) 1992-10-12 1992-10-12 복수로보트의 동시제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019920018726A KR0161003B1 (ko) 1992-10-12 1992-10-12 복수로보트의 동시제어방법

Publications (2)

Publication Number Publication Date
KR940008824A KR940008824A (ko) 1994-05-16
KR0161003B1 true KR0161003B1 (ko) 1998-12-15

Family

ID=19341008

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920018726A KR0161003B1 (ko) 1992-10-12 1992-10-12 복수로보트의 동시제어방법

Country Status (1)

Country Link
KR (1) KR0161003B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10792813B1 (en) 2018-04-26 2020-10-06 X Development Llc Managing robot resources
US11526823B1 (en) 2019-12-27 2022-12-13 Intrinsic Innovation Llc Scheduling resource-constrained actions

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10792813B1 (en) 2018-04-26 2020-10-06 X Development Llc Managing robot resources
US11034021B1 (en) 2018-04-26 2021-06-15 X Development Llc Managing robot resources
US11660748B1 (en) 2018-04-26 2023-05-30 X Development Llc Managing robot resources
US11526823B1 (en) 2019-12-27 2022-12-13 Intrinsic Innovation Llc Scheduling resource-constrained actions

Also Published As

Publication number Publication date
KR940008824A (ko) 1994-05-16

Similar Documents

Publication Publication Date Title
US5392433A (en) Method and apparatus for intraprocess locking of a shared resource in a computer system
Klein et al. Rate-monotonic analysis for real-time industrial computing
EP0425320A2 (en) Multiprocessor system and process synchronisation method therefor
JPH02208740A (ja) 仮想計算機制御方式
JPS60128537A (ja) 多重プログラミング・システム
JP2539352B2 (ja) 階層型多重計算機システム
US11115232B2 (en) Method and device for operating a control unit
EP0230350B1 (en) Protection of data in a multiprogramming data processing system
EP0715732B1 (en) Method and system for protecting shared code and data in a multitasking operating system
KR0161003B1 (ko) 복수로보트의 동시제어방법
Chen et al. A three-slot asynchronous reader/writer mechanism for multiprocessor real-time systems
JPS63284660A (ja) プロセッサ間通信方式
KR0136111B1 (ko) 데이터요소의 수정장치 및 그 방법
France-Pillois et al. Implementation and evaluation of a hardware decentralized synchronization lock for MPSoCs
Jimenez et al. RISC-based architectures for multiple robot systems
Xu A Semi-partitioned Model for Scheduling Mixed Criticality Multi-core Systems
Takada et al. Bounded Spin Lock Algorithm with Preemption
JPH09265405A (ja) 共有資源の排他アクセス方法
JPS6350903B2 (ko)
Nemitz Efficient Synchronization for Real-Time Systems with Nested Resource Access
Silambarasan Handling of Priority Inversion Problem in RT-Linux using Priority Ceiling Protocol
Pedersen et al. Solving the priority inversion problem in legos
SU907551A1 (ru) Мультимикропроцессорна система
Gracon et al. A high performance computing system for time critical applications
JP2601359B2 (ja) 並行処理マイクロプロセッサ

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20050727

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee