본문 바로가기

운영체제

[OS] 3강 프로세스 관리

해당 학습 문서는 KOREATECH의 김덕수 교수님의 유튜브 무료 강의를 바탕으로 정리되었습니다

무료 강의를 제공해주신 김덕수 교수님께 감사드립니다

https://www.youtube.com/watch?v=jZuTw2tRT7w&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=5

 

프로세스(Process)

Job vs Process

작업(Job)/ 프로그램 (Program)

  • 프로램 실행의 단위이자 사용자가 실행을 요청한 프로그램과 해당 데이터를 하나로 묶어 시스템에 등록된 상태
  • 컴퓨터 시스템에 실행 요청 전의 상태(디스크에 보관)

프로세스(Process)

  • 실행을 위해 커널에 등록된 작업
  • 시스템 성능 향상을 위해 커널에 의해 관리됨

Submission 제출: 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태, Registration 접수: 제출된 작업이 spool 공간인 디스크의 할당 위치에 저장된 상태

프로세스의 정의

실행중인 프로그램

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

Process Control Block(PCB)

  • 커널 공간(kernel space) 내에 존재
  • 각 프로세스들에 대한 정보를 관리

프로세스의 종류

역할

시스템(커널) 프로세스

모든 시스템 메모리와 프로세서의 명령에 엑세스할 수 있는 프로세스이다

프로세스 실행 순서를 제어하거나 다른 사용자 및 커널(운영체제) 영역을 침범하지 못하게 감시하고, 사용자 프로세스를 생성하는 기능을 한다

사용자 프로세스

사용자 코드를 수행하는 프로세스이다

병행 수행 방법

독립 프로세스

다른 프로세스에 영향을 주지 않거나 다른 프로세스의 영향을 받지 않으면서 수행하는 병행 프로세스이다

협력 프로세스

다른 프로세스에 영향을 주거나 다른 프로세스에서 영향을 받는 병행 프로세스이다

자원(Resource)의 개념

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

자원의 분류

H/W resources

  • Processor, memory, disk, monitor, keyboard, Etc

S/W resources

  • Message, signal, files, installed SWs, Etc

Process Control Block (PCB)

OS가 프로세스 관리에 필요한 정보 저장

어떤 프로세스 P1이 생성이 되면 메모리의 커널 영역에 PCB-1이 생성된다

PCB가 관리하는 정보

PID: Process Identification Number

  • 프로세스 고유 식별 번호

스케줄링 정보

  • 프로세스 우선순위 등과 같은 스케줄링 관련 정보들

프로세스 상태

  • 자원 할당, 요청 정보 등

메모리 관리 정보

  • Page table, segment table 등

입출력 상태 정보

  • 할당 받은 입출력 장치, 파일 등에 대한 정보 등

문맥 저장 영역(context save area)

  • 프로세스의 레지스터 상태를 저장하는 공간 등

계정 정보

  • 자원 사용 시간 등을 관리

주의!!

PCB 정보는 OS 별로 서로 다름

PCB 참조 및 갱신 속도는 OS의 성능을 결정 짓는 중요한 요소 중 하나

프로세스의 상태 (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(프로세서 뺏김)
    • running state → ready state
    • 프로세서 스케줄링(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
  • asleep → running은 안돼!! 프로세스가 실행중인 상태에 갑자기 끼어들지 못함

Suspended State

  • 메모리를 할당 받지 못한(빼앗긴) 상태
    • Memory image를 swap device에 보관
      • Swap device: 프로그램 정보 저장을 위한 특별한 파일 시스템
      • Memory image: 메모리의 상태를 저장
    • 커널 또는 사용자에 의해 발생
  • Swap-out(suspended), Swap-in(resume)

Terminated/Zombie State

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

인터럽트(Interrupt)

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

  • Unexpected, external events

인터럽트의 종류

  • I/O interrupt → 마우스나 키보드처럼 입력으로 인한 인터럽트
  • Clock interrupt → 시스템 루틴에 따라 CPU가 실행을 중단하는 경우
  • Console interrupt → 콘솔 창에서 발생하는 인터럽트
  • Program check interrupt → 프로그램에 문제가 발생하는 경우
  • Machine check interrupt → 하드웨어 문제 발생하는 경우
  • Inter-process interrupt → 다른 프로세스나 시스템의 충돌이 있는 경우
  • System call interrupt

인터럽트 처리 과정

1. 프로세스 Pi가 생성되어 프로세서에서 처리 중인 모습

 

2. Intterupt가 발생하여 Pi 는 중단이 되고, Pi의 문맥을 PCBi에 저장한다.

이를 Context saving이라고 하는데 강의에서는 책갈피로 비유했다

 

3. 먼저 Interrupt handling을 통해 어디서 왜 발생 했는지 찾고, 그에 맞는 루틴을 제공한다 ISR(Interrupt Service Routine), IH(Interrupt Handling), IS(Interrupt Service)

4. Kernel에 의해서 ISR 프로세스가 끝나면 Ready 상태의 프로세스를 다시 프로세서에 할당한다. 이때, Pi가 들어갈 수 도 있지만 위의 경우 Pj가 먼저 할당 받는다. 그 과정에서 Context restoring을 통해 Pj의 문맥을 읽고 프로세스를 실행한다

Context Switching (문맥 교환)

Context

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

  • CPU register context → in CPU
  • Code & data, Stack, PCB → in memory
더보기

💡Register context?

특정 순간 프로세스의 CPU 레지스터 상태 전체(PC, SP 등)를 의미하며,

이는 컨텍스트 스위칭 시 다른 프로세스에 CPU를 넘겨주기 위해 저장(Context Saving)되고,

다시 돌아올 때 복구(Context Restoring)되는 중요한 정보이다

Context saving

현재 프로세스의 Register context를 저장하는 작업(메모리에 PCB 저장)

Context restoring

Register context를 프로세스로 복구하는 작업

Context switching ≈ Process switching

실행 중인 프로세스의 context를 저장하고 앞으로 실행해야 할 프로세스의 context를 복구 하는 일

  • 커널의 개입으로 이루어짐

Context Switch Overhead

Context switching에 소요되는 비용

  • OS 마다 다름
  • OS 성능에 큰 영향을 줌

불필요한 Context switching을 줄이는 것이 중요

  • 예) 스레드(thread) 사용 등

노션 링크

https://www.notion.so/OS-3-2f19d2a6b9758000880ccce55f6ef089

 

시각 자료

OS-lecture3.excalidraw
0.28MB

excalidraw를 통해 파일을 open 하시면 자료를 수정 및 복사할 수 있습니다

 

 

'운영체제' 카테고리의 다른 글

[OS] 4강 스레드 관리  (0) 2026.01.23
[OS] 2강 운영체제의 개요  (0) 2026.01.06
[OS] 1강 컴퓨터 시스템의 개요  (0) 2026.01.02