Advanced Operating Systems Concepts

1. Course Title Advanced Operating Systems Concepts
2. Code 4ФЕИТ07009A
3. Study program Dedicated Embedded Computer Systems and Internet of Things
4. Organizer of the study program (unit, institute, department) Faculty of Electrical Engineering and Information Technologies

Ss. Cyril and Methodius University in Skopje

5. Degree (first, second, third cycle) Second cycle
6. Academic year/semester Year 1 Semester 1
7. Workload measured by number of ECTS credits 6
8. Lecturer (In case of several lecturers to note the responsible one) Dr Marija Kalendar
9. Language of teaching Macedonian and English
10. Course Prerequisites None
11. Course Goals (acquired competencies) and study results: Knowledge of advanced concepts of OS elements, OS modularity and OS drivers, complex concepts of process communication and management of memory and I/O devices in parallel and distributed environments, as well as the specifics of virtual systems, embedded systems and operating systems in real time. After completing the course, students will have competencies for: advanced knowledge of the elements of an OS; knowledge of management and maintenance of computer systems; knowledge of working with administrator scripts and OS management; knowledge and capacity to apply concepts and functionalities from distributed OS; knowledge and usage of a variety of application-specific software and hardware design platforms; as well as knowledge to evaluate the selected solutions according to appropriate characteristics and qualifiers; to plan, design and implement appropriate complete system projects.
12. Course Syllabus (with Chapters) and study results for each chapter:

1. Following up on elements of Operating Systems. Advanced concepts of all OS elements: system boot process and all activating system processes, memory management, I/O, file systems and security.

(to recognize and apply OS advanced elements)

2. Concepts of the modern OS kernel architecture and its elements. Working with Admin scripts. A detailed overview of the design and operation of system calls in Windows and UNIX/Linux based operating systems. Tracing system calls across a kernel. (to understand the OS kernel and to work with admin scripts and system calls)

3. OS kernel upgrading. Modules and drivers as part of the OS kernel. Design, implementation, testing of OS kernel modules. (to recognize OS kernel modules an drivers, to implement and test new modules and drivers)

4. Parallelization and virtualization in operating systems. Virtualization of processors, memory and storage. Synchronization, communication and deployment in parallel OSes. (to understand parallelization concepts and to utilize virtual systems and their elements)

5. Advanced concepts from distributed operating systems and their mechanisms. Failures and Recovery Management in Distributed OSes. System support for Internet-scale computing.  (to recognize the concepts for distributed OS and to describe failure and recovery in a distributed environment)

6. Operating systems for embedded computer systems: Android, Linux, NetBSD, Windows Mobile. Building an OS for a specialized embedded system: development tools, cross-compiling, adding a file system, linking memory. Linking the OS to specific hardware from the embedded platform. (to understand the specifics of embedded OSs and to utilize development tools for embedded OSs)

7. Extending with specific elements for real-time operating systems – RTOS and deployment of real-time processes.  (to know the specific elements of RTOS and to apply RTOS for real-time processes)

13. Interconnection of Courses: The course is a base for other advanced courses in the Program, like Internet of Things, System Design Concepts for the Internet of Things, Design of Smart IoT Devices, Advanced Virtualization Concepts and DevOps, Cloud computing and Cloud platforms and others. These courses in the Study Program, work with advanced concepts in IoT, Virtualization and Cloud platforms that essentially require the knowledge of the Advanced Operating Systems Concepts.
14. Detailed description of teaching and work methods: Lecturing, consultations, independent work on course project tasks and preparation of seminar papers, presentations of the work

 

15. Total number of course hours 180
16.

 

Forms of teaching 

 

16.1 Lectures-theoretical teaching 45 hours

 

16.2 Exercises (laboratory, practice classes), seminars, teamwork 45 hours

 

16.3 Practical work (hours): 25 hours
17.

 

 

Other course activities

 

17.1 Projects, seminar papers 20 hours
17.2 Individual tasks 20 hours
17.3 Homework and self-learning 25 hours
18. Conditions for acquiring teacher’s signature and for taking final exam: 60% of all required course activities
19. Grading
19.1 Quizzes 0 points
19.2 Seminar work/project (presentation: written and oral) 50 points
19.3 Final Exam 50 points
20. Grading criteria (points) up to 50 points 5 (five) (F)
from 51 to 60 points 6 (six) (E)
from 61 to 70 points 7 (seven) (D)
from 71 to 80 points 8 (eight) (C)
from 81 to 90 points 9 (nine) (B)
from 91 to 100 points 10 (ten) (A)
21. Method of monitoring of teaching quality Self-evaluation and student surveys
22. Literature
22.1. Required Literature
No. Author Title Publisher Year
1. William Stallings Operating Systems: Internals and Design Principles, 9 Ed. Pearson 2017
2. A. Silberschatz, G. Gagne, P. B. Galvin Operating System Concepts 10th Edition Wiley 2021
3. Robert Love ”Linux Kernel Development”, 3rd Edition Addison-Wesley 2010
22.2. Additional Literature
No. Author Title Publisher Year
1.  Ian Gorton  Foundations of Scalable Systems: Designing Distributed Architectures 1st Edition  O’Reilly Media  2022
2.  Kaiwan N Billimoria  Linux Kernel Programming: A comprehensive guide to kernel internals, writing kernel modules, and kernel synchronization  Packt Publishing  2021