Operating Systems
and
Computer Structures G2
Jan Newmarch
room: 11C20
Tel: 201 2422
email: jan@newmarch.name
WWW: http://jan.newmarch.name
Aims
An Operating System is the most widely used piece of software in any computer.
This unit aims to teach the concepts underlying Operating Systems, and to
show how different choices in Operating System design and implementation have
effects on applications, application programmers and user environments.
Objectives
At the end of this unit students will understand the various levels of system
and application software. They will be familiar with the major Operating System
services such as file systems, memory management, process management, device
control and network services. They will understand how design decisions in
Operating Systems affect users of the system.
In addition, students will have used a major Operating System extensively,
with experience in using an interactive command line programming language.
They will also will have experience in using a systems programming language
with an Application Programmers Interface to the Operating System for its
services.
This semester the Operating System will be Unix, and the systems programming
language will be C.
Entry Competencies
For undergraduates: Data Structures and Algorithms, and Computer Organisation
2. For graduates: Programming Techniques G1, Systems Analysis G1 and Computer
Structures G1.
If you do not have CO2, you should not do this unit.
CO2 and about half of Operating Systems will combine to form a new
unit Systems Software next year. The other half will combine with
Data Comms to form a new third year unit.
Similarly, CSG1 and CSG2 will combine into a new 4CP unit next year.
Computer Engineers shold be studying this material as the second half
of Comp Eng 2 this year.
Students have the ability to program in both high and low level languages.
They understand how to design algorithms using abstract data
types, and implement the algorithms. In addition, they have an
understanding of basic machine architecture and organisation.
Assessment
There will be three assignments in this unit, plus a final exam. To achieve
a pass, it is necessary and sufficient to
-
complete all assignments to a satisfactory level.
-
pass the final exam.
-
pass overall (assignments plus exam).
(If an assignment is graded as unsatisfactory, it may be resubmitted at most
once.)
The assignments are due
-
week 5. Shell programming.
-
week 9. Simple C program using file system.
-
week 14. Concurrent processes.
-->
Bibliography
The recommended text is: Andrew S. Tanenbaum,
Modern Operating Systems, Prentice-Hall.
Recommended further reading includes
-
Kelly and Pohl, A Book on C, Addison-Wesley
-
Mark G Sobell, A Practical Guide to the Unix System, Benjamin-Cummings
-
IEEE, The POSIX 1003.1 Standard, IEEE Inc
Call number: QA76.76.O63.158
-
ANSI, ANSI X3 C Programming Language Standard, ANSI
Call number: QA76.73.C15.A43
-
A. Robbins, Korn Shell Reference, SCC
-
Beginning Unix Command Summary, SCC
Unit Content
The lecture schedule is expected to be
-
week 1.
Overview of Operating System functions; Common Unix and MSDOS commands
-
week 2.
Basic shell programming
-
week 3.
Advanced shell programming and regular expressions
-
week 4.
Introduction to C; comparison to Ada and Pascal
-
week 5.
C programming
-
week 6.
File systems.
-
week 7.
Memory management.
-
week 8.
Paging and virtual memory.
-
week 9.
Inter process communication.
-
week 10.
Break.
-
week 11.
Break.
-
week 12.
Process management.
-
week 13.
Distributed processing.
-
week 14.
Distributed file systems.
-
week 15.
Device drivers.
Other matters
There will be a one hour tutorial each week, immediately followed by a one
hour laboratory. The purpose of the tutorial is to discuss more theoretical
issues. The purpose of the laboratory is to gain and practice skills in using
the resources provided by the Operating System.
Both the tutorial and laboratory
are regarded as neccessary.
Copyright © Jan Newmarch under the terms of the
Creative Commons Attribution 2.1 Australia License.