Teaching

HS14: 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, 90 KB)

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

Course Electronic Mail

It is a standing assignment that each course participant has verified that his email contact information has been deposited with the teaching assistant. The compiled class mailing list will be used for official announcements such as class deadlines or distribution of homeworks. Register via the OLAT course link (see top of page).

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. Principles of Operating Systems by Lubomir F. Bic and Alan C. Shaw, 2003, Prentice-Hall/Pearson Education, ISBN 0130266116
  4. Operating Systems by G. Nutt, 2003, Addison Wesley, ISBN 0-321-18955-8 / 9780321189554
  5. 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 Scheduling
Week 7 Parallel Programming
Week 8 Memory Management
Week 9 Virtual Memory
Week 10
Week 11 Sharing
Week 12 File Systems
Week 13 I/O
Week 14 Security

Additional Material