context switching에 대해서 질문 드려요.

greeze의 이미지

context switching에 대해 공부중에 있습니다.
대충 PCB등 이해는 하였습니다.
그런데 context switching을 줄이는 방법에 "저장하고 복원하는 context 정보의 갯수를 줄이는 것"
이렇게 설명되어 있는데요.
이말이 프로세스의 수를 줄이는것을 의미하는건가요?
아니면 프로세스 내에 함수의 수를 줄이는것을 의미하는건가요?
정확한 뜻을 모르겠네요.. ㅎㅎㅎ
아마 프로세스의 수를 줄이는것도 관리되는 PCB의 수가 줄기때문에 context switching을
줄이는 방법일거 같긴한데요.!
정확한 의미가 무엇인지 답변 부탁드려요!

익명 사용자의 이미지

제가 알기로는 context switching을 줄이는건 응용 프로그래머의 영역은 아닙니다. OS 만드는 사람이 고민해야 할 영역이지요.

질문자님 생각대로 프로세스가 적어진다면
커널 단에서 스케줄링에 의한 context switching 자체가 적어 질수도 있고,
아키텍쳐로 본다면 저장하고 복원하는 context 정보라는건 각각의 CPU가가진 레지스터와 캐시의 정보 갯수를 의미할 수도 있고,
메모리 측면에서는 context switching 가 일어나면 page fault가 일어 날 수있으니 그냥 메모리 자체를 덜 쓰자라는 이야기가 될 수도 있지요.

그리고 이조차도 쓰레드에서 일어나는 context switching을 말씀하시는지 프로세스 사이에서의 context switching을 말씀하시는건지에 따라 다릅니다...

같은 프로그램이라면 멀티 프로세싱에서 멀티 쓰레드로 바꾸는 방법 자체가 context switching을 줄이는 방법이 될 수 있습니다.
이렇게 바꿔서 성능 개선을 하게돼면 그때부턴 사실 성능보다는 cash 에서 발생할 수있는 메모리 참조 오류를 잡는게 더 문제겠지만요...

제 약간의 사견이 담겨있는 대답이라 정확한 의문해소가 되셨을지 모르겠네요...

라스코니의 이미지

그 방법 중 하나가 "저장하고 복원하는 context 정보의 갯수를 줄이는 것"이라는 것은 맞습니다. 만약 부동소수점 처리를 하지 않는 타스크/쓰레드라면 부동소수점에 관련된 레지스터들을 저장하지 않으면서 좀더 빠른 처리를 할 수 있겠죠.

이런 의미라면 질문하신 것에 대한 답변은
이말이 프로세스의 수를 줄이는것을 의미하는건가요? --> 아닙니다
아니면 프로세스 내에 함수의 수를 줄이는것을 의미하는건가요? --> 아닙니다. 프로세스 내의 함수들은 그냥 하니의 일련의 인스트럭션의 실행에 불과합니다.

경쟁할 프로세스 수가 아주 적다면 context switching이 일어날 경우의 수도 상대적으로 적어지겠죠. 극단적으로 unitask 시스템에서는 context switching이 일어나지도 않겠지요. 하지만 인터럽트 핸들러에서도 제한적인 context switching이 일어납니다.

댓글 달기

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