Course Details

Course Information Package

Course Unit CodeACSC271
Course Unit DetailsBSc Computer Engineering (Required Courses) - BSc Computer Science (Required Courses) -
Number of ECTS credits allocated5
Learning Outcomes of the course unitBy the end of the course, the students should be able to:
  1. Describe computer organisation and architecture, as well as the structure and operations of an operating system with regards to resource management (CPU, memory and storage) and explain the concepts of CPU scheduling, process synchronisation and virtual memory.
  2. Explain scheduling algorithms to solve synchronisation problems for processes and threads and memory usage (main and virtual) with the use of system calls for single and multiprocessor systems.
  3. Examine the critical-section problem in process synchronisation and outline the use of semaphores for classic problems of synchronisation.
  4. Evaluate and compare resource management, file-system interface, protection and security of different operating systems.
  5. Design and construct programs for monitoring system resources and applying scheduling algorithms for process management and synchronisation.
Mode of DeliveryFace-to-face
Recommended optional program componentsNONE
Course Contents

Overview: Operating System definition and services, Common types of Operating Systems, interrupt driven operating systems, System Components Protection and Security, System Calls and Types of System Calls.

Processes: Definitions, Process States, diagrams, Parent, Child, memory sharing and the PCB, Context Switching and diagram, Process Scheduling, Process Creation, Windows and Linux Processes.

Threads: Definitions, Single and Multithreaded, Multithreading Programming, Thread Context Switching, Benefits, User and Kernel Threads, Multithreading Models and Diagrams, Threading Issues, Windows and Linux Threads.

CPU Scheduling: Overview, CPU Scheduler and Dispatcher, Scheduling criteria, Optimisation criteria, Scheduling Algorithms, Gantt Charts, Pre-emptive and Non-preemptive Scheduling, and Algorithm Evaluation

Process Synchronisation: Producer / Consumer, Solution to Critical Section Problem, Algorithms and Semaphores, Deadlock and Starvation, Synchronisation Problems – Dining Philosophers Problem.

Memory: Overview, Binding Instructions and Data to Memory, Memory Management, Memory Management Unit, Swapping, Dynamic Loading, and Dynamic Linking Contiguous Allocation, Dynamic Storage Allocation, Fragmentation, Page faults sand segmentation.

Virtual Memory:  Overview and Implementation, Demand and pure demand paging, Page Tables and Page Faults, Page Replacement and Algorithms, Page Fault and Page fault Correction.

File System Interface: File system, Definitions and operations on files and directories, Different structures (NAS, SAN), File systems, Different storage methods and Scheduling Algorithms.

Recommended and/or required reading:
  • Abraham Silberschatz, Peter Baer Galvin, Operating System Concepts, 8th Edition, John Wiley & Sons, 2008
  • A. S. Tanenbaum, A. S. Woodhull, Modern Operating Systems, 2nd Edition, 2001.
  • A. S. Tanenbaum, A. S. Woodhull, Operating Systems: Design and Implementation, 3rd Edition, 2006.
Planned learning activities and teaching methods

The taught part of course is delivered to the students by means of lectures, conducted with the help of computer presentations. Lecture notes and presentations are available through the e-learning platform and the web for students to use in combination with the textbooks.

Lectures are supplemented with laboratory work carried out on the Windows and Linux operating Systems boards. During laboratory sessions, students implement functionality on the operating system, by using system libraries that are the available on the Windows and Linux API.

Assessment methods and criteria
Laboratory work5%
Final Exam60%
Language of instructionEnglish
Work placement(s)NO

 Εκτύπωση  Ηλεκτρονικό ταχυδρομείο