McMaster University
SOFTWARE DESIGN III - CONCURRENT SYSTEM DESIGN
SFWR ENG 3BB4 - Winter 2007
Instructor
Dr. Wolfram Kahl,
ITB-245 , ext: 27042,
kahl@mcmaster.ca
The course outline is available as
PostScript
and as
PDF .
Teaching Assistants
- Marwan Abdeen
- Feng WANG
- CAO Shiqi
News
- 2007-04-11:
> Should we expect shell scripts on the final exam? By that I mean
> something of the nature of the last question on the first midterm.
Nothing of the shell-programming-nature of the last question on the first midterm
will be on the final.
- 2007-03-26:
manpages-posix
and manpages-posix-dev
seem to be relevant packages on ubuntu
- 2007-03-03: Contributed ubuntu hints:
For the last part, a cleaner solution would be:
DBM_LIB2=gdbm_compat
server: server.o cd_dbm.o pipe_imp.o
$(CC) -o server -L$(DBM_LIB_PATH) $(DFLAGS) server.o cd_dbm.o \
pipe_imp.o -l$(DBM_LIB_FILE) -l$(DBM_LIB2)
- 2007-03-01:
On ubuntu, and probably on some other distributions as well,
you need not only the binary package for
gdbm
,
but also the ``development package'' libgdbm-dev
!
For getting the basic development environment
(compiler, make, ...): apt-get install build-essential
- 2007-01-23: Send Assignment 1 files to
kahl@mcmaster.ca
- 2007-01-18: The tutorial is now always in ITB-237
Exams
- Midterm 1: Friday, Feb. 9, 14:30-16:00, REF-102
- Midterm 2: Friday, March 9, 14:30-16:00, REF-102
- Final: scheduled by the Registrar's office
Slides
(4-up on Letter paper --- printing on A4 paper will cut off a part.)
Please notify me of any errors and typos!
- Introduction (January 4):
,
- Operating System Concepts (January 8):
,
- Shell (January 9-18):
,
- Files (January 22-30) (updated Jan. 30):
,
-
SE3B-2007-01-23.script,
SE3B-2007-01-25.script
- Make (February 1-5):
,
- Processes (February 5-12):
,
-
interleaving1.c
- Signals (February 12-13):
,
- Pipes (February 15-28):
,
-
interleavingRead1.c,
interleavingRead2.c
- Labelled Transition Systems (March 1-12):
,
-
slides updated March 12, including also composition results:
,
- Threads (March 12-29):
,
-
interfere.c,
errnotest.c
- Scheduling (April 2-6):
,
- Summary (April 6):
,
Assignments and Exercise Sheets
- Assignment 1 (January 11-25):
,
Files should be sent
(in gzipped tarred packages as specified in the assignment)
to
kahl@mcmaster.ca
- Exercise Sheet 1 (January 18):
,
- Exercise Sheet 2 (January 25):
,
-  
freedesktop.org/.../lndir.sh
- Assignment 2 (February 15 - March 5):
,
Files should be sent
(in gzipped tarred packages as specified in the assignment)
to
kahl@mcmaster.ca
On ubuntu, and probably on some other distributions as well,
you need not only the binary package for gdbm
,
but also the ``development package'' libgdbm-dev
!
- Exercise Sheet 3 (February 27):
,
-  
Solution hints:
,
- Assignment 3 (March 22 - April 2):
,
-  
dungeonTest.sh
Files should be sent
(in gzipped tarred packages as specified in the assignment)
to
kahl@mcmaster.ca
Literature
The course will use the following main textbook:
Additional reading about Concurrency and Labelled Transition Systems:
For additional reading about Operating Systems,
one of the following is recommended:
-
A. Silberschatz,
P. B. Galvin,
G. Gagne:
Operating Systems Concepts,
Wiley,
seventh edition 2004.
(The Sixth Edition was the main textbook 2002.)
-
A. Silberschatz,
P. B. Galvin,
G. Gagne:
Applied Operating Systems Concepts,,
Wiley,
2002, ISBN 0-471-36508-4
(The First Edition was the main textbook 2001.)
-
Andrew S. Tanenbaum:
Modern Operating Systems,
Prentice Hall, ISBN 0-13-031358-0
-
Andrew S. Tanenbaum, Albert S. Woodhull:
Operating
Systems Design and Implementation, 3/E,
Prentice Hall 2006, ISBN-13: 978-0-13-142938-3
(This book contains the source code of the operating system MINIX.)
Useful reference for C:
-
Brian W. Kernighan, Dennis Ritchie:
C Programming Language, 2/e,
Prentice Hall 1989, Paperback, 274 pp.,
ISBN: 0-13-110362-8
Additional reading about UNIX systems programming
(previously used as textbooks for SE 3B*4):
-
Kay Robbins, Steve Robbins:
UNIX Systems Programming:
Communication, Concurrency, and Threads
Prentice Hall,
2003, ISBN 0-13-042411-0 (893 pages)
(This is a revised and significantly extended edition of the next title.)
-
Kay Robbins, Steve Robbins:
Practical UNIX Programming:
A Guide to Concurrency, Communication, and Multithreading
Prentice Hall,
2001, ISBN 0-13-443706-3 (658 pages)
Schedule
|
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
9:30-10:20 |
Lecture: HH-104 |
|
|
Lecture: HH-104 |
|
10:30-11:20 |
|
Lecture: HH-104 |
|
|
|
11:30-14:30 |
|
|
|
|
|
14:30-16:20 |
|
|
|
|
Tutorial: ITB-237 |
Tutorials start on January 12.
Links
Miscellaneous Links
Academic Dishonesty
Academic dishonesty consists of misrepresentation by deception or by other
fraudulent means and can result in serious consequences, e.g. the grade of
zero on an assignment, loss of credit with a notation on the transcript
(notation reads: ``Grade of F assigned for academic dishonesty''), and/or
suspension or expulsion from the university.
It is your responsibility to understand what constitutes academic
dishonesty. For information on the various kinds of academic dishonesty
please refer to the Academic Integrity Policy, specifically Appendix 3,
located at
http://www.mcmaster.ca/univsec/policy/AcademicIntegrity.pdf
The following illustrates only three forms of academic dishonesty:
- Plagiarism, e.g. the submission of work that is not one's own or for
which other credit has been obtained.
- Improper collaboration in group work.
- Copying or using unauthorized aids in tests and examinations.
Discrimination
``The Faculty of Engineering is concerned with
ensuring an environment that is free of all adverse discrimination.
If there is a problem
that cannot be resolved by discussion among the persons concerned,
individuals are reminded that they should contact
the Department Chair,
the Sexual Harassment Office
or the Human Rights Consultant,
as soon as possible.''
(-Viewer)
(-Viewer)