Home/ Majors directory/Computer Engineering/System Software (курсовий проєкт)
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: денна