Cad Guidebook: A Basic Manual for Understanding and Improving Computer-Aided Design (14 page)

Read Cad Guidebook: A Basic Manual for Understanding and Improving Computer-Aided Design Online

Authors: Stephen J. Schoonmaker

Tags: #Science & Math, #Biological Sciences, #Biotechnology, #Professional & Technical, #Medical eBooks, #Special Topics, #Professional Science

BOOK: Cad Guidebook: A Basic Manual for Understanding and Improving Computer-Aided Design
6.03Mb size Format: txt, pdf, ePub

45

46 Chapter 3

generally applicable. Of course, this situation can change drastically and quickly
since the computer systems market tends to be quite dynamic.

Figure 3.1 shows a simplified schematic of the “layers” of computer soft-
ware that are generally found on a computer that could run a CAD program. They
can be considered layers since the upper layer programs can not function without
the lower layer program. Recall from Chapter 1 that the CPU is the device that
executes or “runs” all the instructions of the computer, and recall that the CPU
has a rather limited number of “machine code” instructions that it can actually
perform. It is the task of the software layers that run on a computer to translate a
“real” job to be performed (such as CAD) into these machine code instructions.

The lowest layer of software can be considered the low-level instructions
that actually make something happen on the computer. Besides the “language”
for the machine code instructions, this layer of software contains programs such
as the BIOS (a basic input/output software that allows for variety of device con-
figuration), and drivers. Drivers are a pretty generic term for pieces of “code” or
software that the computer must have resident in the memory system in order to
translate functional operations to the actual digital signals that make a device
function. There isn’t a great deal that needs to be understood about this lowest
layer of software, except to know it is there.

The next higher layer of software is the operating system. This is probably
the most important layer for the long-term, reliable functioning of the computer.
An important attribute of the operating system is that it is the layer between the
machine layer and the layers that a user really interacts with. It is the layer that

FIGURE
3.1

“Layers” of computer software.

Computer Software Basics 47

“understands” the functioning of the hardware as well as the application such as
CAD. Therefore, it really controls and coordinates the functioning of virtually all
the software on the computer. Keep in mind that the operating system itself is
usually not a single computer program. It is a collection of a wide variety of pro-
grams coordinated by a master command interpreter or kernel program. The
command interpreter program is often kept in the memory system (for ready use),
while the other pieces of the operating system (such as a program that prints files)
may go in and out of memory on an “as needed” basis. To the user, though, this
transition is transparent; it seems that the operating system is doing all these
functions seamlessly (or at least it should).

The next higher layer of software is called the Graphical User Interface or
GUI (pronounced “gooey”). As the name implies, it uses graphics (as opposed to
text commands) to interface with operating system. In some cases, the GUI could
be independent of the operating system (the GUI called Xwindows runs on a va-
riety of computer systems); while others are more limited (Microsoft Windows is
virtually exclusive to the PC-class computers which use an Intel-compatible
CPU). Indeed, Microsoft Windows (the most standard Windows program) is not
really distinguishable from the operating system. However, at one time Microsoft
Windows was a program that ran “on top of” an operating system called PC-
DOS®
(which did not use graphics at all). At this point, it should be assumed that
all CAD programs will be running on top of a GUI of some kind.

The top-most layer of software is the actual application that the user wants
to use. In this case, the most relevant example is a CAD program. Other examples
would be “office productivity” programs (such as word processing, spreadsheets,
etc.) and analytical programs such as Finite Element Analysis (FEA). It is im-
portant to realize that the CAD program may not function without the GUI, and
the GUI is not going to function without the operating system, and the operating
system is not going to function without the BIOS and driver programs. Clearly
the CAD program is quite dependent on a proper overall configuration of the
platform.

Keep in mind, however, that this concept of software layers is a simplifica-
tion; it is just helpful to think in these terms when a specific troubleshooting or
performance issue arises. For example, the user interface of CAD software may
be broken down into a number of different windows, and in this case, the GUI of
the system is going to be used to create these graphical windows. However, an-
other part of the user interface of the CAD software may skip the GUI layer, and
even the operating system layer, and send instructions directly to the graphics
adapter device via the driver in the bottom layer.

The next section of this chapter begins a detailed discussion of the operat-
ing system layer of software.

48 Chapter 3

3.2 THE OPERATING SYSTEM

As mentioned above, the OS of a computer system is clearly the most important
layer of software of which a user needs to have some knowledge (besides the
CAD application itself). Anything a CAD user learns concerning the operating
system is time well spent.

There are many important functions of the operating system, and as many
as possible are presented here, but this is really a basic overview. The following
are some generic functions generally expected to be performed by the operating
system.

Memory management: Brings applications (such as the CAD software)

from the storage system (i.e. disk drive) to the memory system (i.e. the

RAM chips).

File management: Creates, modifies, copies, deletes the files in the storage

system.

User management/security: Controls users and what users have access to

which functions of the computer system.

Command interface: A set of commands and/or language that can be used

to control and automate functions.

Network management: Controls access to network resources (at least at a

high level).

Device management: Controls what peripherals are active and their

configuration.

Queue management: Controlling functions (such as printing) that need to

manage data streams to off-line operations.

The next sections provide some information on the each of these topics.

3.2.1 Memory Management

The primary means by which the operating system controls the computer is via
memory management. When a user wants to run a program (such as the CAD
software), the user somehow indicates this to the operating system (such as click-
ing on an “icon” or typing a command). The operating system then “looks” at the
appropriate location on the storage system (whether a local disk drive or on a
network), finds the file for starting the CAD software, and then copies the execut-
able data found in that disk file into the memory system. The operating system
then signals to the CPU where in Memory to find the data and programming, and
the CPU then performs the functions indicated by the new code in memory. Thus,
although the CPU does the processing of data, the operating system tells the CPU
what function is desired by the user.

Of course, there are many other functions that the computer performs just
to keep itself operating. Although a user may be running CAD software, there is

Computer Software Basics 49

plenty going on behind the scenes, and the operating system is generally coordi-
nating this unseen activity. Usually this sort of management is configured when
the computer is first set up, and then the operating system simply sustains this
management activity without intervention. However, each of these unseen activi-
ties requires resources (such as memory) when they run or execute.

Often the way the operating system manages memory (between the com-
peting programs) tends to be a distinguishing characteristic of the operating sys-
tem. In the past, operating systems such as PC-DOS only allowed one program to
run at a time. Now most operating systems, such as Unix and Windows, do allow
more than one program to be running at the same time. This behavior can be re-
ferred to as multiprocessing or multitasking (although this can be an oversimpli-
fication). Older derivatives of Windows allowed all programs to enter and leave
the Memory system in a sort of cooperative manner, but Unix and its derivatives,
as well as newer versions of Windows have one small master program that co-
ordinates and controls the other programs vying for resources. This small master
program is called an operating system kernel. The kernel based systems tend to
be more stable since the master program is more likely to be able to get rid of
rogue or badly-written programs, while systems without a kernel can crash more
often.

3.2.2 User Management

Beyond the behavior associated with multitasking, there is somewhat of a distinc-
tion between operating systems depending on whether they are multi-user or not.
In this case, the operating system is not only able to coordinate the functions of
different programs, it is able to manage different users. These are computers that
have “logins” or “logons.” This kind of operating system is also going to have
different classes of users. Some users are going to be able to modify the system
itself, while other users are going to only be able to run the system, while yet
other users may have even fewer privileges. In many cases, the ability to control
users is blurred between a network and an individual computer. Unix and main-
frame operating systems are able to manage individual, independent users access-
ing a single computer. This is how they were originally developed, since
computer terminals were used by a group of people. Windows based computers
tend to only exhibit multi-user behavior when the PC is connected to a network,
and privileges are granted in consideration of the network resources. Controlling
this function can be referred to as user management.

Depending on the operating system, there can be a fairly sophisticated set
of privileges that can be granted and/or revoked to certain users. The most impor-
tant function to control is the privilege of modifying the computer system or op-
erating system itself. This is known as the administrative or “admin” privilege.
For most operating systems, the name of user that has this privilege is derived

50 Chapter 3

from “admin” (SYSADM, NETADM, etc.). On Unix systems, the user with this
privilege is called “root” (since Unix systems have an interesting “tree” organiza-
tion scheme based on files or pseudofiles and access to the “root” of the tree
would mean any part of the tree could be changed). Thus, on Unix systems, hav-
ing “root access” would mean that the computer system or the operating system
could be fundamentally altered.

Besides administrative access control, user management often involves
segregating users so that there are only certain parts of the computer system that
they can affect. In this case, different users may be able to access files in one
“area” of the storage system that has been designated for their use, but they may
not access files in other “areas” (which could be part of someone else’s reserved
space). This sort of control would be typical for a CAD user on a typical com-
puter system. They have the privilege of working on the computer system, and
they have some space in which to do their work, but there are areas of the com-
puter that are off limits in some way. In some cases, this user may have whole
systems hidden from his view, while in other cases, the user can “see” other re-
sources, but can not actually use them. This space on the computer system where
a general user can create and destroy data is generally called “home” or the
“home directory” or a “C drive.”

Another aspect of user management that can be configured in many operat-
ing systems is called groups. In this case, there are types of users that are grouped
together. As a group, then, they would have access to certain privileges such as
being able to read and write each other’s files. This sort of arrangement could be
used to control different design teams working on a CAD system. Only members
of a given team would be able to alter the team’s files. However, “higher end”
CAD systems would probably offer this capability as part of the CAD system
itself (instead of relying on the operating system).

Other books

A Swift Pure Cry by Siobhan Dowd
Vengeance by Colin Harvey
Black Stump Ridge by John Manning; Forrest Hedrick
Bat Summer by Sarah Withrow
Blacky Blasts Back by Barry Jonsberg
The Wooden Skull by Benjamin Hulme-Cross
Seven Year Switch (2010) by Cook, Claire
Kings Rising by C.S. Pacat