Certificate/정보처리기사

[4과목 프로그래밍 언어 활용] 응용 SW 기초 기술 활용 - 156. ⭐ 프로세스 (Process)의 개요

S_sun 2025. 11. 21. 09:42

1. 프로세스의 정의

  • 프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미
  • 작업(Job), 태스크(Task)라고 함
  • PCB를 가진 프로그램
  • 실기억장치에 저장된 프로그램
  • 프로세서가 할당되는 실체로서, 디스패치가 가능한 단위
  • 프로시저가 활동중인 것
  • 비동기적 행위를 일으키는 주체
  • 지정된 결과를 얻기 위한 일련의 계통적 동작
  • 목적 또는 결과에 따라 발생되는 사건들의 과정
  • 운영체제가 관리하는 실행단위

 

2. ⭐ PCB (Process Control Block, 프로세스 제어 블록)

  • 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
  • Task Control Block, Job Control Block
  • 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거됨

💡 PCB 저장된 정보

  • 프로세스 현재 상태 : 준비, 대기, 실행 등 프로세스 상태
  • 포인터 : 프로세스가 위치한 메모리에 대한 포인터, 할당된 자원에 대한 포인터
  • 프로세스 고유 식별자
  • 스케줄링 및 프로세스의 우선순위
  • CPU 레지스터 정보 : Accumulator(누산기), 인덱스 레지스터, 범용 레지스터, 프로그램 카운터
  • 주기억장치 관리 정보 : 기준 레지스터, 페이지 테이블
  • 입 · 출력 상태 정보
  • 계정정보 : CPU 사용시간, 실제 사용시간, 한정된 시간

 

3. ⭐ 프로세스 상태 전이

제출(Submit)

  • 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태

접수(Hold)

  • 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태

준비(Ready)

  • 프로세스가 프로세서를 항당받기 위해 기다리고 있는 상태
  • 프로세스는 준비상태 큐에서 실행을 준비
  • 접수 상태에서 준비 상태로의 전이는 Job 스케줄러에 의해 수행

실행(Run)

  • 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
  • 프로세스 수행이 완료되지 전에 프로세스에게 주어진 프로세서 할당 시간이 종료(Timer Run Out)되면 프로세스는 준비 상태로 전이
  • 실행 중인 프로세스에 입 · 출력(I/O) 처리가 필요하면 실행 중인 프로세스는 대기 상태로 전이
  • 준비 상태에서 실행 상태로의 전이는 CPU(프로세서) 스케줄러에 의해 수행

대기(Wait), 보류, 블록(Block)

  • 프로세스에 입 · 출력 처리가 필요하면 현재 실행 중인 프로세스가 중단되고, 입 · 출력 처리가 완료될 때까지 대기하고 있는 상태

종료(Terminated, Exit)

  • 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태

Dispatch

  • 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정

Wake Up

  • 입 · 출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정

Spooling

  • 입 · 출력장치의 공유 및 상대적으로 느린 입 · 출력장치의 처리 속도를 보완
  • 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입 · 출력할 데이터를 집적 입 · 출력장치에 보내지 않고 나중에 한꺼번에 입 · 출력하기 위해 디스크에 저장하는 과정
  • 교통량 제어기(Traffic Controller)
  • 프로세스의 상태에 대한 조사와 통보를 담당

 

4. ⭐ 스레드 (Thread) = 경량 프로세스 (Light Weight)

  • 프로세스 내에서의 작업 단위
  • 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위
  • 단일 스레드 : 하나의 프로세스에 하나의 스레드
  • 다중 스래드 : 하나 이상의 스레드
  • 스레드는 독립적인 스케줄링의 최소단위로서 프로세스의 역할을 담당
  • 동일 프로세스 환경에서 서로 독립적인 다중 수행 가능
  • 사용자 수준의 스레드
    • 사용자가 만든 라이브러리를 사용하여 스레드를 운용
    • 커널 모드로의 전환이 없어 오버헤드가 줄어듦
    • 속도는 빠르지만 구현이 어려움
  • 커널 수준의 스레드
    • 운영체제의 커널에 의해 스레드를 운용
    • 한 프로세스가 운영체제를 호출할 때 전체 프로세스가 대기하지 않으므로 시스템의 성능 높일 수 있음
    • 여러 스레드가 커널에 동시에 접근
    • 스레드의 독립적인 스케줄링 가능
    • 구현이 쉽지만 속도가 느림
  • 장점
    • 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성 증진
    • 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율 향상
    • 응용 프로그램의 응답 시간(Response Time)을 단축
    • 실행 환경을 공유해 기억장소의 낭비가 줄어듦
    • 프로세스들 간의 통신 향상
    • 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신

 

 

 

📖 Reference
 

2023 시나공 정보처리기사 필기 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

728x90
반응형