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 |