[KOCW] 운영체제, 3. 프로세스 관리(2)

임창묵·2022년 6월 15일
0

Computer science

목록 보기
7/11
post-thumbnail

KOCW > 이화여자대학교 반효경 교수님 > 운영체제 > 3. 프로세스 관리(2)

3. 프로세스 관리(2)

프로세스의 개념

"Process is a program in execution"

  • 프로세스의 문맥(context): 과거 이력과 상태
    1. CPU 수행 상태를 나타내는 하드웨어 문맥
      • Program Counter
      • 각종 register
    2. 프로세스의 주소 공간
      • code, data, stack
    3. 프로세스 관련 커널 자료 구조
      • PCB(Process Control Block)
      • Kernel stack

프로세스의 상태

  • 프로세스는 상태(state)가 변경되며 수행된다
    • running: CPU를 잡고 instruction을 수행 중인 상태
    • ready: (메모리 등 다른 조건들을 모두 만족하고) CPU를 기다리는 상태
    • blocked: CPU를 주어도 당장 instruction을 수행할 수 없는 상태
      • Process 자신이 요청한 event(예를 들어 I/O)가 즉시 만족되지 않아 이를 기다리는 상태
    • new: 프로세스가 생성 중인 상태
    • terminated: 수행(execution)이 끝난 상태

Process Control Block(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를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 저장
    • CPU를 새롭게 얻는 프로세스의 상태를 PCB에서 읽어옴
  • System call이나 Interrupt 발생시 반드시 context switch가 일어나는 것은 아님
    • 예를 들어, 사용자 프로세스 A가 실행 중에 Interrupt가 발생 후 다시 사용자 프로세스 A를 실행하는 경우 문맥 교환 X.
      • PCB에 저장하는 과정이 없어서 오버 헤드의 부담이 훨씬 작음(cache memory flush가 없기 때문)

프로세스를 스케줄링하기 위한 큐

  • Job queue: 현재 시스템 내에 있는 모든 프로세스의 집합
  • Ready queue: 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합
  • Device queue: I/O device의 처리를 기다리는 프로세스의 집합

0개의 댓글