본문 바로가기
리눅스 시스템 관리리눅스마스터 1급 · 2023년03월11일 · 35/100

35.프로세스 아이디(PID)가 513인 bash 프로세스의 우선순위(NI)값이 0이다. 다음 중 NI 값을 변경하여 우선순위를 낮추는 명령으로 알맞은 것은?

1
nice –5 513
2
nice –5 bash정답
3
renice –5 513
4
renice –5 bash

해설

nice의 경우 nice 값을 가감하고 renice의 경우 이미 실행중인 프로세스의 nice 값을 지정하여 변경한다. nice는 프로세스명으로 renice는 PID로 조정한다. 우선순위를 낮추어야 하므로 NI 값을 키워야 하기 때문에 bash로 지정하여 5를 더하게 되는 2번이 답이 된다. 3번의 경우 renice -5는 priority를 -5로 지정하게 되기 때문에 우선순위를 높이는 답이므로 오답이다. [해설작성자 : 해설을 쓰다보면 암기가 되지 않을까] nice 뒤의 숫자는 그것만큼 현재 우선순위에서 조정하라는 것 이고 renice 뒤의 숫자는 현재 우선순위와 상관 없이 그 숫자로 변경 하라는 것 입니다. 즉, renice -5는 프로세스 우선순위를 -5로 조정하는 것 이기 때문에 0에서 -5로 감소하여 우선순위가 높아져서 답이 될 수 없는게 맞습니다. 최초 해설자의 해설이 맞고 2번이 답 입니다. [해설작성자 : 필굿] 해설이 전부 명확하지가 않은 해설들이네요. 제가 정리하겠습니다. nice명령어의 구사 방식은 2가지가 있습니다. 1. nice -n 희망ni값 프로세스이름 //ex) nice -n 5 bash 2. nice -희망ni값 프로세스이름 //ex) nice -5 bash 주석에 있는 예시는 모두 bash 프로세스의 NI값을 '5'로 설정하여 프로세스를 실행하는 명령어입니다. 즉, 문제에서는 현재 bash 프로세스의 우선순위(NI)가 '0'이라고 하였으니 '5'가 되면 값이 커졌기때문에 우선순위가 그만큼 낮춰진거죠. 그래서 정답은 2번입니다. 하지만 문제가 복원이 잘못된건지 제목이 오해의 소지가 큽니다. 왜냐하면 "프로세스 아이디(PID)가 513인 bash 프로세스의 우선순위(NI)값이 0이다." 라는 것은 bash프로세스는 현재 실행중인 상태인것으로 해석됩니다. 그 근거로 PID값은 프로세스에 대한 고정값이 아닙니다. 예를들어 현재 실행중인 bash 프로세스는 종료된 후 다시 실행됐을때 pid값이 또 다시 513일거라는 보장이 없습니다. 즉, PID값이 제시됐다는것은 현재 실행중이라는 의미입니다. 그리고 bash 프로세스가 실행중인 상태가 아니라면 어떻게 우선순위가 '0'인지 확인할수있을까요? 현재 실행중인 프로세스의 우선순위(NI)를 변경하려면 renice명령어를 사용해야합니다. 현재 우선순위가 '0'이라면 renice 5 513 명령어를 사용해서 NI를 '5'로 설정하여 우선순위를 낮출 수 있습니다. 하지만 문제의 3번 보기는 '-5' 로 설정하여 우선순위를 높이는것이기때문에 정답이 되지는 못하죠 [해설작성자 : ㅇㅇ] 2번은'프로세스 아이디(PID)가 513인 bash 프로세스의 우선순위(NI)값이 0이다.' 이 부분과 모순입니다. nice는 실행중인 프로세스에 영향을 줄 수 없습니다. 3번은'우선순위를 낮추는 명령'에 모순입니다. 'renice -5 513'은 기존 ni 0 에서 ni -5 로 감소시키는 커맨드입니다.

이 시험을 직접 풀어보세요

실전과 동일한 CBT 환경에서 시간 제한 연습

회원가입 없이 CBT 풀기