티스토리 뷰

운영체제/이론

(83) I/O Hardware 2 - Polling

geonwoopaeng@gmail.com 2020. 10. 14. 08:56

### *Polling ###

: processor랑 i/o device간의 interraction(상호작용)을 구현할 수 있는 방법

 

: 다음 I/O 작업 시간인지 확인하기 위해 장치 상태를 주기적으로 확인하는 process

=> processor가 i/o작업을 처리하는 해당 device에 busy bit를 반복적으로 check하는 방식으로 제어를 진행한다.

+

busy bit- 1: controller가 i/o작업 처리하고 있는 상황

busy bit- 0: controller가 작업을 다 마치고 대기 상황

​< 순서 >

1. processor가 busy bit를 확인한다.

: processor가 i/o작업을 처리하는 해당 device에 대한 busy bit를 반복적으로 check하는 방식으로 제어를 진행한다.

=> 해당 device가 이전 작업을 끝낼 때 까지(busy bit 가 0) bit값을 확인한다.

2. control register에서 processor가 write bit를 1로 설정한다.

(data-out register에 실제로 write를 수행할 data내용을 저장한다.)

3. processor가 command-ready bit를 1로 설정한다.

(제어 명령을 주겠다 어필)

4. controller가 busy bit를 다시 1로 설정한다.

(device controller가 자신에게 온 command를 알기위해 command register을 본다 => write command라는 것을 인지한다.)

5. controller는 data-out register을 읽는다.

(실제로 data가 기록이 된 data-out register을 읽어와서 device를 통해서 출력해야할 bit정보를 가져온다, 출력 후 device controller가 command-ready bit(명령 받았는지 check하는 bit)를 0으로 둔다, 그 후 os에게 status register 값을 0으로 만든다(일이 끝났다고 보고한다.) 그리고 error bit을 0으로 두어 진짜 끝났음을 알려준다.)

6. controller가 busy bit를 삭제한다.

processor가 다른 process를 처리한다고 busy bit를 빨리 인지하지 못하면 data 로스가 발생할 수 있다.

=> device가 작업을 끝낸후 생성한 data들이 buffer overflow가 발생해서 보고해야될 data가 삭제 될수 있다.

==>> 작업이 끝났다고 알려주는 방식을 사용하면 좋다 (interrupt방식)

===>>> < *Interrupt >

: 주의가 필요한 장치에서 microprocessor로 보내는 신호

: Polling방식에 비해 cpu의 이용률을 효과적으로 증가시킬수 있다.

: context switching overhead가 있다.

• Interrupt request line.

• Interrupt handler routine.

 

출처: Operating System Concepts 10th Ed (John Wiley & Sons, Inc. 2018) ​

 

 

 

< Interrupt vector >

: specialized interrupt handlers의 memory address 포함

: single interrupt handler가 가능한 모든 interrupt의 source를 검색할 필요성 감소

 

출처: Operating System Concepts 10th Ed (John Wiley & Sons, Inc. 2018) ​

반응형

'운영체제 > 이론' 카테고리의 다른 글

(82) I/O Hardware 1  (0) 2020.10.14
(81) I/O System  (0) 2020.10.14
(80) RAID Structure 3  (0) 2020.10.13
(79) RAID Structure 2  (0) 2020.10.13
(78) RAID Structure 1  (0) 2020.10.13
공지사항
최근에 올라온 글