1. 프로세스 관리 (Process Management)

김민우·2022년 5월 2일
1

운영체제

목록 보기
2/14

- Job vs. Process

- Job (작업) / Program (프로그램)
	- 실행 할 프로그램 + 데이터
	- 컴퓨터 시스템에 실행 요청 전의 상태

- 프로세스
	- 실행을 위한 시스템(커널)에 등록된 작업
    - 시스템 성능 향상을 위해 커널에 의해 관리 됨


- 프로세스의 정의

  1. 실행중인 프로그램
    - 커널에 등록되고 커널의 관리하에 있는 작업
    - 각종 자원들을 요청하고 할당 받을 수 있는 개체
    - 프로세스 관리 블록(PCB)을 할당 받은 개체
    - 능동적인 개체(active entity)
    - 실행 중에 각종 자원을 요구, 할당, 반납하며 진행

※ 프로세스의 종류

  1. Process Control Black(PCB)
    • OS가 프로세스 관리에 필요한 정보를 메모리에 저장
      - 프로세스 생성 시 PCB가 생성 됨
    • 커널 공간 (Kernel space) 내에 존재
    • 각 프로세스들에 대한 정보를 관리

※ PCB가 관리하는 정보

  • PID(Process Identification Number)
    - 프로세스 고유 식별 번호
  • 스케줄링 정보
    - 프로세스 우선순위 등과 같은 스케줄링 관련 정보들
  • 프로세스 상태
    - 자원 할당, 요청 정보 등
  • 메모리 관리 정보
    - Page table, segment table 등
  • 입출력 상태 정보
    - 할당 받은 입출력 장치, 파일 등에 대한 정보 등
  • 문맥 저장 영역 (Context save area)
    - 프로세스의 레지스터 상태를 저장하는 공간 등
  • 계정 정보
    - 자원 사용 시간 등을 관리


    ▶ PCB 정보는 OS 별로 서로 다름
    ▶ PCB 참조 및 갱신 속도는 OS의 성능을 결정 짓는 중요한 요소 중 하나

- 프로세스의 상태

※ 프로세스의 상태 (Process States)

  • 프로세스의 상태는 프로세스 <-> 자원 간의 상호작용에 의해 결정
  • 프로세스 상태 및 특성

- Process State Transition Diagram

  1. Created State
    - 작업(Job)을 커널에 등록
    • PCB 할당 및 프로세스 생성
    • 커널
      • 가용 메모리 공간 체크 후 프로세스 상태 전이 (Ready or Suspended Ready)
        • Ready : 메모리가 있을 경우
        • Suspended Ready : 메모리가 없을 경우

- Ready, Running, Blocked / Asleep State

- Ready State

  • 프로세서 외에 다른 모든 자원을 할당 받은 상태
    - 프로세서 할당 대기 상태 / 즉시 실행 가능 상태
    - Dispatch (or Schedule) : Ready state -> running state


- Running State

  • 프로세서와 필요한 자원을 모두 할당 받은 상태
    -> Preemption (선점)
  • Running state -> ready states
    - 프로세서 스케줄링 (ex. time-out, prioirty changes)
    * Block / Sleep
    - Running state -> asleep state
    - I/O 등 자원 할당 요청

- Blocked/Asleep State

  • 프로세서 외에 다른 자원을 기다리는 상태
    - 자원 할당은 System call에 의해 이루어짐
  • Wake-up
    - Asleep state -> ready state


  1. Suspended State
    • 메모리를 할당 받지 못한(빼앗긴) 상태
      - Memory image를 Swap device1에 보관
      - 커널 또는 사용자에 의해 발생
    • Swap-out(suspended) : 보조기억장치로 내보내는 과정
    • Swap-in(resume) : 주기억장치로 불러오는 과정
  1. Terminated / Zombie State
    • 프로세스 수행이 끝난 상태
    • 모든 자원 반납 후, 커널 내에 일부 PCB 정보만 남아 있는 상태
      - 이후 효율적인 프로세스 관리를 위해 정보를 수집

※ 프로세스 관리를 위한 자료 구조

  • Ready Queue, I/O Queue, Device Queue 등 자원에 따라 각각 관리됨

- Interrupt (인터럽트)

  • 예상치 못한, 외부에서 발생한 이벤트 (Unexpected, external events)
  • 인터럽트의 종류
    - I/O interrupt, Clock interrupt, Console interrupt, Program check interrupt, Machine check interrupt, Inter-process interrupt, System call Interrupt 등

    - 인터럽트 처리 과정



Context Switching (문맥 교환)

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

    • CPU register context -> CPU에 저장
    • Code & data, Stack, PCB -> Memory에 저장
  • Context saving
    - 현재 프로세스의 Register context를 저장하는 작업

  • Context restoring
    - Register context를 프로세스로 복구하는 작업

  • Context switching (Process switching)
    - 실행 중인 프로세스의 context를 저장하고, 앞으로 실행 할 프로세스의 context를 복구하는 일

    • 커널의 개입으로 이루어짐

- Context Switch Overhead

  • Context switching에 소요되는 비용
    - OS마다 다르며, OS의 성능에 큰 영향을 줌
    -> 불필요한 Context switching을 줄이는 것이 중요
    ex) 스레드(Thread) 사용 등

- 자원(Resource)의 개념

  • 커널의 관리 하에 프로세스에게 할당/반납 되는 수동적 개체(passive entity)
    - 자원의 분류
    • H/W resources : Processor, memory, disk, monitor...
    • S/W resources : Message, signal, files, installed SWs...

1. Swap device : 프로그램 정보 저장을 위한 특별한 파일 시스템, 일종의 하드디스크와 같은 형태
profile
Pay it forward.

0개의 댓글