Ex. 1 — Revisions
Explain the difference between the stack and the heap.
Ex. 2 — Personal research
1. Briefly explain what operations are performed when a computer is powered on. What is the role
of the BIOS and how does it interact with the OS?
2. In a few words explain what are hybrid and exo kernels.
Ex. 3 — Course application
1. Which of the following instructions should only be allowed in kernel mode? Explain.
a) Disable all interrupts
b) Read the time-of-day clock
c) Set the time-of-day clock
d) Change the memory map
2. Consider a system that has two CPUs and each CPU is composed of two threads. Suppose three
programs, P0, P1, and P2, are started with run times of 5, 10 and 20 ms, respectively. How long
will it take to complete the execution of these programs? Assume that all three programs are
100% CPU bound, do not block during execution, and do not change CPUs once assigned.
Ex. 4 — Simple problem
One reason GUIs were initially slow to be adopted was the cost of the hardware needed to support them.
How much video RAM is needed to support a 25 lines by 80 rows character monochrome text screen?
How much for a 1024 x 768 pixel 24-bit color bitmap? Assuming the cost of this RAM in the 1980es
was $5/KB what was the price of those two solutions? How much is it now?
Ex. 5 — Command lines on a Unix system
On Minix3 use the command line to:
1. Create a new user
2. List all the currently running processes
3. Display the characteristics of the CPU and the available memory
4. Redirect some random output into two different files
5. Concatenate the two previous files
6. Read the content of the resulting file as hexdecimal values (in other words find a command to
read a file as hexadecimal values)
7. Use a single command to find all the files in /usr/src with the word semaphore in their name
and containing the word ddekit sem down
Note: follow the “programming exercises” guidelines and save the list of commands in a shell file (.sh).