프로세스
운영체제에서 프로세스는 하나의 작업단위
프로그램
저장장치에 저장되어 있는 정적인 상태
프로세스
실행을 위해 메모리에 올라온 동적인 상태(자신만의 메모리 영역이 있음을 의미)
작성한 프로그램이 샐행되면 프로세스 된다.
이 작업 지시서가 프로세스 제어블록
운영체제가 해당 프로세스를 위해 관리하는 자료 구조
프로세스 = 프로그램 + 프로세스 제어블록
프로그램 = 프로세스 - 프로세스 제어블록
CPU는 실행하려는 프로세스가 메모리 어디에 저장되어 있는지 알아야 작업을 할 수 있음
메모리 보호를 위해 경계 레지스터와 한계 레지스터도 포함됨
다음에 작업해야 할 코드의 위치가 담긴 레지스터인 프로그램 카운터가 저장됨
- 프로그램이 프로세스가 되려면 메모리에 올라오는 것과 동시에 PCB가 생성되어야 함
- 프로그램이 프로세스가 된다는 것은 운영체제로부터 프로세스 제어블록(PCB)를 얻는다는 뜻
- PCB는 OS가 해당 프로세스를 위해 관리하는 데이터 구조이기 때문에 OS영역에 포함됨
- 프로세스가 종료되면 프로세스가 메모리에서 삭제되고 PCB도 폐기됨
준비 상태에 있는 프로세스 중 하나가 CPU를 얻어 실제 작업을 수행하는 상태
실행 상태로 진입한 프로세스는 일정시간 동안 CPU를 사용할 권리를 갖음
만약 할당 받은 시간을 모두 사용하고도 작업이 끝나지 않았다면, 프로세스는 준비상태로 되돌아가서 다음 순서를 기다림
프로세스는 자신의 작업이 종료될 때까지 준비상태와 실행상태를 왔다갔다 함
준비상태에 있는 여러 프로세스 중 다음에 실행할 프로세스를 선정하는 일은 CPU 스케줄러가 담당함
준비 상태의 맨 앞에 기다리고 있는 프로세스제어블록을 CPU에 전달해 작업을 처리