스케줄링 관련 개념 질문좀 드립니다.

happyKYS의 이미지

안녕하세요. 간단한 질문 하나만 도와주시면 감사드리겠습니다.

리눅스 스케줄링 기법에서 FIFO랑 RR은 실시간 스케줄링 기법이고, OTHERS는 비 실시간 기법으로 알고 있습니다. 이 때, 어짜피 비 실시간 태스크의 우선순위 조정값이 -20~19이고 우선순위 + 120을 쓰므로 실시간 태스크들이 먼저 스케줄링 된다는 것은 이해가 가는데요.

먼저 스케줄링 받아서 무슨 이점이 있는가에 궁금점이 생깁니다. 어짜피 리눅스가 관리하는 runqueue에서 타임 슬라이스를 다 쓰게 되면 expired 큐로 이동되게 되고 runqueue에 있는 태스크가 전부 수행되어야지 교체가 일어나는데 결국 실시간이든 비 실시간이든 순서에 상관없이 다음 CPU를 할당받기까지 expired 에서 대기하는 시간은 동일하게 되는것 아닌가요? 이러면 비 실시간 태스크와 실시간 태스크로 스케줄링 받는 애들이 서로간에 타임슬라이스 정도 차이를 제외하고 무슨 이점이 발생하는지가 궁금합니다.

제가 잘못 알고 있는건가요? 답변 부탁드립니다. 꾸벅.

gurugio의 이미지

RR은 실시간은 아닌걸로 알고있습니다.
실시간보다는 공평한 실행에 중점을 둔 알고리즘으로 알고있습니다.
따라서 말씀하신것과 동일한 방식입니다. 제대로 알고계신것 같습니다.

익명 사용자의 이미지

>>먼저 스케줄링 받아서 무슨 이점이 있는가에 궁금점이 생깁니다.
>>어짜피 리눅스가 관리하는 runqueue에서 타임 슬라이스를 다 쓰게 되면 expired 큐로 이동되게 되고 runqueue에 있는 태스크가 전부 수행되어야지 교체가 일어나는데
>>결국 실시간이든 비 실시간이든 순서에 상관없이 다음 CPU를 할당받기까지 expired 에서 대기하는 시간은 동일하게 되는것 아닌가요?
>>이러면 비 실시간 태스크와 실시간 태스크로 스케줄링 받는 애들이 서로간에 타임슬라이스 정도 차이를 제외하고 무슨 이점이 발생하는지가 궁금합니다.

일단 expired 큐 runqueue의 개념은 이전 O(1) 스케쥴러에 있던 개념이구요
2.6.23 커널 이후부터는 CFS 스케쥴러로 변경되고 expired 큐는 사라졌습니다.

물론 O(1) 스케쥴러에서도 실시간 task는 특별취급(?) 당했습니다. 실시간 task도 timeslice가 있었지만 timeslice가
소진된 후에도 expired queue로 이동하지 않고 다시 runquque 로 이동하였습니다.
따라서 실시간 task가 하나라도 존재한다면 그 실시간 task가 존재하는 동안에는 100% 실시간 task에 의해 CPU가 점유됩니다.

CFS의 경우는 runqueue 대신에 비실시간 task들은 RB-tree 에 위치하게 되구요.
잘 기억은 나지 않지만 실시간 task들은 O(1)은 차이가 없었던 것으로 기억나네요.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.