Teaching

HS15: Systems Software (BINF31aa, part of BINF3101)

Organisation

Lecturer: Prof. Dr. Renato Pajarola
Assistents: Claudio Mura
Time: Lecture: Monday 14-15:45, Exercises: Monday 16-18
Location: Binzmühlestrasse: BIN TBA, (BIN 0.B.04 Exercises)
Language: English
Exercises: The exercises are biweekly and start in the 1st semester week
OLAT: OLAT course link
Course Catalogue: Catalogue course link

Overview

The operating system with its kernel, library and tools is the fundamental basis upon which all application programs and software systems can reliably build. This lecture covers the most important fundamental principles of operating systems which include the basic principles of processes and resource management in modern multi-user and multi-tasking operating systems. In particular, the lecture will focus on the basic concepts of parallel and concurrent programming.

The lecture is targeted to students with an assessment level BSc in computer science or similar basic knowledge of computer science, programming, data structures and algorithms. It is recommended for the BSc students in the 3rd or possibly 5th semester.

The exercises will be done in C/C++ and introduction material for C/C++ programming is available.

Content

Foundations of operating systems such as processes and resources management, as well as parallel programming.

Tentative Lecture Topic Outline (PDF, 75 KB)

  • Processes
  • Synchronization
  • OS Kernel
  • Parallel Programming
  • Scheduling
  • Memory Management

Literature

  1. Operating System Concepts by A. Silberschatz, P.B. Galvin and G. Gagne, 2008, John Wiley & Sons
  2. Introduction to Parallel Computing by A. Grama, A. Gupta, G. Karypis and V. Kumar, Pearson/Addison Wesley
  3. Advanced Programming in the UNIX Environment by W. Richard Stevens, Stephen A. Rago, Addison-Wesley Professional, www.apuebook.com

As a standing homework assignment you are expected to review the corresponding book chapters after the lectures.

Completion Requirements

Reading

As a standing homework assignment you are expected to read the corresponding book chapters before the lectures and to review the material thoroughly after the lectures covering them.

Homework

To take part in the final written exam, students must have completed a minimum number of homework assignments. The programming projects must be submitted as ANSI-C/C++ compatible source code (that compiles with a standard gcc/g++ compiler under Linux/Mac OS X) to the assistant leading the exercises.

Exam

The lecture will be completed with a written exam at the end of the semester. The exam is scheduled according to the standard UZH/OEC/IFI regulations. See also the course catalogue link at the top of the page.

Lecture outline, Exercises and Documentation

(tentative schedule - subject to changes)

Schedule Topics Slides Exercises
Week 1 Introduction All slides and exercises can be found on OLAT.
Week 2 System Structures
Week 3 Processes and Threads
Week 4
Week 5 Parallel Programming
Week 6
Week 7 Synchronization
Week 8
Week 9 Deadlocks
Week 10 Scheduling
Week 11
Week 12 Memory Management
Week 13
Week 14 Virtual Memory

Additional Material