Operating systems 1000-214bSOB
*** 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.
Type of course
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
Additional information
Information on level of this course, year of study and semester when the course unit is delivered, types and amount of class hours - can be found in course structure diagrams of apropriate study programmes. This course is related to the following study programmes:
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: