Operating Systems
and
Computer Structures G2
Jan Newmarch
room: 11C20
Tel: 201 2422
email: jan@ise.canberra.edu.au
WWW: http://pandonia.canberra.edu.au
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 10. Simple C program.
-
week 15. IPC program.
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.
There will not be a tutorial or laboratory in week one.
Passwords and accounts will be issued later.
What is an Operating System?
Example:
What is this?
Example:
What is this?
Example:
What is this?
A view of a computer system is
O/S Command and Response Languages
The command language allows the user to request the computer to
execute commands.
The command response language is used by the computer to signal responses to
these commands.
Often these are both managed by a Command Interpreter
Example:
MSDOS
The command interpreter is command.com.
Typical responses are
C:>
Bad command or file name
Not ready reading drive A
Abort, Retry, Fail?
The command language accepts lines of characters. The first word of the line
is expected to be the name for a program somewhere in the system.
Actually
it is more complex than this: some words represent commands that command.com
executes directly, some belong to a programming language understood by command.
com,
and the rest are supposed to be ordinary programs.
Example:
Microsoft Windows Program Manager
The response ``language'' is a set of icons in program groups and various
dialogs. The command language recognises double-clicks on icons by the mouse
and various menus.
Operating System
The Operating System is not the command interpreter. The Operating System
is the program that must be running all the time, and cannot be replaced without
it being a different O/S.
Example:
command.com can be replaced by other ``shells'' such as ksh.exe, and you still
are running MSDOS
On the other hand, if you run Dr Dos, you are running a different Operating
System - but one that tries to look like MSDOS.
The O/S is responsible for bridging the gap between the hardware and application
needs. That is, it manages the hardware and supplies ``services'' to
application
programs (including the command interpreter). Example services include:
-
File systems
-
Memory management
-
Process management
-
Process communication
-
Networking
Course content
-
non-trivial command interpreter
-
Operating System programming language
-
theory of O/S services
-
O/S Application Programmers Interface
Mechanism
The s/w components used in this course are
-
Unix as principal O/S
-
A Unix command interpreter
-
C programming language
-
Unix API
-
plus bits of MSDOS, Windows95, etc
Structure
-
2 x 1 1/2 hour lectures
-
1 x 1 hour tutorial
-
1 x 1 hour laboratory
Lecture availability
Last year's notes are in the bookshop.
The notes are on the Faculty's World Wide
Web server under http://pandonia.canberra.edu.au/.
These will be updated throughout the semester.
From there you will be able to read/copy them on Unix or Dos.
You will be able to access them from any of the University's computers.
Course Environment
-
PCs running Linux
-
X11R6 Window System
-
bash command interpreter
-
GNU cc compiler
Unix/C on your PCs
There is a public domain Unix-clone called Linux. This can be used as another
O/S besides MSDOS. You can set up partitions on your hard disk with MSDOS
in one part, Linux in another. The complete Linux installation is available
by arrangement with Ross Johnson. To seriously run Linux you will need at least
8M RAM and 100M disk.
There is a public domain C compiler that runs under MSDOS on 386 machines.
The files for this are stored in D:\DJgpp\gcc260bn.zip.
Some of the Unix utilities have been ported to DOS. They are available
as D:\os\dos-unix. Their quality and completeness is unknown.
Summary
This lecture has given a list of the topics to be covered, with details of the
lecture schedule and assessment mechanisms. The supplied course environment
has been described, plus some information on how you can run similar
environments on your own PCs.
This page is
http://pandonia.canberra.edu.au/OS/l1_1.html,
copyright Jan Newmarch.
It is maintained by Jan Newmarch.
email:
jan@ise.canberra.edu.au
Web:
http://pandonia.canberra.edu.au/
Last modified: 18 July, 1995