정보보안

프로세스 개요

codename_JEN 2023. 5. 10. 21:46

프로세스를 생성하게 되면 물리적인 메모리에 직접 할당하는 것이 x 가상메모리에 할당

user area: 사용자 프로세스의 코드와 데이터 자료구조가 위치

kernel area: 커널(os)이 동작하기 위한 코드와 데이터 전역적인 자료구조가 위치

 

User area Kernel area

프로세스가 생성되면 커널/운영체제는 개별 프로세스별로 관리 정보를 담고 있는 프로세스제어블럭(PCB)을 생성

- 프로세스 상태: 현재 상태정보 저장<< cpu 스케줄링

- 프로세스 번호: 프로세스 식별 번호

- 프로그램 카운터(PC): 문맥교환이 발생할 경우 다음에 실행할 위치값 저장

- 레지스터(고속의 저장 장치): 문맥교환이 발생할 경우 현재 프로세스의 실행 상태 정보 저장

- 메모리 정보

 

🔽 프로세스 상태 전이도

프로세스 상태와 상태전이

 

dispach: cpu 스케줄러에 의해서 cpu를 할당하고 있는 상태

running(실행): 유저모드와 커널모드를 반복하면서 프로그램이 동작하게 됨

running 상태에 있는 프로세스를 내부적으로 살펴보면 2가지 모드로 동작함 => 유저모드, 커널모드

유저모드: 사용자 코드 실행 ---(system call 발생)---> 커널모드: os 실행

system call: 커널에게 해당 자원을 사용한다고 요청하는 것

blocking system call: 대기모드로 빠지게 함 -> I/O 함수 발생(매우 느린 연산 함)

wake up: 프로세스가 자원을 할당받는 상태.

timer runout: 실행중인 프로세스가 제한된 시간을 모두 소모해 cpu 점유를 빼앗기는 상태

Context Switching(문맥교환): 수행 중인 프로세스가 새로운 프로세스에게 cpu를 반환하고 빠져나오는 상황