프로세스 상태와 계층 구조

song·2023년 5월 3일

프로세스 상태

  • 생성 상태 (new)
    • 이제 막 메모리에 적재되어 PCB를 할당 받은 상태
    • 준비가 완료되었다면 준비 상태가 되어 할당 기다림

  • 준비 상태 (ready)
    • 바로 CPU를 할당 받아 실행할 수 있지만, 차례를 기다리는 상태
    • 자기 차례가 되면 CPU를 할당 받아서 실행 상태됨 (준비 상태에서 실행 상태가 되는 걸 디스패치(dispatch)라고 함)

  • 실행 상태 (running)
    • CPU를 할당 받아 실행 중인 상태
    • 할당된 시간 모두 사용하면(타이머 인터럽트 발생) 준비 상태가 됨
    • 실행 도중 입출력장치를 사용하면 입출력 작업이 끝날 때까지 대기 상태가 됨

  • 대기 상태 (wait)
    • 프로세스가 실행 도중 입출력장치를 사용하는 경우 대기 상태가 됨
      (입출력 작업은 CPU에 비해 느리기 때문에 계속 입출력 작업을 기다릴 수 없기에 대기 상태가 되어 기다림)
    • 입출력 작업이 끝나면 준비 상태가 됨

  • 종료 상태 (terminated)
    • 프로세스가 종류된 상태
    • PCB, 프로세스의 메모리 영역 정리


프로세스 계층 구조

프로세스는 실행 도중 시스템 호출을 통해 다른 프로세스를 생성할 수 있음

부모 프로세스: 새 프로세스를 생성한 프로세스
자식 프로세스: 부모 프로세스에 의해 생성된 프로세스

  • 부모 프로세스와 자식 프로세스는 별개의 프로세스라서 각각 다른 PID를 가짐
  • 자식 프로세스는 또 다른 자식 프로세스를 생성가능
  • 즉, 프로세스는 계층적인 구조 형성 가능

프로세스 생성 기법

  • 부모 프로세스는 fork 시스템 호출을 통해 자신의 복사본을 자식 프로세스로 생성
  • 자식 프로세스는 exec 시스템 호출을 통해 자신의 메모리 공간을 다른 프로그램으로 교체


  • fork 시스템 호출
    • 복사본(자식 프로세스) 생성
    • 부모 프로세스의 자원 상속 (부모 프로세스에게 상속 받았지만 PID, 저장된 메모리 위치는 다름)


  • exec 시스템 호출
    • 메모리 공간을 새로운 프로그램으로 덮어쓰기
    • 코드 / 데이터 영역은 실행할 프로그램 내용으로 바뀌고 나머지 영역은 초기화


요약

<출처>
"혼자 공부하는 컴퓨터구조+운영체제".강민철.https://www.youtube.com/playlist?list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl (2023.05.03)


책과 강의를 통해 학습한 내용을 요약 정리했습니다.
profile
인간은 적응의 동물

0개의 댓글