11.07.2015 Views

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

scheduling <strong>and</strong> prioritization 417Besides considerations <strong>of</strong> resolution <strong>and</strong> color depth, thequality <strong>of</strong> a scanned image depends on the quality <strong>of</strong> thescanner’s optics as well as on how the page or other objectreflects light. As anyone who has browsed eBay listingsknows, the quality <strong>of</strong> scans can vary considerably. Mostscanners come with s<strong>of</strong>tware that allows for the scanner tobe controlled <strong>and</strong> adjusted from the PC, <strong>and</strong> image-editings<strong>of</strong>tware can be used to further adjust the scanned image.Even if the input is a sheet <strong>of</strong> text, the scanner’s outputis simply a graphical image. Special s<strong>of</strong>tware must be usedto interpret scanned images <strong>of</strong> text <strong>and</strong> identify which characters<strong>and</strong> other features are present (see optical characterrecognition). Since such s<strong>of</strong>tware is not 100 percentaccurate, human pro<strong>of</strong>readers may have to inspect theresulting documents.Like printers, scanners have become quite inexpensivein recent years. Quite serviceable units are available foraround $100 or so. (Popular multifunction devices <strong>of</strong>teninclude scanner, copier, fax, <strong>and</strong> printer capabilities. Ascanner can be used as a copier or fax by sending its outputto the appropriate mechanism.)Many home users now use scanners to digitize imagesfor use in personal Web pages, online auctions, <strong>and</strong> othervenues. Since sheet-fed scanners can only process individualsheets (not books, magazines, or objects) they are now lesspopular. H<strong>and</strong>held scanners are somewhat tedious to use<strong>and</strong> require a steady h<strong>and</strong>, so they are generally used only inspecial circumstances where a flatbed scanner is not available.For capturing images <strong>of</strong> three-dimensional objects it is<strong>of</strong>ten easier to use a digital camera than a scanner.Specialized scanners are also available. For example,although many flatbed scanners have a holder for scanningfilm negatives, a dedicated film scanner (costing perhaps$500) is a better choice if one wants to scan <strong>and</strong> possiblyretouch or restore photographs. There are also high-enddrum-type scanners that can scan at resolutions <strong>of</strong> 10,000dpi or more.Further ReadingBusch, David D. Mastering Digital Scanning with Slides, Film, <strong>and</strong>Transparencies. Boston: Muska & Lipman, 2004.Chambers, Mark L. Scanners for Dummies. Hoboken, N.J.: Wiley,2004.PC Tech. Guide: Scanners. Available online. URL: http://www.pctechguide.com/55Scanners.htm. Accessed August 20, 2007.scheduling <strong>and</strong> prioritizationOften in computing, a fixed resource must be parceled outamong a number <strong>of</strong> competing users. The most obviousexample is the operating system’s scheduling the running<strong>of</strong> programs. Most computers have a single central processor(CPU) to execute programs. However, today virtuallyall operating systems (except for certain dedicated applications—seeembedded system) are expected to have manyprograms available simultaneously. For example, a Micros<strong>of</strong>tWindows user might have a word processor, spreadsheet,e-mail program, <strong>and</strong> Web browser all open at thesame time. Not only might all <strong>of</strong> these programs be carryingout tasks or waiting for the user’s input, but dozens <strong>of</strong>“hidden” system programs are also running in the background,providing services such as network support, virusprotection, <strong>and</strong> printing services (see multitasking).In this environment each executing program (or “process”)will be in one <strong>of</strong> three possible states. It may beactively executing (that is, its code is being run by theCPU). It may be ready to execute—that is, “wanting” toperform some activity but needing access to the CPU. Or,the program may be “blocked”—that is, not executing <strong>and</strong>unable to execute until some external condition is met.Blockage is usually caused by an input/output (I/O) operation.An example would be a program that’s waiting for datato finish loading from a file.In this sort <strong>of</strong> single-processor multiple-program system,the simplest arrangement is to have the operatingsystem dole out fixed amounts <strong>of</strong> execution time to eachprogram. Each program that indicates that it’s ready to rungets placed in a list (see queue) <strong>and</strong> given its turn. Whenthe amount <strong>of</strong> time fixed for a turn has passed, the operatingsystem saves the program’s “state” in the processor—thecontents <strong>of</strong> the registers, address pointed to by the pointerto the next instruction to be executed, <strong>and</strong> so on. Thisstored information can be considered to be a “virtual processor.”When the program’s turn comes around again, theprocessor is reloaded with the contents <strong>of</strong> the virtual processor<strong>and</strong> execution continues where it had left <strong>of</strong>f.Use <strong>of</strong> PriorityThe above scheme assumes that all programs should haveequal priority. In other words, that the timely completion<strong>of</strong> one program is not more important than that <strong>of</strong> another,or that no program should be “bumped up” in the queue forsome reason. In reality, however, most operating systems dogive some programs preference over others.For example, suppose the word processor has justreceived a user’s mouse click on a menu. The next programin the queue for execution, however, is an antivirus programthat’s checking all the files on the hard drive for possibleviruses. The latter program is important, but since theuser is not waiting for it to finish, a delay in its executionwon’t cause a significant problem. The user, on the otherh<strong>and</strong>, is expecting the menu just clicked on to open almostinstantly, <strong>and</strong> will become irritated with even a short delay.Therefore, it makes sense for the operating system to givea program that’s responding to immediate user activity ahigher priority than a program that’s carrying out tasksthat don’t require user intervention.There are other times when a program must (or should)be given a higher priority. A program may be required tocomplete a task within a guaranteed time frame (for example,to dispatch emergency services personnel). The operatingsystem must therefore provide a way that the programcan request priority execution.In general, an operating system that supports real-timeapplications or that requires great attention to efficiency inusing valuable devices may need a much more sophisticatedscheduling algorithm that factors in the availability <strong>of</strong> keydevices or services <strong>and</strong> adjusts program priorities in orderto minimize bottlenecks <strong>and</strong> guarantee that the system’s

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!