'폴링방식'에 해당되는 글 1건

  1. 2013.06.17 폴링방식과 인터럽트 방식의 차이점
기타2013. 6. 17. 11:51

폴링방식과 인터럽트 방식의 차이점.

 

폴링과 인터럽트는 둘다 어떤 작업을 수행시 외부에서 들어오는 이벤트에 의해 어떠한 작업을 수행하는 것. 이다.

 

1. 폴링방식 - 폴링방식은 정해진 시간 또는 순번에 상태를 확인해서 상태 변화가 있는지 없는지를 체크하는 방식이다.

 

while(1)

{

if( botton == 0 )

{

..................;

}

else

{

     ...................;

}

task 1;

task 2;

task 3;

task 4;

}

 

위의 코드를 보았을때 버튼이  0 인지 아닌지를 확인한뒤 아니면 else를 실행할것이다.

if else 문이 끝나면 순차적으로 다른작업 n을 실행한다. 그리고

다시 if문을 확인할 것이다.

결론적으로 mcu는 정해진 순번 or 시간에 버튼의 상태변화를 확인해서 그에 맞는 일을 할 수 있드록 한다.

 

2. 인터럽트 방식

- 인터럽트 방식은 main문을 실행하는 도중에 외부에서 정해져 있는 인터럽트 핀해

신호가 들어오면 mcu는 즉각적으로 하고있는 모든 task를 멈추고 인터럽트 서비스 루틴을

실행한다.( 인터럽트 핀에 신호가 들어오면 스택공간에 실행 중이던 task의 주소번지를 저장 하고 인터럽트 서비스 루틴을 실행 ). 인터럽트 루틴이 끝나면 스택에 저장되었던 주소번지를 읽어서 다시 작업하던 곳으로 복귀해서 수행한다.

 

3. 폴링방식과 인터럽트 방식은 논리적으로 외부신호에 의해서 다른작업을 하는 것이지만 회로상으로 볼때는 전혀 다른 개념이다.

- 폴링방식은 버튼의 on / off를 판단하기위해 muc가 계속 확인해야 하기 때문에 소스 중간 중간에 상태를 체크할 수 있게 코딩을 해야한다.

- 인터럽트 방식은 메인 루틴에서 하던일을 잠시 멈추고 실행되는 것이기 때문에 메인루틴 프로그램만 작성하면 된다.

 

4. 인터럽트 서비스 루틴이란?

- cpu에서 데이터를 처리하는 방법에는 여러가지가 있는데 인터럽트 vs 폴링이 있따.

 

먼저 폴링은 데이터가 그냥 쭉 들어오는 것 이다.

프로세서는 그것을 정해진 순서대로 처리를 해준다. 그러나 비상사태(전원이off) or 급하게 처리해야할 일이 생기면 신속하게 처리해주어야 하는데 순차적으로 처리하다 보면 타이밍을 놓치는 경우가 발생한다. 저장된 데이터가 날라간다든지....

 

이 때문에 인터럽트가 생겨났다. 인터럽트는 프로세서에서 우선순위를 정해 놓고 우선순위가 높은 task가 발생하면 현재작업을 중단하고 우선순위가 높은 task가 실행된다.


출처 : http://minyoub.tistory.com/100

Posted by 광포한곰돌이