Course Description

Course Name

Computer Architecture and Operating Systems

Session: VDNS3121

Hours & Credits

18 Credit Points

Prerequisites & Language Level

Taught In English

  • There is no language prerequisite for courses at this language level.

Overview

Digital logic and circuits, micro-programming, and assembler language concepts, characteristics of operating systems, file systems, and resource allocation; Unix and its variants.

The first part of this paper will cover the basics of computer architecture, including data representation, digital logic and devices, combinational and sequential circuits, structure of a computer, memory systems, data input and output, microprogramming and assembly language concepts. The second part will cover the concepts and fundamental principles of operating systems, including processes, interprocess communication, process scheduling, memory management, virtual memory, file systems, I/O management and resource allocation. These concepts will be illustrated with examples from the Linux operating system.

Teaching Arrangements
There are two 1-hour lectures and two 2-hour tutorials per week.

Course Structure
The first half of this paper covers Computer Architecture; the second half covers Operating Systems. The main topics taught in lectures include:
- Data Representation
- Logic and Combinatorial Logic
- Sequential Logic
-Computer Architecture
- Instruction Sets and Addressing Modes
- Assembly Language Techniques
- Memory and Storage Systems
- Input and Output
- Control Unit and Microprogramming
- Operating System Structure
- Processes and Threads
- Process Scheduling
- Process Synchronisation
- Deadlocks
- Memory Management
- Virtual Memory
- File Systems
- I/O Management
- Resource Allocation

The main topics covered in tutorials reflect those of the lectures.

Assessment:
- Tutorial Quizzes and Class Interaction 10%
- Two Practical Tests 10% each
- Final Exam 70%

Learning Outcomes
This paper will enable students to:
- Understand how a computer system is organised
- Understand data representation and computing logic
- Be familiar with computer architectures and instruction sets
- Understand how an operating system is structured and works
- Understand fundamental concepts and principles of operating systems
- Be familiar with basic OS algorithms like process scheduling algorithms and resource allocation algorithms

Textbooks
Stallings, W., Computer Organization and Architecture (8th Edition), Prentice Hall, 2009. (recommended)
Silberschatz, A. et al, Operating System Concepts with Java (8th Edition), Wiley, 2011. (essential)

*Course content subject to change