프로세스 VS 테스크

GunSmoke의 이미지

질문 : 실재로는 거의 비슷한 것으로 이해되는 프로세스와 테스크라는 개념은 어떠한 차이가 있을까요?

Necromancer의 이미지

태스크라는 용어는 OS 구조론에서 들어본 적이 없는걸로 압니다.

x86에서 CPU가 실행하고 있는 각 프로그램을 태스크라고 부르죠.
이경우에는 프로세스와 동일하다고 볼 수 있습니다. x86 세계에서만
사용되는 용어지만.

Written By the Black Knight of Destruction

yjcho의 이미지

OS에서는 전통적으로 실행중인 프로그램을 가리켜 프로세스라고 부르죠.
기존의 유닉스의 프로세스라는 개념과 쓰레드라는 개념을 합쳐서 리눅스에서는 태스크라고 부르고요(사실상 리눅스에서는 쓰레드랑 프로세스의 구분이 모호하죠)

윗 분이 말씀하신 것처럼 x86 CPU상에서 하드웨어 멀티테스킹을 위해 테스크라는 용어를 쓰기도 하고요.

saxboy의 이미지

일반적으로 흔히 생각하는 OS에서는 task라는 단어를 그렇게 많이 사용하지 않지만, RTOS 에서는 대부분 task 라는 용어를 사용합니다. 개념으로 따져본다면 대강 thread 와 비슷한 의미 정도가 될까요. RTOS쪽에서는 오히려 process나 thread 라는 단어를 사용하는 경우가 드물지요. 사실은 완전히 별도의 address space를 가지는 process라는 개념이 존재하는 것도 본 기억이 없군요.

실제 사용하는 RTOS에서는 user thread 라는 개념조차 없기 때문에, task 라고 하면 흔히 이야기하는 kernel thread 와 비슷한 용도가 됩니다만 역시 전통적인 UNIX체계와는 개념이 조금 다르다고 해야겠지요.

익명 사용자의 이미지

task를 작업단위로 보는 것은, 프로세스 또는 쓰레드로(어느 것이건) 구현이 될지라도 설계상에서 제약을 두지 않고 공통적인 것을 추구하기 위함이라고 생각합니다.
이론적인 접근을 수행할때, 특정 환경(프로세스 기반, 쓰레드기반, 하이브리드등)에 제약을 두고 접근하면 일반화 하기가 미묘해지기 때문이 아닐까요?

vacancy의 이미지

Task라는 것은 process나 thread처럼 명확한[?] 표현은 아니고
위에서 말씀하셨듯 작업의 단위를 보통 말하죠.
이 task는 process로 기술될 수도 있고, thread로 기술될 수도 있고요.
경우에 따라서는 한 process나 thread에 여러 task가 들어갈 수도 있죠.
( Preemption과 관련된 여러 조건들이 걸리겠지만요. )

Task는 좀더 개념적인 어휘로 보시면 되겠습니다.
Process나 thread와 혼용해서 쓰이긴 합니다만. ;;

jyoonsuk의 이미지

임베디드쪽이 전공이신데..

리눅스기반으로 OS를 설명하실때

태스크를 프로시저라고 보시더라구요..

dbslqjftmu의 이미지

리눅스에서는 프로세스든 스레드든 다 테스크라고 하죠.
fork로 프로세스를 생성해도 커널은 task를 만들고,
thread_create 로 스레드를 생성해도 커널은 task를 만들고..

최종적으로는 task 구조체를 생성하게되므로 프로세스랑 테스크는 그 용어 차이일 뿐이지
실제로는 동일하다고 봐도 될거같네요.

댓글 달기

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