
프로세스(Process)란 컴퓨터에서 연속적으로 실행되고 있는 프로그램이다.
종종 스케줄링의 대상이 되는 작업(Task)이라는 용어와 거의 같은 의미로 쓰인다.
- 위키백과
CPU 수행 상태를 나타내는 하드웨어 문맥PC(Program Counter)가 가리키는 부분을 참조PC는 CPU가 다음에 실행할 명령어의 주소를 저장하고 있는 레지스터code, data, stack 의 상태를 저장함CPU를 할당받으면 PC가 프로세스의 code 영역의 어느 한 부분을 가리키고,프로세스가 CPU를 사용하던 상태를 저장한 정보
PC(Program Counter) : 다음에 실행할 명령어의 주소Register : 현재 작업 중인 값들이 저장되어 있음프로세스의 독립적인 메모리 공간 상태를 나타냄
Code 영역 : 실행할 명령어Date 영역 : 전역 변수, 정적 변수Stack 영역 : 함수 호출, 지역 변수 등 실행 흐름과 관련된 정보운영체제가 프로세스를 관리하기 위해 유지하는 정보
PCB(Process Control Block) : 프로세스 ID, 상태, 우선순위 등 관리 정보Kernel Stack : 시스템 콜 처리 중에 사용하는 커널 스택
Running : CPU를 잡고 명령어를 수행 중인 상태Running으로 표현하지 않음Ready : (다른 조건을 모두 만족하고) CPU 할당을 기다리는 상태Blocked(wait, sleep) : CPU를 줘도 당장 명령어를 실행할 수 없는 상태Ready 상태Suspended(Stopped) : 외부적인 이유로 프로세스 수행이 정지된 상태, 강제 종료New : 프로세스가 생성 중인 상ㅌ애Terminated : 수행(execution)이 끝난 상태
Ready, Blocked .. ), Process IdPC), Registercode, data, stack 위치 정보
CPU를 한 프로세스에서 다른 프로세스를 넘겨주는 과정CPU를 뺏기는 프로세스의 상태를 그 프로세스의 PCB에 저장CPU를 새롭게 얻는 프로세스의 상태를 PCB에서 읽어옴 CPU제어권이 사용자 프로세스 → OS로 넘어가는 과정이 문맥교환❌운영체제가 프로세를 효율적으로 관리하고 스케줄링하기 위해 사용하는 대기열
Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합Ready Queue : CPU를 기다리는 모든 프로세스들의 대기열, 실행 가능한 상태Deviced Queue : I/O 장치의 사용을 기다리는 프로세스들의 대기열Job Queue에 등록Ready Queue로 이동Running 상태)Device Queue로 이동Ready Queue로 이동
Ready queue에 보낼지 결정New → Readyready 상태Medium-term 스케줄러가 필요Running 시킬지 결정Suspended(stopped)상태가 추가