프로그램 ( Program )
사전적인 의미는 수행 절차를 기록한 것이다.
프로세스 ( Process )
- 사전적인 의미는 연속적으로 수행되고 있는 절차인데, 컴퓨터 용어로 바꾸어 말하면 연속적으로 실행되고 있는 컴퓨터 프로그램이라고 말한다.
- 기억장치에서 메모리 올라간 프로그램을 프로세스라 말한다.
- 운영체제로부터 시스템 자원을 할당받는 작업의 단위이다.
- 시스템자원
- 중앙처리장치의 시간
- 메모리 공간
- code
- data
- stack
- heap
- 시스템자원
- 특징
- 기본적으로 1개 이상의 스레드를 가집니다.
- 운영체제로부터 독립적인 메모리 공간을 할당 받는다.
- 독립적인 메모리 공간을 할당 받은 곳에서 실행되므로 다른 프로세스의 자원에 공유가 어렵다.
- 다른 프로세스 자원을 공유 하려면 프로세스 통신( ips ) 을 해야한다.
스레드 ( Thread )
- 프로세스 내에서 실행되는 여려 흐름의 단위
- 프로세스가 할당 받은 자원을 이용하는 실행 단위
- 특징
- 프로세스가 할당받은 메모리 공간에 stack 영역만 따로 할당받고 나머지 영역 ( code, data, heap )은 공유한다.
- 특징
참조 !!
https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html
'CS & OS' 카테고리의 다른 글
[CS] 교착상태(DeadLock) 기아상태(Starvation) (0) | 2022.03.31 |
---|---|
[CS] 컴퓨터의 기능과 구성 (0) | 2022.02.20 |