COMP 3000 Test 1 Study Guide 2011

From Soma-notes

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

  1. If you see a zombie process during normal system operation, how can you get rid of it?
  2. Hypervisors multiplex computer hardware between what kind of programs?
  3. What CPU mode does the kernel run in?
  4. If a CPU does not support hardware virtualization, can you still run a hypervisor?
  5. Under hardware virtualization, when an interrupt happens, which runs first - a hypervisor or a kernel?
  6. A hypervisor provides what sort of interface to programs that run on it?
    1. Files and sockets
    2. Disks and ethernet
    3. ???
  7. In UNIX, there are three permissions associated with the user, the user's group, and everyone else. What are those three permissions?
  8. 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?
  9. How can I hide a file in standard directory listings?
  10. Can I use a hypervisor to run standard game console titles on a PC (e.g. run a PS3 or Xbox360 title)?
  11. A process can be defined as an address space plus one or more execution contexts. Given this definition, what is a thread?
  12. Does static or dynamic linking produce smaller executable files? Which consumes less memory (assuming only one program is running)?