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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

operating system 353tion programmers with a way to invoke system services, <strong>and</strong>gives users a way to control programs <strong>and</strong> organize files.DevelopmentThe earliest computers were started with a rudimentary“loader” program that could be used to configure the systemto run the main application program. Gradually, a moresophisticated way to schedule <strong>and</strong> load programs, link programstogether, <strong>and</strong> assign system resources to them wasdeveloped (see job control language <strong>and</strong> mainframe).As systems were developed that could run more thanone program at a time (see multitasking), the duties <strong>of</strong> theoperating systems became more complex. Programs had tobe assigned individual portions <strong>of</strong> memory <strong>and</strong> preventedfrom accidentally overwriting another program’s memoryarea. A technique called virtual memory was developed toenable a disk drive to be treated as an extension <strong>of</strong> themain memory, with data “swapped” to <strong>and</strong> from the diskas necessary. This enabled the computer to run more <strong>and</strong>/or larger applications. The operating system, too, becamelarger, amounting to millions <strong>of</strong> bytes worth <strong>of</strong> code.During the 1960s, time sharing became popular particularlyon new smaller machines such as the DEC PDPseries (see minicomputer), allowing multiple users to runprograms <strong>and</strong> otherwise interact with the same computer.Operating systems such as Multics <strong>and</strong> its highly successful<strong>of</strong>fshoot UNIX developed ways to assign security levelsto files <strong>and</strong> access levels to users. The UNIX architecturefeatured a relatively small kernel that provides essentialprocess control, memory management, <strong>and</strong> file system services,while drivers performed the necessary low-level control<strong>of</strong> devices <strong>and</strong> a shell provided user control. (See unix,kernel, device driver, <strong>and</strong> shell.)Starting in the late 1970s, the development <strong>of</strong> personalcomputers recapitulated in many ways the earlier evolution<strong>of</strong> operating systems in the mainframe world. Earlymicrocomputers had a program loader in read-only memory(ROM) <strong>and</strong> <strong>of</strong>ten rudimentary facilities for entering, running,<strong>and</strong> debugging assembly language programs.During the 1980s, more complete operating systemsappeared in the form <strong>of</strong> Apple DOS, CP/M, <strong>and</strong> MS-DOS forIBM PCs. These operating systems provided such facilitiesas a file system for floppy or hard disk <strong>and</strong> a comm<strong>and</strong>-lineinterface for running programs or system utilities. Thesesystems could run only one program at a time (althoughexploiting a little-known feature <strong>of</strong> MS-DOS allowed additionalsmall programs to be tucked away in memory).As PC memory increased from 640 kB to multiple megabytes,operating systems became more powerful. Apple’sMacintosh operating system <strong>and</strong> Micros<strong>of</strong>t Windows couldmanage multiple tasks. Today personal computer operatingsystems are comparable in sophistication <strong>and</strong> capability tothose used on mainframes. Indeed, PCs can run UNIX variantssuch as the popular Linux.ComponentsWhile the architecture <strong>and</strong> features <strong>of</strong> operating systemsdiffer considerably, there are general functions common toalmost every system. The “core” functions include “booting”the system <strong>and</strong> initializing devices, process management(loading programs intro memory assigning them a share <strong>of</strong>processing time), <strong>and</strong> allowing processes to communicatewith the operating system or one another (see kernel).Multiprogramming systems <strong>of</strong>ten implement not only processes(running programs) but also threads, or sections <strong>of</strong>code within programs that can be controlled separately.A memory management scheme is used to organize <strong>and</strong>address memory, h<strong>and</strong>le requests to allocate memory, freeup memory no longer being used, <strong>and</strong> rearrange memory tomaximize the useful amount (see memory management).There is also a scheme for organizing data created orused by programs into files <strong>of</strong> various types (see file). Mostoperating systems today have a hierarchical file system thatallows for files to be organized into directories or foldersthat can be further subdivided if necessary. In operatingsystems such as UNIX, other devices such as the keyboard<strong>and</strong> screen (console) <strong>and</strong> printer are also treated like files,providing consistency in programming. The ability to redirectinput <strong>and</strong> output is usually provided. Thus, the output<strong>of</strong> a program could be directed to the printer, the console,or both.In connecting devices such as disk drives to applicationprograms, there are <strong>of</strong>ten three levels <strong>of</strong> control. At thetop level, the programmer uses a library function to opena file, write data to the file, <strong>and</strong> close the file. The libraryitself uses the operating system’s lower-level input/output(I/O) calls to transfer blocks <strong>of</strong> data. These in turn aretranslated by a driver for the particular device into the lowlevelinstructions needed by the processor that controls thedevice. Thus, the comm<strong>and</strong> to write data to a file is ultimatelytranslated into comm<strong>and</strong>s for positioning the diskhead <strong>and</strong> writing the data bytes to disk.A typical operating system processes user comm<strong>and</strong>s or actionsusing an interface (such as a shell). Both user comm<strong>and</strong>s <strong>and</strong>requests from application programs communicate with the operatingsystem through the application Programming Interface (API),which provides services such as file, memory, process, <strong>and</strong> networkmanagement.

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

Saved successfully!

Ooh no, something went wrong!