정보관리기술사 토픽/DB

(빅데이터 토픽) 교통정리와 같은 우선순위 역전!

공부하는쥐 2024. 11. 10. 21:45

 

 

최근 빅데이터의 중요성이 날로 커지면서 대용량 데이터를 효율적으로 처리하는 방법에 대한 관심이 높아지고 있습니다. 그러나 복잡한 시스템에서는 예상치 못한 문제가 발생하기도 합니다. 그 중 하나가 바로 우선순위 역전입니다. 이 글에서는 우선순위 역전이 무엇인지, 그것이 빅데이터 시스템에 어떤 영향을 미치는지, 그리고 이를 어떻게 해결할 수 있는지를 재미있는 비유와 함께 자세히 알아보겠습니다.

 

우선순위 역전이란 무엇인가요?

우선순위 역전은 낮은 우선순위를 가진 프로세스가 높은 우선순위를 가진 프로세스보다 먼저 자원을 점유하거나 실행되는 현상을 말합니다. 이로 인해 중요한 작업이 지연되고 시스템 전체의 성능이 저하될 수 있습니다.

 

교통 체증으로 보는 우선순위 역전

보다 쉽게 이해하기 위해 교통 상황에 비유해 보겠습니다.

 

시나리오

도시 한가운데에 세 개의 차선이 있는 도로가 있습니다:

  • 고속 차선: 긴급 차량 전용 (응급차, 소방차 등) - 높은 우선순위
  • 일반 차선: 일반 차량이 사용하는 차선 - 중간 우선순위
  • 완행 차선: 대형 트럭이나 버스가 사용하는 차선 - 낮은 우선순위

어느 날 완행 차선을 달리던 대형 트럭이 고장이 나서 길을 막게 됩니다. 트럭은 낮은 우선순위를 가진 차량이지만 그로 인해 완행 차선이 막혀버렸습니다.

 

문제 발생

이때 뒤따라오던 응급차가 고속 차선을 이용하려 하지만, 일반 차량들이 차선을 변경하면서 고속 차선까지 막혀버렸습니다. 결과적으로 가장 높은 우선순위를 가진 응급차가 낮은 우선순위의 트럭과 중간 우선순위의 일반 차량들 때문에 길을 못 가는 상황이 발생합니다. 이것이 바로 우선순위 역전입니다.

 

빅데이터 시스템에서의 우선순위 역전

 

상황 설명

빅데이터 시스템에서는 여러 프로세스가 동시에 다양한 자원을 사용합니다. 여기서 중요한 프로세스(높은 우선순위)가 긴급하게 처리되어야 하는 데이터를 가지고 있는데, 낮은 우선순위의 프로세스가 그 자원을 점유하고 있다면 문제가 발생합니다. 중간 우선순위의 프로세스가 CPU를 차지하면서 낮은 우선순위 프로세스의 작업이 지연되고, 그 결과 높은 우선순위의 프로세스도 지연됩니다.

 

예시

  • 높은 우선순위 프로세스: 실시간 금융 거래 처리
  • 중간 우선순위 프로세스: 데이터 분석 작업
  • 낮은 우선순위 프로세스: 배치 로그 처리

배치 로그 처리가 데이터베이스의 락을 잡고 있을 때, 데이터 분석 작업이 CPU를 점유하면 실시간 거래 처리가 지연될 수 있습니다. 이는 금융 시스템에서 치명적인 결과를 초래할 수 있습니다.

 

우선순위 역전 해결 방법

 

우선순위 상속 프로토콜

낮은 우선순위의 프로세스가 높은 우선순위의 프로세스가 필요로 하는 자원을 점유하고 있을 때, 낮은 우선순위 프로세스의 우선순위를 일시적으로 상승시켜 작업을 빠르게 완료하도록 합니다. 이를 통해 자원 점유 시간을 최소화하고 우선순위 역전을 방지할 수 있습니다.

 

자원 점유 시간 최소화

  • 락 사용 최소화: 가능한 한 락을 적게 사용하도록 시스템을 설계합니다.
  • 비동기 처리: 자원 점유를 필요로 하지 않는 비동기 방식을 활용합니다.

 

프로세스 스케줄링 개선

  • 선점형 스케줄링 사용: 높은 우선순위 프로세스가 즉시 자원을 획득할 수 있도록 선점형 스케줄링을 도입합니다.
  • 실시간 운영체제 사용: 우선순위 역전을 효과적으로 관리할 수 있는 실시간 운영체제를 사용합니다.

 

우선순위 역전의 영향과 중요성

우선순위 역전은 단순한 지연 이상의 문제를 야기할 수 있습니다. 특히 빅데이터 시스템에서는 실시간 데이터 처리가 중요하기 때문에 이러한 지연은 비즈니스 손실로 직결될 수 있습니다. 따라서 시스템 설계 단계에서부터 우선순위 역전을 고려한 아키텍처를 구축하는 것이 중요합니다.

 

결론

우선순위 역전은 복잡한 빅데이터 시스템에서 발생할 수 있는 중요한 이슈입니다. 이를 이해하고 적절한 대책을 마련함으로써 시스템의 효율성과 안정성을 높일 수 있습니다. 교통 체증 비유를 통해 우선순위 역전을 쉽게 이해하셨기를 바라며, 실제 시스템 설계와 운영에 도움이 되었으면 합니다.