작업

작업(Job)은 운영체제나 배치 처리 시스템에서 한 번에 처리되는 독립적 일감의 단위를 가리킨다. 사용자나 다른 프로그램이 시스템에 해 달라고 요청한 일을 통째로 묶어 부르는 개념으로, 보통 하나 이상의 프로세스로 구성된다.

작업과 프로세스의 차이

개념범위예시
Job사용자 관점의 일감”월간 매출 리포트 생성”
Process실행 중인 프로그램 인스턴스그 안에서 동작하는 SQL 추출, 데이터 가공, 메일 발송
Thread프로세스 내 실행 흐름메일 동시 발송

처리 방식

일괄 처리(Batch)

사용자 개입 없이 작업을 큐에 쌓고 순차 또는 우선순위 기반으로 처리.

  • 야간 데이터 집계, 정산, 통계 산출

대화형 처리(Interactive)

사용자의 입력을 받아가며 즉시 결과를 반환.

분산 처리(Distributed)

큰 작업을 여러 노드에 쪼개 동시에 처리.

스케줄링

작업이 많을수록 순서와 자원 분배가 중요해진다. 대표적인 스케줄링 정책:

  • FIFO: 들어온 순서대로
  • 우선순위 기반: 중요도 높은 작업 우선
  • Round Robin: 시간 단위로 순환
  • 데드라인 기반: 마감이 가까운 작업부터

관련 노트

  • FIFO · LRU · NUR · LFU: 자원 관리 알고리즘
  • 쓰레드: 작업 내부의 실행 흐름
  • Kernel: 작업 스케줄링을 담당하는 OS 핵심