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

Operating systems

General data

Course ID: 1000-213bSOP
Erasmus code / ISCED: 11.302 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: Operating systems
Name in Polish: Systemy operacyjne
Organizational unit: Faculty of Mathematics, Informatics, and Mechanics
Course groups: Obligatory courses for 2nd grade JSIM (3I+4M)
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

Requirements:

Computer and network architecture 1000-212bAKS
Individual programming project 1000-222bIPP
Introductory programming 1000-211bWPI

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 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, Podstawy systemów operacyjnych

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

R. Love, Linux Kernel Development

W. Richard Stevens, Programowanie w środowisku systemu UNIX

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

W. Stallings, Organizacja i architektura systemu komputerowego

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);

ma 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 (K_U08);

posługuje się przyjętymi formatami reprezentacji różnego rodzaju danych (liczby, tablice, struktury, tekst), pamiętają c o ich ograniczeniach, np. związanych z arytmetyką komputera (K_09);

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

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_U12);

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_U22)

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 USOSweb 7.0.3.0 (2024-03-22)