SPIN_UNLOCK
Posts
2 posts[라즈베리파이] 동기화 - 스핀락(spinlock): 두 번째 스핀락 해제 시 동작(2)
스핀락을 해제할 때 spin_unlock() 함수를 호출하며 이 때 스핀락 인스턴스 owner 값을 +1만큼 증감한다고 배웠습니다. 이제 [2] 번 프로세스가 임계 영역 실행을 마치고 스핀락을 해제했습니다. spin_unlock() 함수를 실행하니 스핀락 인스턴스 중 owner를 +1만큼 증감해서 0x3이 됐습니다. [3]번 프로세스는 스핀락 인스턴스를 계속 읽으면서 스핀락 인스턴스 owner 값이 0x3이 되기를 기다리고 있었습니다. 그런데 스핀락 인스턴스 owner 값이 0x3이니 스핀락을 획득하고 무한 루프를 빠져나갑니다. 스핀락 기본 동작과 함께 누군가 스핀락을 획득했을 때 스핀락 동작에 대해서 알아봤습니다. 코드 분석으로 다음과 같은 중요 포인트를 알 수 있습니다.1.스핀락은 코드 구현도가
[라즈베리파이] 동기화 - 스핀락(spinlock): spin_unlock() 함수 분석
이번에는 스핀락을 해제하는 spin_unlock() 함수 코드를 살펴보겠습니다. spin_unlock() 함수도 spin_lock() 함수와 마찬가지로 여러 함수로 치환돼 do_raw_spin_unlock() 함수를 호출합니다.[https://elixir.bootlin.com/linux/v4.14.43/source/include/linux/spinlock.h]static __always_inline void spin_unlock(spinlock_t *lock){raw_spin_unlock(&lock->rlock);} void __lockfunc _raw_spin_unlock(raw_spinlock_t *lock){__raw_spin_unlock(lock);} static inline v



![[CV] [Comi] 'ファイブスター物語'(더 파이브 스타 스토리즈) 19권. 연재분에서 벌어지는 '검성 대 검성'](https://img.zoomtrend.com/2026/06/06/1780766083-ECB2ABEB93B1EC9EA5EB8DB0ECBD94EC8AA4.jpg)