[OS] Process Management

연꽃·2021년 12월 6일
0

Computer Science

목록 보기
3/5

요약 정리

프로세스(Process)란?

  • 실행을 위해 시스템(커널)에 등록되어 커널의 관리 하에 있는 작업

Process Control Block

  • os가 프로세스 관리에 필요한 정보 저장
  • 프로세스 생성시, 생성 됨

프로세스의 상태

  • 프로세스와 자원 간의 상호작용에 의해 결정
  • Running, Ready, Blocked, asleep, Suspended ready, Suspended block

인터럽트

  • 예상치 못한, 외부에서 발생한 이벤트

Context Switching(문맥교환)

  • Context : 프로세스와 관련된 정보들의 집합
  • Context switching : 실행중인 프로세스의 context를 저장하고, 앞으로 실행 할 프로세스의 context를 복구하는 일

1. 프로세스

1.1 Job vs Process

  • 작업(Job) : 실행할 프로그램과 데이터, 컴퓨터 시스템에 실행 요청 전의 상태
  • 프로세스(Process) : 실행을 위해 시스템에 등록된 작업, 시스템 성능 향상을 위해 커널에 의해 관리 됨. 메모리를 할당 받은 상태

1.2 프로세스의 정의

  • 실행중인 프로그램으로 커널에 등록되거 커널의 관리하에 있는 작업
  • 각종 자원들을 요청하고 할당 받을 수 있는 개체
  • 프로세스 관리 블록(PCB)을 할당받은 개체
  • 능동적인 개체

1.3 Process Control Block(PCB)

  • os가 프로세스 관리에 필요한 정보 저장
  • 프로세스 생성 시, 생성 됨
  • 당연하게 커널에서 생성된다.
  • PCB의 참조 갱신 속도가 결국 OS의 성능과 직결된다.

1.4 자원의 개념

  • 자원은 커널의 관리 하에 프로세스에게 관리/할당 되는 수동적 개체이다. 즉, 프로세스의 자원을 관리/할당 하는 녀석은 커널이다.
  • 자원의 분류
    - H/W resources
    Processor, memory, disk, monitor, keyboard, Etc.
    - S/W resources
    Message, signal, files, installed SWs, Etc.

2. 프로세스의 상태(Process States)

2.1 프로세스 상태 및 특성

2.2 Process State Transition Diagram

2.3 Created State

  • 작업(Job)을 커널에 등록
  • PCB 할당 및 프로세스 생성
  • 이 상태에서 결국 ready 혹은 suspended ready 두 가지로만 갈 수 있는데 이것의 차이는 메모리 할당의 유무이다.

2.4 Ready State

  • 프로세서(ex.CPU) 외 다른 모든 자원을 할당 받은 상태:프로세서 할당 대기 상태, 즉시 실행 가능 상태
  • 프로세서 할당 대기 상태
  • Dispatch 또는 Scedule을 통해 running state로 변경된다.

2.5 Running State

  • 프로세서와 필요한 자원을 모두 할당 받은 상태
  • Preemption : Running State -> Ready State
  • Block/sleep : Running State -> asleep State

2.6 Blocked/Asleep State

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

2.7 Suspended State

  • 메모리를 할당 받지 못한 상태
  • 기존에 수행되던 것을 메모리 이미지로 저장해 놓는다. 이어서 실행하기 위해서
  • 메모리 이미지를 swap device(하드디스크와 비슷한 것이라고 생각하기)에 보관

2.8 Terminated/Zombie State

  • 프로세스 수행이 끝난 상태
  • 모든 자원을 반납 후, 커널 내에 일부 PCB 정보만 남아있는 상태
  • 이후 프로세스 관리를 위해, 정보를 수집하기 위해 이 상태가 있는 것이다.
  • 비슷한 작업을 할 때, 더 효율적으로 할 수 있기 때문에

3. 인터럽트

3.1 인터럽트란?

  • 예상치 못한, 외부에서 발생한 이벤트

3.2 인터럽트 처리 과정

4. Context Switcing(문맥 교환)

4.1 Context란?

  • 프로세스와 관련된 정보들의 집합
  • Context saving: 현재 프로세스의 Register context를 저장하는 작업, PCB에 저장한다.
  • Context restoring : Register context를 프로세스로 복구하는 작업
  • Context switching: 실행중인 프로세스의 context를 저장하고, 앞으로 실행할 프로세스의 context를 복구하는 일. 커널의 개입으로 이루어진다. Context saving과 Context restoring을 합친 것.

4.2 Context Switch Overhead

  • Context switching에 소요되는 비용. 이것은 OS의 성능에 큰 영향을 준다.
  • 그렇기 때문에 불필요한 Context switching을 줄이는 것이 중요하다.
  • 예를 들어, 쓰레드를 활용해서 Context switching를 줄인다.
    참고 : 운영체제 강의(김덕수 교수님)
profile
우물에서 자라나는 중

0개의 댓글