nptl(7) - wariua/manpages-ko GitHub Wiki

NAME

nptl - ๋„ค์ดํ‹ฐ๋ธŒ POSIX ์Šค๋ ˆ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

DESCRIPTION

NPTL(Native POSIX Threads Library)์€ GNU C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ POSIX ์Šค๋ ˆ๋“œ ๊ตฌํ˜„์ด๋ฉฐ ์ตœ์‹  ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ๋“ค์—์„œ ์ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

NPTL๊ณผ ์‹œ๊ทธ๋„

NPTL์—์„œ๋Š” ์•ž์ชฝ ๋‘ ๊ฐœ์˜ ์‹ค์‹œ๊ฐ„ ์‹œ๊ทธ๋„(์‹œ๊ทธ๋„ ๋ฒˆํ˜ธ 32๋ฒˆ๊ณผ 33๋ฒˆ)์„ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ์ค‘ ํ•˜๋‚˜๋Š” ์Šค๋ ˆ๋“œ ์ทจ์†Œ์™€ POSIX ํƒ€์ด๋จธ(timer_create(2) ์ฐธ๊ณ )๋ฅผ ์ง€์›ํ•˜๋Š”๋ฐ ์“ฐ๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” POSIX ์š”๊ตฌ๋Œ€๋กœ ํ•ญ์ƒ ํ”„๋กœ์„ธ์Šค ๋‚ด ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ๊ฐ™์€ UID์™€ GID๋ฅผ ๊ฐ€์ง€๋„๋ก ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์“ด๋‹ค.

์‘์šฉ์—์„œ ์ด ์‹œ๊ทธ๋„๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด NPTL ๊ตฌํ˜„์˜ ๋™์ž‘์— ๋ฐฉํ•ด๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜๋„์น˜ ์•Š์€ ์‚ฌ์šฉ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ glibc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜์™€ ์‹œ์Šคํ…œ ํ˜ธ์ถœ ๋ž˜ํผ ํ•จ์ˆ˜์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ทธ ์‹œ๊ทธ๋„๋“ค์„ ์‘์šฉ์—๊ฒŒ ๊ฐ์ถ”๋ ค๊ณ  ํ•œ๋‹ค.

  • SIGRTMIN์ด (32๊ฐ€ ์•„๋‹ˆ๋ผ) 34 ๊ฐ’์œผ๋กœ ์ •์˜๋ผ ์žˆ๋‹ค.

  • sigwaitinfo(2), sigtimedwait(2), sigwait(3) ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์‹œ๊ทธ๋„ ์ง‘ํ•ฉ ์ธ์ž์— ์ด ๋‘ ์‹œ๊ทธ๋„์„ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ ๊ทธ ์‹œ๊ทธ๋„๋“ค์— ๋Œ€ํ•œ ๋Œ€๊ธฐ ์š”์ฒญ์€ ์กฐ์šฉํžˆ ๋ฌด์‹œํ•œ๋‹ค.

  • sigprocmask(2) ๋ฐ pthread_sigmask(3) ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ด ๋‘ ์‹œ๊ทธ๋„์„ ์ฐจ๋‹จํ•˜๋ ค๋Š” ์‹œ๋„๋ฅผ ์กฐ์šฉํžˆ ๋ฌด์‹œํ•œ๋‹ค.

  • sigaction(2), pthread_kill(3), pthread_sigqueue(3) ์ธํ„ฐํŽ˜์ด์Šค์— ์ด ์‹œ๊ทธ๋„๋“ค์„ ์ง€์ •ํ•˜๋ฉด (์œ ํšจํ•˜์ง€ ์•Š์€ ์‹œ๊ทธ๋„ ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”) EINVAL ์˜ค๋ฅ˜๋กœ ์‹คํŒจํ•œ๋‹ค.

  • sigfillset(3)์—์„œ ๊ฐ€๋“ ์ฐฌ ์‹œ๊ทธ๋„ ์ง‘ํ•ฉ์„ ๋งŒ๋“ค ๋•Œ ์ด ๋‘ ์‹œ๊ทธ๋„์„ ํฌํ•จ์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค.

NPTL๊ณผ ํ”„๋กœ์„ธ์Šค ํฌ๋ฆฌ๋ด์…œ ๋ณ€๊ฒฝ

๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์ˆ˜์ค€์—์„œ ํฌ๋ฆฌ๋ด์…œ(์‚ฌ์šฉ์ž ๋ฐ ๊ทธ๋ฃน ID)์€ ์Šค๋ ˆ๋“œ๋ณ„ ์†์„ฑ์ด๋‹ค. ํ•˜์ง€๋งŒ POSIX์—์„œ๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์ผํ•œ ํฌ๋ฆฌ๋ด์…œ์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค๊ณ  ์š”๊ตฌํ•œ๋‹ค. ์ด ์š”๊ตฌ๋ฅผ ์ˆ˜์šฉํ•˜๊ธฐ ์œ„ํ•ด NPTL ๊ตฌํ˜„์—์„œ๋Š” ํ”„๋กœ์„ธ์Šค ํฌ๋ฆฌ๋ด์…œ์„ ๋ฐ”๊พธ๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ๋“ค์„ ๋ชจ๋‘ ๋ž˜ํผ๋กœ ๊ฐ์‹ธ์„œ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์‹คํ–‰์— ๋”ํ•ด ํ”„๋กœ์„ธ์Šค ๋‚ด ๋‹ค๋ฅธ ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ์ž๊ธฐ ํฌ๋ฆฌ๋ด์…œ์„ ๋ฐ”๊พธ๊ฒŒ ํ•œ๋‹ค.

๊ทธ๋Ÿฐ ์‹œ์Šคํ…œ ํ˜ธ์ถœ๋“ค์˜ ๊ตฌํ˜„์—์„œ๋Š” ํฌ๋ฆฌ๋ด์…œ์„ ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š” ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ ๊ฐ๊ฐ์—๊ฒŒ (tgkill(2)๋กœ) ์–ด๋–ค ์‹ค์‹œ๊ฐ„ ์‹œ๊ทธ๋„์„ ๋ณด๋‚ธ๋‹ค. ํฌ๋ฆฌ๋ด์…œ์„ ๋ฐ”๊พธ๋ ค๋Š” ์Šค๋ ˆ๋“œ๋Š” ๊ทธ ์‹œ๊ทธ๋„์„ ๋ณด๋‚ด๊ธฐ ์ „์— ์ „์—ญ ๋ฒ„ํผ์— ์ƒˆ ํฌ๋ฆฌ๋ด์…œ(๋“ค)์„ ์ €์žฅํ•˜๊ณ  ์ด์šฉํ•  ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ๊ธฐ๋กํ•ด ๋‘”๋‹ค. ์ˆ˜์‹  ์Šค๋ ˆ๋“œ(๋“ค)์˜ ์‹œ๊ทธ๋„ ํ•ธ๋“ค๋Ÿฌ์—์„œ ๊ทธ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€์„œ ๊ฐ™์€ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ด์šฉํ•ด ์ž๊ธฐ ํฌ๋ฆฌ๋ด์…œ์„ ๋ฐ”๊พผ๋‹ค.

setgid(2), setuid(2), setegid(2), seteuid(2), setregid(2), setreuid(2), setresgid(2), setresuid(2), setgroups(2)์— ๋Œ€ํ•ด ์ด ๊ธฐ๋ฒ•์„ ์“ฐ๋Š” ๋ž˜ํผ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

CONFORMING TO

NPTL์˜ POSIX ํ‘œ์ค€ ์ค€์ˆ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ pthreads(7)๋ฅผ ๋ณด๋ผ.

NOTES

POSIX์—์„œ๋Š” ํ”„๋กœ์„ธ์Šค ๊ณต์œ (PTHREAD_PROCESS_SHARED) ๋ฎคํ…์Šค๋ฅผ ๋‹ด์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์˜ ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ๊ทธ ๋ฎคํ…์Šค๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ 64๋น„ํŠธ x86 ์‹œ์Šคํ…œ์—์„œ x86-64์šฉ ๋ฎคํ…์Šค ์ •์˜๊ฐ€ i386์šฉ ๋ฎคํ…์Šค ์ •์˜์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์œผ๋ฉฐ, ๋”ฐ๋ผ์„œ x86-64 ์‹œ์Šคํ…œ์—์„œ 32๋น„ํŠธ ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ 64๋น„ํŠธ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ๋ฎคํ…์Šค๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์—†๋‹ค.

SEE ALSO

credentials(7), pthreads(7), signal(7), standards(7)


2015-08-08

โš ๏ธ **GitHub.com Fallback** โš ๏ธ