CS & OS

[CS] 프로세스와 스레드 기초 지식

kkkkkkkkkkkk 2022. 2. 20. 20:47

프로그램 ( Program )

사전적인 의미는 수행 절차를 기록한 것이다.

 

프로세스 ( Process )

  • 사전적인 의미는 연속적으로 수행되고 있는 절차인데, 컴퓨터 용어로 바꾸어 말하면 연속적으로 실행되고 있는 컴퓨터 프로그램이라고 말한다.
  • 기억장치에서 메모리 올라간 프로그램을 프로세스라 말한다.
  • 운영체제로부터 시스템 자원을 할당받는 작업의 단위이다.
    • 시스템자원
      • 중앙처리장치의 시간
      • 메모리 공간
        • code
        • data
        • stack
        • heap
  • 특징
    • 기본적으로 1개 이상의 스레드를 가집니다.
    • 운영체제로부터 독립적인 메모리 공간을 할당 받는다.
    • 독립적인 메모리 공간을 할당 받은 곳에서 실행되므로 다른 프로세스의 자원에 공유가 어렵다.
    • 다른 프로세스 자원을 공유 하려면 프로세스 통신( ips ) 을 해야한다.

 

 

스레드 ( Thread )

  • 프로세스 내에서 실행되는 여려 흐름의 단위
  • 프로세스가 할당 받은 자원을 이용하는 실행 단위
    • 특징
      • 프로세스가 할당받은 메모리 공간에 stack 영역만 따로 할당받고 나머지 영역 ( code, data, heap )은 공유한다.

 

참조 !! 

https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html