Recommended prerequisite for participation in
the module
The module builds on the knowledge gained in the modules
"Programming" and "Internetworking and
web-programming"
Content, progress and pedagogy of the
module
Disclaimer.
This is an English translation of the module. In case of
discrepancy between the translation and the Danish version, the
Danish version of the module is valid.
Give understanding of how applications run on a computer in
conjunction with system software, utilize this to streamline
applications, as well as introduce multi-programming.
Programs are written in high-level languages, translated into
machine code and then driven on computers in conjunction with its
operating system. The course gives the student a knowledge of the
various steps in translating and executing high-level programs on
computers, including how a specific processor executes a
program.
The course also introduces how the architecture and system
services can be used in application programmes with a focus on
concurrency.
In this course, the student obtains knowledge of basic concepts
in computer architecture, operating systems, and concurrency.
Learning objectives
Knowledge
- Abstraction layers in computer architecture and operating
systems
- Organization of hardware components (processor, memories,
peripherals, buses,...)
- Processor architectures (Harvard, von Neuman) and types
(embedded, desktop, high-performance, server, micro-controllers,
DSP)
- Number and data representation.
- Instruction set architectures
- Instruction level parallelism
- Digital logical circuits and Boolean algebra
- The inventory hierarchy
- Virtual memory
- The driving time environment of a running program
- Interruptions (interrupts), system calls, and exceptions
- Cores and operating systems, virtual machines
- Multi-programming: processes and threads, synchronisation,
deadlocks
- Basic multi-core programming
Skills
- Be able to explain the behavior of simple application at the
assembler level
- Be able to understand and use special instructions in programs
- Be able to write programs to make the best use of your
computer's hardware and processor, such as the storage
hierarchy, instructional level parallelism, and explicit
parallelism
- Be able to analyze and write simple, system-close programs that
use parallelism and/or concurrency
- Be able to use the techniques of the profession to ensure
reciprocal exclusion, fairness and absence of deadlock in simple
simultaneous/parallel systems
- Be able to use correct terminology, accurately describe and use
the terminology and notation of the course for building,
structuring, functionality and operation of the computer
architecture and operating systems
Competences
- After the course, the student can formulate and solve simple
low-level-related issues that are grounded in knowledge of computer
architecture, running time environments, operating systems, etc. -
both independently and in cooperation with others.
- By synthesis of the profession's concepts and techniques,
the student should be able to develop system-close simple programs
that use parallelism and/or simultaneity.
- The student must be able to acquire new knowledge of operating
systems and programming of simultaneous and parallel
systems
Type of instruction
The teaching is organised according to the general teaching
forms referred to in ยง 17.
Extent and expected workload
The student is expected to spend 27.5 hours per ECTS, which for
this activity means 137.5 hours.
Exam
Exams
Name of exam | Computer Architecture and Operating Systems |
Type of exam | Written or oral exam |
ECTS | 5 |
Assessment | 7-point grading scale |
Type of grading | External examination |
Criteria of assessment | The criteria of assessment are stated in the Examination
Policies and Procedures |
Additional information
Contact: Study Board for Computer Science via cs-sn@cs.aau.dk or
9940 8854