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.

354 operators <strong>and</strong> expressionsOperating systems, particularly those designed for multipleusers, must also manage <strong>and</strong> secure user accounts.The administrator (or sometimes, ultimately, the “superuser” or “root”) can assign users varying levels <strong>of</strong> access toprograms <strong>and</strong> files. The owners <strong>of</strong> files can in turn specifywhether <strong>and</strong> how the files can be read or changed by otherusers (see data security).In today’s highly networked world most operating systemsprovide basic support for networking protocols suchas TCP/IP. Applications can use this facility to establishnetwork connections <strong>and</strong> transfer data over the local orremote network (see network).The operating system’s functions are made available toprogrammers in the form <strong>of</strong> program libraries or an applicationprogramming interface (API). (See library, program<strong>and</strong> application programming interface.)The user can also interact directly with the operatingsystem. This is done through a program called a shell thataccepts <strong>and</strong> responds to user comm<strong>and</strong>s. Operating systemssuch as MS-DOS <strong>and</strong> early versions <strong>of</strong> UNIX acceptedonly typed-in text comm<strong>and</strong>s. Systems such as Micros<strong>of</strong>tWindows <strong>and</strong> UNIX (through facilities such as XWindows)allow the user to interact with the operating system throughicons, menus, <strong>and</strong> mouse movements. Application programmerscan also provide these interface facilities through theAPI. This means that programs from different developerscan have a similar “look <strong>and</strong> feel,” easing the learning curvefor users.Issues <strong>and</strong> TrendsAs the tasks dem<strong>and</strong>ed <strong>of</strong> an operating system have becomemore complex, designers have debated the best overall form<strong>of</strong> architecture to use. One popular approach, typified byUNIX, is to use a relatively small kernel for the core functions.A community <strong>of</strong> programmers can then write theutilities needed to manage the system, performing taskssuch as listing file directories, editing text, or sending e-mail. New releases <strong>of</strong> the operating system then incorporatethe most useful <strong>of</strong> these utilities. The user also has a variety<strong>of</strong> shells (<strong>and</strong> thus interfaces) available.The kernel approach makes it relatively easy to port theoperating system to a different computer platform <strong>and</strong> thendevelop versions <strong>of</strong> the utilities. (Kernels were also a necessitywhen system memory was limited <strong>and</strong> precious, butthis consideration is much less important today.)Designers <strong>of</strong> modern operating systems face a number<strong>of</strong> continuing challenges:• security, in a world where nearly all computers arenetworked, <strong>of</strong>ten continuously (see computer crime<strong>and</strong> security <strong>and</strong> firewall)• the trade<strong>of</strong>f between powerful, attractive functionssuch as scripting <strong>and</strong> the security vulnerabilities theytend to present• the need to provide support for new applications suchas streaming audio <strong>and</strong> video (see streaming)• ease <strong>of</strong> use in installing new devices (see devicedriver <strong>and</strong> plug <strong>and</strong> play)• The continuing development <strong>of</strong> new user-interfaceconcepts, including alternative interfaces for the disabled<strong>and</strong> for special applications (see user interface<strong>and</strong> disabled persons <strong>and</strong> computing)• the growing use <strong>of</strong> multiprocessing <strong>and</strong> multiprogramming,requiring coordination <strong>of</strong> processors sharingmemory <strong>and</strong> communicating with one another (seemultiprocessing <strong>and</strong> concurrent programming)• distributed systems where server programs, clientprograms, <strong>and</strong> data objects can be allocated amongmany networked computers, <strong>and</strong> allocations continuallyadjusted or balanced to reflect dem<strong>and</strong> on thesystem (see distributed computing)• the spread <strong>of</strong> portable, mobile, <strong>and</strong> h<strong>and</strong>held computers<strong>and</strong> computers embedded in devices such asengine control systems (see laptop computer, PDA,<strong>and</strong> embedded system). (Sometimes the choice isbetween devising a scaled-down version <strong>of</strong> an existingoperating system <strong>and</strong> designing a new OS that isoptimized for devices that may have limited memory<strong>and</strong> storage capacity.)Further ReadingBach, Maurice J. The Design <strong>of</strong> the UNIX Operating System. EnglewoodCliffs, N.J.: Prentice Hall, 1986.Ritchie, Dennis M. “The Evolution <strong>of</strong> the UNIX Time-Sharing System.”Lecture Notes in <strong>Computer</strong> <strong>Science</strong> #79: Language Design<strong>and</strong> Programming Methodology, New York: Springer-Verlag,1980. Available online. URL: http://cm.bell-labs.com/cm/cs/who/dmr/hist.html. Accessed August 14, 2007.Silberschatz, Abraham, Peter Baer Galvin, <strong>and</strong> Greg Gagne. OperatingSystem Concepts. 7th ed. New York: Wiley, 2004.operators <strong>and</strong> expressionsAll programming languages provide operators to specifyarithmetic functions. Some <strong>of</strong> them, such as addition +,subtraction -, multiplication ×, <strong>and</strong> division ÷, are familiarfrom elementary school arithmetic (although the asteriskrather than the traditional x is used for multiplication inprogram code, to avoid confusion with the letter x). Additionaloperators found in languages such as C, C++, <strong>and</strong>Java include % (modulus, or remainder after division), ++(adds one <strong>and</strong> stores the result back into the oper<strong>and</strong>), <strong>and</strong>-- (decrement; subtracts one <strong>and</strong> stores the result back intothe oper<strong>and</strong>).Oper<strong>and</strong>s are data items such as variables, constants, orliterals (actual numbers) that are operated on by the operator.An operator is called unary if it takes just one oper<strong>and</strong>(the increment operator ++ is an example). An operator thattakes two oper<strong>and</strong>s is considered to be binary, <strong>and</strong> this istrue <strong>of</strong> most arithmetic operations such as addition, multiplication,subtraction, <strong>and</strong> division.A combination <strong>of</strong> oper<strong>and</strong>s <strong>and</strong> operators constitutes anarithmetic expression that evaluates to a particular valuewhen the program runs. Thus in the C statement:Total = SubTotal + SubTotal Tax × Tax_Rate;

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

Saved successfully!

Ooh no, something went wrong!