페이지 선택
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in pages

공유자원의 문제

공유자원에 대한 문제는 순차 프로그램밍 방식에서도 존재하지만 여기서 다루는 문제는 RTOS 동작환경에서 발생하는 새로운 유형의 문제이다.

이 새로운 문제는  RTOS 시스템에서 자신의 작업을 묵묵히 수행해가는 독립성이 강한 쓰레드들이 시분할 방식으로 동작하는 과정에서 자연스레 발생한다.

 

 

 

1. 공유자원의 문제 유형1 (Mutex 또는 Binary 세마포어로 해결)

momo는 T1에서 센서A(0x12번지 값)와 센서B(0x13번지 값)에 의해 측정되었던 결과를 더하는 일을 한다. T1에서 측정  값의 합은 10이다.

momo는 0x12번지의 값은 읽었고, 0x13번지 값을 읽는 차례에서 스케쥴러가 toto에게 실행을 넘겼다.

 

 

T2에서 부터 toto가 새로 측정한 센서값을 각각 0x12, 0x13번지에 갱신하였다. 이 일이 toto가 하는 일이다.

이후 momo가 실행을 넘겨받아 실행의 흐름을 이어 가면서 0x13번지 값을 읽어 더한다. 더한 값은 12로 T1에서의 값 10과 다르게 되었다.

 

 

 

2. 공유자원의 문제 유형2 (Count 세마포어로 해결)

제한된 개수의 공유 자원을 여러 thread에서 동시에 사용하려고 할 때 이를 count 세마포어를 이용하여 공유자원을 분배 할 수 있다.

예를 들면, 시스템 메모리가 부족한 상황에서, 메모리 사용량이 많은 thread 중, 최대 3개 까지, 동시 실행을 허용하려고 하는 경우가 해당할 수 있겠다.

 

 

 

 

3. 공유자원의 문제에 대한 해법

♦ 가장 명쾌한 해법은 자원을 공유하여 사용하지 않으면 되겠다. → 근데 써야하는 이유가 있게죠, 그 중에 가장 큰 이유는 제한된 리소스(비용)의 문제일 것.

♦ 공유자원을 써야하는 상황에서 해법으로는 결국 쓰레드들이 임계영역을 액세스 할때 모종의 시간적 조절(Sync)이나 질서가 필요하겠다.

 

 

 

 

 

Adsense

 

 WiFi IoT Module

 

www.mxchip.com

 

 

 Bluetooth Module

www.feasycom.com

 

 

 5G/LTE/CAT-M1/NB-IoT

 

www.simcom.com

 

Viewed Page List