Operating systems, software and translators

Classifying software, what the operating system does and how: memory management, interrupts, scheduling, types of operating system and virtual machines; then languages, assemblers, compilers and interpreters, and the stages of compilation, ending with a tiny operating system for the robot.

Module A10A level9 lessons

Start in the simulator
  1. A10.1 Classifying software System and application software, utilities, libraries and translators, and open versus closed source.
  2. A10.2 The operating system, BIOS and device drivers Hiding the hardware, managing resources, booting from the BIOS, and a driver table for the robot.
  3. A10.3 Memory management: paging, segmentation and virtual memory Logical and physical addresses, page tables, segments, page faults and disk thrashing.
  4. A10.4 Interrupts Polling versus interrupts, priorities, the stack and interrupt service routines in the fetch-decode-execute cycle.
  5. A10.5 Scheduling algorithms First come first served, round robin, shortest job first, shortest remaining time and multi-level feedback queues,…
  6. A10.6 Types of operating system and virtual machines Multi-tasking, multi-user, real-time, embedded and distributed systems, and a bytecode virtual machine that drives the…
  7. A10.7 Programming languages and translators Machine code, assembly and imperative high-level languages, the Little Man Computer, and choosing an assembler,…
  8. A10.8 Stages of compilation, linkers and loaders Lexical analysis, syntax analysis, code generation and optimisation, then static and dynamic linking and the loader.
  9. A10.9 Project: a tiny robot operating system Share the robot between three tasks with round robin, drive it through device drivers, and stop the patrol with an…