폴링(컴퓨터 사이언스)

Polling (computer science)

폴링(polling) 또는 폴링 조작클라이언트프로그램에 의한 외부 디바이스의 상태를 동기 액티비티로서 액티브하게 샘플링 하는 것을 말합니다.폴링은 입출력(I/O) 측면에서 가장 많이 사용되며 폴링된 I/O 또는 소프트웨어 기반 I/O라고도 합니다.하드웨어가 시사하는 좋은 예로는 워치독타이머가 있습니다

묘사

폴링은 컴퓨터 또는 제어 장치가 외부 장치의 준비 상태 또는 상태를 확인할 때까지 대기하는 프로세스입니다(대부분의 경우 로우 레벨 하드웨어).를 들어, 병행 포토를 개입시켜 프린터를 접속하고 있는 경우, 컴퓨터는 프린터가 다음 문자를 수신할 때까지 기다립니다.이러한 프로세스는 1비트를 읽는 것만큼이나 미세할 수 있습니다.이는 'busy-wait' 폴링과 동의어로 사용될 수 있습니다.이 경우 I/O 조작이 필요한 경우, 컴퓨터는 I/O 디바이스가 준비될 때까지 I/O 디바이스의 상태를 확인하는 것 외에 아무것도 하지 않습니다.그 시점에서 디바이스에 액세스 할 수 있습니다.즉, 컴퓨터는 디바이스가 준비될 때까지 기다립니다.폴링이란 디바이스의 준비 상태를 반복적으로 체크하고 그렇지 않은 경우 컴퓨터는 다른 태스크로 돌아갑니다.CPU 사이클이 비지 대기만큼 낭비되지는 않지만 일반적으로 폴링, 인터럽트 기반 I/O에 비해 효율적이지 않습니다.

심플한 단일 목적 시스템에서는 I/O 액세스까지 작업이 불가능한 경우에는 비지 대기라도 완벽하게 적합하지만, 일반적으로 이것은 단순한 하드웨어 또는 비멀티태스킹 운영 체제의 결과였습니다.

폴링은 보통 매우 낮은 수준의 하드웨어와 밀접하게 관련되어 있습니다.예를 들어 병렬 프린터 포트를 폴링하여 다른 문자를 사용할 준비가 되어 있는지 여부를 확인하려면 1바이트만 검사해야 합니다.이 비트는 판독 시 프린터 케이블의 1개의 와이어가 저전압인지 고전압인지를 나타냅니다. 바이트를 읽는 I/O 명령은 8개의 실제 와이어의 전압 상태를 CPU 레지스터의 1바이트를 구성하는 8개의 회로(플립 플랍)로 직접 전송합니다.

폴링에는 확인해야 할 디바이스가 너무 많을 경우 폴링에 필요한 시간이 I/O 디바이스의 서비스 제공에 사용할 수 있는 시간을 초과할 수 있다는 단점이 있습니다.

알고리즘.

폴링은 다음 순서로 설명할 수 있습니다.

호스트 액션:

  1. 호스트는 컨트롤러의 비지 비트를 클리어할 때까지 반복하여 읽습니다(값 0).
  2. 클리어하면 호스트는 명령어를 명령어레지스터에 씁니다.호스트가 출력을 송신하고 있는 경우는, 기입 비트를 설정하고, 데이터 출력 레지스터에 바이트를 씁니다.호스트가 입력을 수신하는 경우 호스트는 데이터 입력 레지스터에서 컨트롤러에 의해 작성된 데이터를 읽고 다음 명령으로 읽기 비트를 0으로 설정합니다.
  3. 호스트는 명령 준비 비트를 1로 설정합니다.

컨트롤러 액션:

  1. 컨트롤러는 명령어레이디 비트가 설정되어 있는 것을 인식하면 비지 비트를 1로 설정합니다.
  2. 컨트롤러가 명령어레지스터를 읽습니다.내부의 기입 비트가 설정되어 있는 경우는, 데이터 출력 레지스터로부터 읽어내, 디바이스상에서 필요한 I/O 조작을 실행합니다.읽기 비트가 설정되어 있는 경우, 디바이스로부터의 데이터는 호스트가 읽기 위한 데이터 입력 레지스터에 로드됩니다.
  3. 조작이 완료되면 컨트롤러는 명령어레이디 비트를 클리어하고 에러 비트를 클리어하여 조작이 성공했음을 나타내고 비지 비트를 클리어합니다.

종류들

폴링 사이클은 각 요소가 1회 감시되는 시간입니다.최적의 폴링 사이클은 원하는 응답 속도 및 폴링의 오버헤드(프로세서 시간 및 대역폭 등) 등 몇 가지 요인에 따라 달라집니다.

롤 콜 폴링에서는 폴링 디바이스 또는 프로세스가 리스트의 각 요소를 고정 시퀀스로 쿼리합니다.각 요소로부터의 응답을 대기하기 때문에 응답하지 않는 요소에 의한 행업을 방지하기 위한 타이밍 메커니즘이 필요합니다.폴링 메시지의 오버헤드가 높고, 각 폴링 사이클에서 폴링되는 요소가 다수 존재하며, 액티브한 요소는 극히 일부일 경우 롤콜 폴링은 비효율적일 수 있습니다.

허브 폴링(토큰 폴링이라고도 함)에서는 각 요소가 일정한 순서로 다음 요소를 폴링합니다.첫 번째 요소에 도달할 때까지 폴링 사이클이 다시 시작됩니다.

폴링은 관련된 요소의 실행 또는 전송 시퀀스를 제어하기 위해 다양한 컴퓨팅 컨텍스트에서 사용할 수 있습니다.예를 들어 멀티태스킹오퍼레이팅시스템에서는 다양한 경쟁 프로세스에 프로세서 시간 및 기타 자원을 할당하기 위해 폴링을 사용할 수 있습니다.

네트워크에서는 폴링을 사용하여 네트워크에 액세스하는 노드를 결정합니다.또한 EGP(External Gateway Protocol)의 경우와 마찬가지로 라우팅 프로토콜에 의해 라우팅 정보가 검색됩니다.

폴링의 대체 수단으로는 인터럽트를 사용하는 방법이 있습니다.인터럽트는 디바이스 또는 프로세스에 의해 생성되는 신호로, 인터럽트에 주의가 필요하거나 통신하고 싶은 것을 나타냅니다.폴링은 매우 간단하지만 많은 상황(멀티태스킹 운영체제 등)에서 인터럽트를 사용하는 것이 효율적입니다.이는 프로세서 사용률 및 대역폭 소비를 줄일 수 있기 때문입니다.

폴 메시지

메시지는 컨트롤 확인 응답 메시지입니다.

멀티드롭 회선 배치(단말기가 컴퓨터와의 단일 통신회선을 공유하는 중앙 컴퓨터 및 다른 단말기)에서 시스템은 중앙 컴퓨터가 발신 회선상의 특정 단말기에 메시지(폴링 메시지라고 불린다)를 송신하는 마스터/슬레이브 폴링 배치를 사용한다.모든 단말기가 발신 회선을 수신합니다만, 폴링 된 단말기만, 착신 [1]회선상에서 송신 준비가 끝난 정보를 송신해 응답합니다.

가장 단순한 형태로 메시지를 전송하는 도관 역할을 하는 하나의 중앙 스위치, 허브 또는 컴퓨터로 구성된 스타 네트워크에서는 회선의 혼란을 피하기 위해 폴링이 필요하지 않지만 마스터가 순서대로 입력을 획득할 수 있도록 하기 위해 자주 사용됩니다.이러한 폴링 메시지는 사이트 주소가 필요 없고 각 단말기가 [1]수신하는 폴링만 수신하기 때문에 멀티드롭 회선의 경우와 다릅니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b "Multi-Drop Polling". RAD Data Communications/Pulse Supply. 2007. Archived from the original on 2014-02-17. Retrieved 2014-07-13.