Business and technology qualifications, Levels 3-6, in Brussels. Explore qualifications
Portal login

Operating Systems

CYB406

Course CodeCYB406
ECTS

Course Description

In this unit, learners will explore the role and principles of operating systems. Operating systems are introduced as software to manage resources in a computer and the need for operating systems is explained. The principal functions of operating systems are introduced, including memory management and process management, and learners will gain an appreciation for the trade-offs that exist in allocating hardware resources to processes. Learners will conclude by leveraging the understanding acquired through the unit to write their own operating system code at the kernel level.

Course Objectives

In this unit, learners will explore the role and principles of operating systems. Operating systems are introduced as software to manage resources in a computer and the need for operating systems is explained. The principal functions of operating systems are introduced, including memory management and process management, and learners will gain an appreciation for the trade-offs that exist in allocating hardware resources to processes. Learners will conclude by leveraging the understanding acquired through the unit to write their own operating system code at the kernel level.

Key Topics

  1. LO1: Understand the essential function and architecture of modern operating systems.
  2. LO2: Understand memory and I/O management techniques used by modern operating systems.
  3. LO3: Understand process management techniques used by modern operating systems.
  4. LO4: Understand the principles of and potential problems with concurrency in operating systems.
  5. LO5: Be able to write programs at the kernel level.

Course Outline

Learning Outcomes

  1. LO1 Understand the essential function and architecture of modern operating systems.
  2. 1.1 Outline a range of common operating systems for computers and mobile devices.
  3. 1.2 Describe the historical development and need for operating systems.
  4. 1.3 Explain the key components of an operating system.
  5. 1.4 Explain how operating systems manage hardware and software resources.
  6. 1.5 Analyse the different kinds of operating system that exist.
  7. 1.6 Evaluate common trade-offs in resource management for operating systems.
  8. LO2 Understand memory and I/O management techniques used by modern operating systems.
  9. 2.1 Compare different file system types.
  10. 2.2 Describe different approaches to memory management.
  11. 2.3 Describe the role of device drivers in facilitating communication with hardware devices.
  12. 2.4 Explain the role of virtual (swap) memory.
  13. 2.5 Explain the role of paging in allowing for non-contiguous memory allocation.
  14. 2.6 Analyse the difference between fixed and dynamic loading and linking strategies.
  15. LO3 Understand process management techniques used by modern operating systems.
  16. 3.1 Describe what is meant by a process.
  17. 3.2 Explain the contents of the process control block and its importance.
  18. 3.3 Explain the way that processes are represented for management by operating systems.
  19. 3.4 Analyse the range of responsibilities an operating system has for managing the execution of processes.
  20. LO4 Understand the principles of and potential problems with concurrency in operating systems.
  21. 4.1 Outline the difference between independent and cooperating processes.
  22. 4.2 Describe what is meant by concurrency.
  23. 4.3 Explain the memory sharing and message passing approaches to inter process communication.
  24. 4.4 Analyse deadlock and race conditions as potential problems in concurrent processing settings and propose strategies to mitigate them.
  25. 4.5 Evaluate the importance of low-level and high-level inter process communication.
  26. LO5 Be able to write programs at the kernel level.
  27. 5.1 Develop kernel modules that interact with hardware devices and system resources.
  28. 5.2 Implement system calls to extend kernel functionality and interact with user-level applications.
  29. 5.3 Implement kernel-level programs to perform different tasks.
  30. 5.4 Use debugging to test kernel-level code to ensure stability and performance.
Scroll