Introductory Terms
OPERATING SYSTEM
The (sw) LAYER of a computer system between the HW and
user programs which--
i) CONTROLS ALL OF THE COMPUTER'S RESOURCES, and
ii) PROVIDES AN INTERFACE to give user processes access
to the functionality of the computer.
TRANSFORMATION
Transforming a physical resource w/ a complex interface
into a "virtual resource" which has full functionality but has a simpler
interface.
MULTIPLEXING
Creating the illusion of several resources from 1 resource
"TIME-DIVISION" MULTIPLEXING
Using a resource for different virtual computers at different
times (ex using time slices by CPU)
"SPACE-DIVISION" MULTIPLEXING
Dividing a resource into smaller versions of itself and
each virtual computer is given a part of the resource (ex many processes
sharing memory at the same time).
SCHEDULING
Deciding which processes should get the resources they
need and when they should get them
SYSTEM CALL
Calls provided to user processes (by the OS) to provide
an interface btw the OS and applications and to protect system resources
fro user processes.
"VIRTUAL PROCESSOR"
Having a single cpu appear as many cpu's by using time-slices
and sharing the cpu with multiple processes.
"VIRTUAL PRIMARY MEMORY"
Dividing physical memory into pieces so that entire programs
need not reside in memory at the same time and giving the illusion that
the computer has more memory than it really does--thus, allowing many processes
to share memory at the same time.
"VIRTUAL SECONDARY MEMORY"
Allowing the user to see a hierarchical file system with
files of any size appearing to be kept "together" in one place when, in
fact, the physical computer stores files block by block. This hides
the details of where the file is stored (track, sector, ...) from the user.
"VIRTUAL I/O PROCESSOR"
Hiding the gory details of I/O from the user by providing
device independence and allowing the user to use such commands as "inFile
>> num1;"
MULTIPROGRAMMING
Storing more than one program in memory at a time, thus
allowing many processes to share memory.
ASYNCHRONOUS OPERATIONS
Those running on different clocks at different speeds
and, perhaps but not necessarily, needing occasional synchronization and
cooperation.
POLLING
Continually checking to see if an event has occurred. Wasteful if
done by the cpu.
MULTITASKING
Allowing more than one process to run "at a time", thereby
allowing the user to switch back and forth between applications.
DISTRIBUTED SYSTEM
One in which processes are parceled out into sub-processes
or sub-computations t be executed on other processors, requiring a much
more complicated OS.
PROCESS
A "program in execution", which includes
the following info: the executable program, its data and stack, its
program counter, the stack pointer and the content of other registers (saved
when the process is interrupted), and all other info needed to run the
program.
THE "SHELL" of an OS
The command interpreter of the OS whose job it is to
read and interpreet user commands from the terminal.
fork()
In UNIX, the way a process is created. "fork()"
creates a copy (except for the text segment) of the original process for
the child process. The parent and child processes then go their separate
ways, although the parent has a "wait" system call available to it to wait
for the child process to terminate if required.
(Note: The other system calls mentioned in class
can be referenced in your textbook.)
SIGNAL
A means for a process to communicate with another process
in special unexpected circumstances. (ex: to "kill" a process
in UNIX).
DEVICE INDEPENDENCE
Attempt by the OS to hide the details of file handling
from the user by providing commands that hide these details and, in UNIX,
for example, treating devices just like files (ex: "/dev/tty4" is
the file name for terminal #4.)
SPECIAL FILES (UNIX)
Not really files! Provided to make I/O devices
look like files. Allows use of the same system calls to read/write
from/to devices as to read/write from/to regular files. Ex:
BLOCK special files (model disks and other randomly accessible devices)
and CHARACTER special files (model printers, terminals, modems, and other
devices that accept or output character streams).
PIPE (UNIX)
A pseudo-file that connects two processes together, allowing
one process to send its output as input to another process as input.
Ex: ls -al | more
CLIENT-SERVER STRUCTURE for an OS
Moving as much code as possible (all but that which really
needs direct access to the hardware) up into higher layers from the kernel,
thus, yielding a minimal kernel and a group of processes ("servers", running
as user processes) ) to handle requests. (Advantage: Eachpart
of the OS is smaller and more manageable (modular!) ; if one server goes
down the others aren't affected; adaptable for distributed systems.)
Last revised: 09 Feb 99 by mlm