5. 프로세스 관리

수원 개발자·2024년 1월 10일
0

Operating System

목록 보기
5/6

Job vs Process

  • 작업 (Job) / 프로그램 (Program)
    -> 실행 할 프로그램 + 데이터 : 컴퓨터 시스템에 실행 요청 전의 상태

  • 프로세스
    -> 실행을 위해 시스템(커널)에 등록된 작업. 시스템 성능 향상을 위해 커널에 의해 관리됨.

정리하자면 디스크에 프로그램이 있다가 메모리에 할당되면 프로세스가 된다.

프로세스의 정의 : 실행중인 프로그램

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

  • PCB
    -> 커널 공간 내에 존재. 각 프로세스들에 대한 정보를 관리한다.

자원의 개념

-> 커널의 관리하에 프로세스에게 할당/반납되는 수동적 개체

분류

  • H/W Resources
    -> Processor, memory, disk, monitor, keyboard, Etc.
  • S/W Resources
    -> Message, signal, files, installed SWs, Etc.

PCB

OS가 프로세스 관리에 필요한 정보 저장. 프로세스 생성 시 생성된다.

관리하는 정보

  • PID : Process Identification Number (프로세스 고유 식별 번호)
  • 스케줄링 정보 : 프로세스 우선순위등과 같은 스케줄링 관련 정보들
  • 프로세스 상태 : 자원 할당, 요청 정보 등
  • 메모리 관리 정보 : Page table, segment table 등
  • 입출력 상태 정보 : 할당 받은 입출력 장치, 파일 등에 대한 정보 등
  • 문맥 저장 영역 : 프로세스의 레지스터 상태를 저장하는 공간 등
  • 계정 정보 : 자원 사용 시간 등을 관리

PCB 정보는 OS 별로 서로 다르다.
PCB 참조 및 갱신 속도는 OS의 성능을 결정 짓는 중요한 요소 중 하나다.

프로세스의 상태

-> 프로세스 - 자원 간의 상호작용에 의해 결정

1. Created State

-> 작업을 커널에 등록. PCB 할당 및 프로세스 생성. 가용 메모리 공간에 따라 Ready or Suspended ready로 간다.

2. Ready State

가용 메모리 공간이 있어서 Ready State로 오게 되었다. 이 때 프로세서 외에 다른 모든 자원을 할당 받은 상태다. 프로세서 (CPU) 할당 대기 상태며 즉시 실행 가능 상태다. 할당 받으면 running state로 간다. 이를 dispatch 되었다고 한다.

3. Running State

이 상태는 프로세서와 필요한 자원을 모두 할당 받은 상태다.
프로세서를 뺏기면 preemption이라고 하고 ready 상태로 돌아간다.
혹은 I/O등 자원 할당 요청이 되면 작업이 block이 되며 asleep 상태가 된다.

4. Blocked/Asleep State

프로세서 외에 다른 자원을 기다리는 상태다. 상태가 되면 다시 ready 상태가 된다.

2-2. Suspended (지연된) State

메모리를 할당 받지 못한 (빼앗긴) 상태다.
이를 Memory Image로 만든다. 이 Memory image를 swap device에 보관해둔다. 이렇게 swap device에 저장되는 상태는 swap-out이라고 하고 이가 복구되는 것은 swap-in이라고 한다.

5. Terminated/Zombie State

프로세스 수행이 끝난 상태다. 모든 자원이 반납된 후, 커널 내에 일부 PCB 정보만 남아 있는 상태다. 이후 프로세스 관리를 위해 정보를 수집한다.

인터럽트 (Interrupt)

-> 예상치 못한, 외부에서 발생한 이벤트.

인터럽트의 종류

  • I/O interrupt
  • Clock interrupt
  • Console interrupt
  • Program check interrupt
  • Machine check interrupt
  • Inter-process interrupt
  • System call interrupt

인터럽트 처리 과정

Context Switching (문맥 교환)

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

0개의 댓글