sched_rr_get_interval(2) - wariua/manpages-ko GitHub Wiki
sched_rr_get_interval - ์ง์ ํ ํ๋ก์ธ์ค์ SCHED_RR
์๊ฐ ์ป๊ธฐ
#include <sched.h>
int sched_rr_get_interval(pid_t pid, struct timespec *tp);
sched_rr_get_interval()
์ tp
๊ฐ ๊ฐ๋ฆฌํค๋ timespec
๊ตฌ์กฐ์ฒด์ pid
๊ฐ ๋ํ๋ด๋ ํ๋ก์ธ์ค์ ๋ผ์ด๋ ๋ก๋น ๋จ์ ์๊ฐ(quantum)์ ์จ๋ฃ๋๋ค. ์ง์ ํ ํ๋ก์ธ์ค๊ฐ SCHED_RR
์ค์ผ์ค๋ง ์ ์ฑ
ํ์์ ๋๊ณ ์์ด์ผ ํ๋ค.
timespec
๊ตฌ์กฐ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ ํํ์ด๋ค.
struct timespec {
time_t tv_sec; /* ์ด */
long tv_nsec; /* ๋๋
ธ์ด */
};
pid
๊ฐ 0์ด๋ฉด ํธ์ถ ํ๋ก์ธ์ค์ ๋จ์ ์๊ฐ์ *tp
์ ์จ๋ฃ๋๋ค.
์ฑ๊ณต ์ sched_rr_get_interval()
์ 0์ ๋ฐํํ๋ค. ์ค๋ฅ ์ -1์ ๋ฐํํ๋ฉฐ errno
๋ฅผ ์ ์ ํ ์ค์ ํ๋ค.
EFAULT
- ์ฌ์ฉ์ ๊ณต๊ฐ์ผ๋ก ์ ๋ณด๋ฅผ ๋ณต์ฌํ๋ ์ค์ ๋ฌธ์ .
EINVAL
- ์ ํจํ์ง ์์ pid.
ENOSYS
- ์์คํ ํธ์ถ์ด ์์ง ๊ตฌํ๋์ด ์์ง ์์. (๊ฝค ์ค๋๋ ์ปค๋์์๋ง)
ESRCH
- ID๊ฐ
pid
์ธ ํ๋ก์ธ์ค๋ฅผ ์ฐพ์ ์ ์์.
POSIX.1-2001, POSIX.1-2008.
sched_rr_get_interval()
์ ์ฌ์ฉํ ์ ์๋ POSIX ์์คํ
์๋ <unistd.h>
์ _POSIX_PRIORITY_SCHEDULING
์ด ์ ์๋์ด ์๋ค.
POSIX์์๋ ๋ผ์ด๋ ๋ก๋น ๋จ์ ์๊ฐ์ ํฌ๊ธฐ๋ฅผ ์ ์ดํ๊ธฐ ์ํ ์ด๋ค ๋ฉ์ปค๋์ฆ๋ ๋ช ์ธํ๊ณ ์์ง ์๋ค. ์ค๋๋ ๋ฆฌ๋ ์ค ์ปค๋์์๋ ์ด๋ฅผ ์ํ (์ด์์ฑ ์๋) ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค. ํ๋ก์ธ์ค์ ๋์ด์ค ๊ฐ(setpriority(2)) ์ฐธ๊ณ )์ ์กฐ์ ํ์ฌ ๋จ์ ์๊ฐ์ ์กฐ์ ํ ์ ์๋ค. ์์์ธ (์ฆ ์ฐ์ ์์ ๋์) ๋์ด์ค ๊ฐ์ ๋ถ์ฌํ๋ฉด ์๊ฐ์ด ๊ธธ์ด์ง๊ณ ์์์ธ (์ฆ ์ฐ์ ์์ ๋ฎ์) ๋์ด์ค ๊ฐ์ ๋ถ์ฌํ๋ฉด ์๊ฐ์ด ์งง์์ง๋ค. ๊ธฐ๋ณธ ๋จ์ ์๊ฐ์ 0.1์ด์ด๋ฉฐ ๋์ด์ค ๊ฐ ๋ณ๊ฒฝ์ผ๋ก ๋จ์ ์๊ฐ์ ์ํฅ์ ์ค ์ ์๋ ์ ๋๋ ์ปค๋ ๋ฒ์ ์ ๋ฐ๋ผ ์ข ๋ค๋ฅด๋ค. ๋จ์ ์๊ฐ ์กฐ์ ์ ์ํ ์ด ๋ฐฉ๋ฒ์ ๋ฆฌ๋ ์ค 2.6.24๋ถํฐ ์ ๊ฑฐ๋์๋ค.
๋ฆฌ๋
์ค 3.9์์ SCHED_RR
๋จ์ ์๊ฐ ์กฐ์ ์ (๊ทธ๋ฆฌ๊ณ ์กฐํ๋ฅผ) ์ํ ์๋ก์ด ๋ฉ์ปค๋์ฆ์ด ์ถ๊ฐ๋์๋ค. /proc/sys/kernel/sched_rr_timeslice_ms
ํ์ผ์ด ๋ฐ๋ฆฌ์ด ๋จ์๋ก ๋จ์ ์๊ฐ์ ๋
ธ์ถํ๋ฉฐ ๊ทธ ๊ธฐ๋ณธ๊ฐ์ 100์ด๋ค. ์ด ํ์ผ์ 0์ ์จ๋ฃ์ผ๋ฉด ๋จ์ ์๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํ ํ๋ค.
2017-09-15