작업 스케줄러
Job scheduler![]() |
작업 스케줄러는 작업의 [1]무인 백그라운드 프로그램 실행을 제어하는 컴퓨터 응용 프로그램입니다.이것은 일반적으로 배치 스케줄링이라고 불리는데, 이는 비인터랙티브 작업의 실행을 배치 처리라고 부르기 때문입니다.단, 기존 작업과 배지는 구별되고 대조됩니다.자세한 내용은 이 페이지를 참조하십시오.다른 동의어로는 배치 시스템, 분산 리소스 관리 시스템(DRM), 분산 리소스 관리자(DRM) 및 일반적으로 오늘날 워크로드 자동화(WLA)가 있습니다.실행할 작업의 데이터 구조를 작업 대기열이라고 합니다.
일반적으로 최신 작업 스케줄러는 분산된 컴퓨터 네트워크에서 백그라운드 실행을 정의하고 모니터링하기 위한 그래픽 사용자 인터페이스와 단일 제어 지점을 제공합니다.다양한 운영 체제 플랫폼 및 비즈니스 애플리케이션 환경에서 실시간 비즈니스 활동을 기존의 백그라운드 IT 처리와 통합하는 작업이 점점 더 요구되고 있습니다.
작업 스케줄링은 현재 실행 중인 프로세스를 운영체제에 의해 CPU에 할당하는 프로세스 스케줄링과 혼동해서는 안 됩니다.
개요
작업 스케줄러 소프트웨어에서 예상되는 기본 기능은 다음과 같습니다.
- 워크플로우 및/또는 작업의존관계를 정의하는 데 도움이 되는 인터페이스
- 사형 집행의 자동 제출
- 인터페이스, 실행 감시 인터페이스
- 관련 없는 작업의 실행 순서를 제어하는 우선순위 및/또는 큐
전혀 다른 영역의 소프트웨어에 이러한 기능의 전부 또는 일부가 포함되어 있는 경우, 이 소프트웨어에는 작업 스케줄링 기능이 있는 것으로 간주할 수 있습니다.
Unix 나 Windows 와 같은 대부분의 운영체제시스템은 기본적인 작업스케줄링 기능을 제공합니다.특히 at 및 batch, cron 및 Windows 태스크스케줄러에 의한 작업스케줄링 기능을 제공합니다.웹 호스팅 서비스는 제어판 또는 웹크론 솔루션을 통해 작업 스케줄링 기능을 제공합니다.DBMS, 백업, ERP 및 BPM과 같은 많은 프로그램에는 관련 작업 스케줄링 기능도 포함되어 있습니다.운영체제('OS') 또는 포인트 프로그램으로 제공되는 작업 스케줄에서는 보통 단일 OS 인스턴스 또는 특정 프로그램의 권한 밖에서는 일정을 설정할 수 없습니다.관련이 없는 IT 워크로드를 자동화해야 하는 조직에서는 작업 스케줄러의 다음과 같은 고급 기능도 활용할 수 있습니다.
- 예측 불가능한 외부 이벤트를 기반으로 한 실시간 스케줄링
- 장애 발생 시 자동 재시작 및 복구
- 운영 담당자에게 경고 및 통지
- 사고 보고서 생성
- 법령 준수 목적의 감사 추적
이러한 고도의 기능은 사내 개발자가 작성할 수 있지만 시스템 관리 소프트웨어를 전문으로 하는 공급업체가 제공하는 경우가 많습니다.
주요 개념
거의 모든 작업스케줄러 구현의 중심이며 최소한의 변동으로 널리 인식되고 있는 개념(작업, 종속성, 작업 스트림 및 사용자)이 많이 있습니다.
기본적인 단일 OS 인스턴스 스케줄링 툴 외에 작업 스케줄링 소프트웨어에는 2개의 주요 아키텍처가 있습니다.
- 마스터/에이전트 아키텍처 - 작업 스케줄링 소프트웨어의 과거 아키텍처.작업 스케줄링 소프트웨어는 단일 시스템(마스터)에 설치되지만 프로덕션 시스템에는 마스터의 명령을 기다리고 실행한 다음 종료 코드를 마스터로 반환하는 매우 작은 구성 요소(에이전트)만 설치됩니다.
- 공동 아키텍처 - 각 머신이 스케줄링을 지원하며 로컬로 스케줄된 작업을 다른 공동 머신으로 오프로드할 수 있는 분산형 모델입니다.이를 통해 동적 워크로드 밸런싱을 통해 하드웨어 리소스 활용률을 극대화하고 고가용성을 통해 서비스 제공을 보장할 수 있습니다.
역사
작업 스케줄링은 오랜 역사를 가지고 있습니다.작업 스케줄러는 초기 메인프레임 시스템 이후 IT 인프라의 주요 구성요소 중 하나입니다.처음에는 천공된 카드 스택이 차례로 처리되어 '배치 처리'라는 용어가 사용되었습니다.
과거의 관점에서 작업 스케줄러에 관한 두 가지 주요 시대를 구분할 수 있습니다.
- 메인프레임 시대
- IBM 메인프레임의 JCL(Job Control Language)입니다.처음에 의존관계를 처리하는 JCL 기능을 기반으로 한 이 시대는 메인프레임의 시스템 관리 및 자동화 도구 세트의 일부를 구성하는 정교한 스케줄링 솔루션(예: Job Entry Subsystem 2/3)의 개발로 대표됩니다.
- 오픈 시스템 시대
스케줄링의 유형에는 다른 시대도 있습니다.
- 배치 처리 - 리소스가 배치 처리에 사용 가능한 기간(배치 창)을 기준으로 백그라운드 작업을 수행하는 기존 날짜 및 시간 기반 실행입니다.사실상 기존의 메인프레임 접근 방식이 오픈 시스템 환경으로 전환되었습니다.
- 이벤트 중심 프로세스 자동화 - 백그라운드 프로세스를 정의된 시간에 단순하게 실행할 수 없습니다.비즈니스 특성상 워크로드가 외부 이벤트 발생(고객으로부터의 주문 도착이나 스토어 브랜치로부터의 재고 갱신 등)을 기반으로 하거나 배치창이 없거나 불충분하기 때문입니다..
- 서비스 지향 작업 스케줄링 - 최근 SOA(Service Oriented Architecture)의 발전으로 기존 비즈니스 애플리케이션 워크로드를 새로운 웹 서비스 기반 실시간 애플리케이션과 통합하는 데 역할을 할 수 있는 재사용 가능한 IT 인프라 서비스로서의 작업 스케줄링이 도입되는 움직임이 나타나고 있습니다.
스케줄
실행할 특정 작업을 결정하기 위해 다양한 방식이 사용됩니다.고려할 수 있는 파라미터는 다음과 같습니다.
- 작업 우선 순위
- 계산 리소스 가용성
- 작업이 라이센스가 부여된 소프트웨어를 사용하는 경우 라이센스 키
- 사용자에게 할당된 실행 시간
- 사용자에게 허용된 동시 작업 수
- 예상실행시간
- 경과실행시간
- 주변기기의 가용성
- 소정의 이벤트 발생
- 직무 의존성
- 파일 의존성
- 오퍼레이터 프롬프트 의존성