프로세스 관리 (Process Management)

Woosung Kim·2022년 1월 10일
0

프로세스 관리

프로세스 관리란 운영체제가 CPU 자원을 각 프로세스에게 효과적으로 나누어 주는 것이다.

프로세스 상태 (Process State)

  • New : 프로그램이 메인 메모리에 올라간 상태
  • Ready : 프로그램이 메모리에 올라와 모든 초기화를 끝내고 실행할 준비가 되어있는 상태
  • Running : CPU에 의해 프로세스가 실행되는 상태
  • Waiting : 프로세스가 진행 중일 때 입출력장치와 같은 어떤 이벤트가 발생하기를 기다리는 상태
    (작업이 끝나면 다시 Ready상태로 돌아감)
  • Terminated : 프로세스가 종료된 상태
    (프로그램이 마무리 되지 않고 메모리에 남아있는 상태를 Zombie 상태라고 함)

Waiting vs Ready

  • waiting 상태 : 어떠한 이벤트가 발생하기를 기다리는 상태
  • ready 상태 : CPU에게 할당되기를 기다리는 상태

PCB (Process Control Block)

프로세스 제어 블록(PCB)은 특정 프로세스와 연관된 여러 정보들을 담고 있다.

  • 프로세스를 관리하기 위해 정보를 저장하는 커널의 자료구조(Data 영역에 존재)
  • Process 상태, PC(다음에 수행할 명령어의 주소), CPU 레지스터, CPU 스케줄링 정보, 메모리 관리 정보 등을 저장
  • 문맥 교환 시에 진행 사항을 PCB에 저장하고 CPU 반환
    -> CPU를 할당받으면 PCB에 저장되어 있는 내용을 불러와 이전에 종료되었던 시점부터 다시 수행

프로세스 스케줄링 (Process Scheduling)

스케줄링 큐 (Scheduling Queue)

  • Job Queue
    • 시스템 내에 있는 모든 프로세스들
  • Ready Queue
    • CPU에게 할당 받을 준비가 되어있는(Ready) 프로세스들
  • Device Queue
    • 특정 입출력 장치를 대기하는 프로세스들

스케줄러 (Scheduler)

  • Long-Term Scheduler
    • = Job Scheduler
    • Degree of Multiprogramming을 제어하고, CPU-bound Process와 I/O-bound Process의 비율을 제어한다.
      • Degree of Multiprogramming: 현재 메모리에 적재 되어있는 프로세스의 수
      • CPU-bound Process: 해당 프로세스의 작업이 I/O(입출력) 많은 프로세스. (ex. word, 한글)
      • I/O-bound Process: 해당 프로세스의 작업이 CPU작업이 많은 프로세스. (ex. 일기예보)
  • Short-Term Scheduler
    • = CPU Scheduler
  • Medium-Term Scheduler
    • Swapping : 메인메모리 ←→ 하드 디스크
profile
개발하는 강아지

0개의 댓글