Prerequisite Modules
Description
Building on
Computer Technology 1 and the student's knowledge of programming
from Programming and Algorithms, this
module deals with general-purpose operating systems, such as Microsoft
Windows and UNIX, in detail and the hardware platforms supporting
these in outline.
Aims
The aim of this module is to enable
the student to understand the basic operation and functions of modern
operating systems, particularly general purpose operating systems, in
order that the student can understand the abstraction layer between
application and utility software and the hardware. The knowledge and
understanding provided by this module underpins the expertise to, for
example, troubleshoot, assess, and optimise the performance of a
server, or to use the security features offered by a particular
operating system in a manner appropriate to users' needs, regulatory
requirements, or company policies.
Learning Outcomes
On successful completion of this
module, the student will be able to:
-
Enumerate, describe, and
differentiate between a number of different computer operating
systems
-
Describe how a modern
general-purpose operating system typically manages memory
-
Describe how a modern
general-purpose operating system typically manages processes and
threads
-
Explain the concepts of
concurrency and parallelism
-
Enumerate, explain, and
differentiate between different mechanisms of inter-process
communication
-
Enumerate, explain, and
differentiate between the problems that arise in multiprocessing
systems
-
Enumerate, explain, and
differentiate between different synchronisation primitives
-
Explain, and differentiate
between, monolithic and microkernel architectures
-
Enumerate, describe, and
differentiate between different kinds of cache
-
Enumerate, describe, and
differentiate between different executable formats
Learning and Teaching Methods
Lectures, self-study, labs,
tutorials, and any combination of discussion, case study,
problem-solving exercises, readings, seminars, and computer-based
learning.
Content
Overview
-
Operating system purpose
-
History and evolution of operating
systems
-
Modern operating systems:
embedded, RTOS's, Microsoft Windows 2000 (or later), POSIX/SUS, UNIX
family, GNU/Linux
Processes
-
Process states, context, and
control
-
Scheduling algorithms:
Round-robin, priority queues
Memory Management and Virtual
Memory
-
Evolution of virtual memory:
overlays, swapping, paging, segmentation, internal and external
fragmentation
-
Microprocessor support via page
faults
-
Memory protection
File Management
-
Filesystem internal structures:
inode-based, FAT, etc.
-
Filesystem features: ACLs,
journals
-
Filesystem comparisons: UFS, NTFS,
ext3, ISO-9660, FAT
Interprocess Communication
-
Semaphores
-
Message Queues and Mailslots
-
Pipes
-
Sockets
-
Signals
-
Shared Memory and File Mapping
-
Clipboard, COM, and shared files
-
Distributed IPC: RPC, DCOM,
network sockets
Concurrency
-
Deadlock and starvation:
prevention, avoidance, detection, and Dining Philosophers
-
Tasks, threads and fibers: kernel,
userland, and hybrid implementations
-
Synchronization primitives:
mutexes, semaphores, and monitors
Kernel architecture
-
Monolithic kernel (e.g. Linux)
-
Microkernels (e.g. Mach)
-
Hybrid kernels (e.g. Microsoft
Windows NT or later)
Caches
-
Microprocessor cache: cache level,
on-chip, on-board, instruction cache, data cache
-
Disk and I/O cache: write-through,
write-back
-
Replacement algorithms and costs:
hit/miss, LRU, FIFO, LIFO.
Executable Formats
-
Compile-time vs. run-time linking
-
Static vs. dynamic linking
-
Types of executable (e.g. a.out,
COFF, PE COFF, ELF)
-
Types of library (e.g. .a, .so, .dll)
and library versioning
Assessment
The methods of assessment to be used
to measure the learning objectives stated above are written
examination and continuous assessment including one or more of
assignment, essay, problem-solving exercise, oral presentation, and
class or lab tests.
-
Continuous Assessment: 20%
-
Examination: 80%
Recommended
Reading
-
William Stallings,
Operating Systems, 4th ed.; Prentice Hall, Upper Saddle River, NJ,
2001; ISBN 0-13-031999-6
-
Andrew S. Tanenbaum, Modern
Operating Systems, 2nd ed. Prentice Hall, Englewood Cliffs, NJ,
2001; ISBN 0-13-588187-0
|
|
For more information contact
Ciarán O'Leary
|