서비스 프로시저
스트림에서는 위의 경우와 두 가지 목적을 위해 put 절차 외에 각 큐에 서비스 절차를 포함할 수 있습니다. 서비스 절차는 대기열에서 필요하지 않으며 지연 처리와 연관되어 있습니다.
큐에 put 및 서비스 프로시저가 모두 있는 경우 일반적으로 메시지 처리는 두 프로시저로 나뉩니다. Put 프로시저는 항상 앞의 QUEUE에서 먼저 호출됩니다. Put 프로시저가 메시지 처리의 일부를 완료한 후에는 putq 유틸리티에 메시지를 전달하여 서비스 프로시저가 호출될 수 있도록 준비합니다. Putq 유틸리티는 두 가지 작업을 수행합니다. 즉, 메시지를 QUEUE의 메시지 대기열에 배치하고 QUEUE를 스트림 스케줄링 대기열의 끝에 연결합니다. Putq 유틸리티가 put 프로시저로 돌아가면 일반적으로 프로시저가 종료됩니다. 잠시 후 서비스 절차가 STREAMS 스케줄러에 의해 자동으로 호출됩니다.
스트림 스케줄러는 시스템 프로세스 스케줄러와는 별개의 별개의 스케줄러입니다. 이는 스트림 스케줄링 대기열에 연결된 대기열에만 해당합니다. 스케줄러는 예약된 큐의 서비스 프로시저를 FIFO 방식으로 한 번에 하나씩 호출합니다.
큐에 넣기와 서비스 절차를 모두 넣으면 사용자가 많은 시스템에서 필요한 신속한 응답과 대기열을 제공할 수 있습니다. 입력 절차를 통해 입력 문자의 소프트웨어 에코와 같은 특정 데이터 및 이벤트에 신속하게 대응할 수 있습니다. 투입 절차는 예약된 서비스 절차보다 우선순위가 높습니다. 앞의 스트림 컴포넌트에서 호출하면 QUEUE의 예약된 서비스 절차가 시작되기 전에 put 절차가 시작됩니다.
서비스 절차는 메시지 대기열을 의미합니다. 큐에 대기하면 현재 스케줄링 대기열에 있는 다른 모든 큐에 이어 서비스 절차의 처리가 지연됩니다. 예를 들어 터미널 출력, 입력 지우기 및 종료 처리는 일반적으로 서비스 절차에서 수행되는데, 이러한 유형의 처리는 에코처럼 적시에 처리할 필요가 없기 때문입니다. 또한 서비스 절차를 사용하면 처리 시간을 여러 스트림에 더 균등하게 분산할 수 있습니다. Put 절차와 마찬가지로 일반적으로 모듈의 각 큐에 대해 별도의 서비스 절차가 있습니다. 흐름 제어 메커니즘은 서비스 절차를 사용합니다.