프로세스 관리

Noah·2022년 7월 21일
0

OS Study

목록 보기
3/16

용어 개념 정리

  1. Multi Programming System
    • CPU가 하나의 프로세스를 실행하는데 있어서, 대기상태를 가지게 되면 다른 프로세스의 루틴으로 변경한다.
  2. Time Sharing System
    • 각 프로세스마다 시간을 부여해서 지속적으로 변경하는 방법

프로세스 관리

  • Process

    • 실행중에 있는 프로그램
    • 실행중?
      • 메인 메모리에 올라가 있는 상태
    • 프로세스 상태
      • new
        • 프로그램이 메인 메모리에 올라온 상태
      • ready
        • 모든 초기화를 끝내고 실행할 준비가 끝난 상태
      • running
        • 실제 CPU가 실행하고 있는 상태
      • waiting
        • CPU 할당을 기다리고 있는 상태
      • terminated
        • 종료된 상태
      • Time Expired
        • runnning 에서 ready 상태로 변경
  • PCB

    • Process Control Block
      • 프로세스에 대한 모든 정보가 담겨 있음
      • 프로세스에 대한 정보?
        1. 프로세스에 대한 상태 정보
        2. 번지 정보
        3. 다른 레지스터에 대한 정보
        4. MMU
        5. 현재까지 프로세스 사용량
        6. PID : 프로세스 번호
        7. 어떤 파일에 대한 정보
    • OS 안의 Process Management 부분에 들어있다.
  • Queue

    • Job Queue
      • 프로그램이 메인 메모리에 올라가기전에 잠시 대기해야 하기에 사용
      • 어떤 Job을 먼저 시작할 것인지 정하기 위해 Job Scheduler 사용
        • Job Scheduler = Long-term scheduler
          • 메모리가 비어있어야지 올릴 수 있기 때문에 자주 결정지 않기 때문
    • Ready Queue
      • CPU 할당을 받기 위해 대기
      • 대기 순서를 정하기 위해 CPU Scheduler 사용
        • CPU Scheduler = Short-term scheduler
          • I/O를 사용한다던가 Time Expired 발생 시 빠르게 다음 프로세스에게 CPU를 할당하기 위해 매우 자주 사용되기 때문
    • Device Queue
      • HW를 사용하기 위해 대기
      • HW 할당을 위한 대기 순서를 정하기 위해 Device Scheduler 사용

Multi Programming

  • Degree of multiprogramming
    • 메인 메모리에 프로세스가 몇개나 올라가 있는가? 라는 의미
  • I/O-bound vs CPU-bound process
    • I/O-bound
      • 프로세스가 주로 하는 작업이 I/O 관련된 작업
    • CPU-bound
      • 계산을 많이 하는 프로세스
    • OS는 위 두개의 bound를 적절하게 배치하여 CPU, I/O가 놀지 않도록 한다 -> Job Scheduler가 수행
  • Medium-term scheduler
    • Swapping을 결정하는 스케쥴러
      • Swapping
        • 메인 메모리에 올라가있는 프로세스에서 동작이 지속적으로 없을 시 잠시 swap device에 옮겨 놓는다. 이를 swap-out 이라 한다.
        • swap device에 옮겨진 프로세스가 다시 동작할 시, 이 프로세스를 다시 메인메모리에 옮겨야 하는데 옮기는 것을 swap-in 이라 한다.
        • 위 일련의 과정을 swapping이라 명칭한다.
  • Context Switching
    • CPU를 할당받는 프로스세스를 변경하는것을 의미한다.
    • Scheduler(CPU Scheduler)
      • Ready Queue에서 대기중인 프로세스들에 대해서 어느 프로세스를 먼저 CPU 할당할 것인지를 결정하는 것
    • Dispatcher
      • Scheduler가 선택한 프로세스를 실행하도록 PCB 블록의 여러가지 상태 및 MMU 레지스터 값들을 변경하는 것
    • Context Switching Overhead
      • Overhead : 부담
      • 프로세스를 변경하는 과정에서 많은 과정들이 일어나기 때문에 부담이 많이 된다.
      • 최대한 줄어야 함

다음 차시에서 스케줄링 방법들에 대해서 알아보도록 하겠습니다.

profile
BackEnd 개발자가 되기 위해 공부중입니다!

0개의 댓글