Atomic 연산
Atomic 연산이란 연산 수행 중 다른 thread로 context 전환이 되지 않는 연산을 의미하며 task의 context switching이 일어나거나 interrupt routine에서 해당 메모리에 대해 동시 처리되지 않도록 보장하는 연산을 일컫는다.
성능이 굉장히 중요한 부분에 있어서 Lock을 사용하기에는 성능 저하가 우려되는 경우 사용
Function | Description |
ATOMIC_INIT(int i) | At declaration, initialize an atomic_t to i |
int atomic_read(atomic_t *v) | Atomically read the integer value of v |
void atomic_set(atomic_t *v, int i) | Atomically set v equal to i < v = i > |
void atomic_add(int i, atomic_t *v) | Atomically add i to v < v = v + 2 > |
void atomic_sub(int i, atomic_t *v) | Atomically subtract i from v < v = v - i > |
void atomic_inc(atomic_t *v) | Atomically add one to v < v = v + 1 > |
void atomic_dec(atomic_t *v) | Atomically subtract one from v < v = v - 1 > |
int atomic_sub_and_test(int i, atomic_t *v) | Atomically subtract i from v and return true if the result is zero; otherwise false |
int atomic_add_negative(int i, atomic_t *v) | Atomically add i to v and return true if the result is negative; otherwise false |
int atomic_dec_and_test(atomic_t *v) | Atomically decrement v by one and return true if zero; false otherwise |
int atomic_inc_and_test(atomic_t *v) | Atomically increment v by one and return true if the result is zero; false otherwise |
300x250
'Linux System > Linux Kernel' 카테고리의 다른 글
[Kernel] Timer (0) | 2023.02.11 |
---|---|
runtime에 target board kernel의 config 확인 (0) | 2022.09.14 |
User Space와 Kernel Space (0) | 2022.08.17 |
Kernel Build (0) | 2022.03.03 |
Kernel Source Tree (0) | 2022.03.03 |