farms soon became voracious consumers of manpower, each server occasionally demanding considerable attention. The contents of each server had to be
backed up onto tape, and the tapes were subsequently rotated offsite for security. Each server was a potent
*25. Research various command-line interfaces (such as Unix, MS-DOS, and VMS) and dif-
ferent windows interfaces (such as any Microsoft Windows product, MacOS, and KDE).
a) Consider some of the major commands, such as getting a directory listing, deleting
The interaction and deep interdependence between hardware and software is
most evident in operating system design. In their historical development, operating systems started with an open shop approach, then changed to an operatordriven batch approach, and
FIGURE 8.19 Another Transaction Scenario
updated balance is written back to the disk. While the accounting clerks transaction is running, the s
ConsistencyAll updates comply with the constraints placed on all data elements.
IsolationNo transaction can interfere with the activities or updates of
DurabilitySuccessful transactions are written to durable media (e.g., magnetic
deadlock places more overhead on the system. With too much lock management,
transaction performance suffers. In general, deadlock prevention and detection is
secondary to performance considerations. Deadlock situations happen rarely,
whereas performance i
participating databases can be responsible for the integrity of their peer databases,
but an external transaction manager can keep all of them in synch.
One of the earliest and most successful transaction managers was IBMs Customer Information and Control
FIGURE 8.17 The Relationship of a Database Management System to
Other System Components
The individual data elements defined by a database sc
product by the quality and care with which the documentation is prepared. A visit
to a vendors Web site may sometimes reward you with a first-rate presentation of
the theoretical basis for their products. Two of the best vendor Web sites at this
of registers, the saving and restoring sequence can be reduced to simply changing
To fully understand this concept, try to envision all registers as being divided
into sets. When a program is executing in one environment, only one c
A minimalistic RISC ISA has no multiplication instructions. Thus, on a RISC system our multiplication problem would look like this:
mov ax, 0
mov bx, 10
mov cx, 5
Begin: add ax, bx
;causes a loop cx times
The CISC code, although shorter, requir
ture. The designers wondered why a machine needed an extensive set of complex
instructions when only about 20% of the instructions were used most of the time. This
question led to the development of RISC machines, which we first introduced in
Chapters 4 a
memory, and the development of VLSI technology, led to a different type of
architecture. Cheaper memory meant that programs could use more storage.
Larger programs consisting of simple, predictable instructions could replace
shorter programs consisting of
Complex instruction set designs were motivated by the high cost of memory.
Having more complexity packed into each instruction meant that programs could
be smaller, thus occupying less storage. CISC ISAs employ variable-length
instructions, which keeps th
11. Why should assembly language be avoided for general application development?
Under what circumstances is assembly language preferred or required?
12. Under what circumstances would you argue in favor of using assembly language
code for developing an a
23. What is the purpose of a link editor? How is it different from a dynamic link library?
24. Describe the purpose of each phase of a compiler.
25. How does an interpreter differ from a compiler?
26. What is the salient feature of the Java programming la
operating system layer from the process, database systems can optimize reads and
writes according to the database schema and index design.
In Chapter 7, we studied disk file organization. We learned that most disk
systems read data in chunks from the disk
public class Simple cfw_
public static void main (String args) cfw_
int i = 0;
double j = 0;
while (i < 10) cfw_
i = i + 1;
j = j + 1.0;
FIGURE 8.16 A Program Count
Today, virtually all system and application programs use higher-level languages
almost exclusively. Of course, higher-level is a relative term, subject to misunderstanding. One accepted taxonomy for programming languages starts by calling
binary machine c
binary code from the disk and running it, the operating system not only loads the
main program, but also loads the binaries for all modules that the program uses.
The loader provides the load addresses of each module to the main program prior to
becomes an effective address after it has been augmented by the 0250 stored in
the base address register.
Regardless of whether we have relocatable or nonrelocatable code, a programs instructions and data must be bound to actual physical addresses. The
The final output of most assemblers is a stream of relocatable binary instructions. Binary code is relocatable when the addresses of the operands are relative
to the location where the operating system has loaded the program in memory,
and the operating s
TABLE 8.2 Memory If Program Is Loaded Starting at 400h
used for specific purposes on some computer systems. Usually these applications
involve explicit control of attac
4th Generation Languages
(SQL, LISP, etc.)
3rd Generation Languages
(Java, C, Pascal, FORTRAN, COBOL, etc.)
2nd Generation Languages (Assembly Code)
1st Generation Languages (Binary