460-4158/02 – Implementation in Operating Systems (IvOS)

Gurantor departmentDepartment of Computer ScienceCredits4
Subject guarantorMgr. Ing. Michal Krumnikl, Ph.D.Subject version guarantorMgr. Ing. Michal Krumnikl, Ph.D.
Study levelundergraduate or graduateRequirementOptional
Year1Semestersummer
Study languageEnglish
Year of introduction2024/2025Year of cancellation
Intended for the facultiesFEIIntended for study typesFollow-up Master
Instruction secured by
LoginNameTuitorTeacher giving lectures
KRU13 Mgr. Ing. Michal Krumnikl, Ph.D.
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Credit and Examination 2+2

Subject aims expressed by acquired skills and competences

The aim of the course is to introduce students to advanced programming techniques in operating systems. In the course, students will get a practical introduction to the implementation of the basic elements of operating systems and file system mechanisms. Upon completion of the course, they will be able to design their programs efficiently to maximize the use of available operating system resources. Upon completion of the course, students will be able to: - Identify the different layers of an operating system and describe the main functions. - Describe the internal processes of an OS with respect to the process life cycle. - Create applications running directly on a specific system without the support of extension runtime libraries. - Modify software development practices to enable better use of system resources.

Teaching methods

Lectures
Tutorials

Summary

The course will discuss advanced programming methods in operating systems. Students will learn the details of the internal structure and implementation of operating systems, process scheduling techniques, and the organization of file system data and metadata.

Compulsory literature:

[1] TANENBAUM, Andrew S. a BOS, Herbert. Modern operating systems. 4th ed., Global. Boston: Pearson, [2014]. ISBN 978-1-292-06142-9. [2] STEVENS, W. Richard a RAGO, Stephen A. Advanced programming in the UNIX environment. 3rd ed., Upper Saddle River: Addison-Wesley, [2013]. ISBN 978-0-321-63773-4. [3] LOVE, Robert, Linux System Programming: Talking Directly to the Kernel and C Library. 2nd ed., O'Reilly Media, [2013]. ISBN 978-1-449-33953-1

Recommended literature:

[1] TANENBAUM, Andrew S. a WOODHULL, Albert S. Operating systems: design and implementation. 3rd ed., The Minix book. Upper Saddle River, N.J.: Pearson Prentice Hall, [2009]. ISBN 978-0-13-505376-8. [2] FOX, Richard. Linux with operating system concepts. Second edition. Boca Raton: CRC Press, Taylor & Francis Group, 2022. ISBN 978-1-032-06345-4.

Way of continuous check of knowledge in the course of semester

Ongoing analysis of the topics discussed and their practical implementation. Evaluation of independently solved tasks. Requirements for credit: successful completion of independent assignments during the semester. Final verification of learning outcomes: full-time and combined form of study - written examination.

E-learning

Other requirements

Knowledge of a higher programming language (C#, Java, C++, etc.) Basics of mobile application development and familiarity with at least one mobile platform.

Prerequisities

Subject has no prerequisities.

Co-requisities

Subject has no co-requisities.

Subject syllabus:

Lectures - Operating system architecture, characteristics of mobile and embedded systems. - Internal structure of operating systems, implementation of system calls and modules. - Implementation of process management, concurrent processing. Signal handling and processing. - Features of process schedulers, their setup, real-time (RT) processes. - Power management, power saving and power planning techniques. - Implementation of device drivers, communication with peripherals. - Working with files and I/O devices. Memory mapped files. - I/O operations synchronous and asynchronous; blocking vs. non-blocking mode. - File systems. Basic features; journaling file systems and flash memory systems. - Implementation of user file systems and their embedding in user-space. Exercise (on PC classroom) - Select and poll functions, blocking and non-blocking I/O communications. - Sockets, ways of setting their behaviour and properties. - Implementation of a simple HTTP server. - Multi-threaded server with interprocess/inter-thread synchronization. - Implementation of a custom process scheduler with priorities and prevention of process starvation. - Runtime monitoring of Round-robin (RR) and Lottery Scheduling (LS) schedulers, their comparison. - Processes, signals and their capture and masking. - Implementation of a simple file system (FS) in read-only mode. - Extending the FS implementation to include writing, formatting and possible consistency checking. - Monitoring of I/O device data flows and network interfaces.

Conditions for subject completion

Full-time form (validity from: 2024/2025 Summer semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of pointsMax. počet pokusů
Credit and Examination Credit and Examination 100 (100) 51
        Credit Credit 45  23
        Examination Examination 55  28 3
Mandatory attendence participation: 80% participation in scored exercises

Show history

Conditions for subject completion and attendance at the exercises within ISP: Completion of all mandatory tasks within individually agreed deadlines.

Show history

Occurrence in study plans

Academic yearProgrammeBranch/spec.Spec.ZaměřeníFormStudy language Tut. centreYearWSType of duty
2024/2025 (N0613A140035) Computer Science P English Ostrava 1 Optional study plan
2024/2025 (N0714A060021) Communication and Information Technology MRK P English Ostrava 1 Choice-compulsory type A study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner

Assessment of instruction

Předmět neobsahuje žádné hodnocení.