Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Skipalong's tistory

240308 TIL - 프로세스의 상태 본문

TIL

240308 TIL - 프로세스의 상태

Skipalong 2024. 3. 9. 00:45

오늘은 프로세스의 상태에 대해 준비하고 발표했다 그 내용을 정리해보겠다.

생성 상태

  • 프로세스가 생성되어 시스템에 등록되는 초기 단계
  • 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 등 여러 명령어로 프로세스를 종료할 때 발생함

오늘은 이렇게 프로세스의 여러 상태에 대해 정리를 해보았는데 프로세스에 대한 전반적인 이해가 좀 더 필요할 것같다.