|
|
|
Home General Staff Contact Partners Alumni Research Areas Projects Papers Books Reports Awards Teaching Lectures Exams B.Projects M.Theses PhD Theses Go Abroad Misc Library Seminars Gallery Links Search Webmaster
|
System Software
This course is a KV (combined course consisting of lectures and project work) in which you will learn the concepts and the implementation of common system software such as garbage collectors, linkers, loaders, debuggers and text editors. In addition to the principal algorithms the course will also discuss case studies of such programs. The course is given in English. It is recognized as "Systemsoftware" (Allgemeine Wahlfächer) in the Computer Science curriculum. Lecture Times
ProjectPart of the course will be a project in which either a garbage collector, a debugger or a text editor has to be implemented. The project has to be demonstrated at the end of the semester (June 10, 15:30 - 17:30, Prof. Mössenböck or DI Löberbauer). At the end of the semester there will be a written exam about the contents of the lectures. In order to pass the course, you will need to implement the project as well. The final grade will be computed from the exam and from the project. Contents1. Memory Management
1.1 Overview
1.2 Allocation and deallocation of memory
1.3 Simple free list
1.4 Multiple free lists
1.5 Buddy system
1.6 Memory fragmentation
2. Garbage Collection
2.1 Motivation
2.2 Basic techniques
2.2.1 Reference Counting
2.2.2 Mark & Sweep
2.2.3 Stop & Copy
2.3 Variants
2.3.1 Mark & Compact
2.3.2 Generation scavenging
2.4 Incremental garbage collection
2.4.1 Tricolor marking
2.4.2 Train algorithm
2.5 Root pointers
2.5.1 Pointer tables
2.5.2 Conservative garbage collection
2.6 Garbage collection in multi-threaded systems
2.7 Finalization
2.8 Case study: Java Hotspot VM
2.9 Case study: .NET
3. Linkers and Loaders
3.1 Overview
3.2 Case study: Oberon
3.2.1 Run-time data structures
3.2.2 Resolving external references
3.2.3 Load algorithm
3.3 Case study: Java
3.3.1 Overview
3.3.2 Class files
3.3.3 Loading phases
3.3.4 Example: custom class loader
4. Debuggers
4.1 Architecture
4.2 Case study: Java Platform Debugger
5. Text Editors
5.1 Data structures for texts
5.1.1 SimpleText
5.1.2 GapText
5.1.3 PieceListText
5.2 Text representation on the screen (case study)
5.2.1 Line descriptors
5.2.2 Positions
5.2.3 Input handling
5.2.4 Updating the view
5.2.5 Scrolling
Downloads
LiteratureBooks
Garbage Collection
|