getpriority(2) - wariua/manpages-ko GitHub Wiki
getpriority, setpriority - ํ๋ก๊ทธ๋จ ์ค์ผ์ค๋ง ์ฐ์ ์์ ์ป๊ธฐ/์ค์ ํ๊ธฐ
#include <sys/time.h>
#include <sys/resource.h>
int getpriority(int which, id_t who);
int setpriority(int which, id_t who, int prio);
which
์ who
๋ก ๋ํ๋ด๋ ํ๋ก์ธ์ค๋ ํ๋ก์ธ์ค ๊ทธ๋ฃน, ์ฌ์ฉ์์ ์ค์ผ์ค๋ง ์ฐ์ ์์๋ฅผ getpriority()
ํธ์ถ๋ก ์ป๊ณ setpriority()
ํธ์ถ๋ก ์ค์ ํ๋ค. ์ด ์์คํ
ํธ์ถ๋ก ๋ค๋ฃจ๋ ํ๋ก์ธ์ค ์์ฑ์ nice(2)๋ก ๋ค๋ฃจ๋ ๊ฒ๊ณผ ๊ฐ์ ("๋์ด์ค" ๊ฐ์ด๋ผ๊ณ ๋ ํ๋) ์์ฑ์ด๋ค.
which
๊ฐ์ PRIO_PROCESS
, PRIO_PGRP
, PRIO_USER
์ค ํ๋์ด๊ณ who
๋ which
๋ฅผ ๊ธฐ์ค์ผ๋ก ํด์ํ๋ค. (PRIO_PROCESS
์์๋ ํ๋ก์ธ์ค ์๋ณ์, PRIO_PGRP
์์๋ ํ๋ก์ธ์ค ๊ทธ๋ฃน ์๋ณ์, PRIO_USER
์์๋ ์ฌ์ฉ์ ID.) who
์์์ 0 ๊ฐ์ (๊ฐ๊ฐ) ํธ์ถ ํ๋ก์ธ์ค, ํธ์ถ ํ๋ก์ธ์ค์ ํ๋ก์ธ์ค ๊ทธ๋ฃน, ํธ์ถ ํ๋ก์ธ์ค์ ์ค์ ์ฌ์ฉ์ ID๋ฅผ ๋ํ๋ธ๋ค.
prio
์ธ์๋ -20์์ 19๊น์ง ๋ฒ์์ ๊ฐ์ด๋ฉฐ (ํ์ง๋ง ์๋ NOTES ์ฐธ๊ณ ), -20์ด ๊ฐ์ฅ ๋์ ์ฐ์ ์์์ด๊ณ 19๊ฐ ๊ฐ์ฅ ๋ฎ์ ์ฐ์ ์์์ด๋ค. ์ด ๋ฒ์ ๋ฐ์ผ๋ก ์ฐ์ ์์๋ฅผ ์ค์ ํ๋ ค๊ณ ์๋ํ๋ฉด ๋ฒ์์ ๋ง๊ฒ ์๋ฆฐ๋ค. ๊ธฐ๋ณธ ์ฐ์ ์์๋ 0์ด๊ณ ๋ฎ์ ๊ฐ์ด ํ๋ก์ธ์ค์๊ฒ ๋ ๋์ ์ค์ผ์ค๋ง ์ฐ์ ์์๋ฅผ ์ค๋ค.
getpriority()
ํธ์ถ์ ์ง์ ํ ํ๋ก์ธ์ค๋ค์ด ํฅ์ ํ๋ ๊ฐ์ฅ ๋์ ์ฐ์ ์์ ๊ฐ(๊ฐ์ฅ ๋ฎ์ ์)์ ๋ฐํํ๋ค. setpriority()
ํธ์ถ์ ์ง์ ํ ํ๋ก์ธ์ค๋ค ๋ชจ๋์ ์ฐ์ ์์๋ฅผ ์ง์ ํ ๊ฐ์ผ๋ก ์ค์ ํ๋ค.
์ ํต์ ์ผ๋ก๋ ํน๊ถ ํ๋ก์ธ์ค๋ง ๋์ด์ค ๊ฐ์ ๋ฎ์ถ ์ (์ฆ ์ฐ์ ์์๋ฅผ ๋๊ฒ ์ค์ ํ ์) ์์๋ค. ํ์ง๋ง ๋ฆฌ๋
์ค 2.6.12๋ถํฐ๋ ๋นํน๊ถ ํ๋ก์ธ์ค๊ฐ ์ ์ ํ RLIMIT_NICE
์ฐ์ฑ ์ ํ์ ๊ฐ์ง ๋์ ํ๋ก์ธ์ค์ ๋์ด์ค ๊ฐ์ ๋ฎ์ถ ์ ์๋ค. ์์ธํ ๋ด์ฉ์ getrlimit(2)์ ๋ณด๋ผ.
์ฑ๊ณต ์ getpriority()
๋ ํธ์ถ ์ค๋ ๋์ ๋์ด์ค ๊ฐ์ ๋ฐํํ๋๋ฐ, ์ด ๊ฐ์ ์์์ผ ์๋ ์๋ค. ์ค๋ฅ ์ -1์ ๋ฐํํ๋ฉฐ ์ค๋ฅ ์์ธ์ ๋ํ๋ด๋๋ก errno
๋ฅผ ์ค์ ํ๋ค. ์ฑ๊ณตํ getpriority()
ํธ์ถ์ด ์ ๋ฒํ๊ฒ -1์ ๋ฐํํ ์ ์๊ธฐ ๋๋ฌธ์ -1์ด ์ค๋ฅ์ธ์ง ์ ๋ฒํ ๊ฐ์ธ์ง ํ๋จํ๋ ค๋ฉด ํธ์ถ ์ ์ ์ธ๋ถ ๋ณ์ errno
๋ฅผ ๋น์ฐ๊ณ ์ ํ์ ๊ทธ ๋ณ์๋ฅผ ํ์ธํ ํ์๊ฐ ์๋ค.
setpriority()
๋ ์ฑ๊ณต ์ 0์ ๋ฐํํ๋ค. ์ค๋ฅ ์ -1์ ๋ฐํํ๋ฉฐ ์ค๋ฅ ์์ธ์ ๋ํ๋ด๋๋ก errno
๋ฅผ ์ค์ ํ๋ค.
EINVAL
-
which
๊ฐPRIO_PROCESS
,PRIO_PGRP
,PRIO_USER
์ค ํ๋๊ฐ ์๋๋ค. ESRCH
- ์ง์ ํ
which
์who
๊ฐ์ ์ฌ์ฉํด ์ด๋ค ํ๋ก์ธ์ค๋ ์ฐพ์๋ผ ์ ์์๋ค.
์์ ๋ณด์ธ ์ค๋ฅ๋ค์ ๋ํด์ setpriority()
๊ฐ ๋ค์ ๊ฒฝ์ฐ์ ์คํจํ ์๋ ์๋ค.
EACCES
- ํธ์ถ์๊ฐ ๋ ๋ฎ์ ๋์ด์ค ๊ฐ์ (์ฆ ๋ ๋์ ํ๋ก์ธ์ค ์ฐ์ ์์๋ฅผ) ์ค์ ํ๋ ค ํ์ง๋ง ํ์ํ ํน๊ถ์ ๊ฐ์ง๊ณ ์์ง ์๋ค. (๋ฆฌ๋
์ค:
CAP_SYS_NICE
์ญ๋ฅ์ ๊ฐ์ง๊ณ ์์ง ์๋ค.) EPERM
- ํ๋ก์ธ์ค๋ฅผ ์ฐพ์๋์ง๋ง ๊ทธ ์คํจ ์ฌ์ฉ์ ID๊ฐ ํธ์ถ์์ ์คํจ ์ฌ์ฉ์ ID๋ ์ค์ ์ฌ์ฉ์ ID ์ด๋ ์ชฝ๊ณผ๋ ์ผ์นํ์ง ์์์ผ๋ฉฐ, ํน๊ถ๋ ์์๋ค. (๋ฆฌ๋
์ค:
CAP_SYS_NICE
์ญ๋ฅ์ ๊ฐ์ง๊ณ ์์ง ์๋ค.) ํ์ง๋ง ์๋ NOTES๋ฅผ ๋ณด๋ผ.
POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD (4.2BSD์์ ์ด ์ธํฐํ์ด์ค๋ค์ด ์ฒ์ ๋ฑ์ฅ).
๋์ด์ค ๊ฐ์ ๋ํ ๋ ์์ธํ ๋ด์ฉ์ sched(7)๋ฅผ ๋ณด๋ผ.
์ฃผ์: ๋ฆฌ๋ ์ค 2.6.38์ "autogroup" ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๋ฉด์ ๋ง์ ๊ฒฝ์ฐ์์ ๋์ด์ค ๊ฐ์ด ๋ ์ด์ ์ ํต์ ํจ๊ณผ๋ฅผ ์ฃผ์ง ์๊ฒ ๋์๋ค. ์์ธํ ๋ด์ฉ์ sched(7)๋ฅผ ๋ณด๋ผ.
fork(2)๋ก ์์ฑ๋ ์์์ ๋ถ๋ชจ์ ๋์ด์ค ๊ฐ์ ๋ฌผ๋ ค๋ฐ๋๋ค. execve(2)๋ฅผ ๊ฑฐ์น๋ฉด์ ๋์ด์ค ๊ฐ์ด ๋ณด์กด๋๋ค.
EPERM
์กฐ๊ฑด์ ์ธ๋ถ ๋ด์ฉ์ด ์์คํ
์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. ์ ์ค๋ช
์ POSIX.1-2001์์ ๋งํ๋ ๊ฒ์ธ๋ฐ ๋ชจ๋ ์์คํ
V ๊ณ์ด ์์คํ
๋ค์ด ๋ฐ๋ฅด๋ ๊ฒ ๊ฐ๋ค. ๋ฆฌ๋
์ค ์ปค๋ 2.6.12 ์ ์์๋ ํธ์ถ์์ ์ค์ ์ฌ์ฉ์ ID๋ ์คํจ ์ฌ์ฉ์ ID๊ฐ ํ๋ก์ธ์ค who
์ (์คํจ ์ฌ์ฉ์ ID๊ฐ ์๋) ์ค์ ์ฌ์ฉ์์ ์ผ์นํ๊ธฐ๋ฅผ ์๊ตฌํ๋ค. ๋ฆฌ๋
์ค 2.6.12 ์ดํ์์๋ ํธ์ถ์์ ์คํจ ์ฌ์ฉ์ ID๊ฐ ํ๋ก์ธ์ค who
์ ์ค์ ์ฌ์ฉ์ ID๋ ์คํจ ์ฌ์ฉ์ ID์ ์ผ์นํ๊ธฐ๋ฅผ ์๊ตฌํ๋ค. BSD ๊ณ์ด ์์คํ
๋ค(SunOS 4.1.3, Ultrix 4.2, 4.3BSD, FreeBSD 4.3, OpenBSD-2.5, ...)์ ๋ชจ๋ ๋ฆฌ๋
์ค 2.6.12 ์ดํ์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.
<sys/time.h>
๋ฅผ ํฌํจ์ํค๋ ๊ฒ์ด ์์ฆ์ ํ์ํ์ง ์์ง๋ง ์ด์์ฑ์ ๋์ฌ ์ค๋ค. (์ค์ ๋ก <sys/resource.h>
์์ ์ ์ํ๋ rusage
๊ตฌ์กฐ์ฒด์๋ <sys/time.h>
์ ์ ์๋ผ ์๋ struct timeval
ํ์
ํ๋๋ค์ด ์๋ค.)
์ปค๋ ๋ด์์ ์ค์ ๋ก๋ 40..1 ๋ฒ์๋ฅผ ์ด์ฉํด ๋์ด์ค ๊ฐ์ ํํํ๋ค. (์์๋ ์ค๋ฅ ์ฝ๋์ด๊ธฐ ๋๋ฌธ์ด๋ค.) ๊ทธ๋ฆฌ๊ณ ์ด ๊ฐ์ด setpriority()
๋ฐ getpriority()
์์คํ
ํธ์ถ์์ ์ฌ์ฉํ๋ ๊ฐ์ด๋ค. ์ด ์์คํ
ํธ์ถ๋ค์ ๋ํ glibc ๋ํผ ํจ์๋ค์์ unice = 20 - knice
์์ ๋ฐ๋ผ์ ๋์ด์ค ๊ฐ์ ์ฌ์ฉ์ ๊ณต๊ฐ ํํ๊ณผ ์ปค๋ ํํ ์ฌ์ด ๋ณํ์ ์ฒ๋ฆฌํ๋ค. (๊ทธ๋์ ์ปค๋์ 40..1 ๋ฒ์๊ฐ ์ฌ์ฉ์ ๊ณต๊ฐ์ ๋ณด์ด๋ -20..19 ๋ฒ์๋ก ์์ํ๋ค.)
POSIX์ ๋ฐ๋ฅด๋ฉด ๋์ด์ค ๊ฐ์ ํ๋ก์ธ์ค๋ณ ์ค์ ์ด๋ค. ํ์ง๋ง ํ์ฌ์ ๋ฆฌ๋ ์ค/NPTL POSIX ์ค๋ ๋ ๊ตฌํ์์๋ ๋์ด์ค ๊ฐ์ด ์ค๋ ๋๋ณ ์์ฑ์ด๋ค. ์ฆ, ๊ฐ์ ํ๋ก์ธ์ค ๋ด์ ์ค๋ ๋๋ค์ด ์๋ก ๋ค๋ฅธ ๋์ด์ค ๊ฐ์ ๊ฐ์ง ์ ์๋ค. ์ด์ ๊ฐ๋ฅํ ์์ฉ์์๋ ํฅํ์ ํ์ค์ ์ค์ํ๋๋ก ๋ฐ๋ ์๋ ์๋ ๋ฆฌ๋ ์ค ๋์ ๋ฐฉ์์ ์์กดํ๋ ๊ฒ์ ํผํด์ผ ํ๋ค.
nice(1)
, renice(1)
, fork(2), capabilities(7), sched(7)
๋ฆฌ๋
์ค ์ปค๋ ์์ค ํธ๋ฆฌ์ Documentation/scheduler/sched-nice-design.txt
(๋ฆฌ๋
์ค 2.6.23๋ถํฐ).
2017-09-15