SPO3216 System Software, 3 credits
Prerequisites: Basics of information systems, algorithms, data structures and programming
The purpose of the study: The aim of teaching is to develop expertise in the area of the system
software required for the selection and use of operating systems in information systems.
Summary: The main tasks and the composition of the system software. Operating system as an
essential element of the system software. The main tasks of the operating systems. File systems.
The logical structure of a hard disk. IO system. Operating environment, computational process,
resource, operations processes. Memory management. Asynchronous parallel processes. Deadlocks.
Fighting deadlocks. OS architecture and application programming interfaces. Modern PC operating
systems, development trends.
Expected results: As a result of this course the student should have an understanding of the
purpose and functions of operating systems, their classification, to know the fundamentals of
operating systems to be able to organize a dialogue with a computer on the basis of command
languages, know the principle of the most commonly used file systems and know the structure of
organized them on the information storage medium.
Postrequisites: Software information systems, information systems.
OSL3216.1 Linux Operating System, 3 credits
Prerequisites: "Informatics", Fundamentals of Information Systems, algorithms, data structures
and programming
The purpose of the study: Discipline "Linux operating system" is to form a special knowledge of
the Linux operating system operation.
Summary: History of Linux arise. Distributions. The main comparative characteristics. The logical
structure of a hard disk. MBR- wheels. The partition table. Loaders Linux. Kernel Architecture.
Linux filesystems. The ext2 file system. Process Management. Scheduling processes. Command
files. Memory management. Interrupts. Interrupt Processing. Control I / O operations. Kernel
Synchronization.
The
interaction
processes.
Building
networks
Expected results: As a result of this course the student should have an understanding of the Linux
operating system architecture of the basic processes involved in the management of resources, be
able to solve simple administrative tasks.
Postrequisites: "Design of Information Systems", "Information security and data protection."
OS3216.2 Operating Systems, 3 credits
Prerequisites: "Informatics", "Algorithms, data structures and programming," "Programming
technology", any knowledge of one of programming languages for writing programs.
The purpose of the study: This course is an introductory course into operating system design and
implementation. The operating system provides a well-known, convenient, and efficient interface
between user programs and the bare hardware of the computer on which they run. The operating
system is responsible for allowing resources (e.g., disks, networks, and processors) to be shared,
providing common services needed by many different programs (e.g., file service, the ability to start
or stop processes, and access to the printer), and protecting individual programs from one another.
The course will start with a brief historical perspective of the evolution of operating systems over
the last fifty years, and then cover the major components of most operating systems. This discussion
will cover the tradeoffs that can be made between performance and functionality during the design
and implementation of an operating system. Particular emphasis will be given to three major OS
subsystems: process management (processes, threads, CPU scheduling, synchronization, and
deadlock), memory management (segmentation, paging, swapping), file systems, and operating
system
support
for
distributed
systems.
Summary: Introduction, Operating Systems history. Processes, threads and dispatching. Process
Management. Concurrent threads. CPU Scheduling. Synchronization: Locks and condition
variables. Implementing locks. Semaphores. Deadlock. Linking and dynamic linking. Monitors and
condition variables. Readers and writers. Dining philosophers. Memory management. Relocation.
Memory management: paging. Segmented paging. Demand paged virtual memory. File systems.
File system implementation. Secondary storage, disks. I/O systems, device drivers. Communication
and
networking.
Distributed
systems
and
RPCs.
NFS,
protection.
Expected results: You will have an opportunity to learn a lot of practical information about how
programming languages, operating systems, and architectures interact and how to use each
effectively. This course is the first time when you will learn about how concurrency and distributed
systems communicate and work correctly. This knowledge will help you to more effectively use
and manipulate computers and computer programs. Written and programming assignments are
designed to build on and enhance the lectures. You will hear the concepts in lecture, read them in
the presentations and/or from handouts/ pdf-files, analyze them in the written homework, and put
them in practice in the programming assignments. You will understand more detailed main
principles of how OS work, and how processes intercommunicate with each other, scheduling the
resources
and
processes,
deadlock,
and
preventing
such
situations.
.
Post requisites: ―Computer security‖, "Computer networks", "Design of Information Systems",
―Implementation of client-server applications‖.