COMP 3000 Test 1 Study Guide 2011
Key Concepts
For this test, you should understand the following terms and how they interrelate at a high level:
- processes: fork, zombie processes
- the UNIX shell (e.g., csh or bash)
- basic UNIX file permissions
- UNIX standard input & output, I/O redirection
- kernel & supervisor mode
- hypervisor and hypervisor mode
- paravirtualization and hardware virtualization
- /proc and basic output of ps
- UNIX Environment variables
- UNIX dynamic libraries versus system calls
- static versus dynamic linking
- output of ldd versus /proc/<PID>/maps
- VM guest additions
- virtualization versus emulation
Sample Questions
- If you see a zombie process during normal system operation, how can you get rid of it?
- Hypervisors multiplex computer hardware between what kind of programs?
- What CPU mode does the kernel run in?
- If a CPU does not support hardware virtualization, can you still run a hypervisor?
- Under hardware virtualization, when an interrupt happens, which runs first - a hypervisor or a kernel?
- A hypervisor provides what sort of interface to programs that run on it?
- Files and sockets
- Disks and ethernet
- ???
- In UNIX, there are three permissions associated with the user, the user's group, and everyone else. What are those three permissions?
- I can copy a file using I/O redirection as follows: cat /bin/ls > bar. If I now type ./bar, it won't run. However, if I run another command before typing ./bar, I will get a file listing. What command should I run?
- How can I hide a file in standard directory listings?
- Can I use a hypervisor to run standard game console titles on a PC (e.g. run a PS3 or Xbox360 title)?
- A process can be defined as an address space plus one or more execution contexts. Given this definition, what is a thread?
- Does static or dynamic linking produce smaller executable files? Which consumes less memory (assuming only one program is running)?