Operating Systems - CIS 8512
Fall, 2007
Professor: Dr. Eugene Kwatny
Office: Room 1014 Wachman (10th Floor)
Phone: 215-204-1679
EMAIL: gkwatny@temple.edu
Class
Hours:
Thursday 4:40 - 7:10 PM
[Tuttleman room 302]
Office
Hours: Tuesday 1:00PM - 2:00 PM
Thursday
2:00PM
- 4:00PM
(other times
available by appointment)
Required
Textbook:
“Operating Systems”, Deitel,
Deitel and
Choffnes, 3rd edition 2004, Pearson Education
Highly Recommended for
Linux/Unix programming:
“Interprocess
Communications in Linux: The Nooks and Crannies”, Gray, Pearson
Education, 2003
[Also, see attached list of additional references]
Grading: Course
grade will be determined by
Final Exam (35%) [the final exam will be
comprehensive, covering all course material]
Midterm Exam (35%)
Homework, problem assignments and class and Discussion Board
participation (30%)
Aim of Course
To
expand on the basic concepts for understanding and evaluating operatingsystems and
the most important
computer architectural issues impacting onoperating system design
and
implementation. This
course will
concentrate on theoretical and
practical issues of kernels, threads and processes; concurrency,
multi-processor
management and virtual memory, and security
and authentication.
Course
Topics
- Introduction to Operating Systems (OS): kernel:
monolithic, microkernel, distributed systems
- Virtual machines and the role of the OS in
virtualizing
computers
- Processes
and threads
- implementation
of kernel level threads and user-level threads
- Posix
threads and implementation
- Interrupts and exceptions
- Concurrency
- Theoretical
introduction to synchronization and
synchronization primitives
- Development
of synchronization primitives: busy-waiting
using spin-locks, ticket (Dekker) algorithm, bakery algorithm;
semaphores,
event counts, sequencers; monitors; message-passing
- Single and Multiprocessor Management
- Examination
of single CPU scheduling methods
-
Development
of a simple multi-CPU, multi-process scheduling algorith
- Examination
of Memory management and virtual memory in
single CPU systems
- Introduction to multiprocessor architecture
- Organizations of multi-processor operating systems
- Multiprocessor memory access architectures
- Multi-processor scheduling, process
migration, load balancing
- Case Studies of scheduling used in current operation
systems: Linux, Solaris, Windows XP
- Security
- Authentication
- Access
Control
- Key agreement protocols
- Case study: Unix systems security
Content
Reading and lecture material from Deitel
('Operating
Systems') Chapters 1 - 6, 8 - 11, 15, part of 17 (related to
synchronization and mutal exclusion), 19 and case studies in part 8
related to lectures; and Professor Kwatny's notes on
concurrency
dealing with mutual exclusion, locks, semaphores, monitors and
message passing.
Deitel chapters 1 and 2 contain material that are a
review of topics that you should be familiar with. Concepts in these
chapters will be referenced in class discussions. The first three
lectures will cover materials discussed in chapters 1 - 4 as well as
additional material.
The subsequent 5 or 6 lectures will be concerned with concurrency and
concurrency mechanisms. Chapters 5, 6 and part of 17 as well as Dr.
Kwatny's notes should be read for those lectures.
The next set of lectures will be concerned with Multiprocessor
management. Chapter 15 and some handouts will be the reading for
these lectures.
Memory Management and Virtual Memory will be the topics of the next set
of lectures. Chapters 8 - 11 and Dr. Kwatny's notes are the
reading materials for these lectures.
Lecture materials will also be available through Blackboard.
DATES of IMPORTANCE:
First class: Monday, August 27
Last day to drop (tuition refund available): September 10.
Last day to withdraw (no refund): Monday, October 29.
Last Class: Thursday, November 29 .
Final Exam: Thursday, December 13 .
Student
Responsibilities
Student's are responsible for reading all assigned
text
materials, handouts,and referenced sources.The Linux workstation
systems
(all laboratories, except room 207, are dualboot Windows XP and Red Hat
linux)), the Sun Unix (Solaris) workstations (room 207)
in the Temple CIS laboratories and the University's
Astro ( HP/Compaq Tru64 Unix) system are available for student use.
Accounts
are available for the Linux and Sun systems in the department(see
second floor laboratory
staff). Astro accounts are available for all students, and permanent
accounts
should be acquired. Astro accounts (also called AccessNet) are required
for access to
Blackboard.
Also Unix or Linux workstations are the recommended environment for
developing
and implementing homework solutions.
Homework exercises will require use of a Unix or Linux
system
(although a Windows 2000/Xp system could be used). Programs may be
written in C, C++, Fortran, or Pascal (although the systems services
are probably more
readily available in C, C++, or Fortran). Since most example programs
and
texts use the C language, it is recommended that students become
familiar
with programming in C. Students will be required to learn to use the
system
services available in Unix and Linux, and will have to use
multiple
processes, shared memory, pipes, mailboxes, event flags, 'shared
libraries', threads, etc. These services and features should be learned
and experienced
immediately at the start of the semester, since all homework
assignments
will require them. Students may use any of these systems available to
them,a snoted above.
It is recommended that students use one of the Unix programming texts,
in
particular the text by Gray).
Students will be assigned
tasks
of developing questions and answering questions developed by other
students
for each lecture. These question/answer dialogues will be via the class
discussion
board (see below).
Students who miss the final exam and do not make
alternative arrangements with me before I turn in grades, will receive
a grade of F.
Resources
We will use the Blackboard course management system in
this
course (http://tuportal.temple.edu or through the TUPortal). In order
to access Blackboard you
must have an AccessNet account. You can get such an account
from the Help desk on the ground floor of Wachman Hall. Students will
be automatically enrolled in the CIS 8512 Blackboard course. But this
can only happen if you have an AccessNet account. Until you have such
an account, you cannot access the course materials in Blackboard.
Your AccessNet account also gives you login capability
for Astro. Astro is an
HP/Compaq
Unix system running TrueUnix64 and has all of the necessary programming
resources
for your assignments. All materials for the course will be available
from
Blackboard. This includes a threaded discussion list, class notes and
lecture slides. Students will be required
to interact with themselves, and the instructor via this discussion
list.
The discussion list and Blackboard are accessed through a web browser.
When
you select the 'Operating Systems' course in Blackboard, you can access
the discussion
board
from the button on the left side of the panel.
All course documents, lecture notes, problem
assignments,
announcements, etc. will be available through Blackboard.
Office visits, Voice Mail and EMAIL are encouraged for
communication
with the instructor.
Additional
Textbook References
- 'Operating Systems',
Gary Nutt, 3rd Edition, Addison-Wesley, 2004
- 'Concurrent Systems',
Bacon, 2nd Edition Addison-Wesley, 1998
- 'Operating
Systems', 2nd ed., W. Stallings, Prentice Hall, 2001
- 'Concurrent
Programming', G. Andrews, Benjamin/Cummings, 1991 [This text is
the
basis for many of the lectures on concurrency.]
- 'Practical
Unix
Programming - A Guide to Concurrency, Communication and
Multithreading',
Robbins and Robbins, Prentice-Hall, 1996
- 'Interprocess
Communications in Unix, The Nooks and Crannies', 2nd ed., Gray,
Prentice
Hall, 1998
- 'Unix
Network
Programming - Interprocess Communications, Vol 2, 2nd Ed., Prentice
Hall,
1999
- 'Multithreaded
Programming with PThreads', Lewis and Berg, Prentice Hall, 1998
- 'Programming
with PThreads', Kleiman, Shah and Smaalders, Prentice Hall, 1996
- 'Programming
Under Mach', J. Boykin, et al, Addison Wesley, 1993
- 'Advanced
Programming in the Unix Environment', Stevens, Addison Wesley, 1992
- ‘UNIX
Network
Programming, Volume 1: Networking APIs - Sockets and XTI, 2/e’,
Stevens,
PrenticeHall, 1998
- 'Unix
Systems
for Modern Architectures', C. Schimmel, AddisonWesley, 1994
- 'Modern
Operating
Systems', A. Tannenbaum, PrenticeHall, 1992
- 'The
Logical
Design of Operating Systems', Bic and Shaw, prenticeHall, 1988
- 'Operating
Systems:
Design and Implementation 2/e', Tanenbaum & Woodhull, Prentice
Hall,
1998
- 'An
Introduction
to Operating Systems', H. Deitel, (Second edition), AddisonWesley,
1990
- 'Principles
of
Concurrent Programming', M.BenAri, PrenticeHall, 1982
- 'Operating
Systems
Concepts' (3rd Ed.), Peterson and Silberschatz, Addison Wesley
- 'An
Operating
System Vade Mecum'(2e), R. Finkel, PrenticeHall, 1988
- 'Operating
System
Design, The XINU Approach', D. Comer, PrenticeHall, 1984
- 'Operating
Systems,
Advanced Concepts', Maekawa, Oldehoeft and Oldehoeft, Benj.
Cummings,
1987
- 'Operating
System
Elements', P. Calingaert, PrenticeHall, 1982
- 'Fundamentals
of Operating Systems', A. Lister, SpringerVerlag, 1979
- 'VAX/VMS
Internals
and Data Structures', Kenah and Bate, Digital Press, 1984