Futex

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

컴퓨터 과학에서 futex(fast userspace mutex, 빠른 사용자 공간 상호 배제, 퓨텍스)는 개발자가 기본적인 잠금을 구현하기 위해 사용되거나 세마포어, POSIX 뮤텍스, 조건 변수와 같은 상위 계층의 잠금 추상화를 위한 빌딩 블록으로서 쓰일 수 있는 리눅스 커널에서 제공하는 시스템 호출이다.

동작[편집]

futex의 기본 동작들은 WAIT, WAKE라는 두 개의 특정 동작에만 기반한다. 특정 버전의 리눅스 커널에만 의존하는 일부 futex 구현체들은 특정 목적을 위해 동작들이 몇 개 더 많은 경우도 있다.[1]

  • WAIT (addr, val)
addr 주소에 저장된 값이 val인지 확인하며, 만일 그러할 경우 현재의 스레드를 sleep 상태로 둔다.
  • WAKE (addr, val)
addr 주소에서 대기 중인 스레드의 수만큼 val을 깨운다.

각주[편집]

  1. Futexes Are Tricky, Red Hat (v 1.6, 2011).