100-Question Exam Practice Bank
Lectures 1-10 + Lab 1
Name: ____________________________________________
Date: ____________________________________________
Target score / focus: ____________________________________________
How to use this PDF: Open it in GoodNotes, Notability, Apple Files/Markup, or another PDF annotation app and
write directly in the answer boxes. The questions are original but intentionally mirror the professor's exam style:
brief conceptual answers, code tracing, process/file-descriptor reasoning, and numerical
virtual-memory/page-table problems.
Solutions are intentionally omitted. Questions are tagged with their main lecture/lab source so you can quickly
identify weak areas.
ECE344 - 100 Question Exam Bank | Lectures 1-10 + Lab 1 Page 1
, A. Foundations and Kernels
L1 | 3 marks
Q1. Define virtualization, concurrency, and persistence in the context of operating systems. Give one concrete OS
example of each.
L1 | 2 marks
Q2. Distinguish a program from a process. Why can the same program correspond to multiple processes at the
same time?
L1 | 3 marks
Q3. Two copies of the same executable both report the same virtual address for a global variable, yet changing the
variable in one process does not change it in the other. Explain how this is possible.
L1 | 3 marks
Q4. What resources does an operating system manage for an application? Name at least three and briefly state
why the application should not manage all of them directly.
L2 | 3 marks
Q5. What is a file descriptor? Explain why a terminal, a regular disk file, and a pipe can all be accessed through file
descriptors.
ECE344 - 100 Question Exam Bank | Lectures 1-10 + Lab 1 Page 2
, L2 | 2 marks
Q6. State the conventional purposes of file descriptors 0, 1, and 2. If a shell redirects standard output to a file, what
changes from the program's point of view?
L2 | 3 marks
Q7. For `write(fd, buf, count)`, explain what each argument means and describe one situation in which the call can
fail.
L2 | 3 marks
Q8. Explain the difference between an API and an ABI. Your answer should mention both source-level behavior
and machine-level conventions.
L2 | 3 marks
Q9. Why can reordering fields in a C struct change the ABI even if every function name and prototype stays
unchanged?
L2 | 3 marks
Q10. What is the difference between user mode and kernel mode? Why is this privilege separation important for
protecting hardware and other processes?
ECE344 - 100 Question Exam Bank | Lectures 1-10 + Lab 1 Page 3