Course Unit Code | 460-2016/03 |
---|
Number of ECTS Credits Allocated | 5 ECTS credits |
---|
Type of Course Unit * | Optional |
---|
Level of Course Unit * | First Cycle |
---|
Year of Study * | Second Year |
---|
Semester when the Course Unit is delivered | Summer Semester |
---|
Mode of Delivery | Face-to-face |
---|
Language of Instruction | Czech |
---|
Prerequisites and Co-Requisites | |
---|
| Prerequisities | Course Unit Code | Course Unit Title |
---|
| 460-2052 | Introduction to Programming |
Name of Lecturer(s) | Personal ID | Name |
---|
| OLI10 | Ing. Petr Olivka, Ph.D. |
Summary |
---|
The subject represents basic priciples and implementation methods of operating systems. Principles of modern operating systems, their functions and used methods.
Even there are lectured universal methods, this subject is focused to Unix family. After this study, students will bi able write program with processes and threads and some base types of interprocess comunication. |
Learning Outcomes of the Course Unit |
---|
Course goal is to introduce functionality of operating system, describe its parts, explain their usage and show practical implementation. |
Course Contents |
---|
1. Operating systems, history, concept, structure.
2. Process, inter-process communication, semaphores, monitors, messages.
3. Well known IPC problems - dining philosophers, readers and writers, sleeping barber.
4. Process scheduling - Round-Robin, priorities, multiple queues, two level scheduling.
5. Memory management, mono and multi programming, memory usage, bitmaps, lists.
6. Virtual memory, paging, page replacement algorithms.
7. Paging algorithms modeling, segmentation
8. File systems - file, directory, implementation.
9. File system safety, save environment, users authentication.
10. Security mechanisms, protected domains, access lists, protection models.
11. Input/output, I/O principles, drivers.
12. Dead lock, conditions of deadlock, models, dead lock detection.
13. Dead lock rising, prevention, two phases locking, apparent dead lock
14. New trends in OS, RT systems, OS for embedded devices.
Labs:
1. Unix introduction and basics of programming in C/C++.
2. File redirection, redirection usage for own programs. SSH, remote shell.
3. Usage of make and Makefile. Static and dynamic library usage.
4. Processes, basics interprocess communication using pipes.
5. System call exec, redirection of stdin and stdout.
6. Sockets, socket server, socket client.
7. Usage of threads in processes.
8. Semaphores used for processes synchronization.
9. Message queue, shared memory.
10. File locking.
11. Project development.
12. Project presentation and submission.
Project:
Implementation of selected well-known IPC problem. Client will communicate with server using sockets. |
Recommended or Required Reading |
---|
Required Reading: |
---|
Tanenbaum, Andrew S.: Operating Systems: Design and Implemetation (Prentice-Hall, 1987)
Tanenbaum, Andrew S. Bos H.: Modern Operating Systems Prentice Hall Press, 2014
Cvičení:
Neil Matthew, Richard Stones: Linux - Beginning Linux Programming
A. D. Marshall, Programming in C - UNIX System Calls and Subroutines using C, http://www.cs.cf.ac.uk/Dave/C/ |
Tanenbaum, Andrew S.: Operating Systems: Design and Implemetation Prentice Hall, 1987, český překlad knihy.
Tanenbaum, Andrew S. Bos H.: Modern Operating Systems (4th Edition), Prenitice Hall Press, 2014
Cvičení:
Neil Matthew, Richard Stones: Linux - Začínáme programovat (Computer Press, 2000)
A. D. Marshall, Programming in C - UNIX System Calls and Subroutines using C, http://www.cs.cf.ac.uk/Dave/C/
|
Recommended Reading: |
---|
Daniel P. Bovet, Marco Cesani: Understanding the Linux Kernel (O'Reilly, 2003)
Stevens Richard W.: Advanced programming in the Unix Environment (Addison--Wesley, 1993)
Stevens Richard W.: UNIX Network Programming, Volume 1 (Prentice Hall PTR, 1998)
Stevens Richard W.: UNIX Network Programming, Volume 2 (Prentice Hall PTR, 1999)
|
Maurice J. Bach: Principy operačního systému UNIX (Softwarové Aplikace a Systémy, 1993)
Daniel P. Bovet, Marco Cesani: Understanding the Linux Kernel (O'Reilly, 2003)
Cvičení
Stevens Richard W.: Advanced programming in the Unix Environment (Addison--Wesley, 1993)
Stevens Richard W.: UNIX Network Programming, Volume 1 (Prentice Hall PTR, 1998)
Stevens Richard W.: UNIX Network Programming, Volume 2 (Prentice Hall PTR, 1999)
|
Planned learning activities and teaching methods |
---|
Lectures, Tutorials, Project work |
Assesment methods and criteria |
---|
Task Title | Task Type | Maximum Number of Points (Act. for Subtasks) | Minimum Number of Points for Task Passing |
---|
Credit and Examination | Credit and Examination | 100 (100) | 51 |
Credit | Credit | 45 (45) | 23 |
Úkoly ve cvičeních | Other task type | 45 | 23 |
Examination | Examination | 55 (55) | 28 |
Zkouška | Written examination | 55 | 28 |