Course detail
Operating Systems
FIT-IOSAcad. year: 2022/2023
The concept of an operating system (OS) as a part of software of a computer system. Architectures of operating systems, a classification of operating systems. An overview of the contemporary operating systems. The kernel of UNIX, its structure, graphical and textual interfaces, command languages. Process management, context switching, scheduling, interprocess communication. Memory management, paging, virtual memory. Synchronization of processes, semaphores and other synchronization means, deadlock, starvation.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Learning outcomes of the course unit
Prerequisites
Basic knowledge of programming in C.
Co-requisites
Planned learning activities and teaching methods
- Lectures.
- Individual experiments.
- Individual work on projects.
Assesment methods and criteria linked to learning outcomes
- Evaluation of two home assignments individually solved by the students (max 30 points).
- Evaluation of a mid-term exam (max 10 points).
Course curriculum
- Introduction: basic notions of operating systems.
- The UNIX operating system.
- UNIX shell
- File systems, input and output.
- Management of processes.
- Synchronization of concurrent tasks.
- Memory management.
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
- Two individual home assignments, a half-semester test, a combined final exam (a compulsory written part, an oral part in border cases).
- The minimal number of points that must be obtained from the final exam is 27. Otherwise, no points will be assigned to a student.
Recommended optional programme components
- Optional supplementary demonstration exercises provided they will be organised.
Prerequisites and corequisites
- recommended prerequisite
Introduction to Software Engineering - recommended prerequisite
Introduction to Programming Systems
Basic literature
Recommended reading
Elearning
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
- Introduction. Evolution of computers and operating systems (OS). Requirements on OS, classification of OS, standards. The basic terminology and the general structure of OS.
- The UNIX operating system. The history and the most important development branches. The basic principles and structure of UNIX. The structure of the UNIX kernel, its interface and the different forms of communication with the kernel.
- UNIX shell. Basic commands, programs, scripts. Special symbols. Input/output redirection, pipes, background processes, sub-shell. Variables, control structures.
- A basic introduction to programming in UNIX. Languages, compilers, principles of linking programs, dynamically linked libraries. Standard utilities of UNIX.
- File systems. The physical and logical structure of disks. Types of files, i-nodes, storing files on a disk.
- Access rights to files in UNIX, users and groups, the suid and sgid attributes, the typical structure of directories in a UNIX system.
- Input and output. The corresponding kernel services. Data structures and algorithms used by the input/output subsystem of the kernel.
- Management of processes. The notion of a process, its states, and representation in the system. Loading the system, the init process. The fork, exec, exit, and wait calls.
- Basic algorithms of process scheduling.
- Mutual exclusion, semaphores and other synchronization means.
- Typical synchronization tasks. Deadlocks and dealing with them.
- Memory management. Address spaces, address translation, memory pages.
- Virtual memory.
Project
Teacher / Lecturer
Syllabus
- Creating scripts by means of the UNIX shell and the standard utilities of UNIX.
- Process synchronization in UNIX using the C language.
Elearning