Question 1
Question
Many of the statements in "C" are similar to those in "Java" since
Answer
-
C is based on the design of Java.
-
C is a design ancestor of C++ and Java.
-
All programming languages use the same
style of statements.
-
Both C and Java share Eiffel as a common design ancestor.
-
None of the above
Question 2
Question
C has primitive types that are built into the language, but which of the following are not primitive types in C?
Answer
-
bool
-
string
-
int
-
char
-
None of the above
Question 3
Question
Whenever a boolean type result is required in C (e.g., in
an "if" statement),
Answer
-
Any non-zero value represents false.
-
Only the zero value represents false.
-
Only one value represents true.
-
Any non-zero value represents true.
-
None of the above
Question 4
Question
In C, "&&" and "||" are short-circuit boolean operators just like in
Java, while the "&" and "|" operators in C
Answer
-
Perform full boolean evaluation.
-
Are undefined.
-
Are synonyms for "&&" and "||".
-
Perform the bitwise-and and bitwise-or functions.
-
None of the above
Question 5
Question
The "!" operator in C is used to perform
Answer
-
Logical negation (e.g., turn "true" into "false").
-
Numeric negation (e.g., turn "-3" into "3").
-
Numeric inversion (e.g., turn "5" into "1/5").
-
Array reversal (reversing the items within an array).
-
None of the above
Question 6
Question
The assignment operator (=) in C
Answer
-
works exactly like assignment in Java.
-
cannot be used in boolean expressions.
-
cannot be used in arithmetic expressio
-
returns the value assigned as its value.
-
None of the above
Question 7
Question
Which pairs of operators can be easy to confuse but difficult to notice
and debug because they can often (though not always) yield the same
results?
Answer
-
+ and ++
-
= and ==
-
& and &&
-
| and ||
-
None of the above
Question 8
Question
This example of a pre-increment operator, "x = 12; array[++x] = 3;",
assigns
Answer
-
"array[12]" the value of 3
-
"array[13]" the value of 3
-
"array[12]" the value of 4
-
"array[13]" the value of 4
-
None of the above
Question 9
Question
This example of a compound assignment, "x = 12; array[x += 2] = 5;",
Answer
-
is not allowed.
-
assigns "array[12]" the value of 5
-
assigns "array[14]" the value of 5
-
assigns "x" the value of 7
-
None of the above
Question 10
Question
Which of the following are not used for
either input or output in C?
Answer
-
scanf
-
getc
-
printf
-
fprintf
-
None of the above
Question 11
Question
Which of the following are used for input in C?
Answer
-
scanf
-
getc
-
printf
-
fprintf
-
None of the above
Question 12
Question
Which of the following are used for output in C?
Answer
-
scanf
-
getc
-
printf
-
fprintf
-
None of the above
Question 13
Question
All C programs should contain a "main"
function with a signature matching
Answer
-
void main(char* argv[])
-
int main(string argv[])
-
void main(int argc, string argv[])
-
int main(int argc, char* argv[])
-
None of the above
Question 14
Question
The int value returned by the "main" function is used to indicate
Answer
-
whether or not the program terminated normally.
-
nothing, this is a holdover from early Unix that is no longer used.
-
how long (in milliseconds) the program took to complete.
-
the error a program experienced if there was a problem.
-
None of the above
Question 15
Question
Function declarations in C must always have
Answer
-
an implementation given as part of the declaration.
-
only primitive types given as formal parameters.
-
a non-empty set of formal parameters.
-
a non-void return type.
-
None of the above
Question 16
Question
Function declarations (though not necessarily their implementations) in C
Answer
-
must be given inside of a class definition.
-
must appear within the source code file in
which they are used.
-
can be nested within another function's implementation/body.
-
must be given in a separate file
(a ".h" file) from their implementation.
-
None of the above
Question 17
Question
Function implementations in C
Answer
-
cannot be given within another function's implementation/body.
-
begin with the "function" reserved keyword, if given separate from the
function declaration.
-
must always be given at the same time the
function is declared.
-
appear within curly braces (i.e., { }) directly after the function
signature.
-
None of the above
Question 18
Question
A "static" variable declaration within a function
Answer
-
reserves space for the variable apart from the run-time stack.
-
allows the variable to be accessed outside of the function implementation.
-
ensures that only one version of the variable exists, so that recursive
calls to the function share the exact same variable storage.
-
is optional as all variables within function
implementations are treated as "static" by default.
-
None of the above
Question 19
Question
Variables declared as "static"
Answer
-
may only appear within a function implementation.
-
can be accessed outside the scope of the function in which it is declared.
-
cannot change their values (i.e., they're constants).
-
have space for their values reserved outside of the run-time stack.
-
None of the above
Question 20
Question
Large C programs are often broken up into files ending with ".c" and ".h",
but
Answer
-
".c" files must contain only function
implementations.
-
".h" files should contain declarations used by multiple ".c" files.
-
the "#include" directives allow ".c" files to use the declarations in the
named ".h" file.
-
variables should never be delcared in a
".h" file.
-
None of the above
Question 21
Question
The "extern" declaration in C is
Answer
-
used to declare variables without setting
aside storage space.
-
implicit for all function declarations.
-
used for variables declared within a function so that they can be accessed
outside of the function.
-
have space for their values reserved outside of the run-time stack.
-
None of the above
Question 22
Question
Arrays in C are indexed starting with
Question 23
Question
The index given for an array reference in C
Answer
-
only needs to be checked at compile time to ensure
that it's within range.
-
is always checked at
run time to ensure that it's within range.
-
never needs to be checked as it is
always within range.
-
is not checked since it doesn't have to
be within its range.
-
None of the above
Question 24
Question
A "string" value in C is really an array of type "char".
So the
Answer
-
string value needs to be null terminated.
-
array must be exactly as long as the
desired string.
-
array should be at least one char longer than the desired string.
-
programer must use another variable to
keep track of the length of the string.
-
None of the above
Question 25
Question
If an array index in C is outside the bounds of the array, then
Answer
-
an error may or may not occur as a result of accessing the array element.
-
an error always occurs and the program
stops execution.
-
there may or may not be accessible storage associated with that array
location.
-
there is always accessible storage
associated with that array location.
-
None of the above
Question 26
Question
The declaration of an array (e.g., variables, function formal parameters)
must always include the
Answer
-
starting index of the array.
-
size of the array.
-
corresponding "#define" declaration for the array size.
-
type of the array elements.
-
None of the above
Question 27
Answer
-
grow dynamically as more items are added (similar to
ArrayLists in Java).
-
always have an associated length that can
be queried to determine the number of items in the array.
-
are polymorphic, meaning that any mix of items can be stored in the same
array.
-
are really just pointers to their item type
(e.g., "int x[]" and "int *x" are the same).
-
None of the above
Question 28
Question
A pointer is another name for the
Answer
-
type of values that can be assigned to a variable.
-
forward declaration of a function.
-
declaration of a "struct"ure.
-
address of the memory location holding a desired value.
-
None of the above
Question 29
Question
In C, pointers are declared
Answer
-
only for declarations of arrays.
-
by giving an asterisk (*) before the variable name declaration.
-
by giving an ampersand (&) before the variable name declaration.
-
for all formal parameters of functions.
-
None of the above
Question 30
Question
In C, if "x" and "y" are declared by "int x, *y;", then "y = &x;"
Answer
-
is undefined.
-
assigns "y" the value of "x".
-
makes "y" an alias for "x" so that any value assigned to one is
automatically assigned to the other.
-
assigns "y" the memory address where the value for "x" is located.
-
None of the above
Question 31
Question
This array declaration in C, "char name[10];",
Answer
-
reserves 10 contiguous bytes (characters) of storage for "name".
-
is equivalent to the declaration "string name;".
-
declares "name" as a pointer to the reserved storage.
-
declares each element of the array "name" as a pointer to a "char".
-
None of the above
Question 32
Question
Which of the following declarations in C is equivalent to "char *var;"?
Answer
-
char &var;
-
char var[10];
-
char var[];
-
char &var[];
-
None of the above
Question 33
Question
Strings in C are represented as an array of "char"acters
Answer
-
with the length kept separately so that the size of the string is known
(e.g., when printing).
-
that are terminated by a null value to denote their end.
-
and can be referenced via a "char"acter pointer (e.g., "char *").
-
which are immutable, so that the value cannot be changed (only copied).
-
None of the above
Question 34
Question
The address operator in C, ampersand (&),
Answer
-
converts a variable into a pointer, so that "&y" makes "y" a pointer to an
"int" when "y" was declared via "int y;".
-
is only used when passing parameters.
-
returns the memory address of any expression it is applied to
(e.g., "&(2*x + 3)").
-
returns the memory address of the variable it is applied to (e.g., "&x").
-
None of the above
Question 35
Question
In C, if the following declaration/initialization is made,
"int *x = &y;", then "x++"
Answer
-
makes "x" point to the next address in memory (following "y") that can hold
an "int" value.
-
is undefined and causes a compilation error.
-
is defined but causes a run-time error.
-
increases the value of "y" by 1.
-
None of the above
Question 36
Question
A "struct" declaration in C can group together
Answer
-
multiple data items.
-
data of the same type.
-
data of different types.
-
None of the above
Question 37
Question
A "struct" declaration in C always creates
Answer
-
a new type name that can be used in declaring variables (e.g.,
"person bob;").
-
a named structure form that can be referred to by "struct" followed by the
structure name (e.g., "struct person").
-
a recursive structure so that linked structures (e.g., lists, graphs) can
be coded.
-
a non-recursive structure since recursive structures
must be declared as types instead
of "struct"s.
-
None of the above
Question 38
Question
A self-recursive "struct" requires that at least one of its elements be
declared as
Answer
-
"struct NAME", where "NAME" is the name given the "struct" and the pointer
type is inferred.
-
"struct NAME *", where "NAME" is the name given the "struct".
-
"struct" where the current structure and pointer type are
inferred.
-
"struct *" where the current structure name is inferred.
-
None of the above
Question 39
Question
The "typedef" declaration in C declares the new type NAME
corresponding to a specified TYPE_DESCRIPTION (either an existing
type name or other type specification -
such as a "struct") via
Answer
-
"typedef NAME = TYPE_DESCRIPTION;"
-
"typedef TYPE_DESCRIPTION NAME;"
-
"typedef NAME TYPE_DESCRIPTION;"
-
"NAME = typedef TYPE_DESCRIPTION;"
-
None of the above
Question 40
Question
Assuming the legal C variable declaration "person bob;" then the following
declaration must also have been previously
given ("..." represents other appropriate declarations):
Question 41
Question
Assuming the legal C variable declaration "person bob;" then the following
declaration must also have been
previously given ("..." represents other appropriate declarations):
Question 42
Question
Given the following legal C declarations
typedef struct node {
int x;
struct node *next;
} *nodeType;
Answer
-
"nodeType" is a type equivalent to "struct node".
-
"nodeType" is a type equivalent to the type of the "next"
field.
-
"nodeType" is not a type,
but really a variable of type "struct node".
-
"nodeType" is not a type,
but really a variable of type pointer to a "struct node".
-
None of the above
Question 43
Question
In C, the standard way to request heap storage space while a program is
running is to use the function
Answer
-
getmem
-
new
-
malloc
-
heap_request
-
None of the above
Question 44
Question
The standard way in C to return heap storage that was previously allocated
is to use the function
Answer
-
delete
-
return
-
free
-
putmem
-
None of the above
Question 45
Question
In C, it is possible to determine the size of a type
(in bytes) by using the function
Answer
-
getsize
-
sizeof
-
sizeOfType
-
typeSize
-
None of the above
Question 46
Question
Which of the following C statements is a typical way that dynamic storage
might be allocated?
Answer
-
int x = new int();
-
int *x = (int) getmem(int);
-
int x = malloc(typeSize(int));
-
int *x = (int*) malloc(sizeof(int));
-
None of the above
Question 47
Question
An operating system (OS) provides
Answer
-
a clean and simple model of the computer.
-
manages the computer's resources.
-
support for the creation and use of user programs.
-
an abstract view of the computer, independent of the specific hardware.
-
None of the above
Question 48
Question
Which of the following are program types in an
operating system (OS)?
Question 49
Question
Which of the following are layers within an
operating system (OS)?
Question 50
Question
The operating system (OS) is that part of the system which
Answer
-
implements the editors, compilers, and interpreters used to
create other programs.
-
provides the command line interpreter (e.g., shell) for users.
-
comes pre-loaded on purchased computer hardware.
-
runs in supervisor (or kernel) mode.
-
None of the above
Question 51
Question
When viewed as an abstract machine, the operating system (OS)
Answer
-
enables Windows and Unix to run at the same time.
-
hides the details of lower level facilities (e.g., writing data to disk).
-
operates exactly the way a Turing machine does.
-
provides the implementations for data abstractions (e.g., stack,
queue) leveraged by user programs.
-
None of the above
Question 52
Question
When viewed as a resource manager, the operating system (OS)
Answer
-
coordinates the sharing of parts of the computer by different programs.
-
enables different programs to share the computer hardware.
-
determines when more memory or disk should be purchased.
-
ensures that the computer hardware is utilized with optimal
efficiency regarding every user's needs.
-
None of the above
Question 53
Question
The most common small computer architecture is the
Question 54
Question
Match the components in the below diagram (indicated by the letters A-G) of a typical small computer system to their names. [Note: No choice is
used more than once, and some may not be used.]
[blank_start]______[blank_end] A
______ B
______ C
______ D
______ E
______ F
______ G
Question 55
Question
The system bus on a small computer system is typically composed of the
Answer
-
control bus.
-
address bus
-
data bus.
-
memory bus.
-
None of the above
Question 56
Question
A bus architecture typically allows
Answer
-
only a single pair of components to communicate at a time.
-
one or two different pairs of components to communicate simultaneously.
-
up to three different components (<strong>not</strong> pairs) to
communicate simultaneously.
-
all components to communicate simultaneously.
-
None of the above
Question 57
Question
The internet is an example of a
Answer
-
packet switched architecture.
-
bus architecture.
-
circuit switched architecture.
-
fully connected architecture.
-
None of the above
Question 58
Question
A computer processor is commonly composed of
Question 59
Question
Registers in those processors which utilize them
Answer
-
are always grouped into sets of
"register windows".
-
are sometimes dedicated to specific
purposes (e.g., program counter, stack pointer).
-
are always general purpose, meaning
they can be used for any activity needing to use a register.
-
usually have the same number of bits as the address bus.
-
None of the above
Question 60
Question
Processor designs that can speed up computation include:
Answer
-
pipelining
-
multi-register
-
hyperthreaded
-
multi-core
-
None of the above
Question 61
Question
The memory hierarchy in computer design primarily reflects the
Answer
-
desire to reduce single points of failure.
-
tradeoff between speed and cost for a given amount of memory.
-
difference between volatile and non-volatile memory technologies.
-
large amounts of certain types of memories.
-
None of the above
Question 62
Question
A hard disk drive (HDD) can have access times that are
Answer
-
up to 10 million times slower than a register.
-
10-100 times slower than a solid state disk (SSD).
-
only 100 times slower than main memory (e.g., RAM).
-
1 million times slower than main memory (e.g., RAM).
-
None of the above
Question 63
Question
Physical devices are accessed via their
Answer
-
corresponding user level resource managers.
-
associated (physical) controllers.
-
device drivers by the operating system (OS).
-
associated command interpreter (e.g., shell) programs.
-
None of the above
Question 64
Question
Which of the following are device communications styles used by
operating systems?
Answer
-
Notify and Sleep
-
Busy waiting
-
Interrup driven
-
Direct Memory Access
-
None of the above
Question 65
Question
Approaches currently in common use for "installing" a new device driver
include
Answer
-
relinking the device driver object code with the OS kernel.
-
adding the device driver file to an OS config and rebooting.
-
adding the ".h" file to the OS config, recompiling the kernel,
and then rebooting the system.
-
dynamically loading the device driver code (no reboot).
-
None of the above
Question 66
Question
Device drivers that start an I/O then sit in a tight loop, checking to
see when the operation is complete are using the
Answer
-
Direct Memory Access communication style.
-
Notify and Sleep communication style.
-
Busy waiting communication style.
-
Interrup driven communication style.
-
None of the above
Question 67
Question
Device drivers that start an I/O but then block, returning control so
that other work can be done until the driver is awakened by an
interrupt are using the
Answer
-
Notify and Sleep communication style.
-
Busy waiting communication style.
-
Interrup driven communication style.
-
Direct Memory Access communication style.
-
None of the above
Question 68
Question
Device drivers that utilize special hardware to initiate and complete
an entire data transfer are using the
Answer
-
Notify and Sleep communication style.
-
Busy waiting communication style.
-
Interrup driven communication style.
-
Direct Memory Access communication style.
-
None of the above
Question 69
Question
While the operating system (OS) is handling an interrupt
Answer
-
all other interrupts are disabled to
ensure it completes.
-
only higher-priority interrupts are enabled.
-
all interrupts continue to be enabled,
since none should be missed.
-
only interrupts of the same kind are enabled.
-
None of the above
Question 70
Question
The boot process for most small computer systems begins with the
execution of the
Answer
-
hard disk drive device driver to allow loading of the OS executable file.
-
Basic Input/Output System (BIOS).
-
OS executable file directly from the boot device (e.g., HDD, SSD).
-
GRand Unified Bootloader (GRUB).
-
None of the above
Question 71
Question
The system calls that an OS makes available
Answer
-
can only be used by the OS.
-
must never be used by the OS
-
are the OS interface for user programs.
-
are provided as a convenience, but aren't really necessary.
-
None of the above
Question 72
Question
The difference(s) between a program and a process are
Answer
-
programs are static (non-executing).
-
programs are never part of the
operating system.
-
processes also contain a run-time stack and program counter.
-
processes make use of system calls, but programs don't.
-
None of the above
Question 73
Answer
-
must use system calls to accomplish
anything useful.
-
usually only directly communicates with its parent (or child) process(es).
-
may create a child process.
-
cannot use system calls unless it is being run by the
administrator/root user.
-
None of the above
Question 74
Question
When a problem or unusual condition is encountered, a process can send
signals to other processes. Processes receiving a signal
Answer
-
are required to provide a signal handler.
-
can specify specific functions to be called when a particular
type of signal is received.
-
run the function named "sighand" to handle the signal.
-
run the specified signal handler function, which takes over
execution when the signal is received.
-
None of the above
Question 75
Question
Every process is limited by the restrictions placed upon it by the
OS as determined by the process' associated
Answer
-
programming language in which the code was written.
-
program source code file.
-
working directory in the file system.
-
user identification (uid).
-
None of the above
Question 76
Question
The address space of a process
Answer
-
is the size of the program file for the process.
-
is the range of addressable bytes starting at 0 up to a maximum, usually
2^N - 1 (where N is the number of address bits).
-
is the amount of main memory initially
requested/needed by the process.
-
can be broken into smaller chunks so that programs larger than
the amount of main memory can be executed.
-
None of the above
Question 77
Question
System calls must be used to create new
Answer
-
processes.
-
user accounts.
-
programs.
-
files or directories.
-
None of the above
Question 78
Question
Every process has an associated
Answer
-
system call for accessing it.
-
working directory in the file system.
-
user identification (uid).
-
address space.
-
None of the above
Question 79
Question
A file descriptor is a unsigned number that processes use to reference
(e.g., read, write)
Answer
-
files that the process currently has open.
-
any file in the file system that the process is permitted to access/open.
-
entries in the process' table of active/open files.
-
all directories with the same user
identification (uid) as the process.
-
None of the above
Question 80
Question
In addition to normal user files (e.g., text files) there are
also special files that enable
Answer
-
users to create new file systems.
-
hard disk drives (HDDs) to look like files.
-
keyboards and mice to look like files.
-
processes to directly communicate with one another.
-
None of the above
Question 81
Question
Every OS has an I/O subsystem that
Answer
-
implements the details of all read/write
operations.
-
performs all of the cryptographic functions.
-
manages the devices attached to the computer.
-
enforces all of the OS security measures.
-
None of the above
Question 82
Question
The command interpreter which provides the non-GUI interface to the OS is
Answer
-
an ordinary program that uses system calls to access the
capabilities of the OS.
-
a special program that directly implements all
of the available commands.
-
often called the "shell".
-
unique, with each system having only one such program available.
-
None of the above
Question 83
Question
Which system organization is best described
as having: a set of service procedures that perform system calls;
utility procedures to assist in service procedure implementation;
and a main program that calls requested service procedures?
Answer
-
Monolithic System
-
Layered System
-
Micorkernel
-
Client-Server
-
None of the above
Question 84
Question
Which system organization is best described
as a sequence of abstractions built one on top of the other?
Answer
-
Layered System
-
Micorkernel
-
Exokernel
-
Client-Server
-
None of the above
Question 85
Question
Which system organization is best described
as having the absolute minimal portion of the OS facilities running
in kernel/supervisor mode, with the remaining portions running in
user mode?
Answer
-
Layered System
-
Micorkernel
-
Exokernel
-
Client-Server
-
None of the above
Question 86
Question
Which system organization best enables the
clean separation of policy and mechanism?
Answer
-
Layered System
-
Micorkernel
-
Exokernel
-
Client-Server
-
None of the above
Question 87
Question
Which system organization is best suited
for distributed systems?
Answer
-
Monolithic System
-
Layered System
-
Micorkernel
-
Client-Server
-
None of the above
Question 88
Question
Which of the following are examples of a layered OS?
Answer
-
Minix v1
-
THE
-
Windows NT
-
MULTICS
-
None of the above
Question 89
Question
Which of the following are examples of a microkernel OS?
Answer
-
Minix v1
-
THE
-
Windows NT
-
MULTICS
-
None of the above
Question 90
Question
A virtual machine is designed to
Answer
-
mimic any type of hardware so that older software can be run.
-
provide "copies" of the existing hardware so that multiple
operating systems can be run at the same time.
-
allow the remote (aka "virtual") execution of programs on
non-local hardware.
-
enable the use of virtual memory to run processes that require
a larger address space than is otherwise supported by the hardware.
-
None of the above
Question 91
Question
An OS that runs directly on the hardware with other OSes running on top
of it, is called a(n)
Answer
-
type 1 hypervisor.
-
type 2 hypervisor.
-
exokernel.
-
microkernel
-
None of the above
Question 92
Question
An OS that runs on top of a host OS (that in turn is running on top of
the physical hardware), and which can host other OSes running on top of
it, is called a(n)
Answer
-
type 1 hypervisor.
-
type 2 hypervisor.
-
exokernel
-
microkernel
-
None of the above
Question 93
Question
Software that divides up the underlying physical hardware so that each
running OS has sole access to its assigned hardware is called a(n)
Answer
-
type 1 hypervisor.
-
type 2 hypervisor.
-
exokernel
-
microkernel
-
None of the above
Question 94
Question
A type 1 hypervisor
Answer
-
runs directly on the hardware and the operating systems run in
the hypervisor.
-
runs on top of the host OS (which is running directly on the
hardware). Additional operating systems run in the hypervisor.
-
divides the hardware up into slices, with each OS running
directly on the hardware. It ensures that each OS
only uses the parts of the hardware is was assigned.
-
provides a microkernel used by each of the operating systems
running in the hypervisor. Each OS uses the microkernel
system calls to interact with the hardware.
-
None of the above
Question 95
Question
A type 2 hypervisor
Answer
-
runs directly on the hardware and the operating systems run in
the hypervisor.
-
runs on top of the host OS (which is running directly on the
hardware). Additional operating systems run in the hypervisor.
-
divides the hardware up into slices, with each OS running
directly on the hardware. It ensures that each OS
only uses the parts of the hardware is was assigned.
-
provides a microkernel used by each of the operating systems
running in the hypervisor. Each OS uses the microkernel
system calls to interact with the hardware.
-
None of the above
Question 96
Question
An exokernel is different from a virtual machine in that it
Answer
-
runs directly on the hardware and the operating systems run in
the hypervisor.
-
runs on top of the host OS (which is running directly on the
hardware). Additional operating systems run in the hypervisor.
-
divides the hardware up into slices, with each OS running
directly on the hardware. It ensures that each OS
only uses the parts of the hardware is was assigned.
-
provides a microkernel used by each of the operating systems
running in the hypervisor. Each OS uses the microkernel
system calls to interact with the hardware.
-
None of the above
Question 97
Question
Which of the following mechanisms for running multiple operating systems
make the most efficient use of the common underlying physical hardware?
Answer
-
type 1 hypervisor
-
type 2 hypervisor
-
microkernel
-
exokernel
-
None of the above
Question 98
Question
The illusion that multiple processes are running at the same time is
known as
Answer
-
parallelism
-
pseudoparallelism
-
hyperthreading
-
multiprocessing
-
None of the above
Question 99
Question
Pseudoparallelism is commonly achieved on a single processor system by
Answer
-
letting each process run to completion.
-
executing each process until it blocks before running the next process.
-
running exactly one instruction from each process in
round-robin fashion.
-
rapidly switching of the CPU between processes (multiprogramming).
-
None of the above
Question 100
Answer
-
another name for a program.
-
the compiled (executable) version of a program.
-
a program in execution.
-
a program that is either running (in the CPU) or ready, but
not blocked.
-
None of the above
Question 101
Question
Existing processes in a Unix/Linix/POSIX system can be viewed using
which command/facility?
Answer
-
task manager
-
pwd
-
ps
-
listAll
-
None of the above
Question 102
Question
Existing processes in a (Microsoft) Windows system can be viewed using
which command/facility?
Answer
-
task manager
-
pwd
-
ps
-
listAll
-
none of the above
Question 103
Question
Which of the following are voluntary reasons for
a process to terminate/exit?
Answer
-
Normal
-
Error
-
Fatal
-
Killed
-
None of the above
Question 104
Question
Which of the following are INvoluntary reasons
for a process to terminate/exit?
Answer
-
Killed
-
Normal
-
Error
-
Fatal
-
None of the above
Question 105
Question
Processes in a POSIX system exist as a hierarchy because
Answer
-
each process corresponds to a program file (and files are hierarchical).
-
except for the first process, all other
processes are created by an existing process.
-
each process corresponds to a user identification, and uids are
arranged hierarchically.
-
of the time frames in which they were created.
-
None of the above
Question 106
Question
Which of the following is not a state
in which an executing process can exist?
Answer
-
Running
-
Blocked
-
Ready
-
Waiting
-
None of the above
Question 107
Question
Which of the following is not a
transition between process states?
Answer
-
running to blocked
-
running to ready
-
ready to running
-
blocked to running
-
None of the above
Question 108
Question
Which of the following transition(s) are accomplished by the scheduler?
Answer
-
running to blocked
-
running to ready
-
ready to running
-
ready to blocked
-
None of the above
Question 109
Question
Which of the following transition(s) occur as the result of receiving
a signal?
Answer
-
ready to blocked
-
blocked to ready
-
running to ready
-
ready to running
-
None of the above
Question 110
Question
Which of the following transition(s) are accomplished when an I/O
operation is completed?
Answer
-
running to blocked
-
running to ready
-
blocked to running
-
blocked to ready
-
None of the above
Question 111
Question
Which state is a process in when it terminates normally?
Answer
-
Running
-
Blocked
-
Ready
-
Waiting
-
None of the above
Question 112
Question
Which state does a process first start in when it is created?
Answer
-
Running
-
Blocked
-
Ready
-
Waiting
-
None of the above
Question 113
Question
The process table is an array with each entry containing
Answer
-
the file of the corresponding program.
-
only the current program counter for that process.
-
only the process id number for that process.
-
all of the associated information for a
single process.
-
None of the above
Question 114
Question
A process that has been started but has not
yet terminated, is represented by an entry in the process table when
the process is in which of the following states?
Answer
-
Running
-
Blocked
-
Ready
-
Waiting
-
None of the above
Question 115
Question
The POSIX system call that creates a new process is called
Answer
-
new
-
create
-
dup
-
fork
-
None of the above
Question 116
Question
The family of POSIX system calls that replace the current process with a
new one is called
Answer
-
replace
-
exec
-
dup2
-
getpid
-
None of the above
Question 117
Question
The POSIX system call that causes a parent process to wait for a specific
child process to finish is called
Answer
-
wait
-
waitpid
-
fini
-
done
-
getpid
Question 118
Question
The POSIX system call, signal is used to
Answer
-
send a signal to another process.
-
declare what signals may be sent to a process.
-
respond back to a signal sent from another process.
-
indicate which function should be called when a particular
signal is received by the process.
-
None of the above
Question 119
Question
The POSIX system call that moves a running process to the blocked state
is called
Answer
-
wait
-
break
-
pause
-
block
-
None of the above
Question 120
Question
Threads are also commonly referred to as
Answer
-
hyperthreads
-
lightweight processes
-
execution traces
-
shared libraries
-
None of the above
Question 121
Question
When compared to processes, threads
Answer
-
are more limited in the size of their address space.
-
cannot be used for multiprogramming.
-
take the same amount of time for a context switch.
-
can be created and destroyed 10-100 times faster.
-
None of the above
Question 122
Question
Each thread must maintain its own
Question 123
Question
Every process contains at least
Answer
-
one thread.
-
two threads, one each for execution and garbage collection.
-
three threads, for execution, signal management, and garbage collection.
-
one child process.
-
None of the above
Question 124
Question
Which of the following items belong to the process (rather than to
each of its threads)?
Question 125
Question
Which of the following items belong to each thread (rather than to
the process)?
Question 126
Question
Because the address space is shared by the process' threads, care
must be taken (to avoid race conditions)
when
Question 127
Question
The POSIX pthread library call that creates a new thread is called
Answer
-
pthread_new
-
pthread_fork
-
pthread_create
-
pthread_dup
-
None of the above
Question 128
Question
The POSIX pthread library call that returns the thread's identification is
called
Answer
-
pthread_getid
-
pthread_self
-
pthread_pid
-
pthread_thread_id
-
None of the above
Question 129
Question
The POSIX pthread library call that terminates the calling thread is called
Answer
-
pthread_exit
-
pthread_terminate
-
pthread_yield
-
pthread_return
-
None of the above
Question 130
Question
The POSIX pthread library call that blocks the calling thread, resuming
when the indicated thread completes, is called
Answer
-
pthread_wait
-
pthread_block
-
pthread_pause
-
pthread_join
-
None of the above
Question 131
Question
The POSIX pthread library call that moves a running thread to the blocked
state is called
Answer
-
pthread_block
-
pthread_yield
-
pthread_stop
-
pthread_pause
-
None of the above
Question 132
Question
Threads that are managed in user/process space
Answer
-
require the OS to be thread aware.
-
require the process to keep track of the threads via a thread
table (in addition to the process table that the OS maintains).
-
enable context switching that is about 10x faster than kernel space threads.
-
cause the entire process to block if any one of its threads blocks
for a system resource.
-
None of the above
Question 133
Question
Threads that are managed in kernel space
Answer
-
requires the OS to be thread aware.
-
requires the process to keep track of the threads via a thread
table (in addition to the process table that the OS maintains).
-
enables context switching that is about 10x faster than
user/process space threads.
-
cause the entire process to block if any one of its threads blocks
for a system resource.
-
None of the above
Question 134
Question
Thread pools are collections of already allocated/created threads that
Answer
-
are assigned as requested to reduce the costs of thread creation
and destruction.
-
are only beneficial for user/process space managed threads.
-
are only beneficial for kernel space managed threads.
-
prevent an over abundance of threads, if the pool is the only
means for acquiring a thread.
-
None of the above
Question 135
Question
Hybrid User-Kernel space thread management allocates
Answer
-
one or more kernel threads to a process, with the process able
to start multiple user threads within each kernel thread.
-
exactly one user space and one kernel space thread to each process.
-
any number of user space and kernel space threads to each process as long as
they are requested from the corresponding user and kernel thread pools.
-
only user space threads, but enables the kernel to recognize when
a user thread is blocked.
-
None of the above
Question 136
Question
Scheduler activations use
Answer
-
kernel space threads, but only the process schedules them.
-
kernel space threads, but the process recommends to the OS
which thread to schedule/run next.
-
user space threads, but the kernel recognizes when a blocked
thread doesn't prevent other threads from running.
-
both user and kernel space threads for a process, with each
thread type being scheduled as it normally would be.
-
None of the above
Question 137
Question
The key issues for interprocess communication are
Question 138
Question
A race condition exists when
Answer
-
two or more processes share the same variable.
-
only user space threads are used for multiprogramming.
-
only kernel space threads are used for multiprogramming.
-
different execution orderings of instructions in multiple threads/processes
can produce different results.
-
None of the above
Question 139
Question
Race conditions can occur when
Answer
-
two or more threads/processes can read (but
not change) the same variable(s).
-
two or more threads/processes can read and write the same
variable(s) via UNinterruptible actions.
-
two or more threads/processes can read and write the same
variable(s) via interruptible actions.
-
when there is a mix of user space and kernel space threads
within the same process, but no shared variable(s).
-
None of the above
Question 140
Question
A critical section is a portion of executable code
Answer
-
that makes system calls.
-
in which only one thread (or process) should be active at a time.
-
that is protected by one or more semaphores.
-
which is shared by multiple threads.
-
None of the above
Question 141
Question
Critical sections should be as small as possible because
Answer
-
larger critical sections run more slowly.
-
this reduces the amount of process blocking.
-
there is a maximum code size for which semaphores will work.
-
they must run completely through
without blocking.
-
None of the above
Question 142
Question
Which of the following help to prevent difficulties when simultaneous
threads/processes share data?
Answer
-
No 2 threads/processes are in their critical sections at the same time.
-
No assumptions are made about process execution speeds.
-
No thread/process should wait arbitrarily long to enter its
critical section.
-
No thread/process outside its critical section should block other
threads/processes.
-
None of the above
Question 143
Question
Allowing processes to disable interrupts to prevent their being
interrupted while in their critical section(s) is
not a desirable solution since
Answer
-
it requires process threads to run in kernel space.
-
it requires process threads to run in user space.
-
a user program could use this to hog the CPU.
-
it fails to work if there are multiple CPUs.
-
None of the above
Question 144
Question
Strict alternation of processes can be accomplished by setting and
repeatedly checking a shared variable (i.e., spin locking), but this
Answer
-
is only suitable if the expected wait time is very short.
-
solution only works for two processes (or threads).
-
solution only works if there is only a single CPU involved.
-
is wasteful of the CPU resource.
-
None of the above
Question 145
Question
Peterson's solution uses what mechanism(s) to implement mutual exclusion
for a critical section?
Answer
-
disabling interrupts.
-
kernel space threads.
-
lock variable(s).
-
busy waiting.
-
None of the above
Question 146
Question
A test and set instruction is special because it
Answer
-
runs with interrupts disabled.
-
does the value copy and set as a single indivisible action.
-
works by performing the busy wait within a single instruction.
-
locks the memory bus.
-
None of the above
Question 147
Question
The priority inversion problem occurs when a busy waiting solution
for critical section access is used and
Answer
-
the busy waiting process/thread has a higher priority.
-
the busy waiting process/thread has a lower priority.
-
the busy waiting process/thread is a user space thread.
-
the busy waiting process/thread is a kernel space thread.
-
None of the above
Question 148
Question
The key feature(s) of the TSL instruction which allows it to implement
critical section access is
Answer
-
only being callable by the OS (and not by
user programs).
-
saving the current value of a register while the register's
value is set to a new value.
-
blocks if the value being assigned is different from the current
value of the register.
-
that it is atomic (i.e., cannot be interrupted once begun).
-
None of the above
Question 149
Question
Assuming that sleep (causing the calling process to
block) and wakeup (which unblocks the indicated
process) are system calls, then they can be used to implement critical
sections if the following condition(s) are kept:
Answer
-
wakeup signals are not
buffered.
-
sleep cannot be called by an already blocked process.
-
only strict alternation of critical sections is implemented.
-
wakeup is never called
first.
-
None of the above
Question 150
Question
The sleep (causing the calling process to block) and
wakeup (which unblocks the indicated process)
calls enable
Answer
-
strictly alternating critical sections to be protected
without busy waiting.
-
2) strictly alternating critical sections to be protected but only
when a test and set instruction is available.
-
the protection of any critical section so long as
wakeup is never
called first.
-
the protection of any critical section so long as
sleep is never
called twice in a row.
-
None of the above
Question 151
Question
The sleep (causing the calling process to block) and
wakeup (which unblocks the indicated process)
calls, can only support strictly alternating critical sections because
Answer
-
sleep only blocks a process for a maximum period of
time.
-
sleep cannot be called by an already blocked process.
-
wakeup cannot unblock a process that called
sleep twice in a row.
-
wakeup calls are not
buffered.
-
None of the above
Question 152
Question
Semaphores were introduced in 1965 by
Answer
-
Gary Peterson
-
Andrew Tannenbaum
-
Edgar Dijkstra
-
Alan Turing
Question 153
Question
The P (DOWN) semaphore operation is best
described by
Answer
-
count--; if (count <= 0) { sleep(); }
-
sleep(); if (count <= 0) { count--; }
-
if (count <= 0) { count--; } sleep();
-
if (count <= 0) { sleep(); } count--;
Question 154
Question
The V (UP) semaphore operation is best
described by
Answer
-
if (count == 1) { wakeup(sleeping_process); } count++;
-
if (count == 1) { count++; } wakeup(sleeping_process);
-
wakeup(sleeping_process); if (count == 1) { count++; }
-
count++; if (count == 1) { wakeup(sleeping_process); }
Question 155
Question
The starting value (count) of a semaphore indicates the number of
Answer
-
total times that the semaphore can be used (e.g., P/DOWN operations).
-
available items of that resource.
-
different types of resources.
-
concurrent processes (but not threads)
that can share the resource(s).
Question 156
Question
If semaphores are compared to having copies of a book in the library, then
Answer
-
P/DOWN is the equivalent of checking out a book.
-
P/DOWN is the equivalent of returning a book.
-
V/UP is the equivalent of checking out a book.
-
V/UP is the equivalent of returning a book.
Question 157
Question
The semaphore operations of P/DOWN and V/UP
must
Answer
-
be system calls.
-
behave atomically (i.e., uninterruptible).
-
be implemented in the OS kernel.
-
be implemented by the computer hardware.
Question 158
Question
A mutex is a binary semaphore that
Answer
-
is implemented using lock variables.
-
uses sleep and wakeup calls
for its implementation.
-
is implemented using monitors.
-
is optimized for having only two values/states.
Question 159
Question
Monitors, unlike semaphores, must be
implemented as
Answer
-
a (system) library so that different languages can share the
same implementation.
-
part of the programming language design.
-
part of the OS design.
-
a feature within the computer hardware.
Question 160
Question
Monitors are most easily adapted to programming languages that support
Answer
-
classes (e.g., Java).
-
records/structures (e.g., C).
-
functions (e.g., C, Cobol, Fortran).
-
conditional looping constructs, like "while" (e.g., C, Java).
Question 161
Question
What feature in Java can be used to implement a monitor?
Answer
-
virtualized
-
try-catch
-
finalized
-
synchronized
Question 162
Question
A different semaphore associated with each object instance can be used
to implement a monitor by having each
Answer
-
object do P/DOWN when it is created and a V/UP when it is destroyed.
-
object do V/UP when it is created and a P/DOWN when it is destroyed.
-
object method do P/DOWN when begun, and V/UP just before returning.
-
object method do V/UP when begun, and P/DOWN just before returning.
Question 163
Question
Which of the following interprocess communication mechanisms is well
suited for distributed sharing (i.e., across multiple computer systems)?
Answer
-
lock variables
-
semaphores
-
monitors
-
message passing
Question 164
Question
Message passing, like semaphores (and unlike monitors),
Answer
-
can easily be implemented as a (system) library so that different
languages can share the same implementation.
-
must be part of the programming language
design.
-
must be part of the OS design.
-
must be a feature within the computer hardware.
Question 165
Question
The "send" and "receive" system calls for message passing generally
Answer
-
must be used in conjunction with semaphores
to perform the coordination (e.g., to ensure the "receive"r is ready
and waiting when the "send" is done).
-
can only be used when the communicating processes are on different systems.
-
are considered impractically for efficiency reasons, and thus are
seldom used.
-
must indicate the message contents and
destination (for "send") and a place to store the message and the
source (for "received").
Question 166
Question
Which of the following are typical design issues associated with messages?
Answer
-
Handling lost (or missing) messages.
-
Minimum message size.
-
Maximum time between messages.
-
Messages are received in the order they were sent.
Question 167
Question
A popular system that implements message passing, developed in the
early 1990s, and available for a variety of different languages
(e.g., Java, Python, C) is called
Answer
-
The Messaging Library (TML)
-
Message Passing Interface (MPI)
-
Distributed Messaging Library (DML)
-
Distributed Process Communication (DPC)
Question 168
Question
When a message passing system causes the sender to block until the
receiver is ready (and vice versa), these semantics are called a
Answer
-
rendezvous
-
date
-
coupling
-
synch-up.
Question 169
Question
The mechanism in POSIX systems that provides a maximum size "mailbox"
that causes the writing/sending process to block once the "mailbox"
becomes full (allowing the writer/sender to proceed only when there
is room in the "mailbox" - perhaps due to the receiver reading/removing
items), is called
Answer
-
mail
-
spooling
-
pipes
-
conduits
Question 170
Question
Barriers are useful when a number of different threads/processes need to
Answer
-
take turns working on a common task.
-
<strong>must all meet at a common place before
proceeding to the next phase of a computation.
-
share a set of common variables/objects.
-
none of the threads/processes are allowed to go past
a certain point in the computation.
Question 171
Question
If all the threads/processes take very
close to the same amount of time to reach the barrier, then a good
way of implementing the barrier is
Answer
-
spin locks.
-
semaphores
-
monitors
-
message passing.
Question 172
Question
The Dining Philosophers Problem is a synchronization problem developed
by Edgar Dijkstra to
Answer
-
show how monitors can handle situations that semaphores cannot.
-
show how semaphores can handle situations that message passing cannot.
-
demonstrate the use of semaphores.
-
demonstrate the use of message passing.
Question 173
Question
The Dining Philosophers Problem is comprised of
Answer
-
5 philosophers each with a plate of slippery pasta.
-
philosophers needing to take turns eating, going around the
table in a clockwise fashion.
-
5 forks, one between each philosopher.
-
philosophers needing 2 forks to eat.
Question 174
Question
If no process within a group of processes is able to run because they
are all in the blocked state, and each
is waiting for the other to do something before it can continue, this
situation is called
Answer
-
starvation
-
deadlock
-
livelock
-
mutual stall.
Question 175
Question
If all the processes within a group of
processes is able to run (i.e., none are in the blocked state), but
none is able to accomplish any useful work for lack of a resource,
this situation is called
Answer
-
starvation
-
deadlock
-
livelock
-
resource hogging.
Question 176
Question
In the Dining Philosophers Problem, if each philosopher grabs a fork and
holds it until they are able to grab a second fork, this
Question 177
Question
In the Dining Philosophers Problem, if each philosopher grabs the fork
to their right, then seeing that the left fork is unavailable (having
been grabbed by the philosopher to their left) puts down the fork they
are holding, counts to 10, then tries again. This algorithm
Question 178
Question
The key to one working solution of the Dining Philosophers Problem is to
have philosophers exist in one of three states (THINING, HUNGRY, EATING)
and that when a philosopher is
Answer
-
finished EATING, she ensures that any HUNGRY philosopher sitting
next to her gets an opportunity to eat.
-
HUNGRY, she waits until each of her neighbors is THINKING before
trying to pick up forks.
-
THINKING, she waits until a neighbor is also THINKING before becoming HUNGRY.
-
finished THINKING, she waits until one of her neighbors is EATING
before becoming HUNGRY.
Question 179
Question
The Readers and Writers Problem involves multiple processes trying to
read or write to the same shared variable, in which
Answer
-
only one reader or writer can access the variable at a time.
-
only one reader or multiple writers can access the variable at a time.
-
multiple readers or a single writer can access the variable at a time.
-
multiple readers or multiple writers can access the variable at a time.
Question 180
Question
The primary types of solutions to the Readers and Writers Problem are when
Answer
-
writers are given preference over readers.
-
readers are given preference over writers.
-
readers and writers have simultaneous access so that no
preference is given to either one.
-
readers and writers strictly alternate, with every read followed
by a write and every write followed by a read.
Question 181
Question
The scheduler is that part of the OS that
Question 182
Question
The ability of the OS to switch from running one process to another
process VERY quickly is important because it
Answer
-
reduces the chance of an OS bug causing a problem.
-
increases the efficient use of the CPU.
-
helps reduce the response time for interactive users.
-
ensures peripheral resource availability.
Question 183
Question
Regarding the set of concerns that a process scheduling algorithm
should address,
Answer
-
all of them can be effectively address by a
single algorithm.
-
an OS should use two or more scheduling algorithms alternately
so as to address all of the concerns.
-
only a couple of the concerns are truly important, and the
remainder can be safely ignored.
-
some of the concerns are contradictory, so invariably
not all concerns can be addressed by
the OS.
Question 184
Question
With respect to process scheduling, it is helpful to view a process as
Answer
-
being primarily CPU bound.
-
being primarily I/O bound.
-
an intense period of CPU usage.
-
alternating sequences of CPU usage and waiting for I/O.
Question 185
Question
A CPU bound process is one in which
Answer
-
it spends most of its time in the ready or running state.
-
it spends most of its time in the blocked state.
-
once it obtains the CPU, it runs to completion.
-
most of the time it's waiting for the memory to be available.
Question 186
Question
An I/O bound process is one in which
Answer
-
it spends most of its time in the ready or running state.
-
it spends most of its time in the blocked state.
-
once it obtains the CPU, it runs to completion.
-
most of the time it's waiting for the memory to be available.
Question 187
Question
Preemptive scheduling is when a process
Answer
-
spends most of its time in the ready or running state.
-
spends most of its time in the blocked state.
-
can be booted out of the CPU by the scheduler, before the
process is finished.
-
can be booted out of the CPU by another user process, before the
process is finished.
Question 188
Question
Non-preemptive scheduling is when a process
Answer
-
spends most of its time in the ready or running state.
-
spends most of its time in the blocked state.
-
never becomes blocked.
-
always runs to termination
once it's in the CPU.
-
None of the above
Question 189
Question
Which type of process scheduling is
best
suited for interactive processing?
Answer
-
non-preemptive.
-
dedicated
-
busy wait.
-
preemptive
Question 190
Question
Which of the following are batch process scheduling algorithms?
Question 191
Question
The following steps describe which process scheduling algorithm?
Processes are added to a single queue in the order they are started.
The process at the front of the queue is run until it either completes, or blocks.
Once a process becomes ready again (after being blocked), it joins the end of the queue.
Question 192
Question
Which of the following process scheduling algorithms needs to know the
typical amount of time that a process often takes to complete?
Answer
-
Guaranteed Scheduling.
-
Shortest Job First.
-
Priority Scheduling.
-
Fair-Share Scheduling.
-
Shortest Remaining Time.
Question 193
Question
Which of the following process scheduling algorithms favors CPU bound
over I/O bound processes?
Answer
-
First Come, First Served
-
Shortest Job First
-
Shortest Remaining Time
-
Guaranteed Scheduling.
Question 194
Question
Which of the following process scheduling algorithms improves the average
turnaround time on a batch system?
Answer
-
First Come, First Served
-
Shortest Job First
-
Shortest Remaining Time
-
Guaranteed Scheduling.
Question 195
Question
Which of the following process scheduling algorithms improves the average
throughput on a batch system?
Answer
-
First Come, First Served
-
Shortest Job First
-
Shortest Remaining Time
-
Guaranteed Scheduling.
Question 196
Question
The following steps describe which process scheduling algorithm?
Processes are chosen to run from the front of a single ready queue.
Each process can run a max time called a quantum.
Processes may block before all of their time quantum is used.
As processes become ready, they go to the end of the ready queue.
Question 197
Question
The following steps describe which process scheduling algorithm?
Each process has a priority.
The ready process with the highest priority runs next.
Priorities can be set statically and/or dynamically.
Answer
-
Round Robin Scheduling.
-
Guaranteed Scheduling.
-
Priority Scheduling.
-
Fair-Share Scheduling.
Question 198
Question
The following steps describe which process scheduling algorithm?
Each queue corresponds to a different max time quantum to run.
If a process uses all of its time quantum, it's added to the end of the next highest quantum queue when it's moved to the ready state.
If a process blocks before exhausting its time quantum, it's added to the end of the next lowest quantum queue when it's moved to the ready state.
The processes in queues with larger quantum are run less frequently.
Answer
-
Round Robin Scheduling.
-
Multiple Queues.
-
Priority Scheduling.
-
Fair-Share Scheduling.
Question 199
Question
Which process scheduling algorithm(s) are particularly well suited to
very slow context switching?
Question 200
Question
Which process scheduling algorithm(s) are particularly well suited to
enforcing an advertised policy?
Answer
-
Multiple Queues.
-
Guaranteed Scheduling.
-
Lottery Scheduling.
-
Fair-Share Scheduling.