System Software (курсовий проєкт)

Major: Computer Engineering
Code of subject: 6.123.00.O.184
Credits: 3.00
Department: Specialized Computer Systems
Semester: 6 семестр
Mode of study: денна

System Software (курсовий проєкт)

Major: Computer Engineering
Code of subject: 6.123.00.O.183
Credits: 3.00
Department: Electronic Computing Machines
Lecturer: associate professor Moroz Ivan Volodymyrovych
Semester: 6 семестр
Mode of study: денна
Learning outcomes: understanding of the conceptual bases of functioning of the system software of computers, computer systems and networks. knowledge of the general principles of complex software operating systems for various applications; the ability to develop elements of the system software; ability to implement elements of the system software with the use of modern tools.
Required prior and related subjects: system software; computer architecture; algorithms and programming; systems programming.
Summary of the subject: The composition, structure and basic functions of the system software. Analysis of the components of operating systems. Details of the task decomposition and software components. Creating structural, functional and flowcharts algorithms. Development of code and testing of applications. Creating of documents for developed of software components.
Assessment methods and criteria: explanatory note to the course project, oral interrogation (100%).
Recommended books: 1. Таненбаум Э. Современные операционные системы. 2-е изд. – СПб.: Питер, 2002. – 1040 с.: ил. 2. Харт Д. М. Системное программирование в среде Windows, 3-е изд. Пер. с англ. – М.: Издательский дом “Вильямс”, 2005. – 592 с.: ил. 3. Хэвиленд К., Грэй Д., Салама Б. Системное программирование в UNIX. Руководство программиста. – М.: ДМК Пресс, 2000. – 368 с.

System Software

Major: Computer Engineering
Code of subject: 6.123.00.O.058
Credits: 6.00
Department: Electronic Computing Machines
Lecturer: PhD, Havano B.I.
Semester: 6 семестр
Mode of study: денна
Learning outcomes: As a result of studying the discipline, the specialist should: - to understand the conceptual basis of system software functioning provision of computers, computing systems and networks. - to know the general principles of building complex software products of operating rooms systems (OS) of various purposes; A trained specialist should be able to: - develop system software elements; - implement them using modern tools. - practical system programming with Linux, which is intended for students, as well as Linux professionals: system engineers, programmers and testers (QA); - using a set of APIs to understand the theoretical foundations and concepts of powerful APIs Linux system programming; - mastering the development of the Linux kernel, its internal design, as well as various main subsystems. Core core code, basic data structures, functions and macros, a comprehensive foundation of details implementation of core services and mechanisms.
Required prior and related subjects: Organization and functioning of computers Algorithmization and programming System programming
Summary of the subject: Conceptual basics of operating systems Basic principles of OS construction. Basic types of OS architectures. OS hardware support tools. The concept of OS resources, the main types resources. OS subsystems. Process management. Management resources. Data management. Application Programming Interface (API). Features of MS Windows, UNIX and Linux OS architectures Management of processes and flows Basic concepts of processes and flows. Ways to implement multithreading. States of processes and flows and conditions of transition from one state in another. Process control unit (PCB). Principles of process and flow planning. Types of planning. Planning strategies, Displaceable and non-displaceable multitasking. Planning algorithms. Interaction between threads and between processes. Basic principles and flow interaction problems. Competition, critical sections, blocking and dead ends. Basic mechanisms of thread synchronization: semaphores, mutexes, conditional variables, monitors, message queues, programmable channels, display memory. Peculiarities of implementation of management, planning and interaction between processes and threads in MS Windows, UNIX and Linux Resource management The main types of resources in the OS: RAM, processors, input-output devices. The main ways of organizing memory: block, segment, page. Virtual memory. Caching and paging pages. Dynamic memory allocation. Strategies working with memory. I/O device management. Tasks and organization of the input-output subsystem. Performance features input-output operations in kernel and user mode. Scheduling, buffering, synchronization, multi-threading, spooling, error handling. Features of the implementation of resource management in the MS Windows OS, UNIX and Linux: virtual memory, input-output facilities. Data management Concept of file and file system. Organization of information in file system. File system functions. Data hierarchy. File organization. File characteristics. Access methods from queues and basic access methods. Allocation and release of space in memory File descriptor. File performance and reliability systems Executable files. Principles of composition of executable files: static, dynamic. Structure of executable files. Implementation of file systems: VFS, FAT, NTFS. Operating systems in computer networks General means of supporting computer networks. Realization Internet protocol stacks. DSN naming system. Program socket interface. Peculiarities of implementation of computer network support in the OS MS Windows, UNIX and Linux Protection of information in operating systems The main tasks of ensuring security. Principles of authentication and access control. Local and network data security. Features of the implementation of information protection in the MS Windows OS, UNIX and Linux. Loading operating systems General principles of loading the OS. Downloading OS MS Windows and Linux.
Assessment methods and criteria: Written reports on the coursework, oral examination, test (100%) Maximum score in points Current control (CC) Lab. works 30 Total for CC 30 Examination control written component 60 oral component 10 Total for discipline 100
Recommended books: Basic literature ? Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman. Linux Device Drivers, Third Edition - 2005, O'Reilly Media, Inc. - ISBN: 0-596-00590-3 ? Ulrich Drepper. What Every Programmer Should Know About Memory - 2007 - https://people.freebsd.org/~lstewart/articles/cpumemory.pdf ? Paul E. McKenney. Is Parallel Programming Hard, And, If So, What Can You Do About It? - Linux Technology Center, 2017 - https://mirrors.edge.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html ? Andrew Sloss, Dominic Symes, Chris Wright. ARM System Developer's Guide: Designing and Optimizing System Software. - Morgan Kaufmann; 2004 - ISBN-13: 978-1558608740 Additional literature ? Mastering Linux Kernel Development by Raghu Bharadwaj. ? The Art of Linux Kernel Design Illustrating the Operating System Design Principle and Implementation by Lixiang Yang. ? Hands On: C Programming and Unix Application Design: UNIX System Calls and Subroutines using C c A. D. Marshall 1998-2004. ? Practical Linux Security Cookbook - Second Edition. Tajinder Kalsi ISBN: 978-1-78913-839-9. ? Hands-On Linux Administration on Azure Frederik Vos ISBN: 978-1-78913-096-6

System Software

Major: Computer Engineering
Code of subject: 6.123.00.O.059
Credits: 6.00
Department: Specialized Computer Systems
Semester: 6 семестр
Mode of study: денна