COP4600 FINAL EXAM STUDY GUIDE (A NEW
UPDATED VERSION) LATEST COMPLETE ACTUAL EXAM
REAL QUESTIONS AND CORRECT DETAILED ANSWERS
(CORRECT VERIFIED ANSWERS) |ALREADY GRADED A+
(REVISED EXAM)
Chapter 4 - ANSWER: The Abstraction: The Process /
Processes
Process /
Job - ANSWER: A running program.
The abstraction provided by the OS of a running program.
Virtualizing - ANSWER: The process of running a virtual instance of a computer
system in a layer abstracted from the actual hardware.
Time Sharing (CPU) - ANSWER: By running one process, then stopping it and
running another, and so forth, the OS can promote the illusion that many virtual
CPUs exist when in fact there is only one physical CPU (or a few).
This basic technique allows users to run as many concurrent processes as they
would like; the potential cost is performance, as each will run more slowly if the
CPU(s) must be shared.
The basic idea is simple: run one process for a little while, then run another one,
and so forth. By time sharing the CPU in this manner, virtualization is achieved.
Space Sharing (CPU) - ANSWER: Where a resource is divided (in space) among those
who wish to use it.
For example, disk space is naturally a spaceshared resource; once a block is
assigned to a file, it is normally not assigned to another file until the user deletes
the original file.
Mechanisms - ANSWER: Low-level methods or protocols that implement a needed
piece of functionality.
Context Switch - ANSWER: A time-sharing mechanism employed on all modern
OSes.
It gives the OS the ability to stop running one program and start running another on
a given CPU
Policies - ANSWER: Algorithms for making some kind of decision within the OS.
,For example, given a number of possible programs to run on a CPU, which program
should the OS run? A scheduling policy in the OS will make this decision, likely using
historical information (e.g., which program has run more over the last minute?),
workload knowledge (e.g., what types of programs are run), and performance
metrics (e.g., is the system optimizing for interactive performance, or throughput?)
t o make i t s decision.
Machine State - ANSWER: What a program can read or update when it is running.
At any given time, what parts of the machine are important to the execution of this
program?
Memory - ANSWER: A component of machine state that comprises a process.
Instructions lie in memory; the data that the running program reads and writes sits
in memory as well. Thus the memory that the process can address (called its
address space) is part of the process.
Address Space - ANSWER: The memory that the process can address.
Registers - ANSWER: Part of the process's machine state.
Many ins t ruct ions expli ci t l y read or upda te regis ters and thus clearly the y are
importan t t o the exe cut ion of the process
Program Counter (PC) /
Instruction Pointer (IP) - ANSWER: A special register that form part of a machine
state.
Tells us which instruction of the program will execute next.
Stack Pointer & Frame Pointer - ANSWER: Used to manage the stack for function
parameters, local variables, and return addresses.
Modularity - ANSWER: A general software design principle.
A common design paradigm to separate high-level policies from their low-level
mechanisms.
Separating the two allows one easily to change policies without having to rethink
the mechanism and is thus a form of modularity.
Process API - ANSWER: Create: An operating system must include some method to
create new processes. When you type a command into the shell, or double-click on
an application icon, the OS is invoked to create a new process to run the program
you have indicated.
, Destroy: As there is an interface for process creation, systems also provide an
interface to destroy processes forcefully. Of course, many processes will run and
just exit by themselves when complete; when they don't, however, the user may
wish to kill them, and thus an interface to halt a runaway process is quite useful.
Wait: Sometimes it is useful to wait for a process to stop running; thus some kind of
waiting interface is often provided.
Miscellaneous Control: Other than killing or waiting for a process, there are
sometimes other controls that are possible. For example, most operating systems
provide some kind of method to suspend a process (stop it from running for a
while) and then resume it (continue it running).
Status: There are usually interfaces to get some status information about a process
as well, such as how long it has run for, or what state it is in.
Load - ANSWER: The first thing that the OS must do to run a program is to load its
code and any static data (e.g., initialized variables) into memory, into the address
space of the process.
Disk /
Disc /
Flash-Based SSD - ANSWER: Where a program initially resides in some kind of
execut able format.
The process of loading a program and static data into memory requires the OS to
read those bytes from disk and place them in memory somewhere.
Eagerly (Loading Process) - ANSWER: The loading process done all at once before
running the program.
Lazily (Loading Process) - ANSWER: Loading pieces of code or data only as they are
needed during programexe cut ion.
Run-Time Stack /
Stack - ANSWER: Once the code and static data are loaded into memory, there are
a few other things the OS needs to do before running the process. Some memory
must be allocated for the program's run-time stack (or just stack).
C programs use the stack for local variables, function parameters, and return
addresses; the OS allocates this memory and gives it to the process.
The OS will also likely initialize the stack with arguments; specifically, it will fill in
the parameters to the main() function, i.e., argc and the argv array.
UPDATED VERSION) LATEST COMPLETE ACTUAL EXAM
REAL QUESTIONS AND CORRECT DETAILED ANSWERS
(CORRECT VERIFIED ANSWERS) |ALREADY GRADED A+
(REVISED EXAM)
Chapter 4 - ANSWER: The Abstraction: The Process /
Processes
Process /
Job - ANSWER: A running program.
The abstraction provided by the OS of a running program.
Virtualizing - ANSWER: The process of running a virtual instance of a computer
system in a layer abstracted from the actual hardware.
Time Sharing (CPU) - ANSWER: By running one process, then stopping it and
running another, and so forth, the OS can promote the illusion that many virtual
CPUs exist when in fact there is only one physical CPU (or a few).
This basic technique allows users to run as many concurrent processes as they
would like; the potential cost is performance, as each will run more slowly if the
CPU(s) must be shared.
The basic idea is simple: run one process for a little while, then run another one,
and so forth. By time sharing the CPU in this manner, virtualization is achieved.
Space Sharing (CPU) - ANSWER: Where a resource is divided (in space) among those
who wish to use it.
For example, disk space is naturally a spaceshared resource; once a block is
assigned to a file, it is normally not assigned to another file until the user deletes
the original file.
Mechanisms - ANSWER: Low-level methods or protocols that implement a needed
piece of functionality.
Context Switch - ANSWER: A time-sharing mechanism employed on all modern
OSes.
It gives the OS the ability to stop running one program and start running another on
a given CPU
Policies - ANSWER: Algorithms for making some kind of decision within the OS.
,For example, given a number of possible programs to run on a CPU, which program
should the OS run? A scheduling policy in the OS will make this decision, likely using
historical information (e.g., which program has run more over the last minute?),
workload knowledge (e.g., what types of programs are run), and performance
metrics (e.g., is the system optimizing for interactive performance, or throughput?)
t o make i t s decision.
Machine State - ANSWER: What a program can read or update when it is running.
At any given time, what parts of the machine are important to the execution of this
program?
Memory - ANSWER: A component of machine state that comprises a process.
Instructions lie in memory; the data that the running program reads and writes sits
in memory as well. Thus the memory that the process can address (called its
address space) is part of the process.
Address Space - ANSWER: The memory that the process can address.
Registers - ANSWER: Part of the process's machine state.
Many ins t ruct ions expli ci t l y read or upda te regis ters and thus clearly the y are
importan t t o the exe cut ion of the process
Program Counter (PC) /
Instruction Pointer (IP) - ANSWER: A special register that form part of a machine
state.
Tells us which instruction of the program will execute next.
Stack Pointer & Frame Pointer - ANSWER: Used to manage the stack for function
parameters, local variables, and return addresses.
Modularity - ANSWER: A general software design principle.
A common design paradigm to separate high-level policies from their low-level
mechanisms.
Separating the two allows one easily to change policies without having to rethink
the mechanism and is thus a form of modularity.
Process API - ANSWER: Create: An operating system must include some method to
create new processes. When you type a command into the shell, or double-click on
an application icon, the OS is invoked to create a new process to run the program
you have indicated.
, Destroy: As there is an interface for process creation, systems also provide an
interface to destroy processes forcefully. Of course, many processes will run and
just exit by themselves when complete; when they don't, however, the user may
wish to kill them, and thus an interface to halt a runaway process is quite useful.
Wait: Sometimes it is useful to wait for a process to stop running; thus some kind of
waiting interface is often provided.
Miscellaneous Control: Other than killing or waiting for a process, there are
sometimes other controls that are possible. For example, most operating systems
provide some kind of method to suspend a process (stop it from running for a
while) and then resume it (continue it running).
Status: There are usually interfaces to get some status information about a process
as well, such as how long it has run for, or what state it is in.
Load - ANSWER: The first thing that the OS must do to run a program is to load its
code and any static data (e.g., initialized variables) into memory, into the address
space of the process.
Disk /
Disc /
Flash-Based SSD - ANSWER: Where a program initially resides in some kind of
execut able format.
The process of loading a program and static data into memory requires the OS to
read those bytes from disk and place them in memory somewhere.
Eagerly (Loading Process) - ANSWER: The loading process done all at once before
running the program.
Lazily (Loading Process) - ANSWER: Loading pieces of code or data only as they are
needed during programexe cut ion.
Run-Time Stack /
Stack - ANSWER: Once the code and static data are loaded into memory, there are
a few other things the OS needs to do before running the process. Some memory
must be allocated for the program's run-time stack (or just stack).
C programs use the stack for local variables, function parameters, and return
addresses; the OS allocates this memory and gives it to the process.
The OS will also likely initialize the stack with arguments; specifically, it will fill in
the parameters to the main() function, i.e., argc and the argv array.