Chapter3. 프로세스 관리

Date:     Updated:

카테고리:

태그:

유튜브에 있는 김덕수 교수님의 Operating System 강의를 듣고 정리한 내용입니다.
중간에 등장하는 ppt 내용들은 모두 강의자료를 캡처한 것입니다.


🔧 프로세스의 정의

3-1

Job vs Process

  • 작업(Job) or 프로그램(Program)
    • 실행할 프로그램 + 데이터
    • 컴퓨터 시스템에 실행 요청 전의 상태
    • 즉, 커널에 들어가기 전 디스크에 존재하는 상태
  • 프로세스 (Process)
    • 실행을 위해 시스템(커널)에 등록된 작업
    • 커널에 의해 관리됨


Process & Resource

  • Process : 실행중인 프로그램
    • 커널에 등록되고 커널에 의해 관리됨
    • 각종 자원들을 요청하고 할당, 반납하는 능동적인 개체(active entity)
    • 프로세스 관리 블록(PCB)를 할당받음
  • Resource : 자원
    • 커널의 관리 하에 프로세스에게 할당/반납되는 수동적 개체(passive entity)
    • HW resource: processor, memory, disk, …
    • SW resource: message, files, signal, …


🔧 프로세스 관리 블록 (PCB)

3-2

  • Process Control Block(PCB)
    • kernel space 내에 존재 (커널이 관리)
    • OS가 프로세스 관리에 필요한 정보 저장
    • 프로세스 생성시 생성됨
    • PCB 정보는 OS마다 다름
    • PCB 참조 및 갱신 속도는 OS성능을 결정 짓는 중요한 요소


PCB가 관리하는 정보

  • PID (Process Identification number)
    • 프로세스 고유 식별 번호
  • 스케줄링 정보
    • 프로세스 우선순위 등 스케줄링 관련 정보
  • 프로세스 상태
    • 자원 할당, 요청 정보 등
  • 메모리 관리 정보
    • page table, segment table 등
  • 입출력 상태 정보
  • Context save area
    • 프로세스의 레지스터 상태 등
  • 계정 정보
    • 자원 사용 시간 등을 관리


🔧 프로세스의 상태 (Process states)

Process & Resource 간 상호작용에 의해 결정

3-3

3-0


Created State

3-4

  • 작업(job)을 커널에 등록
  • PCB 할당 및 프로세스 생성
  • 가용 메모리 공간 체크
    • 메모리 할당 가능 → ready
    • 메모리 할당 불가 → suspended ready


Ready State

3-5

  • 프로세서 외에 필요한 모든 자원을 할당받은 상태
    • 프로세서 할당 대기 상태
    • 즉시 실행 가능
  • Dispatch (or Schedule) : 프로세서 할당
    • ready state → running state


Running State

3-6

  • 프로세서와 필요한 자원을 모두 할당받은 상태
  • Preemption
    • running state → ready state
    • by 프로세서 스케줄링
    • ex) time-out, priority changes
  • Block or Sleep
    • running state → asleep state
    • I/O 등 자원 할당 요청 (인터럽트)


Blocked/asleep State

3-7

  • 프로세서 외에 다른 자원을 기다리는 상태
    • 자원 할당은 System call에 의해 이루어짐
  • Wake-up
    • asleep → ready state
    • 정책에 따라 바로 running으로 갈 수 있지만 보통 ready로 감
    • (언제까지 기다려야할지 모르니까..)


Suspended State

3-8

  • 메모리를 할당받지 못한 상태 (빼앗긴 상태)
  • Memory Image(현재 정보)를 swap device에 보관
    • swap device: 프로그램 정보 저장을 위한 특별한 파일 시스템
  • 커널 or 사용자에 의해 발생


Terminated/zombie State

3-9

  • 프로세스 수행이 끝난 상태
  • 모든 자원 반납 후, 일부 PCB 정보만 남아있는 상태
    • 프로세스 관리를 위해 정보 수집 필요
  • 커널이 PCB정보 수집 이후 완전히 삭제


프로세스 관리를 위한 자료구조 (Queue)

3-10

  • 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


인터럽트 처리 과정

3-11


3-12

  • 인터럽트가 발생하면 프로세스가 중단됨
  • 이때 프로그램의 상태 정보를 저장하고, 프로세서가 다시 할당되면 정보를 불러옴
  • Context Switching (문맥 교환)


🔧 Context Switching

  • Context
    • 프로세스와 관련된 정보들의 집합
    • CPU register context → in CPU
    • Code & data, stack, PCB → in memory
  • Context saving
    • 현재 프로세스의 register context를 저장하는 작업
  • Context restoring
    • resister context를 프로세스로 복구하는 작업


Context Switching (Process switching)

  • 실행 중인 프로세스의 context를 저장하고,
  • 앞으로 실행할 프로세스의 context를 복구하는 작업
  • 커널의 개입으로 이루어짐


Context switch overhead

  • 수많은 프로세스를 시도 때도 없이 백업&로드, 백업&로드, …
  • OS 성능에 큰 영향을 줌
  • 불필요한 Context switching을 줄이는 것이 중요
  • ex) thread 사용, …


맨 위로 이동하기

OS 카테고리 내 다른 글 보러가기

댓글 남기기