Computer Science 453 Operating Systems

Dr. Stephen Bloch office 112 Alumnæ Hall phone 877-4483

                email sbloch@boethius.adelphi.edu
             Web page http://www.adelphi.edu/~sbloch/
     Class Web page http://www.adelphi.edu/~sbloch/class/453/

office hours TTh 4:20–5:00 PM, and most of the day Monday and Wednesday

January 26, 1998

1 Subject Matter

This course covers the software that runs on our computers all the time and makes them usable, both by humans and by application programs. This would be reasonably simple if computers only did one thing at a time, but for the past several decades most computers have been designed to do at least a handful if not dozens or hundreds of unrelated tasks at once. The operating system is charged with giving each of these tasks the memory, CPU time, disk space, network bandwidth, etc. that it needs, without allowing it to interfere with other tasks. We’ll examine many of the non-obvious issues that arise in solving these problems.

2 Prerequisites

Students taking this course are expected to understand the basic concepts of machine language (which processor doesn’t matter much), as one would learn in Systems I (CSC 371). Students should also be familiar with data structures such as linked lists, heaps, FIFO and priority queues, as one would learn in Data Structures (CSC 343). A third official prerequisite is Probability (MTH 361), but I don’t anticipate using anything more sophisticated than the notions of mean and standard deviation.

3 Text

The textbook for this course, Operating System Concepts, by Silberschatz and Galvin, is the new fifth edition of the most popular textbook in the field of operating systems. We’ll work through 15–20 chapters of it, reading 20–25 pages per lecture. Please keep up on the reading!

You are responsible for everything in the reading assignments, whether or not I discuss it in a lecture. You are also responsible for checking my class Web page at least once a week or so; I often post assignments, corrections to assignments, solutions to assignments, etc. there.

4 Grading

I’ll assign a number of homework problems, to be turned in on paper or by email. At present I don’t foresee any programming assignments.

Exams must be taken at the scheduled time, unless arranged in advance or prevented by a documented medical or family emergency. If you have three or more exams scheduled on the same date, or a religious holiday that conflicts with an exam or assignment due date, please notify me in writing within the first two weeks of the semester in order to receive due consideration. Exams not taken without one of the above excuses will be recorded with a grade of 0.

Homework assignments will be accepted late, with a penalty of 1/5 per 24 hours or portion thereof after they’re due. An hour late is 20% off, 25 hours late is 40% off, etc. No matter how late you are, however, it’s better (both for your education and for your grade) to do the assignment than not to do it at all.

5 Ethics

Most assignments in this course are to be done individually. I have no objection to people in the class discussing general approaches to a homework problem, but I expect each individual to write up the details separately. If I find two or more students turning in essentially identical homework (which is easy to detect in a class this small!), all the students involved will be penalized.

All work on the exam must be entirely the work of the one person whose name is at the top of the page. If I have evidence that one student copied from another on an exam, both students will be penalized; see above.

6 Schedule

This class meets every Tuesday and Thursday from 9:25 to 10:40 AM, except on University holidays or if I cancel class. All dates in the following schedule are tentative, except those fixed by the University; if some topic listed here as taking one lecture in fact takes two lectures to cover adequately, or vice versa, the schedule will shift.

I expect you to have read the reading assignments (usually one chapter per lecture) before the lecture that deals with that topic; this way I can concentrate my time on answering questions and clarifying subtle or difficult points in the textbook, rather than on reading the textbook to you, which will bore both of us. Please read ahead!

Date(s) Assignment Reading Lecture Subject 27 Jan Administrivia, “what is this course about?”

29 Jan  1  History of Operating Systems
3 Feb  2  Overview of OS concepts
5 Feb  3  More of the same

6 Feb Last day to add courses 10 Feb 4 Processes 12 Feb Inter-process Communication

17 Feb  5  CPU scheduling
19 Feb  6  Process synchronization

20 Feb Last day to drop courses 24 Feb Process synchronization, continued 26 Feb 7 Deadlocks and … 3 Mar How Not to Have Them 5 Mar catch up & review for midterm 10 Mar Midterm Exam 12 Mar Discuss midterm exam 16–22 Mar Spring break — no classes 24 Mar 8 Memory Management 26 Mar Paging and Segmentation 31 Mar 9 Virtual Memory 2 Apr Implementing Virtual Memory 3 Apr Last day to withdraw from classes

7 Apr  10  What is a file?
9 Apr  11  Implementing Files
14 Apr  12  I/O devices and drivers
16 Apr  13  Secondary storage
21 Apr  15  Networking
23 Apr  16  Distributed Systems
28 Apr  17  Distributed File Systems

30 Apr Examples of Distributed File Systems 5 May 19 or 20 Protection & Security 7 May catch up and review for final 14 May 10:30–12:30, Final Exam