-
PID(Process IDentification)
-
운영체제가 각 프로세스를 식별하기 위해 부여된 프로세스 식별번호이다.
-
프로세스 상태
-
CPU는 프로세스를 빠르게 교체하면서 실행하기 때문에 실행 중인 프로세스, 대기 중인 프로세스 등 상태를 저장한다.
-
프로그램 카운터
-
CPU가 다음으로 실행할 명령어를 가리키는 값이다.
-
CPU는 기계어를 한 단위씩 읽어서 처리한다.
-
프로세스를 실행하기 위해 다음으로 실행할 기계어가 저장된 메모리 주소를 가리키는 값이다.
-
스케줄링 우선순위
-
운영체제에서 여러 개의 프로세스가 CPU에서 실행될 순서를 결정하는 것을 스케줄링이라고 한다.
-
이 스케줄링에서 우선순위가 높으면 먼저 실행될 수 있는데, 이를 스케줄링 우선순위라고 한다.
-
권한
-
프로세스가 접근할 수 있는 자원을 결정하는 정보이다.
-
프로세스마다 어디까지 접근할 수 있는지에 대한 권한이 필요하다.
-
프로세스의 부모와 자식 프로세스
-
최초 생성되는 init 프로세스를 제외한 모든 프로세스는 부모 프로세스를 복제해서 생성되고 이 계층관계는 트리를 형성한다.
-
그래서 각 프로세스는 자식과 부모 프로세스에 대한 정보를 가지고 있다.
-
프로세스의 데이터와 명령어가 있는 메모리 위치를 가리키는 포인터
-
프로세스는 실행중인 프로그램이기 때문에 프로그램에 대한 정보를 가지고 있어야 한다.
-
이 정보는 프로세스가 메모리에 가지는 자신만의 주소 공간에 저장된다.
-
PCB는 이 공간에 대한 포인터 값을 가진다.
-
프로세스에 할당된 자원들을 가리키는 포인터
-
실행문맥
-
프로세스가 실행 상태에서 마지막으로 실행한 프로세서의 레지스터 내용을 담고 있다.
-
CPU에 의해 실행되는 프로세스는 운영체제에 의해 계속 교체된다.
-
교체되었다가 다시 자신의 차례가 되었을 때 중단된 적 없이 연속적으로 실행된 것처럼 하기 위해 이 레지스터 정보를 보유한다.
-
사용자가 프로그램을 실행하면 프로세스가 생성되고 준비리스트에 추가된다.
-
프로세스는 프로세서(CPU)가 사용가능한 상태가 되면 CPU를 할당받는다. (디스패칭: 준비에서 실행상태로 전이, 디스패처가 수행)
-
프로세스는 실행상태에서 CPU를 이용해 연산한 후, CPU를 자발적으로 반납하고 작업이 끝나지 않았으면 다시 준비상태에 들어간다.
-
운영체제는 다시 준비리스트의 첫 번째에 있는 프로세스를 실행상태로 바꾸고 1~3을 반복한다.
-
프로세스를 다시 사용하기 전에 입출력이 완료대기를 기다려야 하는 상황이라면 완료될때까지 자신을 블록한다.
-
입출력이 완료되면 운영체제가 프로세스를 블록상태에서 준비상태로 다시 전이시킨다.