본문 바로가기

linux

[kernel/locking] spinlock (1) - spinlock 사용법 앞선 글에서 lock이란 무엇이고, lock의 필요성에 대해서 알아보았다. 이번 글에서는 가장 기본적인 spinlock을 리눅스 커널에서 어떻게 구현했는지 알아볼 것이다. 우선 관련된 개념을 몇 가지 살펴보자. 참고로, 이 문서에서 다루는 spinlock은 커널에서 사용하는 spinlock에 대해 다루고 있다. userspace에서의 spinlock은 pthread spinlock을 사용해야 한다. 자료구조 spinlock은 include/linux/spinlock_types.h에 spinlock_t로 정의되어있다. 한 번 살펴보자. /* include/linux/spinlock_types.h */ typedef struct spinlock { union { struct raw_spinlock rlock.. 더보기
리눅스 커널 입문에 도움이 될만한 것들 리눅스 커널 1도 모르는 학생이 쓴 거라 도움이 안 될 수도 있습니다 어렸을 때부터 리눅스 커널을 공부하는 데에 로망이 있었는데, 당시에 중딩이던 나는 엄청난 진입 장벽에 좌절하고 이론 책만 조금 공부했던 기억이 있다. (그리고 이것도 제대로 이해 못했다 ㅋㅋㅋ) 그래도 한 5년 동안 머리가 자랐으니, 다시 도전해보고 싶어서 며칠 전부터 구글링을 엄청나게 했다. 아, 물론 리눅스 커널의 대략적인 작동 방식, 자료구조를 정리한 책은 많다. 그런데 그것도 중요하지만 직접 소스코드를 분석해보고 싶었다. 물론 5년 전이나 지금이나 진입 장벽은 높은 것 같다 아무튼 간에, 내가 느낀 리눅스 커널 입문의 어려운 점은 : 1. 우선 어디서부터 시작해야 할지 모른다. 내가 "프로세스 관리"에 관심이 있어서 소스를 찾아.. 더보기