Context switching에 대한 질문입니다.

zieben의 이미지

운영체제 이론에 관련된 내용이라 게시판 성격에 맞을까 약간 고민되긴 하지만 우선 질문 올려봅니다.

context switching이 일어나게 되면..
CPU의 제어권 이양만이 일어나는건가요? 아니면 다른 resource 모두에 대한 이양이 일어나는건가요?
그리고 여기서 resource에 메모리도 포함되는 것인가요?

예를 들어서 현재 A라는 task가 cpu를 할당받았구요..
동시에 floppy disk를 사용하고 있습니다.
이제 time slice가 다 되어서 이를 반환할때 아직 floppy를 다 사용하지 않았다고 하면
A task는 cpu만을 반환하는 건가요? 아니면 floppy 제어권도 반환하는 것인가요?

만약에 모두 반환하는 것이라면 OS이론에서 나오는 우선순위 역전의 문제는 발생하지 않을것 같은데요..
우선순위 역전이 CPU를 할당받더라도 사용하고자 하는 다른 resource가 이미 다른 task에 선점되어있어서 cpu를 반환하게 되고 그래서 결국 우선순위가 낮은 task가 먼저 실행될 수 있는 상황을 의미하는것 같은데..

이건 어떻게 이해해야 하는거죠?

pynoos의 이미지

문의하고 싶은 것이 프로세스 우선순위에 따라 리소스의 제어권을 빼앗을 수 있는지에 대한 것인가요?

프로세스의 우선순위라는 것은 리소스에 대한 접근 권한이 아니라 스케쥴링될 때 좀 더 많은, 또한 먼저 준다는 것으로 이해하셔야 합니다.

mach의 이미지

이미 사용중인 리소스에 접근했을때, 접근불가라면(현재 누군가에 의해 사용중) 해당프로세스는 sleep상태로 빠지고 다른 프로세스로 스케쥴링이 되겠지요. 전형적인 유닉스는 타임에 기반해서 스케쥴링되기도 하지만, 시스템호출에 의해 스케쥴링이 일어날 수 있습니다. 이후 해당 리소스가 가용해지면, 커널이 이를 사용하고자 하는 모든 프로세스에게 일어나~ 라고 할것이고, 이 때 모든 프로세스는 동등한 수준으로 경쟁에 돌입하게 되어(race condition) 이를 획득한 프로세스를 제외한 모든 다른 프로세스는 다시 주무시러 갈것입니다.

* 리소스는 CPU, MEMORY, IO장치를 모두 포함한 것들을 의미합니다.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

zieben의 이미지

제가 질문을 좀 중구난방으로 했네요. ^^;
결국 질문은 task에게 부여된 time slice가 다 끝났을 경우..
task는 cpu만을 반환하는건지? 아니면 다른 리소스까지 다 반환하는건지가 알고싶습니다.

pynoos의 이미지

스케쥴링 시간이라는 것은 CPU를 나눠쓰는 것이므로 CPU만 반환되죠.

댓글 달기

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