[완료]리눅스 커널 프로세스 스케줄링 질문드립니다.

heartthief의 이미지

1. priority는 구체적으로 어떻게 계산되나요? nice값(-20~+19)과 task의 interactive한 정도에 따라 (-5~+5) 라고만 알고 있는데
priority array를 보면 0~139의 우선순위 레벨이 있던데 실시간 프로세스가 0~99 레벨, 일반 프로세스가 100~139레벨인데 nice값과 interactive 정도만 가지고 140 레벨이 다 나오게 되는 건 아닌것 같은데 혹시 priority 계산공식이 있나요?

2. 실시간 프로세스중 타임 퀀텀을 할당받는 RR방식의 타임퀀텀 할당 시간에 대한 기준이 어떻게 되나요? 일반 프로세스와 동일한 nice값 기준으로 할당받나요?

3. 타임퀀텀을 쓰지 않는 실시간 프로세스의 경우 만약에 중간에 무한루프를 돌아서 프로세서를 계속 점유하고 있으면 커널이 프로세스를 죽이거나 다른 프로세스로 스위칭할 수 있나요?

4. 선점이 발생한 경우, 선점된 프로세스의 운명은 어떻게 되나요? 남은 타임퀀텀을 가진채로 active queue에 남아 있나요, 아니면 wait queue로 들어가서 인터럽트를 기다리게 되는 건가요?

책으로 공부하고 있는데 여러번 읽어봐도 모르겠네요 ㅠㅠ

---------------------------------------------------------------------------------------

답변 감사합니다^^

pastime의 이미지

O(1) 스케줄러 공부하시는군요..

1. nice 값과 interactiveness(?)로 동적 우선순위를 계산하는 것은 일반 프로세스에만 해당하는 얘기입니다.
(실시간 프로세스는 정적 우선순위만 사용하는 것으로 알고 있습니다.)
일반 프로세스의 기본 우선순위는 120이고 nice를 통해 100 ~ 139 사이의 값으로 설정할 수 있으며
interactive한 정도에 따라 여기에 약간의 보너스가 주어질 수 있습니다만 저 범위를 넘어가진 않습니다.

2. 무조건 일정한 값(DEF_TIMESLICE)이 할당될 것입니다.

3. FIFO 정책의 경우 해당 프로세스보다 높은 프로세스가 없다면 선점이 불가능합니다.

4. 남은 퀀텀을 가지고 active queue로 들어갑니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.