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/

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 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

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 Processes: 5 weeks

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)

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.

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