OPERATING SYSTEMS - 2019/0
Module code: COM1032
The module covers the main concepts of modern operating systems (OS). The module has three main parts. The first part of the course provides a short history of operating systems and their purposes. It also introduces the student to multiprocessing and multithreading, i.e. how an OS manages multiple tasks that execute at the same time (concurrently) and share resources. The second part of the course addresses the problem of memory management. The final part of the course introduces file systems and Input/output handling. Throughout the module, case studies of various operating systems are presented while the exercises and labs focus on one Linux flavour suitable to run on a platform such as Raspberry Pi 3.
The lab work consists of 11 sessions of OS concepts applications often using a platform such as the Raspberry Pi. The lab sessions are a mix of tutorials, problem solving tasks and programming exercises.
HELAL Manal (Computer Sci)
Number of Credits: 15
ECTS Credits: 7.5
Framework: FHEQ Level 4
JACs code: I320
Module cap (Maximum number of students): N/A
Prerequisites / Co-requisites
Indicative content includes the following:
Introduction to Operating Systems
Process Management: allocation of resources, context switching
Threads vs Processes
Concurrency Mechanisms such as synchronization, scheduling, and deadlock
Memory Management Concepts such as linking, dynamic memory allocation, dynamic address translation, virtual memory, and demand paging
Memory Management programming and profiling
File Management Concepts: storage devices, disk management and scheduling, directories, protection, and crash recovery
File Management Programming
I/O Concepts and Programming
|Assessment type||Unit of assessment||Weighting|
|Coursework||COURSEWORK 1 (INDIVIDUAL)||40|
|Coursework||COURSEWORK 2 (INDIVIDUAL)||60|
The assessment strategy is designed to provide students with the opportunity to demonstrate that they have achieved the module learning outcomes.
Thus, the summative assessment for this module consists of:
- An individual coursework (COURSEWORK 1) on sets of problems that students are required to solve. This addresses LO2 and LO3.
- An individual coursework (COURSEWORK 2) on the whole course content. This addresses all learning objectives.
The first individual coursework will be due around week 6 with an unseen written exam during the exam period. The second will be due around week 12.
Formative assessment and feedback
Lecture slides are used extensively in the lectures with each lecture consisting of a number of slides explaining the theory and showing the examples. Solutions to lab exercises are explained during the lab session and provided to the students as part of preparation for the exam.
- Introduce the basic principles of Operating Systems and computer architectures coupled together with aspects like process management, memory management, file systems, I/O subsystems, etc.
- Practical application of OS principles by examining case studies in a chosen platform
- Develop the students' knowledge of programming to support an interest in lower level programming to contribute to OS development, or use the acquired skills to be highly skilled programmers in higher level user application development
|001||Understand the operations managed by the OS and design strategies: micro-kernel vs monolithic||KC|
|002||Execute and implement multiprocessing and multithreaded applications using various concurrency and messaging mechanisms||KPT|
|003||Understand Memory Management functionalities implemented by OS, and the various partition schemes. Execute memory profiling to various programming examples||KPT|
|004||Critically evaluate the design of file system and I/O managers in various OS case studies and interface with them from higher level applications.||KPT|
C - Cognitive/analytical
K - Subject knowledge
T - Transferable skills
P - Professional/Practical skills
Overall student workload
Independent Study Hours: 106
Lecture Hours: 22
Laboratory Hours: 22
Methods of Teaching / Learning
The learning and teaching strategy is designed to:
Help students understand the distinctive features of various operating systems design decisions.
Demonstrate the fundamental applications of OS features in programming higher level user applications.
Provide the foundations on which students can build in order to be able to participate in OS development subsequently.
Enable students to design higher level applications more efficiently by being aware of the impact the OS has on managing the access to the underlying hardware and other resources.
The learning and teaching methods include:
Lectures (11 weeks at 2h) using detailed lecture slides and interactive quizzes (eg Poll Anywhere) to gauge the students’ understanding
Labs/Tutorials (11 weeks at 2h) using exercises and their solutions and demonstrations.
Students are expected to spend time outside of the contact hours on self-study to prepare and revise lecture, lab and tutorial material.
Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.
Reading list for OPERATING SYSTEMS : http://aspire.surrey.ac.uk/modules/com1032
Programmes this module appears in
|Computer Science BSc (Hons)||2||Compulsory||A weighted aggregate mark of 40% is required to pass the module|
Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2019/0 academic year.