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

PREREQUISITES

TEXTS

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

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