University of Warsaw - Central Authentication System
Strona główna

Advanced topics in operating systems

General data

Course ID: 1000-2N09ZSO
Erasmus code / ISCED: 11.303 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0612) Database and network design and administration The ISCED (International Standard Classification of Education) code has been designed by UNESCO.
Course title: Advanced topics in operating systems
Name in Polish: Zaawansowane systemy operacyjne
Organizational unit: Faculty of Mathematics, Informatics, and Mechanics
Course groups: (in Polish) Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka
Elective courses (facultative) for Computer Science
Elective courses for Computer Science
Course homepage: http://students.mimuw.edu.pl/ZSO
ECTS credit allocation (and other scores): 6.00 Basic information on ECTS credits allocation principles:
  • the annual hourly workload of the student’s work required to achieve the expected learning outcomes for a given stage is 1500-1800h, corresponding to 60 ECTS;
  • the student’s weekly hourly workload is 45 h;
  • 1 ECTS point corresponds to 25-30 hours of student work needed to achieve the assumed learning outcomes;
  • weekly student workload necessary to achieve the assumed learning outcomes allows to obtain 1.5 ECTS;
  • work required to pass the course, which has been assigned 3 ECTS, constitutes 10% of the semester student load.

view allocation of credits
Language: English
Type of course:

elective monographs

Prerequisites:

Operating systems 1000-213bSOP

Short description:

The course it is highly recommended for students who plan to attend Master Seminar on Distributed Systems, which is partly devoted to operating systems and in particular distributed operating systems. The course will have a form of lectures and labs.

We plan to view in detail the structure of a specific operating system. The chosen case study is Linux which is modern operating system, popular in the Faculty of Mathematics, Computer Science and Mechanics, University of Warsaw, often used as server platform, but also on desktops, mobiles, as embedded system. Source code of Linux is freely available which gives a unique opportunity to analyze in detail used algorithms, data structures, and also to run experiments and do research in the area of operating systems.

Full description:

Lectures

1. Introduction: SO tasks, UNIX and Linux - history, features, structure, eBPF, basic concepts: execution context, system calls, kernel reports

2. A little about hardware (Intel example): processor and memory, addressing, processor cache, computer architectures

3. Memory and process management: Booting the kernel, Paging in Linux, Process address space

4. Memory and process management: Process address space, fork(), page fault

5. Memory management: Physical storage, creating page tables, managing page frames, zones, highmem, managing noncontiguous memory areas

6. Memory management: Buddy allocator, Slab allocator

7. Process management: Kernel level synchronization

8. File management: Virtual file system, interface, data structures

9. File management: Virtual file system, mounting, directory cache, inodes in memory1

10. Memory management: Page cache, page replacement

11. Memory management: THP (Transparent Huge Pages); File management: ext2, ext3 and ext4 file systems

12. The block I/O layer and I/O schedulers

13. Process scheduling: PID namespace, introduction to scheduling in Linux, schedulers O(N), O(1), RSDS

14. Process scheduling: schedulers CFS, BFS, MuQSS, Deadline; what's new in process scheduling?

Labs

1. Virtualization and containerization

2. Installing Linux on a virtual platform

3. Kernel compilation

4. Kernel modules

5. Debugging code in kernel space

6. Programming in kernel space: interrupt handling, synchronization, memory management, kernel threads, system calls

7. Safe kernel programming with BPF

8. Device handling subroutines

9. Procfs, sysfs file system

10. Using the Linux kernel in Android

11. Use of Rust in the Linux kernel

Bibliography:

1. lwn.net - Linux weekly news

2. R. Love, Linux Kernel Development, Addison-Wesley, 2010 (third edition)

3. W. Mauerer, Professional Linux Kernel Architecture, Wiley Inc., 2008 (first edition)

4. D.P. Bovet, M. Cesati, Linux Kernel, O'Reilly, 2005 (third edition)

5. A. Rubini, J. Corbet, Linux Device Drivers, O'Reilly, 2005 (third edition)

6. R. Love, Linux System Programming: Talking Directly to the Kernel and C Library, O'Reilly, 2007 (first edition)

Learning outcomes:

Knowledge

1. Has in-depth knowledge of the construction of modern operating systems.

2. Has in-depth knowledge of building the latest version of the Linux operating system.

3. Knows the algorithms and data structures used in the construction of operating systems.

4. Knows the issues of concurrent programming.

5. Knows the issues from the borderline of compilers and operating systems.

Skills

1. Has the ability to analyze the source code of the operating system.

2. Has the ability to critically analyze solutions in the field of operating systems and concurrent programming.

3. Has the ability to solve problems in the field of operating system construction.

4. Has IT skills in the field of computer science in accordance with the requirements set for the B2+ level of the European System of Language Description

5. Can determine the directions of further learning and realize the process of self-education.

Competence

1. Knows the limits of his own knowledge and understands the need for further education.

2. Can accurately formulate questions to deepen one's own understanding of a given topic or find the missing elements of reasoning.

3. Can formulate opinions on basic IT issues.

Assessment methods and assessment criteria:

Active participation in lectures and labs, programming laboratory tasks

Classes in period "Summer semester 2023/24" (in progress)

Time span: 2024-02-19 - 2024-06-16
Selected timetable range:
Navigate to timetable
Type of class:
Lab, 30 hours more information
Lecture, 30 hours more information
Coordinators: Janina Mincer-Daszkiewicz
Group instructors: Wojciech Ciszewski, Andrzej Jackowski, Maciej Matraszek, Janina Mincer-Daszkiewicz
Students list: (inaccessible to you)
Examination: Examination

Classes in period "Summer semester 2024/25" (future)

Time span: 2025-02-17 - 2025-06-08
Selected timetable range:
Navigate to timetable
Type of class:
Lab, 30 hours more information
Lecture, 30 hours more information
Coordinators: Janina Mincer-Daszkiewicz
Group instructors: Wojciech Ciszewski, Janina Mincer-Daszkiewicz
Students list: (inaccessible to you)
Examination: Examination
Course descriptions are protected by copyright.
Copyright by University of Warsaw.
Krakowskie Przedmieście 26/28
00-927 Warszawa
tel: +48 22 55 20 000 https://uw.edu.pl/
contact accessibility statement USOSweb 7.0.3.0 (2024-03-22)