0. 프로그램과 프로세스의 차이
- 프로그램은 .exe 파일같이 수동적으로 이뤄지며, 프로세스를 실행시켜주는 존재면, 프로세스의 경우 능동적으로 수행하는 것이다.
- 다중 프로그래밍 : 준비 큐에서 아직 대기중인 것들, 프로그램(실행되면 프로세스)을 CPU 메모리 위에 올려 놓는 것
- 다중 테스킹 : 여러 작업들을 동시에 하는 것 처럼 보이는 것(일종의 스레드 같은 개념), 대기큐나 스레드로 계속 사용되는 것
1. 프로세스의 개념
⇒ 모든 CPU가 하는 활동들을 프로세스라 한다. 비공식적으로는 프로세스는 실행중인 프로그램이다.
- 프로세스 구성
- 스택영역: 함수 호출시 임시데이터 저장장소
(활성레코드)
ex) 함수 매개변수, 복귀 주소
- 힙 영역: 동적으로 할당되는 영역
ex) 인스턴스
- 데이터 영역: 전역변수들을 관리하는 영역
- 텍스트 영역: 프로그램의 코드를 관리하는 영역

2. 프로세스의 상태
- 생성 : 프로세스가 새로 생긴 상태
- 준비 : CPU를 차지하기전 대기중인 상태
- 대기 : CPU에서 잠깐의 실행 후 다음 이벤트를 대기 중인 상태
- 실행
- 종료
3. 프로세스 제어 블록(Process Control Block - PCB)
⇒ 프로세스에 관한 여러 정보가 담겨있는 블록을 뜻한다.
- 프로그램 카운터 : 프로세스가 다음을 가르킬 프로세스와 주소가 적혀있다.
- 레지스터( CPU가 요청을 처리하는데 필요한 정보를 일시적으로 저장하는 저장소) : 프로세스가 다시 스케줄 될 때 계속 올바르게 실행되도록 인터럽트 발생시 반드시 저장되어야한다.
- 프로세스 상태
- 프로세스 번호
- 메모리에 관한 정보
- 회계 정보
