Home [OS] 운영체제 - 프로세스 관리 2
Post
Cancel

[OS] 운영체제 - 프로세스 관리 2

운영체제 - 프로세스 관리 2

프로세스의 개념

Context

  • 프로세스의 문맥
  • CPU 수행 상태를 나타내는 하드웨어 문맥
    • 프로그램 카운터
    • 각종 레지스터
  • 프로세스의 주소 공간
    • code, data, stack
  • 프로세스 관련 커널 자료 구조
    • PCB (Process Control Block)
    • Kernel Stack

프로세스의 상태 (State)

  • Running : CPU를 잡고 instruction을 수행 중인 상태
    • 타이머 인터럽트 시 Ready로 넘어감, I/O 혹은 wait 상태면 Blocked로 넘어감, exit(종료) 시 Terminated로 넘어감.
  • Ready : CPU를 기다리는 상태 (메모리 등 다른 조건을 모두 만족하고 나서), 메모리에 올라가 있다.
  • Blocked (wait, sleep)
    • CPU를 당장 주어도 instruction이 불가한 상태
    • 프로세스 자신이 요청한 이벤트(I/O 등)가 즉시 만족되지 않아 이를 기다리는 상태
    • 공유 데이터의 사용을 기다리는 상태
  • New : 프로세스가 생성 중인 상태
  • Terminated : 수행(execution)이 끝난 상태, 종료 중인 상태

PCB

  • 운영체제가 각 프로세스를 관리하기 위해 프로세스 당 유지하는 정보
  • 운영체제 커널(커널의 메모리)에 프로세스 당 하나씩 가지고 있다.

구성

  1. OS가 관리 상 사용하는 정보
    • Process state, Process ID, Scheduling information, Priority
  2. CPU 수행 관련 하드웨어 값
    • Program counter, Registers
  3. 메모리 관련 값
    • Code, Data, Stack의 위치 정보
  4. 파일 관련 값
    • Open file descriptors 등..

문맥 교환 (Context Switch)

  • CPU를 한 프로세스에서 다른 프로세스로 넘겨주는 과정

CPU 넘기는 과정

  • CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 저장한다. (저장)
  • CPU를 새롭게 얻는 프로세스의 상태를 PCB에서 읽어온다. (복원)

문맥 교환 여부 판단

  • 시스템콜이나 인터럽트 발생 시 반드시 문맥 교환이 일어나는 것은 아니다.
    • 프로세스 A에서 커널 모드로 바뀌는 것을 문맥 교환으로 볼 수 없다. 커널에서 다시 프로세스 A로 넘어간다면 문맥 교환은 전혀 발생하지 않는다.
    • 이러한 경우에 문맥 교환 정도는 아닐지라도 Context의 일부는 PCB에 저장해야 한다.
  • 프로세스 A에서 프로세스 B로 넘어가는 경우, 문맥 교환이 일어났다고 볼 수 있다.
    • 문맥 교환은 부담이 크다. (cache memory flush 같은 작업들 때문에)

프로세스 스케줄링 위한 큐

  • 프로세스들은 각 큐들을 오가면서 수행된다.

Job Queue

  • 현재 시스템 내에 있는 모든 프로세스들의 집합

Ready Queue

  • 현재 메모리 내에 있으면서 CPU를 잡아 실행되기만을 기다리는 프로세스들의 집합

Device Queues

  • I/O Device의 처리를 기다리는 프로세스의 집합
This post is licensed under younghwani by the author.

[OS] 운영체제 - 프로세스 관리 1

[OS] 운영체제 - 프로세스 관리 3

Comments powered by Disqus.