프로그램
저장장치에 저장되어 있는 정적인 상태
프로세스
프로그램 실행을 위해 메모리에 올라온 동적인 상태
프로그램이 메모리에 올라오고 PCB가 생성된다.
* PCB (Process Control Block): 프로세스를 처리하는 데 필요한 다양한 정보가 들어있다.
프로세스 메모리 구조
코드 영역: 프로그램의 본문이 기술된 곳
데이터 영역: 코드가 실행되면서 사용하는 변수나 파일 등의 각종 데이터를 모아놓은 곳
힙 영역: 동적으로 할당되는 변수 영역
스택 영역: 운영체제가 프로세스를 실행하기 위해 부수적으로 필요한 데이터를 모아놓은 곳
스레드
프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위
프로세스와 스레드의 차이
- 프로세스가 스레드보다 더 큰 개념의 작업 단위이다.
- 프로세스는 운영체제 입장에서의 작업 단위, 스레드는 CPU 입장에서의 작업 단위이다.
- 프로세스는 약하게, 스레드는 강하게 연결되어 있다.