Faculty subject Operating Systems.
Introduction
Background
Computer systems overview
Operating systems overview
Processes
Process description and control
Threads
Concurrency: mutual exclusion, synchronization,
deadlock, and starvation
Memory
Memory management
Virtual memory
Scheduling
Uniprocessor scheduling
Multiprocessor and real-time scheduling
Input/output and files
I/O management and disk scheduling
File management
Selected topics from the lectures will be further discussed. Presented concepts will be practically demonstrated in OS Linux and Bash scripting language. A student will have to work on a number of tutorial assignments and homeworks.
The main objective of the course is to understand the purpose of the OS in the computer system, its connection to HW and user SW. Students understand the concepts behind each OS part, which implement the concept of process, memory management, scheduling and I/O management, also from the practical point of view.
- Developing skills in critical, analytical and synthetic thinking.
- The ability to understand and solve professional challenges in computer and information science.
- The ability to apply acquired knowledge in independent work for solving technical problems in computer and information science; the ability to upgrade acquired knowledge. Subject specific competences:
- Basic skills in computer and information science, which includes basic theoretical skills, practical knowledge and skills essential for the field of computer and information science.
Beside declarative knowledge about structure and execution of OS, the focus is on understanding basic parts from the practical point of view.
Knowing the architecture of OS, possibility of changing it, adding upgrades. Evaluation of different algorithms in the context of specific real problems.
Student knows parts of the OS, relations between them, and connections with HW and user SW. Student realizes the harmony between the theoretical explanation and practical application.
OS is a foundational SW of each computer system. By understanding basic concepts we build strong foundations for upgrade of functionality of the computer system.