ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Thread 와 Process
    전공 지식/OS 2018. 12. 7. 14:29

    프로세스와 스레드는 무슨 차이일까?

    프로세스 안에 스레드가 여러개 돌아갈 수 있다 이런걸로 알고있었는데 확실히 정리하면 좋을 것 같아서 공부했다.


    우선 프로세스부터 살펴보자


    프로세스(Process) 

    : 컴퓨터에서 연속적으로 실행되고 있는 프로그램

    중요하게 봐야하는 부분은 *실행* 되고 있는 프로그램이라는 것이다.


    그러면 프로세스와 프로그램은 어떤 차이를 가지고 있을까?

    이건 사실 Process Concept (http://cmmcme.tistory.com/19?category=673402) 이 링크를 보면 알 수 있다.


    프로세스는 프로그램보다 더 크다.

    어떻게 더 크냐면


    Process in memory

    process in memory에 대한 이미지 검색결과

    Program 은 data, text 만 있는데

    Process 는 stack, heap, PCB  까지 가지고 있다.


    스레드 (Thread)

    : 프로세스 내에서 실행되는 여러 흐름의 단위


    스레드는 프로세스당 최소 1개를 가지고 있고 여러개를 가질 수도 있다. 이걸 멀티 스레드라고 한다.

    스레드에 대해서도 사실 정리한 적이 있다. (http://cmmcme.tistory.com/20?category=673402)

    스레드는 코드, 데이터, 파일 영역을 공유하고 스택 레지스터는 각각 별도로 가진다.


    그럼 이제 좀 생각하기 편해진다.

    멀티 프로세싱 방식은 프로세스를 여러개 처리하는 방식이고

    멀티 스레딩은 프로세스 내에 여러개의 스레드를 두어 처리를 하는 방식이다.


    '전공 지식 > OS' 카테고리의 다른 글

    File System  (0) 2018.10.19
    Virtual Memory Management  (0) 2018.08.16
    Memory Management Stategies  (0) 2018.08.16
    Deadlocks  (0) 2018.08.16
    Process synchronization  (0) 2018.08.09

    댓글