스풀은 인쇄의 의미는 무엇입니까?


18

마크는 나를 위해 의견 을 썼다

컵을 스풀링하지 않도록하는 방법, 즉 프린터 드라이버가 실행 된 후에 만 ​​lpr 명령을 종료하는 방법을 알 수 없습니다.

인쇄용 "스풀"이란 무엇입니까?

구글은 "중간 상점에 보내기 (주변 장치에서 인쇄 또는 처리하기위한 데이터)"를 의미하는 동사라고 말한다. 예를 들어 lpr명령으로 인쇄 할 때 인쇄 스풀이 나타내는 중간 저장소는 무엇입니까

Mark는 스풀의 의미를 차단과 관련이있는 것 같습니다. 그러나 Google이 제공 한 정의를 보면 그 사실을 알 수 없습니다.

감사.

답변:


12

인쇄 스풀은 효율적으로 프로그램을 제출하고 하나 이상의 프린터에 공급에서 작업을 수신에 대한 책임 프로그램 (스풀러)와 작업에 따라 관리하는 버퍼이다. 스풀의 요점은 속도가 다른 두 시스템 간의 통신을 처리하고 공유 장치에 대한 액세스를 제어하는 ​​것입니다. 전자는 프로그램이 인쇄 작업을 원하는만큼 빨리 제출할 수 있으며 프린터가 처리 할 수있는 속도만큼 (또는 느리게) 처리됩니다. 후자 는 RonJohn이 지적한 것처럼 작업을 일관되게 처리합니다. 따라서 인쇄시 작업이 혼합되지 않습니다.

네트워크 프린터는 자체 스풀을 제공하고 인쇄 서버 (CUPS lpd등)도 스풀을 구현합니다. 대부분의 인쇄 시스템은 액세스 제어, 할당량, 배너, 인쇄 옵션 등도 처리합니다. 스풀은 다른 상황에서 사용됩니다. 예를 들어, 테이프 기반 백업 서버는 이제 빠른 디스크 기반 스토리지 시스템에서 네트워크로 연결된 호스트의 백업 데이터를 스풀링하여 테이프 슈 광택을 피하는 데 필요한 엄청난 속도로 최신 테이프 드라이브를 공급할 수 있습니다.

주석과 관련하여 스풀의 관련성은 인쇄 작업 제출을 이행에서 장식하는 것입니다. 스풀하지 않으면 제출은 인쇄 작업으로 lpr만 완료되므로 작업이 완료된 후에 만 ​​명령이 완료됩니다. 프린터 자체도 스풀링 될 수 있으므로 컴퓨터에서 스풀을 제거하면 원하는 결과를 얻지 못할 수 있습니다!


1
"스풀"의 의미 중 어떤 부분이 Linux 커널의 IO 버퍼에 적용되지 않습니까?
Tim

3
메일 시스템은 종종 /var/spool/mail또는 유사한 위치 에서 메일 스풀을 사용합니다 . 이것은 메일 메시지의 비동기 전송에 근접 할 수 있도록하는 "버퍼"이기도합니다. 메일 메시지는 스풀 / 큐되어 있으며 메일 클라이언트는 실제로 메일이 시스템을 떠나기를 기다릴 필요가 없습니다. 인쇄 작업과 매우 유사합니다.
Kusalananda

1
@Tim은 실제로 적용 가능한지 여부에 대한 질문이 아니며 스풀이라고 부르지 않습니다. 버퍼는 일반적으로 버퍼에 공급되는 작업이 비 블로킹되는 결과를 낳습니다 write. 데이터가 실제로 대상에 도달 한 후가 아니라 사용 된 모든 버퍼 (Linux의 경우 페이지 캐시)에 데이터가 기록 되 자마자 완료됩니다. read반드시 비차 단일 필요는 없으며 요청한 것보다 적은 데이터를 반환 할 수 있습니다.
Stephen Kitt

1
"속도가 다른 두 시스템 간의 통신"을 처리하는 것 외에도 스풀은 느린 장치에 대한 액세스를 직렬화 합니다. (여러 작업이 동시에 프린터 나 모뎀에 쓰는 것이 얼마나 나쁜지 상상할 수 있습니다 ...)
RonJohn

1
인쇄 스풀은 일반적으로 인쇄 서버가 호스트되는 모든 디스크에 저장됩니다. 프린터에 자체 스풀이있을 수 있다고 말하면 일반적으로 "네트워크로 연결된"프린터 (특정 컴퓨터가 아닌 네트워크에 연결된)의 경우입니다. 그들은 자신의 프린트 서버를 호스팅하고 여러 개의 수신 작업 (자신의 스풀을 통해 수행)을 관리해야합니다. 프린터에 자체 스풀이 있으면 인쇄 할 수있는 것보다 훨씬 빠르게 인쇄 작업을 수락 할 수 있으므로 lpr프린터가 작업 수락을 기다릴 때까지 처리가 완료되기 전에 여전히 지연이 발생합니다.
Stephen Kitt

36

간단히 말해서 스풀러는 다음으로 구성됩니다.

  • 배경 프로그램
  • 프린터 당 디렉토리
  • 인쇄 작업 당 파일

귀하의 경우, 포 그라운드 프로그램 ( lpr)은 인쇄 작업을 (으 )로 전송하여 cups저장 작업을 수행 한 다음 직렬, 병렬, USB, 네트워크, ... 통신을 사용하여 실제로 인쇄 프로세스를 시작합니다.

그렇기 때문에 요즘에는 프린터에 용지가 없어도 컴퓨터를 계속 사용할 수 있지만 CP / M을 사용하는 어린 시절에 더 많은 용지를 추가 할 때까지 전체 컴퓨터가 잠겼습니다.

왜 "스풀링"이라고 불리는가?

그 당시에는 큰 컴퓨터가 테이프를 사용하여 디스크가 너무 비싸서 이러한 종류의 파일을 저장했기 때문에 데이터 센터 내부에서 작업 할 때 가장 먼저 들리는 것은 테이프가 회전하기 시작한 것입니다. 3-4 프린터가 인쇄를 시작합니다 (행운이있는 경우). ;-)

참고 1 : "스풀"은 "자기 테이프를 감을 수있는 원통형 장치"를 의미하는 명사이므로 "스풀링"은 테이프를 회전시키고 감는 원통형 장치입니다.


5
더 직접적으로, "스풀"은 "자기 테이프를 감을 수있는 원통형 장치"를 의미하는 명사입니다.
Harming Monica 중지

1
@OrangeDog : 답변에 통합되었습니다. 감사합니다! :-)
Fabby

2
+1 "스풀"이라는 용어의 출처를 몰랐습니다.
Joe

@Joe 요즘 아이들이 디스켓 / 플로피 / 스티키 / ... > :-)를
Fabby

5

먼저 "스풀링"이라는 용어의 의미로 시작해 봅시다. 때때로 문서의 크기가 프린터의 메모리보다 크므로 "프린터 스풀링"을 사용하면 여러 문서를 프린터로 보내고 모든 문서를 대기열에 넣을 수 있습니다.

이제 Unix에는 두 가지 인쇄 시스템이 있습니다.

  1. BSD 스풀링 시스템은 lpd데몬을 사용 하여 인쇄 작업을 예약합니다.
  2. SVR4 스풀링 시스템은 lpsched스케줄러로 사용 합니다.

Jeff Lessem의 USAIL : Unix 시스템 관리 독립적 학습 에는 BSD 및 SVR4 시스템에 대한 좋은 개요를 제공하는 Unix 에서 인쇄에 관한 섹션이 있습니다.

BSD 스풀링 시스템

많은 이기종 네트워크로 확장되어 많은 컴퓨터가 프린터를 공유 할 수 있습니다.

BSD 스풀링 시스템에서 프린터에 대한 액세스는 lpd 데몬 및 lpr프로그램에 의해 제어됩니다 . lpr인쇄를 위해 파일을 대기시킬 수있는 BSD 시스템의 유일한 프로그램입니다.

lpr인쇄 할 데이터를 받아 스풀링 디렉토리에 넣고 lpd디먼에 알립니다 . 각 인쇄 작업 lpr에 대해 스풀 디렉토리에 제어 파일 (cfxxx)과 데이터 파일 (dfxxx)의 두 파일을 작성합니다. xxx는 고유 한 job-id를 나타냅니다. 제어 파일에는 소유자의 신원을 포함하여 인쇄 작업을 처리하기위한 정보가 들어 있습니다. 데이터 파일에는 인쇄 할 실제 데이터가 포함됩니다.

lpd데몬은 검사 /etc/printcap대상 프린터를 식별하는 파일을. 대상 프린터가 로컬 장치 lpd인 경우 lpd데몬 의 복사본이 해당 인쇄 대기열에서 실행 중인지 확인하십시오 . 그렇지 않으면 lpd프린터가 연결된 원격 호스트에 대한 연결을 열고 제어 및 데이터 파일을 프린터로 전송합니다.

인쇄 작업은 lpd선입 선출 (FIFO) 기준으로 예약됩니다. 그러나 시스템 관리자는 lpc 명령을 사용하여 인쇄 대기열의 작업 우선 순위를 변경할 수 있습니다.

SVR4 스풀링 시스템 은 Solaris 및 HP-UX에서 사용됩니다. 더 많은 제어 및 유연성을 제공하지만 네트워크 인쇄용으로 설계되지 않았으며 설정하기가 더 복잡합니다.

SVR4 스풀링 시스템에서 lp명령은 인쇄 될 데이터를 승인하고 대상과 연관된 스풀 디렉토리에 사본을 작성합니다. 대상은 프린터 이름과 프린터가 속하는 클래스의 옵션 사양으로 구성됩니다. 지정된 프린터가 사용 중이면 작업은 같은 클래스의 다른 프린터로 전송됩니다. 스풀 디렉토리는 일반적으로 /var/spool/lp/request/printer-name인쇄 파일에는 작업과 사용자를 모두 식별 할 수있는 고유 한 이름이 지정됩니다.

프린터에 대한 액세스는 lpsched데몬에 의해 제어됩니다 . 스풀 디렉토리에서 작업을 선택하여 사용 가능 해지면 적절한 대상으로 전송합니다. lpsched는 일반적으로에 로그를 유지합니다 /usr/spool/lp/log. 로그 파일은 사용자 이름뿐만 아니라 인쇄 작업을 처리 할 때 발생하는 모든 오류를 나타냅니다.

참조 : 프린터 및 프린터 스풀러 – lp, lpstat 및 cancel 명령 | IT 블로그를위한 팁 및 유용한 정보


3
출처 를 언급
Stephen Kitt

나는 아직 끝나지 않았다 ;-)

3
Markdown 서식을 사용하여 자신의 텍스트와 인용 된 텍스트를 명확하게 지정하는 것이 좋습니다. unix.stackexchange.com/help/referencing
Anthony G-Monica의 정의

4

잊지 절대 스풀 의 약자 인 S imultaneous P eripheral O perations O N L의 오프라인. 초창기 (최초는 아님) 컴퓨팅 이후 프로세서는 프린터가 인쇄 할 수있는 것보다 빠른 결과를 생성했습니다. 스풀링이 없으면 프로세서는 인쇄 자체가 완료 될 때까지 "인쇄 작업"을 완료 할 수 없습니다. 이로 인해 종종 유휴 프로세서가 발생하여 프린터를 기다립니다.

스풀링의 큰 도약은 미국의 우주 프로그램에서 시작되었습니다. 컴퓨터가 결과를 너무 느리게 생성하여 새로운 스풀링 시스템이 NASA 용으로 만 작성되었습니다 (그러나 모든 IBM 시스템이 가질 때까지 후속 시스템이 인기를 얻었음에도 불구하고). 그것은 호출 된 H ouston 호환성 및 자동 S의 풀링 P의 제작 rogram HASP에게 제를 중첩 약어.

스풀링에 대한 좋은 비유는 스레드 팩토리입니다. 스레드는 빠른 속도로 회전하고 다른 곳에서는 스풀에 저장됩니다. 그런 다음 실의 스풀은 결국 재봉 또는 다른 기계에 놓여져 훨씬 느린 속도로 작동하여 완제품을 만드는 데 사용됩니다.


17
"스풀"의 파생은 광범위하게 백론으로 간주 되며 "PDQ"는 분명 합니다.
chrylis

6
그것은 사실 이후에 만들어진 백론입니다. 그런 소문을 퍼뜨리는 것은 유행이되었습니다. 그들 중 다수가 여기 에 나열되어 있습니다 . 아마도 "스풀"을 추가 할 때입니다!
파이프

4
@Jennifer IBM은 확실히 SPOOL이라는 프로그램을 가지고 있었지만, 위의 Jargon File 링크에서와 같이 이름을 일종의 말장난으로 선택했거나 기존 용어에서 파생 된 것으로 널리 추측되었습니다. 어느 쪽이든, 테이프 스풀 에 작업을로드 한 다음 재생하는 것을 의미합니다. 현대적인 사용에서 이는 오래된 IBM 제품이나 테이프 스풀을 의미하지 않으므로 전체 토론은 오늘날의 의미에 대한 질문에 학문적이며 실질적입니다.
IMSoP

3
@ 제니퍼 글쎄, 사람들이 추측하기가 잘못되어도 널리 추측되는 것은 잘못이 아닙니다. IBM이이 용어를 발명 한 것이 사실 일지라도 왜 그 단어를 선택 했습니까? 그들은 그 이름을 길게 쓰고 "오, 우연의 일치, 영어 단어 철자"라고 말했습니까? 아니면 기능에 적합한 것으로 보이는 용어를 찾고 있었을 가능성이 더 높았습니다. 테이프가 좋은 이미지 였나요?
IMSoP

4
이 게시물은 인용, 특히 어원 적 주장에 대한 인용에서 큰 도움이 될 것입니다.
TemporalWolf

3

스풀링은 상당히 오래된 학기입니다. 요즘에는 "인쇄 대기열"이 더 자주 사용되는 것을 볼 수 있습니다.

"대기열"은 "줄을 기다린다"는 영국 말입니다. 따라서 인쇄 작업이 "대기"됩니다. 즉 인쇄 대기 상태입니다.

스풀링이 완료된 후 (인쇄 라인간에 "사고"시간이 길어질 수 있음), 일반적으로 FIFO를 기준으로 인쇄되지만 인쇄 작업 우선 순위가이를 무시할 수 있습니다.

작업자가 용지를 교체 할 수 있도록 인쇄 스풀 및 대기열을 일시 중지 할 수 있습니다. 일부 페이지가 손상된 경우에도 다시 시작할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.