COMP104 - Operating Systems Concepts

Module Information and Resources


Lecture and Practical Arrangements

There are three lectures each week, taking place at the following times

The first lecture will take place on Tuesday 31st January

Tuesday 15.00 (Chadwick Building Large LT) (CHAD-CHAD)
Wednesday 09.00 (Chadwick Building Large LT) (CHAD-CHAD)
Friday 13.00 (Chemistry Bldng - Muspratt LT) (CHEM-MUS)
(EXCEPT IN WEEK 6 University Lecture Theatre C)
In addition there will be one scheduled practical class each week. These will take place at the following times commencing Monday 13th February 2012

Monday 14.00 (Lab 1, Holt Bulding) (Ali Bojarpour)
Wednesday 10.00 (Lab 3, Holt Bulding) (Ali Bojarpour)
Thursday 15.00 (Lab 2, Holt Bulding) (Ali Bojarpour)
Friday 10.00 (Lab 2, Holt Bulding) (Ali Bojarpour)

The first practical assignment can be found here

The deadline for which is 3pm, Monday 16th April 2012

The second practical assignment can be found here

The deadline for which is 3pm, Friday 10th May 2012

Relevant Notes will appear in this list prior to the material being introduced.

Notes

  1. Introduction
  2. Processes
  3. Concurrency
  4. Scheduling and Memory Managment
  5. Device Management
  6. File Handling
  7. Compilers
  8. Revision Lecture Notes

 
MODULE DESCRIPTION

28. Aims
 
  1. To introduce students to the structure and functionality of modern operating systems.
  2. To explain how the principal components of computer-based systems perform their functions and how they interact with each other.
29. Learning Outcomes
 

At the end of this module the student should be able to

  1. state the overall structure and functionality of a modern operating system and the interactions between computer hardware and user-programs;
  2. identify the operations of the major components of an operating system, including the device manager, file manager, memory manager, and process manager;
  3. identify the functions of system programs, including parsers, compilers, and virtual machines;
  4. construct programs which demonstrate in a simple form the operation of examples of systems programs, including simple compilers and programs that involve management of concurrent processes.

31. Syllabus
  *
  1. Process management: Communicating sequential processes, process management and scheduling. Resource allocation, mutual exclusion, semaphores, deadlock. (6 lectures)
  2. Concurrent programming in Java. (4 lectures)
  3. Memory management: storage organisation methods, paging, segmentation, memory allocation, housekeeping. (4 lectures)
  4. Device Management: Polling / Interrupts. (1 lecture)
  5. File management: Input/output, files, and filestore organisation: buffering, caching, store allocation and garbage collection. (3 lectures)
  6. Operating systems case studies: Windows and Linux. (3 lectures)
  7. Compilers: a practical overview of compiler construction; lexical analysis, parsing, code generation, linking,interpretation examined in the context of Java and available software tools. (6 lectures)
  8. Runtime store organisation: dynamic store allocation, treatment of recursion. Organisation of the Java virtual machine. (3 lectures)
32. Recommended Texts
  Core reading:
  • A. Silberschatz, P. B. Galvin, and G. Gagne: Operating system concepts with Java. Wiley (latest edition).
  • A. Silberschatz, P. B. Galvin, and G. Gagne: Operating system concepts. Wiley (latest edition).
  • I. M. Flynn and A. McIver-McHoes: Understanding operating systems. Thomson (latest edition).
Further reading:
  • K. C. Louden: Compiler Construction: Principles and Practice. Thomson (latest edition).
  • D. Watt, D. Brown, and R. W. Sebesta: Programming Language Processors in Java: Compilers and Interpreters. Prentice Hall (latest edition).