Course details
Operating Systems 2
OS2 Acad. year 2005/2006 Summer semester 6 credits
Basic concepts, operating system kernel, kernel structure. Parallel programming and synchronization withe a view to kernel synchronization. Deadlock, deadlock detection and prevention. Scheduling algorithms for uniprocessor systems. Memory management, virtual memory, paging, virtual memory implementation. Input/Output, synchronous and asynchronous I/O, drivers, optimalization of disk operations, File systems, disk space allocation, metadata structures, failure recovery, file system examples. Security and protection.
Guarantor
Language of instruction
Completion
Time span
- 39 hrs lectures
- 8 hrs pc labs
- 18 hrs projects
Department
Subject specific learning outcomes and competences
Students are acquainted with the parallel programming using POSIX threads, usage of synchronization primitives, virtual memory and file system.
A deeper understanding of computer systems and system programming.
Learning objectives
The goal is to acquaint students with the principles and concepts that are used as a basis of modern operating systems kernels.
Prerequisite knowledge and skills
C language programming in Unix environment, computer architecture, Intel x86 assembler, basic principles of operating systems.
Study literature
- Bic, L., Shaw, A.C.: Operating Systems Principles, Prentice-Hall, 2003, ISBN 0-13-026611-6
- Raymond, E.S.: The Art of Unix Programming
- Open Sources: Voices from the Open Source Revolution
Fundamental literature
- Bic, L.: The Logical Design of Operating Systems, Prentice-Hall, 1988, ISBN 0-13-540139-9
- Andrews, G.R.: Foundations of Multithreaded, Parallel, and Distributed Programming, Addison-Wesley, 2000, ISBN 0-201-35752-6
- Nutt, G.J.: Operating Systems: A Modern Perspective, Addison-Wesley, 2000, ISBN 0-201-61251-8
- Stevens, R.,W.: Advanced Programming in The Unix Environment, Addison-Wesley, 1992, ISBN 0-201-56317-7
- Vahalia, U.: Unix Internals: The New Frontiers, Prentice-Hall, 1996, ISBN 0-13-101908-2
- McKusick, M.K., Bostic, K., Karels, M.,J., Quaterman, J.S.: The Design and Implementation of the 4.4BSD Operating System, Addison-Wesley, 1996, ISBN 0-201-54979-4
- Schimmel, K.: UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers, Addison-Wesley, 1994, ISBN 0-201-63338-8
- Butenhof, D.R.: Programming with POSIX Threads, Addison-Wesley, 1997, ISBN 0-201-63392-2
- Tannenbaum, A.S.: The Modern Operating Systems, Prentice-Hall, 2001, ISBN 0-13-031358-0
Syllabus of lectures
- Kernel structure, interface, system calls, context switch, interrupts,
- System interface, Unix systems interface, standardization, SVID, XPG,
- Paralel programming, synchronization, synchronization mechanisms,
- Scheduling, strategy, implementation, batch, real-time, time sharing
- Processes and threads, POSIX threads, synchronization, signals, process
- Files systems, organization, space allocation, free space allocation,
- Virtual memory, TLB, cache, page tables, examples (ix86, MIPS, 680x0),
- Input and output, drivers, synchronous and asynchronous operations, Unix
- Programming environment, libraries, dynamic libraries, binary formats,
- Security and protection, system access, data protection.
Syllabus of computer exercises
- Unix programming environment - gcc, ld, gdb, make.
- Parallel system verification - spin and PROMELA.
- Running processes, process state, job control.
- Inter process communication in Unix - shared memory, message queue, semaphores.
Progress assessment
Study evaluation is based on marks obtained for specified items. Minimimum number of marks to pass is 50.
Controlled instruction
Written mid-term exam (20 points) and submitted project in due date.