나는 몇 가지 스케줄링 개념을 배우고 있습니다. 현재 내 이해는 다음과 같습니다.
nice
범위의 우선 순위 값을 가질 수 있습니다 . 양수 값이 높을수록 프로세스의 우선 순위가 낮음을 나타냅니다.-
에이 답변에 설명 된대로 나열되는 niceness 값을 갖 습니다 . 이는 주로 실시간 프로세스가 비 실시간 프로세스보다 우선 순위가 높고 niceness 값이 적용되지 않기 때문입니다.chrt
하여 프로세스의 실시간 속성을 볼 수 있습니다 .실시간 프로세스의 경우 chrt
출력을 다음과 같이 제공합니다.
chrt -p 5
pid 5's current scheduling policy: SCHED_FIFO
pid 5's current scheduling priority: 99
프로세스 5 에서 볼 수 있듯이 우선 순위는 99로 가장 높습니다. 또한 스케줄링 정책은SCHED_FIFO
이제 비 실시간 프로세스의 경우 다음 chrt
과 같이 출력됩니다.
chrt -p 22383
pid 22383's current scheduling policy: SCHED_OTHER
pid 22383's current scheduling priority: 0
프로세스 22383 에서 볼 수 있듯이 우선 순위는 0이고 스케줄링 정책은 SCHED_OTHER
입니다.
질문
SCHED_OTHER
비 실시간 프로세스 이외의 다른 스케줄링 알고리즘을 설정할 수 있습니까?에서 여기에 , 나는 또한 내가 같은 실행중인 프로세스의 특성을 수정할 수 있음을 참조하십시오
chrt -p prio pid
또한 chrt -m
스케줄링 알고리즘 목록을 제공합니다. 이 명령은 다음과 같이 출력을 제공합니다.
SCHED_OTHER min/max priority : 0/0
SCHED_FIFO min/max priority : 1/99
SCHED_RR min/max priority : 1/99
SCHED_BATCH min/max priority : 0/0
SCHED_IDLE min/max priority : 0/0
이제 위에서 제안한대로 chrt -p 55 22383
사용할 알고리즘을 설정하면 ?
질문 1
사용자가 프로세스에 대해 실시간 우선 순위를 사용할 수도 있습니다. 이 구성은 /etc/security/limits.conf
파일 에서 설정할 수 있습니다 . 그 파일에서 아래 내용을 봅니다.
# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain> <type> <item> <value>
항목 섹션을 확인하면 사용자에 대한 실시간 우선 순위를 설정할 수있는 다음 항목이 표시됩니다.
# - rtprio - max realtime priority
질문 2 및 질문 3
스케줄링 정책을로 설정하려면 다음을 SCHED_FIFO
입력하십시오.
chrt -f -p [1..99] {pid}
스케줄링 정책을로 설정하려면 다음을 SCHED_RR
입력하십시오.
chrt -r -p [1..99] {pid}
따라서 질문 3에 답하려면 chrt -m
명령을 사용 하여 사용 가능한 스케줄링 알고리즘과 우선 순위를 확인한 다음 필요에 맞는 스케줄링 알고리즘을 사용해야합니다. 다른 우선 순위를 설정하려면 위와 같은 명령을 사용할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다