[리눅스커널] 동기화: 뮤텍스 fastpath 동작

Guillermo Austin Kim|2019년 9월 14일
Posts

[리눅스커널] 동기화: 뮤텍스 fastpath 동작

Guillermo Austin Kim|2019년 9월 14일

fastpath는 뮤텍스를 다른 프로세스가 획득하지 않았을 때 뮤텍스를 획득하고 빠져 나오는 실행 흐름입니다. 다음 그림을 보면서 fastpath 실행 흐름에 대해 배워볼까요? [그림 9.13] 뮤텍스 fastpath 실행 흐름도 먼저 뮤텍스를 획득하는 단계 세부 동작을 설명하겠습니다. 뮤텍스를 획득하려면 mutex_lock() 함수를 호출해야 합니다. mutex_lock() 함수 내부 루틴에서 다음 순서로 동작합니다.struct mutex 구조체 owner 필드 점검 owner가 0x0이니 뮤텍스를 다른 프로세스가 획득하지 않은 상태로 판단뮤텍스 자료구조인 struct mutex 구조체 owner 필드는 뮤텍스를 획득한 프로세스의 태스크 디스크립터를 저장 태스크 디스크립터 주소가 0