오뚝이개발자

[OS]CH3. 프로세스 관리 본문

CS 기초/OS

[OS]CH3. 프로세스 관리

땅어 2020. 5. 27. 22:32
728x90
300x250
  • 프로세스

    • "실행 중인 프로그램"

    • 커널에 등록되고 커널의 관리 하에 있는 작업

  • PCB(Process Control Block)

    • Def) OS가 프로세스 관리에 필요한 정보 저장하는 블록

    • 프로세스 생성 시, 생성됨

    • kernel space에 저장

     

kernel space에 저장되어 있는 PCB(출처:HPC Lab)

  • 프로세스의 상태(Process state)

    • 프로세스-자원 간의 상호작용에 의해 결정

     

자원에 따른 프로세스 상태(출처:HPC Lab)
Process state transition diagram(출처:HPC Lab)

  • Created state

    • 작업(Job)을 커널에 등록

    • PCB 할당 및 프로세스 생성

    • 가용 메모리 공간 체크(있으면->ready, 없으면->suspended ready)

  • Ready state

    • 프로세서 할당 대기 상태(프로세서 이외의 모든 자원 할당 O)

  • Running state

    • 프로세서와 필요한 자원 모두 할당받은 상태

    • Preemption

      • running->ready

      • 프로세서 스케줄링(e.g, time-out, priority changes)

    • Block/sleep

      • running->asleep

      • I/O 등 자원 할당 요청

  • Blocked/Asleep state

    • 프로세서 외의 자원 할당 대기 상태

    • Wake-up

      • asleep->ready

      • 예를 들어, I/O가 끝나거나 하면 transition

  • Suspended state

    • 메모리를 할당 받지 못한(빼앗긴) 상태

    • memory image를 swap device에 저장

  • Terminated state

    • 프로세스 수행 끝난 상태

    • 모든 자원 반납, 커널 내에 일부 PCB정보만 남아 있는 상태

      • 이후 프로세스 관리를 위해 정보 수집

  • 인터럽트(Interrupt)

    • 예상치 못한, 외부에서 발생한 이벤트(unexpected, external events)

     

인터럽트 처리(출처:HPC Lab)
인터럽트 처리 과정(출처:HPC Lab)

  • Context switching

    • Context

      • 프로세스와 관련된 정보들의 집합

        • CPU register=>in CPU

        • Code, data, stack, PCB=>in memory

    • Context saving

      • 현재 프로세스의 register context를 memory에 저장하는 작업

    • Context restoring

      • register context를 프로세스로 복구하는 작업

    • Context switching(saving+restoring)

      • 실행 중인 프로세스의 context 저장하고, 실행할 프로세스 context 복구하는 일

  • Context switch overhead

    • context switching에 소요되는 비용(OS의 성능에 큰 영향 미침)

    • 불필요한 context switch 줄이는 것이 중요(e.g, 쓰레드 사용 등)

728x90
300x250
Comments