50.002 Software Related Topics
These topics are taught after the recess week. They are tested during our Final examination. Below we list the learning objectives of each topic.
Beta CPU Diagnostics
- Handle synchronous and asynchronous interrupts.
- Analyze the Beta Datapath structure and function.
- Identify anomalies within the Beta CPU Architecture.
- Practice with testing and troubleshooting techniques for the Beta CPU.
- Implement alternative correcting measures in faulty Beta Datapath.
Software Abstraction & Assembly Language
- Explain the concept and purpose of software abstraction
- Write more complex programs using Beta Assembly language in bsim (Beta Simulator), utilising labels and macros
- Hand compile basic C code expressions (int, arrays, conditionals, loops) into Beta assembly language
Stack and Procedures
- Understand the necessity of functions and stacks for reusable program execution.
- Explain the role and functions of the linkage pointer, base pointer, stack pointer, and activation record.
- Describe the Beta procedure linkage convention in its entirety.
- Demonstrate the ability to draw the stack frame details of a procedure call.
- Analyze and draw the stack frame details of a recursive procedure call.
- Analyze and inspect a function stack paused during execution, accounting for each content.
Memory Hierarchy
- Recognise the motivation behind memory hierarchy
- Present the workings behind simple SRAM and DRAM technologies
- Compare and contrast the pros and cons between cache, physical/main memory (RAM) and secondary memory (disk)
- Explain the concept locality of reference
- Explain the caching idea
- Identify two different cache designs: FA and DM and justify its benefits and drawback
Cache Design Issues
- Explain various cache design issues
- Explain the differences between fully-associative cache, direct-mapped cache, and n-way set-associative cache
- Evaluate various cache policies: write and replacement
- Synthesise basic caching algorithm in the event of HIT or MISS
- Recognise the differences between byte and word addressing
- Benchmark various cache designs
Virtual Memory
- Describe how virtual memory works
- Explain simple page map design
- Calculate page map arithmetic given a page map specification
- Explain the role of translation look-ahead buffer
- Describe how demand paging works illustrates the workings of context switching
- Analyse the benefits and drawbacks of context switching
Virtual Machine
- Explain the high level concept of virtual machine as processes in isolation
- Justify the role of an operating system kernel in supporting the idea of virtual machines via multiplexing
- Explain the significance of hardware support for OS multiplexing
- Recognise the dual mode of operation
- Recognise the differences between synchronous and asynchronous interrupts
- Explain the differences between user and kernel mode
Asynchronous I/O and Device Handlers
- Explain the role of OS for scheduling processes related to I/O
- Define interrupt latency and explain interrupt enable/disable bit
- Explain various scheduling policies (weak, strong) and their impact on latency
- Demonstrate real-world applications on recurring interrupts
- Design suitable scheduling policies based on various deadlines