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

Operating systems

General data

Course ID: 1000-214bSOB
Erasmus code / ISCED: 11.3 The subject classification code consists of three to five digits, where the first three represent the classification of the discipline according to the Discipline code list applicable to the Socrates/Erasmus program, the fourth (usually 0) - possible further specification of discipline information, the fifth - the degree of subject determined based on the year of study for which the subject is intended. / (0612) Database and network design and administration The ISCED (International Standard Classification of Education) code has been designed by UNESCO.
Course title: Operating systems
Name in Polish: Systemy operacyjne
Organizational unit: Faculty of Mathematics, Informatics, and Mechanics
Course groups: Obligatory courses for 2nd grade Computer Science
Obligatory courses for 2nd grade JSIM (3I+4M)
Obligatory courses for 3rd grade JSIM (3M+4I)
ECTS credit allocation (and other scores): (not available) 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: Polish
Type of course:

obligatory courses

Short description:

The goal of these classes is to present construction and principles of operation of modern computers as well as to demonstrate the role and goals of operating system in programming of a computer, in realization of algorithms, data structures and their implementations. The techniques that make it possible to manage basic hardware resources of a computer (processor, operating and virtual memory, input-output devices) are described and their impact on system performance as a whole is discussed.

Full description:

*** Lecture:

* Computer architecture:

+ computer architecture and computer organization;

+ von Neumann model (SISD - single instruction single data);

+ Harvard and Princeton architectures;

+ parallelization: the superscalar architecture, the vector

architecture (SIMD-single instruction multiple data), the very long

instruction word architecture, explicit parallel instruction computing;

+ parallelization and memory access, multiprocessor and multi-core architectures (MIMD-multiple instruction multiple data):SMP, NUMA, COMA.

* The microprocessor from the inside:

+ registers, instruction set, addressing modes;

+ CISC and RISC;

+ application binary interface (ABI) demonstrated by the 64-bit ABI used in Linux for Intel64 and AMD64 architectures and by ARM EABI;

+ instruction cycle, processor cycle, clock cycle;

+ instruction pipelining.

* The microprocessor and the outside world:

+ interrupt handling, exceptions;

+ hardware support for operating systems;

+ protection levels, system calls, memory segmentation and paging;

+ input-output handling;

+ DMA.

* Memory hierarchy:

+ non-volatile memory: ROM, EEPROM, Flash;

+ random-access volatile memory (RAM): static (SRAM), asynchronous dynamic (DRAM), synchronous dynamic (SDRAM, DDR-RAM);

+ cache memory;

+ mass storage: magnetic discs, optical discs, opto-magnetic discs;

+ disk arrays.

* Introduction to operating systems: operating system tasks, schematic view, system functions.

* Processes: the notion of a process, operation modes, states and transitions, context switch, kernel level synchronization.

* Process scheduling.

* Memory management: an address space of a process, addressing, memory allocation strategies, virtual memory.

* The file system: the notion of a file, the logical and the physical file system, example implementations of file systems.

* The input/output subsystem: block and character devices, dashboards, special files, disc structure and request scheduling.

* Virtualization.

*** Laboratory:

The main assignment involves writing a program that consists of a module written in C and a module written in the assembly language.

The assignment illustrates the way a function in the assembly language should be written so that it can be called from the C programming language as well as the way a system functions can be called from the assembly language (illustration of ABI that was described during the lectures). The assembly language functions should compute and use memory extensively so that, by different values of parameters, it is possible to observe the existence of memory hierarchy.

The laboratory also covers the following topics:

* Administration basics: system installation and configuration, software installation, system logs, system booting process, access control mechanisms, shell and shell scripts, virtual platforms.

* Process management: process control, signals, overview of process synchronization and communications mechanisms.

* System functions: the mechanism of system function calls, adding of new system functions to an operating system.

* Process scheduling: analysis and modification of the process scheduling algorithm.

* Memory management.

* Input/output subsystem: creation of device drivers.

* File systems.

* Security of the operating system.

* Shell.

* Preparation of software packages.

Bibliography:

A. Silberschatz, P. Galvin, G. Gagne, Operating System Concepts

D.P. Bovet, M. Ceasti, Linux Kernel

R. Love, Linux Kernel Development

W. Richard Stevens, Advanced Programming in the UNIX Environment

A. S. Tanenbaum, A. S. Woodhull, Operating Systems Design and Implementation, 3rd Edition

W. Stallings, Computer Organization and Architecture

D. A. Patterson, J. L. Hennessy, Computer Organization and Design, 5th Edition:

The Hardware/Software Interface

D. A. Patterson, J. L. Hennessy, Computer Organization and Design , 5th Edition: A Quantitative Approach

Learning outcomes: (in Polish)

Wiedza:

- ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie programowania, algorytmów i złożoności, architektury systemów komputerowych, systemów operacyjnych, technologii sieciowych, języków i paradygmatów programowania, baz danych, inżynierii oprogramowania (K_W02);

- w stopniu zaawansowanym podstawową wiedzę na temat architektury współczesnych systemów (logika układów cyfrowych i reprezentacja danych, architektura procesora, wejście-wyjście, pamięć, architektury wieloprocesorowe) (K_W06);

- zna zasady działania systemów operacyjnych ze szczególnym uwzględnieniem procesów, współbieżności, szeregowania zadań i zarządzania pamięcią (K_W07).

Umiejętności:

- potrafi pisać, uruchamiać i testować programy w wybranym środowisku programistycznym (K_U05);

- rozumie niskopoziomowe zasady wykonywania programów;

- potrafi skonfigurować wybrany system operacyjny oraz nim administrować, w tym instalować potrzebne oprogramowanie;

- potrafi wyjaśnić na czym polega zarządzanie pamięcią w systemach operacyjnych, co to jest hierarchia pamięci, co to jest pamięć wirtualna (K_U11);

- potrafi ocenić, na podstawowym poziomie, przydatność rutynowych metod i narzędzi informatycznych oraz wybrać i zastosować właściwą metodę i narzędzia do typowych zadań informatycznych (K_U18).

Assessment methods and assessment criteria: (in Polish)

Zaliczenie laboratorium polega na rozwiązaniu pięciu małych zadań programistycznych, obejmujących kolejne porcje przerabianego materiału. Każde zadanie oceniane jest w skali od 0 do 5 punktów. Aby uzyskać zaliczenie, należy zebrać minimum 12,5 punktu. Zaliczenie laboratorium w sesji poprawkowej polega na rozwiązaniu dodatkowego zadania programistycznego, ocenianego w skali od 0 do 10 punktów. Ocena za to zadanie zastępuje dwa najgorzej ocenione małe zadania, a do uzyskania zaliczenia trzeba, jak w pierwszym terminie, uzyskać w sumie minimum 12,5 punktu. Egzamin pisemny składa się z części testowej i części z zadaniami. Jest oceniany w skali od 0 do 25 punktów. Warunkiem dopuszczenia do egzaminu jest zaliczenie laboratorium. Ocena końcowa jest wystawiana na podstawie sumy punktów uzyskanych z zadań laboratoryjnych i egzaminu.

This course is not currently offered.
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 site map USOSweb 7.1.2.0-7 (2025-06-25)