작업
작업(Job)은 운영체제나 배치 처리 시스템에서 한 번에 처리되는 독립적 일감의 단위를 가리킨다. 사용자나 다른 프로그램이 시스템에 해 달라고 요청한 일을 통째로 묶어 부르는 개념으로, 보통 하나 이상의 프로세스로 구성된다.
작업과 프로세스의 차이
| 개념 | 범위 | 예시 |
|---|---|---|
| Job | 사용자 관점의 일감 | ”월간 매출 리포트 생성” |
| Process | 실행 중인 프로그램 인스턴스 | 그 안에서 동작하는 SQL 추출, 데이터 가공, 메일 발송 |
| Thread | 프로세스 내 실행 흐름 | 메일 동시 발송 |
처리 방식
일괄 처리(Batch)
사용자 개입 없이 작업을 큐에 쌓고 순차 또는 우선순위 기반으로 처리.
- 야간 데이터 집계, 정산, 통계 산출
대화형 처리(Interactive)
사용자의 입력을 받아가며 즉시 결과를 반환.
분산 처리(Distributed)
큰 작업을 여러 노드에 쪼개 동시에 처리.
스케줄링
작업이 많을수록 순서와 자원 분배가 중요해진다. 대표적인 스케줄링 정책:
- FIFO: 들어온 순서대로
- 우선순위 기반: 중요도 높은 작업 우선
- Round Robin: 시간 단위로 순환
- 데드라인 기반: 마감이 가까운 작업부터