운영체제 강의 - Process

이진호·2022년 5월 21일
0

운영체제 이론

목록 보기
3/9

프로세스

  • 작업 (Job) / 프로그램 (Program)
    - 실행 할 프로그램 + 데이터
    - 컴퓨터 시스템에 실행 요청 전인 상태 (= 현재 디스크에 존재)
  • 프로세스 (Process)
    - 실행을 위해 시스템(커널)에 등록된 작업
    - 시스템 성능 향상을 위해 커널에 의해 관리 됨

프로세스의 종류

자원의 개념

  • 커널의 관리 하에 프로세스에게 할당/반납 되는 수동적 개체
  • 자원의 분류
    - H/W resources
    Processor, memory, disk, monitor, etc
    - S/W resources
    Message, signal, files, installed SWs, etc

Process Control Block(PCB)

  • OS가 프로세스 관리에 필요한 정보 저장
  • 프로세스 생성 시, 생성 됨

PCB가 관리하는 정보

프로세스의 상태 (Process States)

  • 자원 간의 상호작용에 의해 결정
  • 프로세스 상태 및 특성

Process State Transition Diagram

Created State

  • 작업(Job)을 커널에 등록
  • PCB 할당 및 프로세스 생성
  • 커널
    - 가용 메모리 공간 체크 및 프로세스 상태 전이
    • Ready or Suspended ready

Ready State

  • 프로세서 외에 다른 모든 자원을 할당 받은 상태
    - 프로세서 할당 대기 상태
    - 즉시 실행 가능 상태
  • Dispatch (or Schedule)
    - Ready state -> running state

Running State

  • 프로세서와 필요한 자원을 모두 할당 받은 상태
  • Preemption (프로세서만 뺏겨서 ready가 된 경우)
    - Running state -> ready states
    - 프로세서 스케줄링 (e.g, time-out, priority changes)
  • Block/sleep
    - Running state -> asleep state
    - I/O 등 자원 할당 요청

Blocked/Asleep State

  • 프로세서 외에 다른 자원을 기다리는 상태
    - 자원 할당은 System call에 의해 이루어 짐
  • Wake-up
    - Asleep state -> ready state

Suspended State

  • 메모리를 할당 받지 못한 상태
    - Memory image(메모리 상태)swap device에 보관(다시 재개했을 때 수행했던 과정을 반복하지 않기 위해???)

    Swap device: 프로그램 정보 저장을 위한 특별한 파일 시스템

    - 커널 또는 사용자에 의해 발생
    - aleep 상태에서 memory 뺏긴 경우에도 감
  • Swap-out(suspended), Swap-in(resume)

Terminated/Zombie State

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

    커널이 이 프로세스가 어떻게 진행해왔는지 어떤 자원을 주로 요청했는지 일을 얼마나 했는지에 대한 정보를 알고 있으면(PCB 정보) 그 다음에 다시 프로세스를 처리할 때 효율이 증가함. 따라서, 커널이 정보 수집이 끝나면 프로세스를 삭제시키고 끝남.

프로세스 관리를 위한 자료구조

  • Ready Queue
  • I/O Queue
  • Device Queue

인터럽트(Interrupt)

예상치 못한, 외부에서 발생한 이벤트
ex) Unexpected, external events

  • 인터럽트의 종류
    - I/O interrupt
    - Clock interrupt
    - Console interrupt
    - Program check interrupt
    - Machine check interrupt
    - Inter-process interrupt
    - System call interrupt

인터럽트 처리과정

  • Interrupt handling에서 원인을 파악함(어디서, 왜)
  • 원인 파악 후 Interrupt service(프로그램)가 프로세서에 들어감
  • 인터럽트 서비스가 끝나면 ready 상태에 있던 프로세스가 context saving 했던 것을 복구하고 다서 프로세서에서 처리 시작함.

Context Switching(문맥 교환)

  • Context
    - 프로세스와 관련된 정보들의 집합

    • CPU register context => in CPU
      • 실제로 CPU가 일을 처리 할 땐 메인 메모리에 있는 데이터를 레지스터에 올려서 일을 하게 됨. 이 때, 레지스터에 저장되어 있는 값들
    • Code & data, Stack, PCB => in memory
  • Context saving
    - 현재 프로세스의 Register context를 저장하는 작업
    - CPU register context를 메모리 내 PCB block에 저장함

  • Context restoring
    - Register context를 프로세스로 복구하는 작업

  • Context switching
    - 실행 중인 프로세스의 context를 저장하고, 앞으로 실행 할 프로세스의 context를 복구 하는 일 - 커널의 개입으로 이루어짐

Context Switch Overhead

  • Context switching에 소요되는 비용
    - OS마다 다름
    - OS의 성능에 큰 영향을 줌
  • 불필요한 Context switching을 줄이는 것이 중요, 예) 스레드(thread) 사용 등

1개의 댓글

구글링했는데 형블로그 나오네 ㅋㅋㅋ 잘봤어요

답글 달기