Skip to main content

0. Introduction to Operating systems and Concurrency

03/10/22

Goals

  • Introduction to the fundamental concepts, key principles and internals of (old and new) operating systems and concurrency
  • Better understanding on how application programs interact with the OS
  • Basic understanding of writing concurrent/parallel code and OS principles related to concurrency

50% Coursework 20 Credits

Defining Operating Systems

  • File Systems: Where is the file physically written on the disk and how is it retrieved
  • Abstraction: Why looks the instruction the same independent of the device?
  • Concurrency: What if multiple programs access the same file simultaneously?
  • Security: Why is the access denied?

An operating system is a layer of indirection on top of the hardware.

  • It provides abstractions for application programs.
  • Provides a cleaner and easier interface to the hardware and hides the complexity of 'bare metal'
  • Also allows the programmer to be lazy and use common routines

Many modern OS use multi-programming to improve ux and maximise resource utilisation. However this creates important consequences

The OS must allocate/share resources fairly and safely between competing processes The execution of multiple programs (processes) needs to be interleaved with one another. (This requires context switches and process scheduling)