처음부터 차근차근

폴링 기법과 인터럽트 기법, 버퍼링 기법 본문

Linux & Unix

폴링 기법과 인터럽트 기법, 버퍼링 기법

_soyoung 2022. 2. 21. 13:02
반응형

폴링 기법

폴링 기법이란 이벤트 발생과 관계없이 일정 주기로 서버에서 내용을 받아오는 방식이다.

CPU가 연결된 모든 주변장치에게 데이터 송수신을 위해 일정한 주기로 계속 상태를 묻는다.

즉, 동일 작업을 주기적으로 수행하기 때문에 

잦은 데이터 송수신이 있는 주변장치의 접근에 유리하고,

CPU의 부하를 발생시킬 수 있다.

 

 

코드

 

실행결과

 

 

 

인터럽트 기법

인터럽트란 사전적 의미로는 '끼어들다', '중단시키다'의 의미를 가졌다.

프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 것을 인터럽트라고 한다.

문제가 발생했을 때 주변 장치에서 CPU한테 여기 문제생겼다고 알리는 것과 같다.

 

폴링 기법과는 다르게 CPU가 필요할 때만 부르기 때문에 CPU의 부하를 최소화시킬 수 있다.

하지만 너무 잦은 인터럽트는 CPU의 성능을 저하시킨다.

 

 

코드

 

실행결과

 

 

 

버퍼링 기법

버퍼(buffer)란 속도가 다른 두 장치가 통신할 때 대시 기간을 단축하기 위해 임시로 기록해두는 위한 공간이다.

커다란 수조에 물이 있다고 상상해보자.

커다란 수조의 물을 A 수조에 모두 옮겨야한다.

이때 커다란 수조의 물을 티스푼으로 옮기는 속도와 양동이로 옮기는 속도 중 어떤게 빠를까?

당연히 양동이로 옮기는게 빠를 것이다.

이런 점을 사용한 것이 버퍼링 기법이다.

 

버퍼링 기법을 쓰면 장치의 읽기, 쓰기 횟수를 감소시켜서 성능을 향상시킬 수 있고,

요즘의 대부분의 장치들은 버퍼링 기법을 사용한다.

예시로는 유튜브 동영상 버퍼링을 들 수 있다.

 

 

코드

1) 논버퍼링(버퍼링 기법을 쓰지 않음)

2) 버퍼링

 

실행결과

1) 논버퍼링

2) 버퍼링

버퍼링 기법을 쓰지 않았을 때는 약 11초가 나왔는데 버퍼링 기법을 썼을 때는 약 1초가 나왔다.

버퍼링 기법을 썼을 때가 약 10초 정도 더 빠르다.

 

 

 

 

 

출처 : 운영체제(21-1학기)김병국교수 강의 내용 변형 및 요약

반응형
Comments