CIS 307: Introduction to Operating Systems
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/
- Instructor : Dr. Giorgio P. Ingargiola
- Office : Computer Activity Building, Room 1038
- Phone : (215)204-6825
- E-Mail : ingargiola@cis.temple.edu
- Contact Hours : Tuesday and Thursday from 1.:30 to 2:30, or by appointment
- Graduate Assistant : Pradeep Pappachan
- Office : Computer Activity Building, Room 208
- Phone : (215)204-6486
- E-Mail : ppappach@thunder.ocis.temple.edu
- Contact Hours : Tuesday and Thursday from 11:30 to 1:30 or by appointment.
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 one modern operating system (UNIX).
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.
GRADING
- Midterm1 : 15%
- Midterm2 : 15%
- Final : 35%
- Programs : 35%
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, 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 will 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.
LABORATORIES
Laboratories are lead by the graduate assistant.
Attendance to the laboratory is MANDATORY. Most of the laboratory time
will be dedicated to work on your programming assignments.
OUTLINE
Concurrency,
Scheduling, Deadlocks,
Virtual Memory, Files,
Distributed Systems.
Overview of operating systems Concepts and History: 1 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.
Concurrent activities.
Interleaving, the Bernstein conditions,
determinate computations. Precedence
graphs, Fork and Join, CoBegin and CoEnd.
Software solutions for
the mutual exclusion problem
[Dekker, Peterson, the Bakery algorithm].
Some machine instructions that support concurrency
and spinlocks. Semaphores,
Monitors, message passing.
Threads.
Examples of concurrency problems: producer-consumer,
readers and writers, dining philosophers. Examples of language support for
concurrency: CSP, Ada. Structures used in implementing a concurrency kernel.
FIRST MIDTERM (closed books)
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.
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. Transactions.
FINAL (closed books, comprehensive)
ingargiola.cis.temple.edu