| Title: | Advanced Operating Systems |
|---|
| Code: | POS |
|---|
| Ac.Year: | 2012/2013 |
|---|
| Term: | Summer |
|---|
| Study plans: | |
|---|
| Language: | Czech |
|---|
| Private info: | http://www.fit.vutbr.cz/study/courses/POS/private/ |
|---|
| Credits: | 5 |
|---|
| Completion: | examination (written) |
|---|
Type of instruction: | | Hour/sem | Lectures | Sem. Exercises | Lab. exercises | Comp. exercises | Other |
|---|
| Hours: | 39 | 0 | 0 | 0 | 13 |
|---|
| | Examination | Tests | Exercises | Laboratories | Other |
|---|
| Points: | 65 | 15 | 0 | 0 | 20 |
|---|
|
|---|
| Guarantee: | Lampa Petr, Ing., CC |
|---|
| Lecturer: | Lampa Petr, Ing., CC |
| Instructor: | Kašpárek Tomáš, Ing., CC |
|---|
| Faculty: | Faculty of Information Technology BUT |
|---|
| Department: | Department of Information Systems FIT BUT |
|---|
| Prerequisites: | |
|---|
| Follow-ups: | |
|---|
| Schedule: | | Day | Lesson | Week | Room | Start | End | Lect.Gr. | St.G. | EndG. |
|---|
| Tue | exam - 2. opravný termín | 2013-06-04 | E104 | 15:00 | 17:50 | 1MIT | | |
| Tue | exam - 2. opravný termín | 2013-06-04 | E104 | 15:00 | 17:50 | 2MIT | | |
| Wed | exam - řádný termín | 2013-05-15 | D0206 | 13:00 | 15:50 | 1MIT | | |
| Wed | exam - řádný termín | 2013-05-15 | D0206 | 13:00 | 15:50 | 2MIT | | |
| Wed | exam - 1. opravný termín | 2013-05-22 | E105 | 13:00 | 15:50 | 2MIT | | |
| Wed | exam - 1. opravný termín | 2013-05-22 | E105 | 13:00 | 15:50 | 1MIT | | |
|
|---|
| | | Learning objectives: |
|---|
The goal is to acquaint students with the principles and concepts that are used as a basis of modern operating system kernels. | | Description: |
|---|
Basic concepts, operating system kernel, kernel structure. Parallel programming and synchronization with a view to kernel synchronization. Deadlock, deadlock detection and prevention. Scheduling algorithms for uni-processor systems. Memory management, virtual memory, paging, virtual memory implementation. Input/Output, synchronous and asynchronous I/O, drivers, optimization of disk operations, File systems, disk space allocation, metadata structures, failure recovery, file system examples. Security and protection. | | Knowledge and skills required for the course: |
|---|
C language programming in Unix environment, computer architecture, Intel x86 assembler, basic principles of operating systems. | | 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. | | Generic learning outcomes and competences: |
|---|
A deeper understanding of computer systems and system programming. | | Syllabus of lectures: |
|---|
- Kernel structure, interface, system calls, context switch, interrupts, system interface, Unix systems interface, standardization, SVID, XPG.
- Processes and POSIX threads, creating processes and threads, threads implementation.
- Parallel programming, synchronization, synchronization basics, mutual exclusion using memory read&write.
- Synchronization using special instructions on uni-processor and multiprocessor systems with shared memory, priority inversion and solution.
- Synchronization tools and programming languages frameworks, classical synchronization tasks and their solutions.
- Processor scheduling, strategy, implementation, scheduling algorithms for uni-processor systems.
- Resource allocation, deadlock, deadlock avoidance, solutions for CR and SR systems.
- Memory architecture, paging, page tables and TLB.
- Virtual memory, paging algorithm, page replacement algorithms.
- Practical aspects of virtual memory - code sharing, memory sharing, locking, dynamic libraries, file mapping, kernel memory.
- Input and output, drivers, synchronous and asynchronous operations, disk I/O optimization.
- Files systems, organization, space allocation, free space allocation, failure recovery, Unix file systems, BSD FFS and log based file systems.
- Security and protection, system access, data protection, security risks.
| | Syllabus - others, projects and individual work of students: |
|---|
- Fork and synchronization.
- Message passing in Unix.
- Signals and signal handling.
| | Fundamental literature: |
|---|
- Andrews, G.R.: Foundations of Multithreaded, Parallel, and Distributed Programming, Addison-Wesley, 2000, ISBN 0-201-35752-6
- Bic, L., Shaw, A.C.: Operating Systems Principles, Prentice-Hall, 2003, ISBN 0-13-026611-6
- Nutt, G.J.: Operating Systems: A Modern Perspective, Addison-Wesley, 2000, ISBN 0-201-61251-8
- Vahalia, U.: Unix Internals: The New Frontiers, Prentice-Hall, 1996, ISBN 0-13-101908-2
- Schimmel, K.: UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers, Addison-Wesley, 1994, ISBN 0-201-63338-8
- McKusick, M.K., Neville-Neil, G.V.: The Design and Implementation of the FreeBSD Operating System, Addison-Wesley, 2004, ISBN 0-201-70245-2
- Stevens, W.,R.: Advanced Programming in the UNIX Environment: Second Edition, Addison-Wesley Professional, 2005, 0-201-43307-9
| | Study literature: |
|---|
- Bic, L., Shaw, A.C.: Operating Systems Principles, Prentice-Hall, 2003, ISBN 0-13-026611-6
- Open Sources: Voices from the Open Source Revolution, O'Reilly, 1999, ISBN 1-56592-582-3
- Love, R.: Linux Kernel Development, Second Edition, Pearson Education, 2005, ISBN 0-672-32720-1
| | Controlled instruction: |
|---|
The knowledge of students is examined by the projects and by the final exam. | | Progress assessment: |
|---|
Written mid-term exam (max. 15 points) and submitted projects in due date. Projects have to be submitted before the deadline, late project submission will be graded 0 points. | | |
|