일정 기간에 몇번의 context switching이 일어나는가를 확률적으로 파악하고 싶은데 가능할까요?

munhoney의 이미지

논문을 쓰던 중 한가지 풀리지 않은 부분이 있어서 문의드립니다.

cpu 점유율 : cr %
process 개수 : n

이라고 할때

일정기간 (1초?) 안에 스케쥴링이 몇번 일어나는 가를 확률적으로 구하고 싶은데 어렵네요

1) 각 process마다 priority를 고려해야하고,
2) preemption도 고려되어야 하고
3) 각 프로세스마다 수행 주기도 고려를 해야겠지요?
4) 프로세싱 Time도 고려가 되어야 겠군요.

만약 이들을 단일화 시키면 가능할까요?

chadr의 이미지

스위칭이 운영체제에 의해서 강제로 수행되는 경우도 있지만 프로세스 또는 스레드가 스스로 스위칭을 야기 하는경우(시스템 콜)도
있으니 어떠한 공식상으로 측정하기는 힘들지 않을까 합니다.

많은 프로그램을 테스트 해보고 그렇게 측정해야하지 않을까 합니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

munhoney의 이미지

제가 잘 몰라서 그렇지만,...

확률적으로 대충 어느정도가 된다. 정도로만이라도 나올 수 있지 않을까요? 음....
힘들것 같긴 하지만요. :-(

---------------------------------
http://blog.naver.com/munhoney
---------------------------------

gurugio의 이미지

특정 프로세스가 확률적으로 얼마나 실행될까를 원하시는 거라면 잘 모르겠습니다만
리눅스 커널에 이런 시스템 동작에 대한 통계를 만드는 기능이 있다고 들었습니다.
원리는 간단하게 스케줄러등 중요한 동작하는 함수에 콜백 함수를 넣는 방식이었던것 같습니다.
일년전에 잠깐 들은거라 이름이 기억이 안나네요.

프로세스 관리 블록에 자기 카운트를 넣어서 몇번 스케줄링 되는지 기록하거나
시스템에 컨텍스트 스위칭이 몇번 일어나는가 등등을 출력해줬던걸로 기억납니다.

----
섬기며 사랑하면 더 행복해집니다.
몸에 좋은 칼슘이 듬뿍담긴 OS 프로젝트 - 칼슘OS http://caoskernel.org

bushi의 이미지

[bushi@rose sys]$ sudo mount -t debugfs none /proc/sys/debug/
[bushi@rose sys]$ 
[bushi@rose sys]$ cd /proc/sys/debug
[bushi@rose debug]$ 
[bushi@rose debug]$ ls
bdi  boot_params  kprobes  sched_features  tracing  usbmon  x86
[bushi@rose debug]$ 
[bushi@rose debug]$ cd tracing/
[bushi@rose tracing]$ 
[bushi@rose tracing]$ ls
README             current_tracer  latency_trace          trace          trace_pipe       tracing_enabled      tracing_thresh
available_tracers  iter_ctrl       sysprof_sample_period  trace_entries  tracing_cpumask  tracing_max_latency
[bushi@rose tracing]$ 
[bushi@rose tracing]$ cat trace
# tracer: none
#
#           TASK-PID   CPU#    TIMESTAMP  FUNCTION
#              | |      |          |         |
[bushi@rose tracing]$ 
[bushi@rose tracing]$ cat current_tracer 
none
[bushi@rose tracing]$ cat available_tracers 
wakeup irqsoff sysprof sched_switch none
[bushi@rose tracing]$ 
[bushi@rose tracing]$ sudo su -c "echo sched_switch > current_tracer"
[bushi@rose tracing]$ 
[bushi@rose tracing]$ head -10 trace
# tracer: sched_switch
#
#           TASK-PID   CPU#    TIMESTAMP  FUNCTION
#              | |      |          |         |
            Xorg-3126  [00]   319.707107:   3126:120:S ==>  3745:120:R
            bash-5707  [02]   319.707210:      0:140:R   +  5704:120:S
          <idle>-0     [03]   319.707214:      0:140:R ==>  5704:120:R
            bash-5707  [02]   319.707214:   5707:120:X ==>  4891:120:R
         firefox-4891  [02]   319.707240:   4891:120:R   +  4889:120:S
         firefox-4891  [02]   319.707244:   4891:120:R ==>  4889:120:R
[bushi@rose tracing]$ 
[bushi@rose tracing]$ 
[bushi@rose tracing]$ sudo su -c "echo none > current_tracer"
[bushi@rose tracing]$

OTL

ckebabo의 이미지

음...실시간 태스크인 경우에는 어느정도 추측도 가능하고 경우에 따라서는 꽤 정확한 분석도 가능합니다.
비록 실시간 태스크 모델상에서의 분석이지만 아래 논문에서는 태스크의 preemption의 bound를 분석해 놓았습니다...
Multiprocessor scheduling with few preemptions

munhoney의 이미지

아.. 정말 감사합니다. 역시 있을 것 같더라구요 ㅋㅋ 감사하기 넙죽 받아먹겠습니다. ^^

---------------------------------
http://blog.naver.com/munhoney
---------------------------------

댓글 달기

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