작업 제어(컴퓨팅)

Job control (computing)

컴퓨터 작업 제어에서, 컴퓨터 시스템의 여러 작업이나 작업을 제어하는 것을 말하며, 각 작업자가 정확하게 수행하기에 적절한 자원에 접근할 수 있도록 하고, 한정된 자원에 대한 경쟁이 두 개 이상의 작업을 완료할 수 없는 교착 상태를 초래하지 않도록 하며, 그러한 작업이 발생하는 상황을 해결하고, 작업을 종료하는 것을 말한다.어떤 이유로든, 기대했던 대로 수행되지 않는 직업들

직무관리는 인간 운영자가 모든 업무를 설정·모니터링·통제하던 컴퓨터 초기부터 업무관리의 대부분을 차지하는 현대적 운영체제로 발전했다.

고도로 정교한 스케줄링 시스템을 갖추고 있더라도 인간의 개입은 어느 정도 바람직하다.현대적인 시스템은 사용자들이 작업을 중지하고 재개할 수 있도록 하고, 전경이나 백그라운드에서 작업을 실행할 수 있도록 한다.유닉스 같은 시스템은 이 패턴을 따른다.

역사

초기 컴퓨터 개발자들에게 그들의 빠른 기계가 대부분의 시간을 유휴 상태로 보냈다는 것은 명백해졌다. 왜냐하면 그들이 실행하고 있는 단일 프로그램이 느린 주변 장치들이 데이터를 읽거나 쓰는 것과 같은 필수적인 작업을 완료하는 동안 기다려야 했기 때문이다. 현대적으로 볼 때 프로그램은 컴퓨팅 바인딩이 아닌 I/O 바인딩이었다.버퍼링은 부분적인 해결책만 제공했다. 결국 출력 버퍼가 사용 가능한 모든 메모리를 차지하거나 입력 버퍼가 프로그램에 의해 비워질 것이고, 시스템은 작동을 완료하기 위해 상대적으로 느린 장치를 기다릴 수밖에 없을 것이다.

보다 일반적인 해결책은 멀티태스킹이다.둘 이상의 실행 중인 프로그램 또는 프로세스가 주어진 시간에 컴퓨터에 존재한다.프로세스를 계속할 수 없는 경우, 해당 컨텍스트를 저장할 수 있으며 컴퓨터는 다른 프로세스의 실행을 시작하거나 재개할 수 있다.처음에는 상당히 세련되지 못하고 특수한 프로그래밍 기법에 의존하여 멀티태스킹이 곧 자동화되었고, 보통 스케줄러라고 하는 특수한 프로세스에 의해 수행되어 다른 프로세스의 실행을 방해하고 재개할 수 있는 능력을 가졌다.일반적으로 주변 장치 드라이버는 장치가 즉시 작업을 완료할 수 없는 경우 현재 프로세스의 실행을 중지하고 스케줄러는 프로세스를 절전 작업 대기열에 배치한다.주변 장치가 작동을 완료하면 프로세스를 다시 깨운다.프로세스가 비동기 방식으로 서로 통신해야 하지만 때로는 회신을 기다려야 하는 프로세스통신에도 유사한 중단과 재개가 적용될 수 있다.

그러나 이 낮은 수준의 스케줄링에는 단점이 있다.주변기기나 다른 프로세스와 거의 상호작용할 필요가 없는 프로세스는 수동 개입으로 완료되거나 중단될 때까지 프로세서 자원을 독차지할 것이다.그 결과, 특히 외부 세계와 빈번하게 상호작용하는 작업을 실행하는 쌍방향 시스템의 경우, 시스템이 부진하고 시기적절하게 반응하는 것이 느리다.이 문제는 스케줄러가 자동으로 슬립 큐에 배치한 후 중단 없는 실행 기간인 각 프로세스에 "시간"을 할당함으로써 해결된다.프로세스는 서로 다른 우선 순위를 부여할 수 있으며, 스케줄러는 할당된 우선 순위에 기초하여 사용 가능한 실행 시간의 다양한 공유를 각 프로세스에 할당할 수 있다.

이러한 선제적 멀티태스킹 시스템은 대부분의 현대적인 직업 통제 시스템의 기초를 형성한다.

일괄처리

배치 처리는 컴퓨터 운영자가 있든 없든 24시간 내내 실행될 수 있지만,[1] 컴퓨터가 사람보다 훨씬 빠르기 때문에 대부분의 의사결정은 일이 실행되기 전에 일어나며, "프로그래머"에 의한 계획이 필요하다.

배치 지향 피쳐

컴퓨터 운영자가 있을 수 있지만 일괄 처리의 목적은 대부분 사람의 개입 없이 작동하기 위함이다.따라서 제출되는 지침에는 다음과 같은 많은 세부 사항이 포함되어야 한다.

  • 실행할 프로그램.
  • 입출력용으로 사용할 파일 및/[2]또는 장치
  • 또한 어떤 조건에서 한 걸음 건너뛰어야 하는지도 표시해야 할 때

작업 제어 언어

집단

초기 컴퓨터 상주 모니터운영체제는 비교적 원시적이어서 정교한 자원 할당이 불가능했다.전형적으로 그러한 할당 결정은 컴퓨터 운영자나 직업을 제출한 사용자에 의해 이루어졌다.일괄 처리가 일반적이었고, 쌍방향 컴퓨터 시스템은 드물고 비쌌다.원시 명령으로 개발된 JCL(Job Control Language)은 일반적으로 입력 데이터가 포함된 데크 머리부분의 카드를 펀칭하여 실행 중에 사용할 수 있도록 메모리 할당, 일련 번호 또는 마그네틱 테이프 스풀의 이름과 같은 리소스를 요청하거나 조가 참조하는 장치 번호에 파일 이름 또는 장치를 할당하는 작업 제어 언어(JCL)b. 메인프레임에서 여전히 사용되고 있는 이러한 종류의 언어의 대표적인 예는 IBMJob Control Language(JCL라고도 한다)이다.초기 JCL의 형식은 펀치된 카드 사용을 위한 것이었지만, 포맷은 디스크의 컴퓨터 파일에 저장되는 것으로의 전환에서 살아남았다.

BANG 및 기타 비 IBM JCL

비 IBM 메인프레임 배치 시스템은 그것을 부르든 말든 어떤 형태의 작업 제어 언어를 가지고 있었다. 그들의 구문은 IBM 버전과는 완전히 달랐지만, 그들은 대개 비슷한 기능을 제공했다.대화형 시스템에는 "명령 언어"가 포함되어 있다. 명령 파일(예: PCDOS ".bat" 파일)은 비인터랙티브 방식으로 실행될 수 있지만, 이러한 시스템은 일반적으로 JCL처럼 무인 작업을 실행할 수 있는 강력한 환경을 제공하지 않는다.일부 컴퓨터 시스템에서는 작업 제어 언어와 대화형 명령 언어가 다를 수 있다.예를 들어 z/OS 시스템의 TSO는 배치 작업을 위해 JCL과 함께 CLIST 또는 Rexx를 명령어로 사용한다.다른 시스템에서는 이러한 것들이 동일할 수 있다.

유니시스를 제외한 BUUNC(Burroughs, Univac/Unisys, NCR, Control Data, Honeywell)로 한때 알려져 있던 것의 Non-IBM JCL은 그동안 잠잠했던 BANG의[3][4] 일부분이다.

상호적인

시간 공유 시스템이 발달하면서 대화형 일자리 통제가 등장했다.시간 공유 시스템의 최종 사용자는 원격 터미널(원격 작업 입력)에서 대화식으로 작업을 제출하고, 운영자와 통신하여 특별한 요구 사항을 경고하며, 진행 상황에 대해 시스템에 질의할 수 있다.그는 그 일에 우선권을 부여하고, 원한다면 그 일을 끝낼 수 있다.그는 또한 자연스럽게 현장에서 일을 운영할 수 있었는데, 그곳에서 그는 실행 프로그램과 직접 의사소통을 할 수 있을 것이다.인터랙티브 실행 중에 그는 작업을 중단시키고 백그라운드에서 작업을 계속하거나 중단시킬 수 있다.멀티태스킹 환경에서 인터랙티브 컴퓨팅의 이러한 발전은 현대 의 발전으로 이어졌다.

JCL, 파일 시스템 및 장치 독립성

특정 프로그램에서 사용할 파일이나 장치에 대한 정보의 일부 또는 전부를 지정할 필요가 없는 기능을 장치 독립성이라고 한다.

실시간 컴퓨팅

작업 제어를 통한 사전 멀티태스킹은 대부분의 경우 시스템이 적시에 작동하도록 보장한다.일부 환경(예: 비싸거나 위험한 기계 작동)에서 시스템의 강력한 설계 제약은 모든 상황에서 적시에 결과를 전달하는 것이다.이런 상황에서는 업무 통제가 더 복잡하고 스케줄링의 역할이 더 중요하다.

실시간 시스템은 모든 실시간 작업에 대해 이벤트 중심 스케줄링을 하기 때문에, "이러한 실시간 작업의 순서는 컴퓨터 운영자나 프로그래머의 즉각적인 통제 하에 있지 않다."[5]

그러나 시스템은 실시간 및 기타 덜 중요한 작업을 상호 중단할 수 있는 능력을 가질 수 있다. 예를 들어, 분할선은 10분의 1초 이내에 필요한 응답일 수 있다.[5]: p.1 예를 들어 [6][7][8]제록스 RBM(Real-time/Batch Monitor) 시스템의 경우 다음과 같은 두 가지 다른 기능이 존재했다.[5]: p.2

  • 컴퓨터 오퍼레이터 명령("요청되지 않은 키 삽입")
  • 백그라운드 작업 스트림(백그라운드 작업)

외부 링크

참고 항목

참조

  1. ^ "Mainframe working after hours: Batch processing".
  2. ^ 파일을 보존할지 삭제할지 여부, 파일을 확장할 수 있는 최대 디스크 공간, 미리 마운트할 테이프의 이름 등 더 많은 세부 정보
  3. ^ 제록스 데이터 시스템과 그 SDS가 구매한 것을 느낌표라고"Operating systems list". 불렀다.
  4. ^ 몇몇 사람들에 의해 SLANT SLANT이라고 불리는 그것의 JCL의 슬래시.T 그는 이 각주의 나머지 부분은 내가 SLANT SLANT를 처음 들은 사람에게 바쳐진 것으로, 많은 사람들을 위시하는 교훈을 가르친 고인이자 퇴역한 군 장교인 SLANT SLANT에게 바쳐진 것이다.이것을 그의 인용구에 보태자.
  5. ^ a b c Xerox Real-Time Batch Monitor (RBM), Sigma 2/3 Computers, User's Guide (PDF). Xerox Corporation. Retrieved 2017-02-16.
  6. ^ a 제품군: Scientific Data Systems SDS Sigma 2 & 3 - 제록스가 인수한 제록스 데이터 시스템s, 제록스 530으로 이름 변경/결합.
  7. ^ SDS 시그마 5, 6, 7은 제록스 560이 되었다.
  8. ^ XOs SIGMR 5/7 REAL-TIME BATCH MONITOR (RBM-2) (PDF). Retrieved 2017-02-16.