Co oznacza szpula do drukowania?

18

Mark napisał dla mnie komentarz

Nie wiem od razu, jak sprawić, by kubki nie były buforowane, to znaczy, jak sprawić, aby polecenie lpr zakończyło się dopiero po uruchomieniu sterownika drukarki.

Co oznacza „szpula” do drukowania?

Google twierdzi, że jest to czasownik oznaczający „wysyłanie (dane przeznaczone do drukowania lub przetwarzania na urządzeniu peryferyjnym) do sklepu pośredniego”. Jaki magazyn pośredni reprezentuje szpula drukująca, na przykład podczas drukowania za pomocą lprpolecenia

Mark wydaje się odnosić znaczenie szpuli do blokowania. Ale nie mogę tego zrozumieć, patrząc na definicję podaną przez Google.

Dzięki.

Tim
źródło

Odpowiedzi:

12

Szpula druk jest skuteczny bufor, zarządzany za pracę, z programem (bufor) odpowiedzialnej za otrzymywanie od złożenia oferty programów i karmienia ich do jednej lub więcej drukarek. Celem szpuli jest obsługa komunikacji między dwoma systemami z różnymi prędkościami oraz kontrolowanie dostępu do wspólnych urządzeń. To pierwsze oznacza, że ​​programy mogą przesyłać zadania drukowania tak szybko, jak chcą, a zadania te są przetwarzane tak szybko (lub powoli), jak drukarki mogą sobie z tym poradzić. Ten ostatni (jak wskazał przez RonJohn ) zapewnia, że prace są obsługiwane w sposób spójny: tak więc podczas drukowania zadania nie są pomieszane.

Drukarki sieciowe zapewniają własne bufory, a serwery wydruku (CUPS lpditp.) Również implementują bufory. Większość systemów drukowania obsługuje także kontrolę dostępu, kwoty, banery, opcje drukowania itp. Szpule są używane w innych kontekstach; na przykład serwery kopii zapasowych na taśmach buforują teraz dane kopii zapasowych z hostów podłączonych do sieci w szybkim systemie pamięci dyskowej, dzięki czemu mogą następnie zasilać nowoczesne napędy taśm z ogromną prędkością, której potrzebują, aby uniknąć połysku taśmy.

W kontekście komentarza znaczenie szpuli polega na tym, że koreluje ona przesłanie zadania drukowania z jego wypełnieniem. Brak buforowania oznaczałby, że przesyłanie zostanie zakończone tylko z zadaniem drukowania, a zatem lprpolecenie zakończy się dopiero po zakończeniu zadania. Usunięcie szpuli z komputera może jednak nie przynieść oczekiwanych rezultatów, ponieważ sama drukarka również może buforować!

Stephen Kitt
źródło
1
Która część znaczenia „buforowania” sprawia, że ​​nie ma on zastosowania do bufora IO jądra Linux?
Tim
3
System pocztowy często korzysta z bufora poczty pod /var/spool/maillub w podobnej lokalizacji. Jest to również „bufor” umożliwiający niemal asynchroniczne wysyłanie wiadomości e-mail. Wiadomość e-mail jest buforowana / umieszczana w kolejce, a klient poczty nie musi czekać, aż poczta faktycznie opuści system. Bardzo przypomina zadanie drukowania.
Kusalananda
1
@ Tymczas tak naprawdę nie jest to kwestia, czy ma to zastosowanie, czy nie, po prostu nie jest nazywane szpulą. Bufory generalnie powodują, że operacje w buforze nie są blokowane: writekończy się, gdy tylko dane zostaną zapisane w jakimkolwiek buforze, który zostanie użyty (w Linuksie, w pamięci podręcznej strony), a nie wtedy, gdy dane rzeczywiście znajdą się w miejscu docelowym. readniekoniecznie też nie blokuje i może zwrócić mniej danych niż zażądano.
Stephen Kitt
1
Należy również zauważyć, że - oprócz obsługi „komunikacji między dwoma systemami o różnych prędkościach” - szpule szeregują dostęp do tych wolniejszych urządzeń. (Możesz sobie wyobrazić, jak źle byłoby dla wielu zadań pisanie jednocześnie do drukarki lub modemu jednocześnie).
RonJohn,
1
Bufory wydruku są zwykle przechowywane na dysku, gdziekolwiek hostowany jest serwer wydruku. Kiedy mówię, że drukarki mogą mieć również własną szpulę, zwykle dzieje się tak w przypadku drukarek „podłączonych do sieci” (które są podłączone do sieci, a nie do określonego komputera); hostują własne serwery wydruku i muszą zarządzać wieloma przychodzącymi zadaniami (co robią, mając własną bufor). Gdy drukarka ma własną szpulę, może przyjmować zadania drukowania znacznie szybciej niż można je wydrukować, więc nawet jeśli lprczeka się , aż drukarka skończy przyjmowanie zadania, nadal będzie opóźnienie przed jego pełnym przetworzeniem.
Stephen Kitt,
36

Krótko mówiąc, bufor zawiera:

  • program działający w tle
  • katalog na drukarkę
  • plik na zadanie drukowania

W twoim przypadku program pierwszoplanowy ( lpr) wysyła swoje zadania drukowania do cups, który je przechowuje, a następnie używa komunikacji szeregowej, równoległej, USB, sieci ... w celu faktycznego rozpoczęcia procesu drukowania.

Dlatego właśnie teraz, nawet gdy w drukarce zabraknie papieru , możesz nadal korzystać z komputera, podczas gdy w dzieciństwie na CP / M cały komputer był zamknięty, dopóki nie dodałeś więcej papieru ...

Dlaczego nazywa się to „buforowaniem”?

Ponieważ w tamtych czasach duże komputery korzystały z taśmy do przechowywania tego rodzaju plików, ponieważ dyski były zbyt drogie, więc kiedy pracujesz w centrum danych, pierwszą rzeczą, którą słyszysz, jest to, że taśmy zaczynają się kręcić¹ i dopiero po sekundzie lub 3-4 drukarka zacznie drukować (jeśli masz szczęście). ;-)

Uwaga 1: „szpula” to rzeczownik oznaczający „cylindryczne urządzenie, na które można nawinąć taśmę magnetyczną”, dlatego „szpulowanie” jest cylindrycznym urządzeniem rozwijającym się i nawijającym taśmę ...

Fabby
źródło
5
Mówiąc bardziej bezpośrednio, „szpula” jest rzeczownikiem oznaczającym „cylindryczne urządzenie, na które można
nawinąć
1
@OrangeDog: włączone do odpowiedzi, dzięki! :-)
Fabby,
2
+1 Nigdy nie wiedziałem, skąd pochodzi termin „szpula”.
Joe
@Joe Ten sam powód, dla którego dzieci obecnie nie wiedzą, co właściwie oznacza przycisk Zapisz, ponieważ nigdy nie widzieli dyskietki / dyskietki / sztywnego / ... > :-)
Fabby
5

Najpierw zacznijmy od znaczenia terminu „buforowanie”: czasami rozmiar dokumentu jest większy niż pamięć drukarki, więc „buforowanie drukarki” umożliwia wysyłanie wielu dokumentów do drukarki i umieszczanie wszystkich tych dokumentów w kolejce.

Teraz pod Unixem są dwa systemy drukowania:

  1. Używa systemu buforowania BSD lpd demona do planowania zadań drukowania.
  2. Używa systemu buforowania SVR4 lpsched jako harmonogramu.

Jeff Lessem 's USAIL: Niezależne uczenie się administracji systemem Unix ma swoją sekcję drukowania w systemie Unix, który zapewnia dobry przegląd zarówno systemów BSD, jak i SVR4:

The buforowania BSD

rozciąga się również na duże, heterogeniczne sieci, umożliwiając wielu komputerom współużytkowanie drukarek.

W systemie buforowania BSD dostęp do drukarek jest kontrolowany przez lpd demona i lprprogram.lprjest jedynym programem w systemie BSD, który może kolejkować pliki do drukowania.

lprakceptuje dane do wydrukowania, umieszcza je w katalogu buforowania i powiadamia lpddemona. Dla każdego zadania drukowania lprtworzy dwa pliki, plik kontrolny (cfxxx) i plik danych (dfxxx) w katalogu buforu, xxx oznacza unikalny identyfikator zadania. Plik kontrolny zawiera informacje dotyczące obsługi zadania drukowania, w tym tożsamość właściciela. Plik danych zawiera rzeczywiste dane do wydrukowania.

lpdDemon sprawdza /etc/printcapplik, aby zidentyfikować drukarkę docelową. Jeśli drukarka docelowa jest urządzeniem lokalnym, lpdupewnij się, że kopia lpddemona działa w tej kolejce wydruku. W przeciwnym razie lpdotwiera połączenie ze zdalnym hostem, do którego podłączona jest drukarka, i przesyła do niego zarówno plik kontrolny, jak i plik danych.

Zadania drukowania są planowane według lpdzasady „pierwsze weszło, pierwsze wyszło” (FIFO). Administrator systemu może jednak użyć polecenia lpc, aby zmienić priorytet zadań w kolejce wydruku.

System buforowania SVR4 jest używany przez Solaris i HP-UX. Zapewnia większą kontrolę i elastyczność, ale nie został zaprojektowany do drukowania sieciowego i jest bardziej skomplikowany w konfiguracji.

W systemie buforowania SVR4 lppolecenie akceptuje dane do wydrukowania, tworzy ich kopię w katalogu buforowania powiązanym z miejscem docelowym. Miejsce docelowe składa się z nazwy drukarki i opcjonalnej specyfikacji klasy, do której należy drukarka. Gdy określona drukarka jest zajęta, zadanie jest wysyłane do innej drukarki tej samej klasy. Katalog buforowania jest normalnie/var/spool/lp/request/printer-name a plik wydruku otrzymuje unikalną nazwę identyfikującą zadanie i użytkownika.

Dostęp do drukarki jest kontrolowany przez lpscheddemona. Odbiera zadania z katalogu buforowania i wysyła je do odpowiedniego miejsca docelowego, gdy będzie dostępne. lpsched prowadzi również dziennik, zwykle w /usr/spool/lp/log. Plik dziennika wskazywałby każdy błąd w przetwarzaniu zadań drukowania, a także nazwę użytkownika,

Zobacz także: Drukarki i bufor programu - polecenia lp, lpstat i anuluj | Wskazówki i porady dotyczące bloga IT

Anthony G - sprawiedliwość dla Moniki
źródło
3
Miło jest wspomnieć o swoich źródłach ...
Stephen Kitt
Jeszcze nie skończyłem ;-)
3
Sugeruję użycie formatowania Markdown, aby wyjaśnić, który tekst jest twój, a który cytowany. Powinieneś również podziękować
Anthony G - Sprawiedliwość dla Moniki
4

Zapominać, że nie SPOOL jest skrótem S imultaneous P eripheral O perations O N L ine. Od wczesnych (ale nie najwcześniejszych) dni przetwarzania procesory generowały wyniki szybciej niż drukarki mogły je wydrukować. Bez buforowania procesor nie mógłby zakończyć „zadania drukowania”, dopóki sam druk nie zostanie zakończony. Często powodowało to bezczynność procesora i czekanie na drukarkę.

Podczas amerykańskiego programu kosmicznego nastąpił wielki postęp w buforowaniu. Komputery wytwarzały wyniki zbyt wolno, więc nowy system buforowania został napisany tylko dla NASA (chociaż on i jego następcy zyskiwali na popularności, dopóki wszystkie systemy IBM go nie miały). Nazywano ją H Ouston A utomatic S pulowania P ROGRAM, co haków pierwszej zagnieżdżonej akronim.

Dobrą analogią do buforowania jest fabryka nici - nić jest szybko wirowana i przechowywana - gdzie indziej - na szpuli. Następnie szpulę nici ostatecznie umieszcza się na maszynie do szycia lub innej, która działa znacznie wolniej, gdzie jest używana do stworzenia gotowego produktu.

Jennifer
źródło
17
Zauważ, że wyprowadzenie „szpuli” jest powszechnie uważane za backronym , a „PDQ” zdecydowanie tak jest.
Chrylis -on strike-
6
Jest to oczywiście skrót utworzony po fakcie. Rozpowszechnianie takich plotek staje się modne. Wiele z nich jest tutaj wymienionych , może nadszedł czas, aby dodać do niej „szpulę”!
rura
4
@Jennifer Chociaż IBM z pewnością miał program o nazwie SPOOL, powszechnie przypuszcza się, podobnie jak w powyższym odsyłaczu do pliku Jargon, że albo wybrali tę nazwę jako rodzaj kalambura, albo wyprowadzili ją z istniejącego terminu. Tak czy inaczej, prawdopodobnie odnosi się to do załadowania zadań na szpulę taśmy, a następnie ich odtworzenia. We współczesnym użyciu nie odnosi się ani do przestarzałego produktu IBM, ani szpuli taśmy, więc cała debata jest raczej akademicka i styczna do pytania, co to znaczy dzisiaj.
IMSoP,
3
@Jennifer Cóż, nie mylę się, że jest szeroko przypuszczany, nawet jeśli ludzie mylą się, aby to przypuszczać. I nawet jeśli to prawda, że ​​IBM wymyślił ten termin, dlaczego wybrali te słowa? Czy napisali tę nazwę odręcznie, a następnie powiedzieli „och, to zbieg okoliczności, to oznacza angielskie słowo” - czy jest bardziej prawdopodobne, że szukali terminu, który wydawałby się odpowiedni dla funkcjonalności, i myśleli, że „dodają zadania do taśma „był dobrym obrazem?
IMSoP,
4
Ten post bardzo skorzystałby na cytowaniach, w szczególności ze względu na roszczenia etymologiczne.
TemporalWolf,
3

Buforowanie jest dość starym terminem szkolnym. W dzisiejszych czasach będzie częściej używane „Kolejka wydruku”.

To Queue to brytyjskie powiedzenie „czekać w kolejce”. Zadania drukowania są więc „w kolejce”, tzn. Czekają w kolejce na wydruk.

Po zakończeniu buforowania zadania (między wierszami wydruku mogą występować długie „myślące” czasy), następnie jest ono drukowane, zazwyczaj na zasadzie FIFO, ale priorytet zadania drukowania może go zastąpić.

Bufory wydruku i kolejki można wstrzymać, aby operatorzy mogli zmienić papier. Można również uruchomić ponownie, jeśli niektóre strony zostały uszkodzone.

WinEunuuchs2Unix
źródło