CIS 307: Introduction to Operating Systems [Fall 97]
Prerequisites
Texts,
Description,
Grading,
Exams,,
Homeworks,
Laboratories,
Outline.
Additional information about this course can be found on WWW at URL
http://www.cis.temple.edu/~ingargio/cis307/
The newsgroup for this class is at
news:temple.class.cis307.fall97
- Instructor : Dr. Giorgio P. Ingargiola
- Office : Computer Activity Building, Room 1038
- Phone : (215)204-6825
- E-Mail : ingargiola@cis.temple.edu
- Contact Hours : Monday and Wednesday: 10:45 - 11:45 or by appointment
- Graduate Assistant : Harsh Kumar Singh
- Office : Computer Activity Building, Room 1041
- Phone : (215)204-5155
- E-Mail : hsingh@thunder.temple.edu
- homepage: http://thunder.temple.edu/~hsingh/
- Contact Hours : Monday 2 - 4, Friday 11 - 1
PREREQUISITES
- CIS207 and CIS223 must have been completed
with a grade of C- or better before beginning cis307.
TEXTS
- A.S.Tanenbaum: Modern Operating System
Prentice-Hall, 1992 (REQUIRED)
- W.R.Stevens: Advanced Programming in the UNIX Environment
Addison-Wesley, 1992 (OPTIONAL)
DESCRIPTION
This course is concept oriented, not specialized to a particular operating
system, and not trying to code the kernel of an operating systems. It examines
the basic components of modern operating systems, in terms of
their function, domain, issues, design principles and implementation techniques.
It presents the basic concepts of operating systems theory; it describes
and uses in homeworks two modern operating systems (UNIX and Windows NT).
Design and implementation of a number of concurrent programs is examined.
Hardware support for operating system functions is discussed.
Concepts of Communication, Networking, and Distributed Systems are surveied.
Performance issues are discussed throughout the course.
GRADING
- Midterm1 [October 9]: 15%
- Midterm2 [November 11]: 15%
- Final : 35%
- Homeworks: 35%
Disastrous performance in either the exams, or in the homeworks,
will result in a Fail grade.
EXAMS
The exams are closed book. Their content is cumulative, i.e. they address
the material covered up to the day of the exam. If a student misses a
midterm for an emergency [as agreed by instructor],
there will be no makeup exam: the other exams will become
proportionally more important. The final exam is mandatory. Examples of
questions from past exams are at http://www.cis.temple.edu/~ingargio/cis307/assessment/exams.html.
HOMEWORKS
You will be assigned about six homeworks that involve programming and
discussion in the laboratory sessions. Additional homeworks of a more
theoretical nature may also be assigned.
Each assignment must be completed on time. Late homeworks will not be accepted
except in extreme circumstances.
You are expect to work and complete all the homeworks on your own. Plagiarism
will be severely punished.
The programming homeworks aim to develop and test your ability
to conceptualize and realize problem solutions using a variety of pre-existing
services as provided by modern operating systems (Unix and Windows NT).
LABORATORIES
Laboratories are lead by the graduate assistant.
Attendance to the laboratory is MANDATORY. A portion of the laboratory time
will be dedicated to work on your programming assignments, the rest will
review the use of software tools and services
OUTLINE
Concurrency,
Scheduling, Deadlocks,
Virtual Memory, Files,
Distributed Systems.
Overview of operating systems Concepts and History: 1.5 week
What is an Operating System: history with examples. Review of terms and
concepts at the border between hardware and software: input-output device,
interrupts, addressing, protection, hardware context of a program. Some
operating systems architectures.
Concurrent Processes: 4.5 weeks
Concurrent activities.
Interleaving, the Bernstein conditions,
determinate computations. Precedence
graphs, Fork and Join, CoBegin and CoEnd. Processes and Threads.
Software solutions for
the mutual exclusion problem
[Dekker, Peterson, the Bakery algorithm].
Some machine instructions that support concurrency.
Spinlocks, Semaphores,
Monitors, Message Passing.
Examples of concurrency problems: producer-consumer,
readers and writers, dining philosophers. Examples of language support for
concurrency. Architecture of a concurrency kernel.
FIRST MIDTERM (closed books)
Scheduling: 1 week
Long term vs. short term scheduling. The single server queue and Little's Law.
Examples of scheduling algorithms and their characteristics : FIFO, LIFO, SJF
, SRT, RR. Simple Performance Evaluation ideas with an example of a
queueing network and its operational analysis.
Deadlock Detection, Avoidance, and Prevention: 1 week
Reusable and consumable resources. Resource Allocation Graphs and State
Diagrams. Reducing Resource Allocation Graphs. Examples of Deadlock
prevention
methods: linear ordering and hierarchical ordering of resources. The Banker
algorithm. Algorithm to detect deadlocks. Methods for recovering from
deadlocks.
Storage Management and Virtual Memories: 1.5 weeks
Storage management with fixed-size blocks and with variable-size blocks.
Paged, segmented, segmented over pages virtual memories. Hardware support for
virtual memories. The working set principle. Page replacement algorithms.
SECOND MIDTERM (closed books, comprehensive)
Some Concepts on File Systems: 1.5 week
Disk storage management. Disk scheduling. The Unix file system.
Stable Storage. Layered implementation of file systems.
Issues in Communication, Networks,
and Distributed Systems : 3 weeks
Structure and services of networks. Distributed systems and distributed
applications. Problems of distributed
coordination: Event ordering, Centralized vs. distributed algorithms,
Mutual exclusion, elections, deadlocks. Global memory.
Remote Procedure Calls.
Distributed file systems. Atomic transactions. Client-Server architecture.
Distributed Objects.
FINAL (closed books, comprehensive)
ingargiola.cis.temple.edu