Operating Systems

Operating System: a layer of software that abstracts the hardware by providing programs with a better, simpler, cleaner abstractions to work with

Kernel mode (aka supervisor mode) vs. user mode

Multiplexing is the sharing of resources:

  • Time multiplexing: managing when resources can be used
  • Space multiplexing: managing how space is shared between resources

Shell: Takes in user input to run programs and commands

OS Structure #

Monolithic vs Microkernel Virtual machines

  1. Processes
  2. Threads
  3. IPC
  4. Process scheduling
  5. Memory
  6. File systems
  7. IO
  8. Deadlocks
  9. Virtualization
  10. Clouds
  11. Security
  12. System calls