Back to Informatik

Systemprogrammierung

6 ECTS
Semester 2

Operating Systems Fundamentals

Overview

Core concepts of operating system design and implementation

Learning Objectives

  • Understand process management
  • Master memory management
  • Work with file systems
  • Analyze scheduling algorithms
  • Implement system calls

Practical Applications

System Administration

Managing operating systems

Example: Process and memory management

Device Drivers

Hardware interaction

Example: Writing basic device drivers

System Performance

Performance optimization

Example: Implementing scheduling algorithms

Practice Problems

  • Implement process scheduler
  • Create memory manager
  • Design file system
  • Write system calls

Low-Level Programming

Overview

Programming close to the hardware level

Learning Objectives

  • Master assembly language
  • Understand computer architecture
  • Work with memory directly
  • Implement low-level optimizations
  • Handle hardware interfaces

Practical Applications

Performance Optimization

Low-level optimization

Example: Assembly optimization techniques

Embedded Systems

Hardware programming

Example: Writing embedded software

Systems Software

Core software development

Example: Implementing device drivers

Practice Problems

  • Write assembly programs
  • Optimize memory usage
  • Implement hardware interfaces
  • Create efficient algorithms

Concurrent Programming

Overview

Managing multiple execution threads and processes

Learning Objectives

  • Master thread management
  • Understand synchronization
  • Work with parallel algorithms
  • Handle race conditions
  • Implement concurrent patterns

Practical Applications

High-Performance Computing

Parallel processing

Example: Implementing parallel algorithms

Server Programming

Concurrent servers

Example: Building multi-threaded servers

Real-time Systems

Concurrent operations

Example: Managing concurrent resources

Practice Problems

  • Implement thread pool
  • Create concurrent data structures
  • Handle synchronization issues
  • Design parallel algorithms