
프린터가 실제로 인쇄 데이터를 처리하는 방법에 대한 실제 정보를 찾는 데 어려움을 겪었습니다.
내가 아는 한 모든 OS에는 인쇄된 문서를 요청된 순서대로 프린터로 버퍼링하는 것처럼 보이는 "인쇄 대기열"이 있습니다.
네트워크 프린터가 등장하기 전에는 실제 프린터가 연결된 기기에서 거의 한 줄씩 데이터를 전송했다고 상상했습니다.
이제 네트워크 프린터를 사용하면 이러한 상상의 모델이 무너집니다. 나는 최신 프린터가 단지 OS로부터 포스트스크립트(또는 다른 인쇄 형식) 문서를 수신하고 이를 메모리에 보관한 후 인쇄한다고 가정합니다.
문제는 프린터가 여러 문서를 수신할 수 있는 경우 OS 인쇄 대기열이 무엇을 의미하는가입니다.
OS 인쇄 대기열은 로컬 버퍼이기 때문에 다른 컴퓨터가 인쇄하고 있는 내용을 전혀 보여주지 않습니다. 그러면 프린터에 온보드 대기열이 있다는 뜻인가요? 그렇다면 다른 내용이 인쇄되는 것을 볼 수 없다면 왜 인쇄 대기열이 있는 걸까요?
오늘날 직렬 케이블 없이 프린터가 실제로 어떻게 작동하는지에 대한 정보는 도움이 될 수 있지만 이를 유효한 질문으로 만들기 위해서는 다음을 수행하십시오.
각 기계가 다른 기계도 인쇄하고 있다는 사실을 알지 못하는 경우 프린터는 어떻게 여러 기계에서 문서를 인쇄합니까?
문서가 프린터로 어떻게 전송되나요?
대부분의 인쇄 프로토콜은 어떤 종류의 정보를 지원합니까?
내 자신의 대포가 마치 인쇄 작업인 것처럼 잉크 수준을 요청하는 것 같아서 마지막 질문을 합니다.
printing: supply levels
또한 펌웨어 업데이트를 보내기 위해 "가짜" 인쇄 작업을 사용하는 HP 프린터에 대해 들었습니다.
답변1
내가 아는 한 모든 OS에는 인쇄된 문서를 요청된 순서대로 프린터로 버퍼링하는 것처럼 보이는 "인쇄 대기열"이 있습니다.
"인쇄 대기열"은 IBM 360 메인프레임에서 실행되는 HASP/OS360 운영 체제와 같이 원래 SPOOL(동시 주변 장치 작업 온라인용)이라는 프로그램이었던 프린터 서비스/데몬의 표시 부분입니다. (IMO SPOOL은 프린터 서비스 작동 방식을 설명하는 비유로 사용할 수 있는 영어 단어(명사와 동사 모두)이기 때문에 만들어진 최고의 약어 중 하나입니다.)
네트워크 프린터가 등장하기 전에는 실제 프린터가 연결된 기기에서 거의 한 줄씩 데이터를 전송했다고 상상했습니다.
사실, "거의"는 필요하지 않습니다.
이제 네트워크 프린터를 사용하면 이러한 상상의 모델이 무너집니다. 나는 최신 프린터가 단지 OS로부터 포스트스크립트(또는 다른 인쇄 형식) 문서를 수신하고 이를 메모리에 보관한 후 인쇄한다고 가정합니다.
일반 텍스트만 허용하는 "라인 프린터" 또는 "멍청한" 프린터는 본질적으로 쓸모가 없으며 일부 유형의 입력을 허용하는 "페이지 프린터"로 대체되었습니다.페이지 설명 언어(예: 포스트스크립트, PCL) 페이지의 텍스트, 즉 PDL 형식의 전체 페이지보다 더 많은 데이터를 프린터로 전송해야 하므로 "Centronics" 병렬 포트 및 RS-232 직렬과 같은 기존 인터페이스는 USB 및 이더넷(유선 및 무선).
이더넷 인터페이스가 있고 이를 "네트워크 프린터"라고 부르는 것이 네트워크로 연결된 "인쇄 서버"처럼 작동할 수 있다는 의미는 아닙니다. "피어 투 피어" 모드로 구성된 "네트워크 프린터"는 실제로 해당 프린터를 사용하려는 모든 PC에 "프린터 드라이버"를 설치해야 합니다. 해당 "네트워크 프린터"는 실제로 PC에 로컬 프린터로 설치되지만 네트워크 연결을 통해 해당 프린터를 협상하고 사용합니다. "네트워크 프린터"에 대한 인쇄 작업은 다른 로컬 프린터에 대한 작업과 마찬가지로 로컬 대기열에 보관되어야 합니다.
페이지 프린터는 (상상한 대로) 전체 문서를 전송하는 것이 아니라 한 번에 "페이지"씩 전송합니다. 물론 "페이지"는 PDL 형식이며 전송 매체에 따라 라인과 패킷으로 분할될 수 있습니다. 이들은 프린터 서버가 아닌 페이지 프린터이므로 대용량 저장 장치(예: 하드 드라이브)가 없으며 인쇄될 때까지 각 "페이지"를 로컬 메모리에 보관해야 합니다. 프린터에서 더 많은 메모리를 사용할 수 있을 때 PC가 페이지 조각이나 페이지를 전송할 수 있도록 "흐름 제어" 프로토콜(일명 핸드쉐이킹)이 마련되어 있습니다.
문제는 프린터가 여러 문서를 수신할 수 있는 경우 OS 인쇄 대기열이 무엇을 의미하는가입니다.
대용량 저장 장치(예: 하드 디스크 드라이브)가 있는 인쇄 서버가 실제로 있지 않은 한, "네트워크 프린터"는 프린터의 RAM에 들어갈 만큼 충분히 작지 않은 한 전체 또는 여러 문서를 실제로 수용할 수 없습니다. PC에서 발생하는 보류 중인 인쇄 작업을 주문하고 저장하려면 PC의 프린터 대기열을 사용해야 합니다. 해당 "네트워크 프린터"를 사용하는 네트워크의 각 PC는 해당 공유 프린터를 놓고 경쟁해야 합니다. "네트워크 프린터"는 모든 PC 또는 적어도 어떤 PC가 서비스를 요청하는지에 대한 자체 작업 요청 대기열을 유지할 수 있습니다. 요청만 알고 프린터가 해당 작업을 시작할 준비가 될 때까지 페이지 데이터(각 PC에 여전히 있음)를 보유하지 않습니다.
실제로 인쇄 서버가 있는 경우 로컬 대기열은 인쇄 작업이 프린터 서버 대기열에 도달하기 전의 중간 단계일 뿐입니다.
OS 인쇄 대기열은 로컬 버퍼이기 때문에 다른 컴퓨터가 인쇄하고 있는 내용을 전혀 보여주지 않습니다. 그러면 프린터에 온보드 대기열이 있다는 뜻인가요? 그렇다면 다른 내용이 인쇄되는 것을 볼 수 없다면 왜 인쇄 대기열이 있는 걸까요?
프린터에 선착순 인쇄 작업 목록을 유지하도록 주문하는 요청 대기열이 있기를 바랍니다. 그렇지 않으면 한 PC가 다른 PC로 인해 혼잡해질 수 있습니다. 여전히 로컬 PC에서 인쇄 작업을 제출하는 방법이므로 로컬 대기열이 필요합니다. 인쇄 작업을 보관할 대용량 저장 장치가 있는 실제 네트워크 인쇄 서버가 없으면 인쇄 작업은 이동할 수 있을 때까지 로컬 PC에 있어야 합니다. 프린터(또는 서버)의 대기열/상태를 쿼리하려면 프린터(또는 서버) 제조업체에 네트워크 기반 앱이나 검색 도구를 문의하세요.
각 기계가 다른 기계도 인쇄하고 있다는 사실을 알지 못하는 경우 프린터는 어떻게 여러 기계에서 문서를 인쇄합니까?
이는 컴퓨터 과학에서 흔히 발생하는 리소스 할당 문제입니다. 즉, 여러 사용자/소비자가 하나의 리소스를 두고 경합하는 것입니다. 이 경우(복잡성이 없음) 프린터나 서버는 각 요청을 수신한 다음 어떤 순서로 우선순위를 지정할 수 있습니다. 흐름 제어는 프린터가 과부하되지 않도록 보장합니다. 프린터의 작업 부하를 단순화하는 또 다른 가능한 솔루션은 토큰 전달 체계입니다. "토큰"을 받은 PC에는 하나의 작업에 대한 프린터 사용 권한이 부여됩니다. 하나의 작업이 인쇄된 후 해당 PC는 대기열에 작업이 있는 다른 PC에 토큰을 전달해야 합니다.