File: futex.7

package info (click to toggle)
manpages-ja 0.5.0.0.20100315-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 21,156 kB
  • ctags: 1
  • sloc: sh: 13,935; perl: 157; makefile: 114
file content (123 lines) | stat: -rw-r--r-- 4,804 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
.\" This page is made available under the MIT license.
.\"
.\" This manpage has been automatically generated by docbook2man
.\" from a DocBook document.  This tool can be found at:
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng <steve@ggi-project.org>.
.\"
.\" Japanese Version Copyright(C) 2003 Suzuki Takashi
.\"         all rights reserved.
.\" Translated Fri Oct 24 10:37:10 JST 2003
.\"         by Suzuki Takashi.
.\"
.\"WORD: contend                礹
.\"WORD: sleep                  Ԥ
.\"WORD: wake                   
.\"WORD: wake up                
.\"
.TH FUTEX 7 2002-12-31 "Linux" "Linux Programmer's Manual"
.SH ̾
futex - ®桼֥å
.SH 
.nf
.B #include <linux/futex.h>
.fi
.SH 
.PP
Linux ͥϡ桼֤ǹ®ʥå䥻ޥեѤ뤿
ŪǤȤ futex ("Fast Userspace muTexes"; ®桼 mutex) 
󶡤Ƥ롣
futex ˴ŪʤΤǡ POSIX mutex Τ褦ʹ٤ʥåγǰ
ۤΤΩäƤ롣
.PP
ΥڡϤ٤Ƥ߷׷򵭽Ҥ褦ˤϤʤäƤ餺
ץꥱ饤֥γȯ˴ط뤳Ȥ˸¤äƤ롣
ºݤˤϥץޤ¿ľܤ futex 򰷤ʤ
futex ˴Ťƹۤ줿ƥ饤֥ (㤨 NPTL å) 
¸뤳Ȥˤʤ
.PP
futex ϰۤʤץ֤Ƕͭ뤳ȤΤǤҤǼ̤롣
ΰۤʤץǤϡƱɥ쥹ͿƤɬפϤʤ
λѤǤ futex ΥޥƥϥޥեƱǤ롣
futex Բʬ (atomically) 󥯥ȤǥȤǤ
󥿤ǡץͤˤʤΤԤĤȤǤ롣
.PP
futex ϡ礬ʤˤϴ˥桼֤ǹԤʤ롣
ͥ϶礬äۤ˴ͿǤ롣
ɼ߷פǤ϶礬ʤ褦Ϥ뤬
futex ⶥ֤˴ؤƺŬƤ롣
.PP
λѤǤϡ futex Բʬʥ֥̿ǤΤ
饤Ȥ·ä int ѿǤ롣
ʣΥץϤ int ѿ
.BR mmap (2)
Ѥ뤫
ͭꥻȤ𤹤뤫
֤ͭ (ξ硢
ץꥱϰŪ˥ޥåɤǤȸƤФ) ˡǶͭ롣
.SS "ޥƥ"
.PP
futex Ϥ٤ƥ桼֤Ϥޤ뤬ɬפ˱
.BR futex (2)
ƥॳѤƥͥ̿롣
.PP
futex  "up" ˤϡ
ۥ CPU Ф int ѿԲʬǥ󥯥Ȥ褦ʡ
Ŭڤʥ֥̿¹Ԥ롣
Τȡºݤ 0  1 Ѳɤå
ѲƤԤץ (waiter) ϤʤȤȤǤꡢϴλ롣
϶ΤʤǤꡢ®Ǥ褯ϤǤ롣
.PP
礬硢ԲʬΥ󥯥Ȥǥ󥿤 \-1 (ޤ¾ο)
Ѳ롣줬ФȡԤץȤȤǤ롣
桼֤Ǥϥ󥿤 1 ꤷ
.B FUTEX_WAKE
ѤƥͥԤץ wake () 褦ؼ롣
.PP
futex γԤġʤ futex  "down" ˤȿФԤʤ
Բʬǥ󥿤ǥȤ󥿤 0 Ѳɤ
å롣ѲƤϴλ futex ϶礷ƤʤȤȤǤ롣
0 ˤʤʤä硢ץϥ󥿤 \-1 ꤷ
¾Υץ futex  up ΤԤĤ褦ͥ׵ᤷʤФʤʤ

.B FUTEX_WAIT
ԤʤȤǼ¸롣
.PP
.BR futex (2)
ƥॳˤϡάǽʰȤƥॢȤϤȤǤ
ͥϤ futex  up Τɤ줯餤δԤĤ٤
ꤹ뤳ȤǤ롣ξ硢ޥƥϤäʣˤʤ뤿ᡢ
ܺ٤ʾˤϥץޤ
.BR futex (2)
򻲾Ȥ뤳ȡ
ƱڡƱ futex ԤˤĤƤ⵭Ƥ롣
.SH С
.PP
ǽ futex б Linux 2.5.7 Ȥ߹ޤ줿
嵭ΥޥƥȤϰۤʤ롣
ߤΥޥƥ Linux 2.5.40 ʹߤѲǽǤ롣
.SH 
.PP
Ƥӷ֤Ƥ futex ϥɥ桼ưפ˻Ȥ복ǰȤ
տޤ줿ΤǤϤʤ
Ԥϡ֥˴Ƥꡢʲ˵󤲤 futex 桼֥饤֥
ɤ߽Ƥ뤳Ȥ׵ᤵ롣
.PP
Υޥ˥奢ڡˤ
.BR futex (2)
ץߥƥ֤κǤŪʻˡ
Ƥ롣Ϸ褷ͣλˡǤϤʤ
.\" .SH 
.\" .PP
.\" futex  Hubertus Franke (IBM Thomas J. Watson Research Center) 
.\" Matthew Kirkwood  Ingo Molnar (Red Hat) 
.\" Rusty Russell (IBM Linux Technology Center) ߷פƤ
.\" Υڡ bert hubert 
.SH Ϣ
.BR futex (2)
.PP
.IR "Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux"
(proceedings of the Ottawa Linux Symposium 2002),
futex λ饤֥, futex-*.tar.bz2
<URL:ftp://ftp.kernel.org:/pub/linux/kernel/people/rusty/>.