Objectives and competences
The objective of this course is for students to be able to understand the basic knowledge of operating systems design and operation and to use operating systems in practice.
Content (Syllabus outline)
• Introduction: role of operating systems (OS) and their basic functionality, computer systems and OS architectures, interrupt handling and access to input/output devices.
• Job and process management: jobs and their scheduling, process structure and states, process control block, threads, process communication.
• Process scheduling: scheduling criteria, scheduling algorithms (first-come first-served, shortest-job-first, priority, round-robin, several active queues).
• Job management: two- and three-level scheduling, process suspension.
• Process synchronisation: critical section, Peterson’s solution for synchronisation of two processes, bakery algorithm, hardware for synchronisation, semaphore, monitor, the problem of deadlock and starvation.
• Classical problems of synchronisation: producer-consumer, readers and writers, dining philosophers, sleeping barber.
• Memory management: partitions, paging, page table design, associative registers, segmentation, segmentation with paging.
• Virtual memory: loading and replacement algorithms, page fault, page replacement algorithms (first-come first-served, optimal, least-recently-used, counting).
• File system management: directories and their implementation (multilevel, tree, acyclic graphs), functions of OS to handle files and directories, levels of file system.
• Implementation of file systems: physical allocation of files as contiguous, list of pointers and indexing, NTFS.
• Disk scheduling: algorithms (first-come first-served, scan, cyclic scan, multimedia), disk free-space and swap-space management.
Learning and teaching methods
• lectures,
• tutorials,
• lab work.
Intended learning outcomes - knowledge and understanding
On completion of this course the student will be able to
understand the basic principles of the operating systems design and operation,
analyse and re-implement the algorithms for process scheduling and synchronisation, and for memory and file-system management,
install and set-up the operating system and use its functions.
Intended learning outcomes - transferable/key skills and other attributes
• • Communication skills: oral lab work defence, written examination.
• Use of information technology: use of different operating systems, implementation of plain system programs.
• Team work: team execution of some lab work.
• Problem solving: co-operation with industrial partners.
Readings
• D. Zazula: Operacijski sistemi, Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko, Maribor, 2008.
• A. Silberschatz, P. B. Galvin, G. Gagne: Operating System Concepts, Tenth Edition, Wiley, Hoboken, 2018.
• W. Stallings: Operating systems, Ninth Edition, Pearson Education Limited, Essex, 2018.
• A. S. Tanenbaum, H. Bos: Modern Operating Systems, Prentice Hall, Boston, 2014.
Additional information on implementation and assessment The written exam may be replaced by midterm examinations in the weight of 50%.