Skipalong's tistory
240308 TIL - 프로세스의 상태 본문
오늘은 프로세스의 상태에 대해 준비하고 발표했다 그 내용을 정리해보겠다.
생성 상태
- 프로세스가 생성되어 시스템에 등록되는 초기 단계
- fork() 또는 exec() 함수를 통해 생성
- fork()
- 부모 프로세스의 주소공간을 그대로 복사, 새로운 자식 프로세스를 생성하는 함수
- 주소 공간만 복사, 부모 프로세스의 비동기 작업 등을 상속 X
- exec()
- 새롭게 프로세스를 생성
- 운영체제는 필요한 자원과 메모리 공간을 할당
- PCB가 할당됨
- PCB
- 하나의 프로세스가 시스템에 존재할 때의 모습
- 프로세스에 대한 모든 것을 표현하는 것이 PCB
- 운영체제가 프로세스를 관리한다는 것은 PCB의 생성, 수정, 리스트 연결, 지우는 등의 행위
- PCB 작업은 매우 빈번한 일이라 PCB는 메모리에 저장
- PID, Status, Priority, PC 값, 메모리 포인터
- 문맥 데이터 : 문맥 교환시 CPU 레지스터 값을 저장하는 영역
- 할당받은 자원에 대한 목록 - 프로세스가 자원의 소유자기 때문
- 계정 정보 : 멀티 유저 시스템의 경우 필요
- 입출력 정보
대기 상태
- CPU를 할당 받기 위해 기다리고 있는 상태. CPU만 주어지면 바로 실행할 준비가 된 상태
대기 중단 상태
- 생성된 프로세스가 바로 메모리를 받지 못할 때, 준비 또는 실행 상태에서 메모리를 잃게 될 때
- 충분한 메모리 공간의 확보를 위해 준비 상태의 프로세스를 보류시키는 경우
- 메모리 부족으로 일시 중단된 상태
실행 상태
- CPU 소유권과 메모리를 할당받고 인스트럭션을 수행 중인 상태(CPU burst)
중단 상태
- 프로세스가 실행되다가 입출력 처리를 요청하거나, 바로 확보될 수 없는 자원을 요청하면 CPU를 양도하고 요청한 일이 완료되기를 기다리며 프로세스가 차단된 상태
일시 중단 상태
- 중단된 상태에서 프로세스가 실행되려고 했지만 메모리 부족으로 일시 중단된 상태
- 대기 중단 상태와 유사
종료 상태
- 메모리와 CPU 소유권을 모두 놓고 가는 상태
- 부모 프로세스가 자식 프로세스를 강제시키는 비자발적 종료(abort)로 종료되는 경우도 있음
- 자식 프로세스에 할당된 자원의 한계치를 넘어서거나 부모 프로세스가 종료되거나 사용자가 process.kill 등 여러 명령어로 프로세스를 종료할 때 발생함
오늘은 이렇게 프로세스의 여러 상태에 대해 정리를 해보았는데 프로세스에 대한 전반적인 이해가 좀 더 필요할 것같다.
'TIL' 카테고리의 다른 글
240312 TIL - 데이터베이스의 속성과 도메인 (0) | 2024.03.13 |
---|---|
240311 TIL - 공유자원과 임계영역 (0) | 2024.03.12 |
240307 TIL - 가상메모리 (0) | 2024.03.08 |
240306 TIL - SEO와 Https (0) | 2024.03.07 |
240305 TIL - ARP/RARP, 홉바이홉 통신 (0) | 2024.03.06 |