리눅스에서 pi-futex 에 관한 내용을 보고, priority inheritance 를 어떤 식으로

지원하는지에 대해 많이 검색해보고 있으나 정보 수집이 어려워서 질문을 올려봅니다.

 

기본적으로 futex_lock_pi / futex_unlock_pi 를 비롯해서 futex_wait_requeue_pi / futex_cmp_requeue_pi(이건 futex_requeue)

등의 시스템 콜이 지원되고 있는데, 잘 이해가 안되는 부분이 몇 가지 있습니다.

 

이런 시스템 콜들은 모두 priority inheritance 를 유저 모드에서 구현하기 "위한" 시스템 콜인가요?

아니면 priority inheritance 를 이미 내부적으로 지원한다는 의미인가요?

 

 

glibc 소스를 보면 pthread_mutex_lock 이나 pthread_mutex_unlock 등의 함수 내에서는

futex_lock_pi 와 futex_unlock_pi 를 사용하는 것으로 보이고 뒤의 requeue_pi 계열 함수는

사용을 하지 않는 것으로 보입니다.

 

그것도 처음 부분 코드에서

 

unsigned int type = PTHREAD_MUTEX_TYPE (mutex);
  if (__builtin_expect (type & ~PTHREAD_MUTEX_KIND_MASK_NP, 0))
    return __pthread_mutex_lock_full (mutex);

이러한 조건에서 __pthread_mutex_lock_full 로 들어가는데, 제가 일반적으로 어플리케이션에서

사용하는 것처럼 락을 사용하는 경우 저 함수 호출은 되지 않고 바로 lll_futex_wait 로 그냥 가버리는 것 같습니다.

 

PTHREAD_MUTEX_KIND_MASK_NP 가 무슨 의미의 타입인지도 검색해도 잘 안나와서 모르겠네요.

pthread_cond_~ 계열 함수에서는 requeue_pi 계열 함수를 사용하는 것으로 보이기는 하는데,

 

 

결과적으로 궁금한 것은 pthread 가 priority inheritance 를 지원을 하는 건가요?

사실 우선순위가 역전되도록 예제 코드를 만들어보고 싶어도 개별 쓰레드 우선순위 설정하는

것부터 영 막혀서 잘 안되네요.

 

대략적으로 알려주시면 정말 감사하겠습니다..

번호 제목 글쓴이 날짜 조회 수
공지 [공지] 프로그래밍 관련 Q&A 게시판 입니다. woos 2016.04.09 22269
438 리눅스 커널 내부구조 소스 키보드 LED예제중 에러문제 천하무적주석 2014.12.11 1827
437 TX timestamp 관련 질문 정재훈 2014.11.04 2218
436 ioremap 관련해서 질문드립니다. [1] ysh 2014.10.29 2520
435 안녕하세요. 쓰레드에 관련하여 질문이 있습니다. 송창인 2014.10.22 1618
» 리눅스에서 지원하는 priority inheritance futex 에 대해서 질문입니다. CVE 2014.10.13 2327
433 mmap하여 read,write에 관한 질문입니다. [1] ysh 2014.10.08 2219
432 NAND ERASE 할 때 BLOCK 단위로 지우지 않는 방법 있을까요 ? [1] 최고운 2014.10.02 1813
431 atomic_read, atomic_add 시 interrupt disable, restore 가 필요한지.. [4] YYS 2014.10.02 3848
430 32bit 운영체제 resistor가 double형 변수처리하는 방법 구자경 2014.09.25 1576
429 안드로이드 포팅 질문드려요. [1] shepherd44 2014.09.18 2021
428 compressed/head.s 에서 LC0: 코드 관련 [1] erasmooth 2014.09.17 1853
427 "코드로 알아보는 ARM 리눅스 커널" 책에서...(초판 2쇄) erasmooth 2014.09.17 2314
426 boot.bin 파일을 부팅하는 usb를 만들고 싶습니다. 마고 2014.09.16 1836
425 리눅스에서 local APIC 타이머 레지스터 사용 질문드립니다. it876 2014.09.15 2108
424 __mmap_switched 레이블 전후로 PIC 에서 절대주소로 전환되는 원리 [1] erasmooth 2014.09.12 1880
423 qemu에 커널을 올릴 때 에러가 발생합니다. [3] ysh 2014.09.10 2172
422 시스템콜 대해서 질문좀 드려봅니다. [6] 장비익덕 2014.08.14 3979
421 ARM asssembler질문좀 드립니다. [3] 빈즈파덜 2014.08.05 2392
420 CPU가 현재 실행중인 PID값 받아오는거 질문드립니다. [2] file 이런Linux 2014.07.15 9532
419 linux kernel governor(onDemand) 질문입니다. hy 2014.07.10 1934
XE Login