Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Improved Buffering for Printer Device Driver

IP.com Disclosure Number: IPCOM000060560D
Original Publication Date: 1986-Apr-01
Included in the Prior Art Database: 2005-Mar-08
Document File: 1 page(s) / 12K

Publishing Venue

IBM

Related People

Chen, JN: AUTHOR [+4]

Abstract

A method is described to improve the intermediate buffering of data to a device by using large buffers of varying lengths. In the UNIX*-operating system, device drivers for character devices such as printers, must sometimes copy data to intermediate internal buffers before outputting the data. The intermediate buffers consist of many small fixed blocks of memory, each 64 bytes long. These blocks are collectively referred to as character lists. The UNIX operating system runs as a virtual machine on the Virtual Resource Manager (VRM) control program. the VRM control program is similar in concept to the IBM VM/370 control program. The VRM and UNIX run in a virtual memory environment. The kernel device driver requests an output operation with a supervisor call (SVC) to the VRM.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 70% of the total text.

Page 1 of 1

Improved Buffering for Printer Device Driver

A method is described to improve the intermediate buffering of data to a device by using large buffers of varying lengths. In the UNIX*-operating system, device drivers for character devices such as printers, must sometimes copy data to intermediate internal buffers before outputting the data. The intermediate buffers consist of many small fixed blocks of memory, each 64 bytes long. These blocks are collectively referred to as character lists. The UNIX operating system runs as a virtual machine on the Virtual Resource Manager (VRM) control program. the VRM control program is similar in concept to the IBM VM/370 control program. The VRM and UNIX run in a virtual memory environment. The kernel device driver requests an output operation with a supervisor call (SVC) to the VRM. It is desirable to make as few SVCs as possible in order to attain execution efficiency. Thus, if character lists are used for buffering, many SVCs would be issued. That is, one SVC would be issued for each 64 bytes of data. In order to raise the ratio of data bytes per SVC, it is necessary to use larger buffers. The best ratio that is achievable is one SVC per write system call. This can be attained most efficiently by dynamically matching the size of the intermediate kernel buffer to the size of the program buffer. By using allocation routines similar to the memory allocation routines used by programs, buffers of varying size can be allocated from...