Course Unit Code | 460-4112/03 |
---|
Number of ECTS Credits Allocated | 6 ECTS credits |
---|
Type of Course Unit * | Compulsory |
---|
Level of Course Unit * | Second Cycle |
---|
Year of Study * | First Year |
---|
Semester when the Course Unit is delivered | Winter Semester |
---|
Mode of Delivery | Face-to-face |
---|
Language of Instruction | Czech |
---|
Prerequisites and Co-Requisites | There are no prerequisites or co-requisites for this course unit |
---|
Name of Lecturer(s) | Personal ID | Name |
---|
| OLI10 | Ing. Petr Olivka, Ph.D. |
Summary |
---|
Advanced programming techniques of operating system will be discussed in this subject. The student will learn more ways to communicate with the devices and sockets. He will also learn effective methods of interprocess communication. |
Learning Outcomes of the Course Unit |
---|
The course goal is to introduce advanced programming methods in operating systems. The student will be able to design his programs effectively and use available programming techniques of operating system to design efficient programs. The student will be able to apply gained experience into additional programming languages. |
Course Contents |
---|
Lecture:
1. Working with processes, process creation and control. Signals processing.
2. Files processing and I/O device programming. Memory mapped files.
3. Blocking and nonblocking I/O operations. Synchronous and asynchronous I/O operation.
4. Sockets, settings parameters and behavior. Basic security.
5. Secure communication over SSL.
6. Advanced principles of inter-process communication, its efficiency, suitability.
7. OS diagnostics, data flow monitoring of I/O devices and processes.
8. Task scheduler features, RT processes.
9. Virtual OS types.
10. File systems, base features, journaling file systems, flash memory FS.
11. File system implementation in user space.
12. Device drivers - features, development and debugging.
Labs:
1. Processes, signals, signal masking.
2. Select and poll functions, blocking and nonblocking operation.
3. Asynchronous I/O operation.
4. Socket manipulation, setting of socket options.
5. Secure SSL communication.
6.-7. Inter-process communication.
8.-9. Communication with I/O devices.
10. File system implementation in user space.
11. Data flow monitoring.
12. Priority of processes and threads.
|
Recommended or Required Reading |
---|
Required Reading: |
---|
[1} W. Richard Stevens, Stephen A. Rago, Advanced Programming in the Unix environment, Addison-Wesley Professional; 3rd edition (May 24, 2013), ISBN: 0321637739
[2] Robert Love, Linux System Programming: Talking Directly to the Kernel and C Library, O'Reilly Media; Second Edition edition (June 8, 2013), ISBN: 1449339530
[3] Andrew S. Tanenbaum, Modern Operating Systems, Prentice Hall; 4 edition (March 20, 2014), ISBN: 013359162X
|
[1] W. Richard Stevens, Stephen A. Rago, Advanced Programming in the Unix environment, Addison-Wesley Professional; 3rd edition (May 24, 2013), ISBN: 0321637739
[2] Robert Love, Linux System Programming: Talking Directly to the Kernel and C Library, O'Reilly Media; Second Edition edition (June 8, 2013), ISBN: 1449339530
[3] Andrew S. Tanenbaum, Modern Operating Systems, Prentice Hall; 4 edition (March 20, 2014), ISBN: 013359162X
|
Recommended Reading: |
---|
[1] Richard Stones, Neil Matthew, Beginning Linux Programming, Wrox, 4. edition, ISBN-10: 0470147628 |
[1] Richard Stones, Neil Matthew, Začínáme programovat, 4. vydání, COMPUTER PRESS |
Planned learning activities and teaching methods |
---|
Lectures, Tutorials |
Assesment methods and criteria |
---|
Task Title | Task Type | Maximum Number of Points (Act. for Subtasks) | Minimum Number of Points for Task Passing |
---|
Graded credit | Graded credit | 100 (100) | 51 |
Tasks in labs | Other task type | 40 | 21 |
Project | Project | 20 | 10 |
Final test | Written test | 40 | 20 |