EECS 111: System Software, Spring 2026, Homework 1
Name:
________________________________
Student ID: ________________________________
• The homework answers should be written by hand. No computer-typed answer will
be accepted.
• You should scan the homework, convert it to pdf and submit it to Gradescope.
• Emailed homework will not be accepted.
• You can find the answer to the following questions in the lecture, in the book, or you might
need to search for it online.
1. Define the following types of operating systems: Real-time, distributed, and parallel.
2. What is the bootstrap program functionality in the system?
3. Name different types of interrupts that an operating system may encounter and give an
example for each type. Is it possible to have an operating system without interrupts? What
type of problems it may encounter?
4. Explain how a user process can access an I/O device.
5. What is Middleware? What is Virtual Machine? Why were they invented? What is the
difference between them? Give some examples.
6. Draw a memory layout figure for a process and explain what the functionality of each part
in that layout is.
7. Under what circumstances does a multithreaded solution using multiple kernel threads
provide better performance than a single-threaded solution on a single-processor
system?
8. Using Amdahl’s Law, calculate the speedup gain of an application that has a 75% parallel
component for (a) two processing cores and (b) 8 processing cores.
9. What is the output of the following code? Explain your answer.
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <unistd.h>
int value = 5;
int main(){
pid_t pid;
pid = fork();
if (pid == 0){
value += 15;
return 0;}
else if (pid > 0){
wait(NULL);
printf("PARENT: value = %d\n",value);
return 0;}
}
-1-