4 ECTS credits
120 h study time

Offer 1 with catalog number 4011247EER for all students in the 1st semester at a (E) Master - advanced level.

Semester
1st semester
Enrollment based on exam contract
Possible
Grading method
Grading (scale from 0 to 20)
Can retake in second session
Yes
Taught in
English
Partnership Agreement
Under interuniversity agreement for degree program
Faculty
Faculty of Engineering
Department
Electronics and Informatics
Educational team
Martin TIMMERMAN (course titular)
Activities and contact hours
12 contact hours Lecture
90 contact hours Independent or External Form of Study
Course Content

While General Purpose Operating Systems (GPOS) are meant to serve in Notebooks, Desktop and Servers, Embedded Operating Systems (EOS) are found in devices like Cell phones, cars, routers, planes, etc..  In most cases EOS need to insure a predictable, or real-time behaviour and are therefore mostly called Real-Time Operating Systems (RTOS). While, GPOS are optimized to use the maximum of available resources (like processor and memory) and good average performance figures are targeted, RTOS need to have a predictable behaviour and respond in a timely matter to external stimuli. As all systems today are networked, security is of great importance. Again here, the course shows the difference in implementation to satisfy this need.  After some introductory ex-cathedra lessons, the students are asked to perform mini-tasks for the different chapters and a mini-study and project in order to discover the real operating systems world. The student has the choice to work with Windows (Windows7, 8 and 10, 2012R2), Linux, Windows CE, QNX, OSE etc.. The mini-tasks are performed on personal equipment (notebook). For the mini-project, different platforms are made available in the lab.

Detailed content:

Operating System Overview (covered by an intro-lecture)

Operating System Objectives and Functions. The History and evolution of Operating Systems. Major Achievements. Characteristics of Modern Operating Systems: Operating System Concepts.
System Calls. What are real-time embedded systems? Real-Time requirements. What is time?
Possible cases and mini-tasks on: Windows 7, 8 or 10 or 2012 R2, Linux flavors, Android, IoS and some RTOS like FreeRTOS and uC/OS.

Processes (covered by an intro-lecture)

Process States. Process Description. Process Control. Processes and Threads. Symmetric Multiprocessing. Microkernels. Hypervisors. Windows Thread and SMP Management and/or Linux Process and Thread Management.
Principles of Concurrency. Mutual Exclusion: Software Approaches. Mutual Exclusion: Hardware Support.
Semaphores. Monitors. Message Passing. Readers/Writers Problem. Principles of Deadlock. Deadlock Prevention. Deadlock Avoidance. Deadlock Detection. An Integrated Deadlock Strategy. Dining Philosophers Problem. 
Possible cases and mini-tasks: Windows, concurrency Mechanisms.

Memory (individual study via mini-tasks)

Memory Management Requirements. Memory Partitioning. Paging. Segmentation. Loading and Linking. Virtual Memory Hardware and Control Structures. Operating System Software. Linux Memory Management.
Memory management in real-time systems.
Possible cases and mini-tasks: Windows Memory Management compared to Windows Compact 7 (Real-Time)


Scheduling (covered by an intro-lecture)

Uniprocessor Scheduling: Types of Scheduling. Scheduling Algorithms.
Multiprocessor Scheduling. Real-Time Scheduling. Rate Monotonic Analysis and scheduling
possible cases and mini-tasks: Windows & Linux scheduling. FreeRTOS and uC/OS scheduling. 

Input/output and files. (Individual study via mini-tasks)

I/O Management and Disk Scheduling. I/O Devices. Organization of the I/O Function. Operating System Design Issues. I/O Buffering. Disk Scheduling. RAID. Disk Cache.
RTOS device drivers: general concepts - interrupt handling. Portability?
File Management. Overview. File Organization. File Directories. File Sharing. Record Blocking. Secondary Storage Management. 
Possible cases and mini-tasks: Windows I/O & File Systems. Real-time file systems. Linux filessystems.

Real-Time Embedded Systems development (low level). (Individual study via mini-tasks – option of the student)

Development procedures depending on hardware and RTOS type. Start-up (boot). Re-start, watchdog timers. Monitoring and logging. Debugging.
Possible cases and mini-tasks: Windows CE (Compact 7), FreeRTOS, uC/OS, RT-Linux
GPOS and RTOS standards, supplementary modules
POSIX. Application portability in both GPOS and RTOS. Open source versus proprietary. License issues.
GUI's and protocol stacks. Available middleware.

Security. (Individual study via mini-tasks to create problem awareness)

Computer Security. Security Threats. Protection. Intruders. Malicious Software. Trusted Systems. 
Possible cases and mini-tasks: Windows Security. Security issues in embedded systems. Personal and corporate firewalls, intrusion detection, honeypots.
Optional mini-projects making a malware for one or another OS and using protective software.

Course material
Digital course material (Required) : Slides of lecture and lecture notes, http://ems.vub.ac.be
Handbook (Recommended) : Modern Operating Systems, Tanenbaum A.S., 4de, Pearson, 9781292061429, 2014
Additional info

This course will be taught in English, or in Dutch if the whole audience consists of native Dutch speakers.
Part of the course will be given in a BLENDED version: this means as a MOOC with remote assistance.
Each lesson in the MOOC has a video, an assignement and a quiz.
Slides of lecture and lecture notes available on the course and MOOC websites.
Course website: http://emslab.vub.ac.be
Access to the MOOC website is described in the course website.

Students of the MA in Electrical Engineering have to enroll for the 1st semester offer of this course: 4011247EER. Students of the MA in Applied Computer Science have to enroll for the 2nd semester offer of this course: 4019815EER.

Learning Outcomes

Algemene competenties

Blending up-to-date theory with broad coverage of fundamentals, this course offers a comprehensive treatment of operating systems, with an emphasis on internals and design issues including security aspects. The course provides a thorough discussion of the fundamentals of operating systems design and relates these principles to contemporary design issues and to current trends in the development of operating systems. It helps students develop a solid understanding of the key structures and mechanisms of operating systems, the types of tradeoffs and decisions involved in OS design, and the context within which the operating system functions (hardware, other system programs, application programs, interactive users). Both general purpose and real-time operating systems concept are discussed and compared throughout the course. At the end of this course, the student will have developed a serious knowledge and understanding about the daily used operating systems including security aspects. Through projects and peer-instruction techniques, the students will have learned to integrate knowledge and to handle the complexity found in modern operating systems and related security issues. By presenting the results of their studies and projects, and by getting feedback on their work and the presentations thereof, they will have learned to communicate conclusions, the underpinning knowledge and the rationale in a concise manner, avoiding pitfalls in modern operating system use. Having been brought in contact with seminal research papers in the field of operating systems and security, the student will have developed the necessary learning skills to continue studying in the field autonomously.

This course contributes to the following programme outcomes of the Master in Applied Computer Sciences:

MA_A: Knowledge oriented competence

6. The Master in Engineering Sciences can correctly report on research or design results in the form of a technical report or in the form of a scientific paper
7. The Master in Engineering Sciences can present and defend results in a scientifically sound way, using contemporary communication tools, for a national as well as for an international professional or lay audience
9. The Master in Engineering Sciences can work in an industrial environment with attention to safety, quality assurance, communication and reporting

MA_B:  Attitude

13. The Master in Engineering Sciences has a critical attitude towards one’s own results and those of others

MA_C:  Specific competence

The Master in Applied Computer Sciences is able to design and use systems for efficient storage, access and distribution of digital information
The Master in Applied Computer Sciences has knowledge of and is able to use advanced processing methods and tools for the analysis of (big) data in different  application domains
The Master in Applied Computer Sciences is able to design (distributed) systems of systems and execute performance assessment of the designed product
The Master in Applied Computer Sciences has a thorough knowledge of programming concepts and can apply them in smart systems of systems
The Master in Applied Computer Sciences has a thorough knowledge of hardware platforms, operating systems, firmware and their impact on smart systems of systems
The Master in Applied Computer Sciences is aware of data privacy and security aspects

This course contributes to the following programme outcomes of the Master in Electronics and Information Technology Engineering:

The Master in Engineering Sciences can
5. conceive, plan and execute a research project, based on an analysis of its objectives, existing knowledge and the relevant literature, with attention to innovation and valorization in industry and society
6. correctly report on research or design results in the form of a technical report or in the form of a scientific paper
7. present and defend results in a scientifically sound way, using contemporary communication tools, for a national as well as for an international professional or lay audience

The Master in Engineering Sciences has
13. a critical attitude towards one’s own results and those of others

Grading

The final grade is composed based on the following categories:
Other Exam determines 100% of the final mark.

Within the Other Exam category, the following assignments need to be completed:

  • exam with a relative weight of 1 which comprises 100% of the final mark.

    Note: For each chapter, the student needs to execute one or more mini-tasks ending with a small executing report with personal findings and conclusions. Having finished ALL the mini-tasks is mandatory in order to be capable to present the exam.
    The exam itself is an execution of a mini-project concerning one of the chapters of the course (at the students' choice). Production of a paper describing the work and findings. Oral presentation of the work performed including a defense.

Additional info regarding evaluation

For each videolesson in the MOOC, there is an assignment followed by a quiz where a minimum score needs to be obtained in order to be allowed to the exam.
Complementary, for each theoretical chapter, the students needs to execute one or more mini-tasks ending with a small executing report with personal findings and conclusions. Having finished ALL the mini-tasks is mandatory in order to be capable to present the exam.
The exam itself is an execution of a mini-project concerning one of the chapters of the course (at the students' choice). Production of a paper describing the work and findings. Oral presentation of the work performed including a defense.

Academic context

This offer is part of the following study plans:
Master of Electronics and Information Technology Engineering: Standaard traject (only offered in Dutch)
Master in Applied Sciences and Engineering: Applied Computer Science: Standaard traject
Master of Electrical Engineering: Standaard traject BRUFACE J