STREAMS 소개

스트림은 스트림을 생성, 사용 및 해체할 수 있는 시스템 호출, 커널 리소스 및 커널 유틸리티 루틴의 모음을 나타냅니다. 스트림은 커널 공간의 드라이버와 사용자 공간의 프로세스 간의 전이중 처리 및 데이터 전송 경로입니다.

스트림 메커니즘은 각각 특정 구조 집합으로 구성된 커널 상주 스트림 컴포넌트를 직렬로 연결하여 스트림을 구성합니다. 스트림 세부 정보 그림(그림 1)에서 볼 수 있듯이 주요 스트림 구성 요소는 다음과 같습니다:
항목 설명
스트림 헤드 스트림과 사용자 프로세스 간의 인터페이스를 제공합니다. 주요 기능은 스트림 관련 사용자 시스템 호출을 처리하는 것입니다. 64비트 및 32비트 사용자 프로세스에서 스트림 시스템 호출을 사용할 수 있습니다.
모듈 스트림 헤드와 드라이버 간에 이동하는 데이터를 처리합니다. 모듈은 선택 사항입니다.
스트림 종료 외부 입력/출력 장치 또는 내부 소프트웨어 드라이버의 서비스를 제공합니다. 내부 소프트웨어 드라이버를 일반적으로 의사 장치 드라이버라고 합니다.
그림 1. 스트림 세부 정보
이 다이어그램은 상단에 커널 공간에서 스트림 헤드로 향하는 양방향 화살표가 있는 사용자 프로세스를 보여줍니다. 다운스트림 경로(또는 왼쪽)에서 화살표는 스트림 헤드에서 모듈 B의 큐 Bd로 이동한 다음 화살표는 모듈 A의 큐 Ad로 이동합니다(메시지 Ad를 매개변수로 사용). 그러면 화살표가 대기열 광고에서 스트림 끝의 대기열 쌍으로 이동합니다. 드라이버 루틴은 드라이버의 대기열 쌍에 연결됩니다. 드라이버 루틴에서 외부 인터페이스로 이동하는 양방향 화살표가 있습니다. 업스트림 경로(또는 오른쪽)에서 화살표는 큐 쌍에서 모듈 A의 큐 Au로 이동한 다음 화살표는 모듈 B의 큐 Bu로 이동합니다(메시지 Bu를 매개변수로 사용). 그러면 화살표가 대기열 Bu에서 스트림 헤드로 이동합니다.

스트림은 시스템 커널 내 및 커널과 나머지 시스템 간의 문자 입력 및 출력을 위한 표준 인터페이스를 정의합니다. 관련 메커니즘은 간단하고 개방적입니다. 시스템 호출, 커널 리소스 및 커널 유틸리티 루틴으로 구성됩니다. 표준 인터페이스와 개방형 메커니즘을 통해 고성능 네트워크 서비스 및 구성 요소의 모듈식 휴대용 개발과 손쉬운 통합이 가능합니다. STREAMS는 특정 네트워크 아키텍처를 강요하지 않습니다. 대신 기존 문자 입력/출력 인터페이스와 호환되는 일관된 사용자 인터페이스를 갖춘 강력한 프레임워크를 제공합니다.

시스템 호출, 커널 루틴 및 커널 유틸리티의 조합을 사용하여 STREAMS는 드라이버와 스트림 헤드 간에 메시지 형태로 데이터를 전달합니다. 스트림 헤드에서 드라이버를 향해 전달되는 메시지는 다운스트림으로 이동하고 다른 방향으로 전달되는 메시지는 업스트림으로 이동한다고 합니다.