ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로세스(Process)와 스레드(Thread)
    백수의 개발/운영체제 2019. 10. 26. 13:46
    자네, 프로세스와 스레드의 차이에 대해 설명해보게!

    프로세스, 스레드 다 자주 듣고, 사용해봤을 용어들이다.

    그런데 막상 각자의 정의와 차이를 설명하라고 한다면 설명하는게 쉽지 않을 수 있다.

     

    오늘은 프로세스와 스레드에 대해서 정리를 해보려 한다.

     

    프로세스(Process)

    • 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
    • 메모리에 올라와 실행되고 있는 프로그램의 인스턴스
    • 운영체제로부터 시스템 자원을 할당받는 작업의 단위
    • 실행된 프로그램을 의미

     

    특징

    • 프로세스는 각각 독립된 메모리 영역을 할당받는다.
    • 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다.
    • 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다.
    • 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신을 사용해야 한다.

     

    os내 프로세스

    스레드(Thread)

    • 프로세스 내에서 실행되는 여러 흐름의 단위
    • 프로세스의 특정한 수행 경로
    • 프로세스가 할당받은 자원을 이용하는 실행의 단위

     

    특징

    • 스레드는 프로세스 내에서 각각 Stack외 메모리 영역은 공유한다.
    • 프로세스 내의 주소 공간이나 자원들을 내부 스레드들이 공유하면서 실행된다.
    • 한 스레드가 프로세스 자원을 변경하면, 다른 스레드에도 즉시 반영된다.

     

    프로세스 내 스레드

    결론

    프로세스는 운영체제 위에서 실행되는 프로그램들로서 서로 메모리를 공유하지 않는다. 따라서 프로세스 간의 데이터 공유를 위해서는 별도의 통신이 필요하다.

    반면에, 스레드는 하나의 프로세스 내에서 실행되는 단위일부 메모리를 공유하며 여러개의 스레드를 통해 별도의 데이터 통신 없이 작업을 처리할 수 있다.

     

    프로세스와 스레드

     

    '백수의 개발 > 운영체제' 카테고리의 다른 글

    멀티 프로세스와 멀티 스레드  (0) 2019.10.29

    댓글

Designed by Tistory.