✏ 프로세스와 스레드

⇒ 프로세스는 작업의 단위, 스레드는 실행 흐름의 단위이다.

  1. 프로세스 (독립적인 개체)

    프로세스는 메모리 상에서 실행 중인 프로그램을 뜻하며, 메모리에 올라와 실행되고 있는 컴퓨터의 인스턴스이다. 운영체제로부터 시스템 자원을 할당받는 작업의 단위이기도 하다.

Untitled


  1. 스레드

    스레드는 프로세스 안에서 실행되는 흐름 단위로, 특정 프로세스에 반드시 포함되어 프로세스의 특정 경로를 수행한다.

Untitled

Untitled

즉, 간단히 말하면 프로세스는 자신만의 고유공간과 자원을 할당받아 사용하며, 스레드는 다른 스레드와 공간과 자원을 공유하면서 사용한다.

그렇다면 스레드는 왜 나오게 되었을까?

과거에는 프로그램 실행 시작~ 실행 끝까지 프로세스 하나만을 사용했다. 하지만 복잡한 프로그램이 등장하면서부터, 프로세스 하나 만을 사용해서 프로그램을 실행하는데 어려움이 있었다. 한 프로그램을 처리하기 위해 여러 개의 프로세스를 사용하는 방식은, 프로세스는 자신에게 할당된 메모리 내의 정보에만 접근할 수 있다는 운영체제의 제약이 존재해 불가능한 일이었다.

이러한 이유로 프로세스보다 더 작은 실행 단위의 개념이 필요하게 되었고, 스레드가 등장했다.