본문 바로가기
리눅스

커널스페이스와 유저스페이스

by slowcloud_ 2026. 3. 26.

리눅스에서는 CPU모드를 2가지로 나누어 실행한다

커널모드에선 프로세서 명령어 집합, 메모리, 입출력 영역에 무제한 접근이 가능하다. 유저모드 프로세스에서는 시스템 호출을 통해 디바이스 드라이버, 커널모드로 요청을 전달한다.

 

커널모드에선 프로세스 문맥과 인터럽트 문맥으로 다시 나뉜다.

프로세스 문맥은 유저모드의 어플리케이션이 요청한 시스템 호출을 처리한다. 인터럽트 문맥은 인터럽트를 처리한다.

인터럽트 문맥은 비선점형으로 동작하며, 프로세스 문맥은 선점형으로 동작한다.

 

중요한 임계영역이라면 spin_lock_irq_save, spin_unlock_irq_restore를 사용하고, 인터럽트가 다루는 영역이 아니라면 spin_lock, spin_unlock을 사용하면 된다.

 

 

 

임베디드 개발자를 위한 코드로 읽는 리눅스 디바이스 드라이버를 읽고 조금씩 정리하고 있습니다.

'리눅스' 카테고리의 다른 글

cmake 기본 활용  (0) 2026.03.06
grep  (0) 2025.08.24
fzf 소개 및 간략한 사용법  (1) 2025.07.17