Major: Software Engineering
Code of subject: 6.121.00.O.019
Lecturer: Hrytsai O.D.
Semester: 3 семестр
Mode of study: денна
Завдання: The study of the discipline provides for the formation of competencies in students: K02. Ability to apply knowledge in practical situations. K05. Ability to learn and to acquire modern knowledge. К15. Ability to develop architectures, modules and components of software systems К18. Ability to analyze, choose and apply methods and tools to ensure information security (including cyber security) K27. Ability to demonstrate the understanding of the principles of computer systems and computer networks construction and operation to take into account their features when developing software that functions on different platforms.
Learning outcomes: As a result of studying the discipline, the student must be able to demonstrate the following learning outcomes: - Ability to demonstrate knowledge of the principles of operation and structure of various operating systems. - Ability to demonstrate knowledge of operating system resource management algorithms. - Ability to demonstrate knowledge of the principles of interaction between processes and memory allocation. - Ability to demonstrate knowledge of the organization of the input-output subsystem in modern operating systems. - Ability to demonstrate knowledge of the principles of file system development, security and data protection. - Be able to use methods of interaction between processes, such as semaphores, monitors, message passing, etc. - Be able to manage memory allocation, use virtual address space. - Be able to effectively use the input-output subsystem and file systems. As a result of studying the discipline, the student must be able to demonstrate the following program learning outcomes: ПР01. To analyze, purposefully search and select necessary information and reference resources as well as knowledge to solve professional problems, taking into account modern advances in science and technology. ПР05. To know and apply relevant mathematical concepts, methods of domain, system and object-oriented analysis and mathematical modeling for software development. ПР07. To know and apply in practice the fundamental concepts, paradigms and basic principles of operation of language, instrumental and computational software engineering tools. ПР12. To apply effective approaches to software design in practice. ПР13. To know and apply methods of algorithm development, software design and data and knowledge structures. ПР17. To be able to apply methods of component-based software development. ПР18. To know and apply information technologies for data processing, storage and transmission. ПР21. To know, analyze, select, and apply information security (including cybersecurity) and data integrity tools in accordance with the applied problems under solution and software systems under development. ПР23. To be able to document and present the results of software development. ПР25. To use knowledge of the principles of construction and operation of computer systems and computer networks to create effective software.
Required prior and related subjects: Fundamentals of Programming Computer and Computer Network Architecture Cross-platform Programming
Summary of the subject: "Operating Systems" is a course that belongs to the professionally oriented disciplines of software developer education, is useful for both those who use software and those who create it. The study of the course "Operating Systems" provides an understanding of how the operating system functions, how it interacts with computer hardware and the user, how its mechanisms can be used to create efficient and secure applications. The discipline involves the study of the classification, architecture and algorithms of modern operating systems. Lectures of the discipline consider the algorithms of system resource management, their effective use for software design and construction, as well as the principles of file systems development, security and data protection. Practical and laboratory exercises include the use of tools and APIs for monitoring and managing operating system resources, programming algorithms for interaction between processes, threads, using I/O subsystem and memory management, file system and basic synchronization methods (semaphores, mutexes, monitors, etc.). Part of the program results of the discipline can be assessed through the presentation of the results of informal and informal education (Coursera platform certificates for Intro to Operating Systems, certificates of training programs of IT firms, e.g. Linux Kernel GL BaseCamp, etc.)
Опис: - Introduction. (General characteristics of the subject. Academic integrity. Opportunities for non-formal and informal education. Basic concepts, concepts of the operating system. Operating system architecture). - Processes (Process concepts, states, process representation models, operations on processes. Process planning: levels, criteria and requirements for algorithms. FCFS, RR, SJF scheduling algorithms. Guaranteed, priority scheduling. Multilevel queues). - Cooperation of processes and the main aspects of its logical organization (Threads of execution. The concept of interleaving, race conditions and mutual exclusion. Critical section of the program. Hardware and software algorithms for organizing process synchronization. Synchronization mechanisms: semaphores, monitors, messages. Equivalence of semaphores, monitors and messages). - Deadlocks. (The concept of mutual blocking, deadlocks and "freezing" of the system. Conditions of deadlocks occurrence. The main directions of the fight against deadlocks). - Memory management in operating systems (Physical and logical organization of computer memory. The simplest memory management schemes: fixed and variable partitions, overlay structure, page memory, segment and segment-page memory organization, dynamic allocation, paging. Virtual memory, page and segment-page organization of virtual memory. Structure of page table, inverted table. Exceptional situations when working with memory. Strategies for managing page memory. Algorithms of page replacement: FIFO, OPT, LRU, NFU. Model of the working set of the process). - File systems (Basic functions and interface of the file system. Organization of files and access to them. Disk partitions, organization of access to directories. Structure of file systems. Methods of disk space allocation: file allocation table and index nodes. Examples of file systems implementation in modern operating systems. Cooperation of processes when working with files. Modern file system architectures. Security and protection mechanisms of file systems). - Input-output management system (Physical principles of I/O. Interrupts, exceptions and system calls. Logical principles of I/O. The structure of the I/O. Types of system calls. Interrupt and error handling).
Assessment methods and criteria: 1. Oral and written survey in practical classes 2. The defense of laboratory works 3. The results of informal and informal education (Coursera platform certificates for Intro to Operating Systems, certificates of training programs of IT companies, eg. Linux Kernel GL BaseCamp, etc.) can be used to evaluate the results of laboratory and practical classes in accordance with the topics of the class and the topics specified in the certificates. 4. Examination work (written and oral components)
Критерії оцінювання результатів навчання: • current control includes the defense of 9 laboratory works with oral interviews and written reports (3+3+3+3+3+3+3+3+6=30%) and an oral and written survey in practical classes (10%). Deadlines are set for the protection of laboratory points. Outside the deadlines, the work is estimated at 0 points; • final control - exam: written and oral form (50+10=60%)
Порядок та критерії виставляння балів та оцінок: 1. Points for the current control are set before the start of the session. A student who has completed less than 50% of the work of the current control is considered unattested. A student who has completed more than 50% of the work can complete the task and pass the exam at the commission. 2. Points for practical classes are assigned according to oral or written questioning and overall activity in the class. 3. Points for laboratory work are assigned according to the calendar schedule and successful defense. The defense is considered successful if the student has demonstrated the implementation of the laboratory (1, 2 years) and the correct operation of the program (3-8 years) in accordance with its task, correctly prepared and defended the report and gave correct answers to oral questions; was able to make adjustments to the laboratory at the request of the teacher (3-8 years). Laboratory work №9 involves a project approach with the use of soft skills for teamwork. The task of the laboratory is divided into subtasks, which are evenly distributed among students. The defense of the laboratory work involves the presentation of the project with an oral report. The maximum score for laboratory №9 is 6 points: completed task - 1 point, teamwork score - 2 points, project presentation - 1 point, answers to questions from the teacher and other students - 2 points. 4. Responsibility for non-compliance with the principles of academic integrity during the performance and defense of laboratory work: if during the defense of the laboratory work the teacher found manifestations of violation of academic integrity, the work is not counted, the student receives a new version of the task and can re-defend the laboratory. Points for such work are set according to the points on the schedule divided by two.
Recommended books: 1)Operating systems [Electronic resource]: electronic educational and methodical complex. Compilers: Hrytsai O.D., Yakovyna V.S. - National University "Lviv Polytechnic", Lviv, 2021. 2)Gorban G.V. , Kandyba I.O . Linux operating system: textbook - Mykolaiv: Published by ChNU. Petra Mogili, 2019. - 276 p 3)Shekhovtsov V.A. Operating systems: a textbook for university students majoring in Computer Science, Computer Systems, Automation and Control, Computer Engineering, and Applied Mathematics. - К .:. BHV Group, 2005 - 576 4) Silberschatz A., Galvin P. B., Gagne G. Operating system concepts. 10th edition. – NJ : Wiley, 2018. – 1278 с.