Operating Systems and System Programming (6 cr)
Code: CT00CL95-3006
General information
Enrollment
01.08.2025 - 30.07.2026
Timing
01.08.2025 - 31.07.2026
Number of ECTS credits allocated
6 op
Virtual portion
6 op
Mode of delivery
Distance learning
Campus
Learning outcomes
After successful completion of the course, the student: 1. Understands how an operation system is built and how it works with application programs, 2. Can divide complex problems into smaller sub-problems, 3. Knows how a large programming project the size of an operation system is planned and executed, 4. Has acquired an overview of the structure of a computer system and the connections to algorithmics, computer architecture, operation systems, compiler programs and interpreters and to software production, 5. Understands the importance of systems programming in application development and in system maintenance, 6. Knows the basics of the operation system, 7. Can write Posix programmes using the C language 8. Can apply Posix libraries and system level functions in his/her programmes, 9. Can write Unix scripts.
Implementation and methods of teaching
Lectures 28 h. Exercises 14 h and preparation for exercises 14 h. Assignment 52 h and preparation for exam 51 h. Online exam 3 h. Total workload 162 h.
Learning material and recommended literature
English version of the course lectured at Lahti campus: Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. Operating Systems: Three Easy Pieces , Arpaci-Dusseau Books March, 2015 (Version 1.00). A. Silberschatz, P. Galvin, G. Gagne: Operating System Concepts, Wiley, 2012 W. Richard Stevens and Stephen A. Rago: Advanced Programming in the UNIX Environment, 2nd edition, 2011. Ellie Quigley: Unix Shells by Example, 4th edition, 2010. William Stallings: Operating Systems: Internals and Design Principles, 7th Edition, 2011.
Contents
Basic structures and functions of the operating system: file system, processes, memory management. Structure of the Unix system. C programming language and its programming environment and tools in the Unix system. Unix command decoder programming. Standard I/O-library, advanced I/O functions. System data and files. Processes, process management, interprocess relations. Braid ends and their management. Service processes. Interprocess communication. Signals and their management.
Additional information for students: previous knowledge etc.
Teachers: Jussi Kasurinen
Link to the course brochure: https://sis-lut.funidata.fi/student/courseunit/otm-ef7d91ef-38ec-41fb-82ee-b11667b7bb6b/brochure
CT60A0200 Introduction to Programming (Ohjelmoinnin perusteet), CT60A0210 Practical Programming (Käytännön ohjelmointi), BM40A0300 Data Structures and Algorithms (Tietorakenteet ja algoritmit) or CT60A0210 Principles of C-Programming (C-ohjelmoinnin perusteet), or equivalent C-programming course.
Assessment criteria
0-5, exam 50 %, exercises and assignment 50 %
Assessment scale
1-5