UMass CMPSCI 377: Operating Systems

tree

Description

In this course we examine the important problems in operating system design and implementation. The operating system provides a well-known, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The operating system is responsible for allowing resources (e.g., disks, networks, and processors) to be shared, providing common services needed by many different programs (e.g., file service, the ability to start or stop processes, and access to the printer), and protecting individual programs from one another. The course will start with a brief historical perspective of the evolution of operating systems over the last fifty years, and then cover the major components of most operating systems. This discussion will cover the tradeoffs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to three major OS subsystems: process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping), file systems, and operating system support for distributed systems. Prerequisites: COMPSCI 230. 4 credits.

Lectures

Tuesday and Thursday 1:00p - 2:15p @ Morrill 2 Room 222

Discussion Section

Wednesday 11:15a - 12:05p @ Hasbrouck Laboratory room 134”

Instructors and TAs Office Hours

Schedule

Class Day Topic Reading/Assignment
L1 Tuesday, Jan 24 Introduction l01 Ch1, Ch2
L2 Thursday, Jan 26 OS and Architecture l02 Ch2
D1 Monday, Jan 30 Intro Due Homework 1
L3 Tuesday, Jan 31 Operating System Structures, System Calls l03  
L4 Thursday, Feb 2 Processes and Process Management l04 Ch4, Ch5, Ch6
P0 Friday, Feb 3 Project 0 Due Project 0, Starter Code
D2 Monday, Feb 6 System Calls Homework 2
L5 Tuesday, Feb 7 CPU Scheduling l05 Ch7, Ch8, Ch9
NC Thursday, Feb 9 Snow Day  
D3 Monday, Feb 13 CPU Scheduling Homework 3
L6 Tuesday, Feb 14 Scheduling+Threads l06 Ch26, Ch27
L7 Thursday, Feb 16 Synchronization: Locks l07 Ch28
P1 Friday, Feb 17 Project 1 (Shell) Due Project 1, Starter Code
NC Tuesday, Feb 21 No Class  
M1 Thursday, Feb 23 Midterm Exam 1 Sample exam
D4 Monday, Feb 27 Synchronization Homework 4
L8 Tuesday, Feb 28 Semaphores Ch31
L9 Thursday, Mar 2 Monitors and Condition Variables (Guest) Ch30,Appd
D5 Monday Mar 6 Readers and Writers, Dining Phil Ch31
L10 Tuesday, Mar 7 Concurrency bugs, Deadlocks Ch32
L11 Thursday, Mar 9 Synchronization, Monitors Homework 5
P2 Friday, Mar 10 Project 2 (Synchronization) Due Project 2
D6 Monday, Mar 20 Concurrency bugs, Deadlocks Homework 6
L12 Tuesday, Mar 21 Memory Management, Relocation Ch13, Ch15, Ch16, Ch17
L13 Thursday, Mar 23 Memory Management: Paging Ch16, Ch18, Ch19
D7 Monday, Mar 27 Memory management Homework 7, Ch14, Ch17
L14 Tuesday, Mar 28 Memory Management: Segmented Paging Ch16, Ch18, Ch19
L15 Thursday, Mar 30 Demand Paged Virtual Memory Ch20, Ch21
D8 Monday, Apr 3 Memory management Homework 8
M2 Tuesday, Apr 4 Page Replacement Algorithms Ch22
M2 Thursday, Apr 6 Midterm 2 Sample exam
D9 Monday, Apr 10 Memory management Homework 9
L16 Tuesday, Apr 11 File Systems Ch39
L17 Thursday, Apr 13 File System Implementation Ch40, Ch41
D10 Tuesday, Apr 18 File Systems Homework 10, Homework 11
L18 Thursday, Apr 20 Secondary Storage, Disks Ch37
P3 Friday, Apr 21 Project 3 (File Systems) Due Project 3
D11 Monday, Apr 24 Disks Homework 12
L19 Tuesday, Apr 25 I/O Systems, Device Drivers Ch36
L20 Thursday, Apr 27 Communication and Networking Ch47
D12 Monday, May 1 RPCs, Device drivers No Homework
L21 Tuesday, May 2 Distributed Systems and RPCs Ch47

Lectures removed because of snow:

L24 Tuesday, May 2 NFS, Protection Slides Part 2 Ch48

Course Materials

Major Requirements and Grading

You are expected to attend class regularly, read the assigned reading before class, and participate in class discussions.

There is no opportunity for extra credit in this course. Please do not ask!

Course Management

This course will use a number of web-based services. We will create accounts for you, but it is your responsibility to log in and check that everything has been set up correctly.

Piazza

Piazza is a online discussion management system. It will be used as the main hub for communication in this course. All questions and answers will be posted to Piazza. You will be responsible for visiting Piazza several times a day to see updates, or setting your email preferences accordingly. Please review the Piazza feature list to get an understanding of how to use Piazza.

Piazza is a great tool but it can be abused. Please follow these guidelines in your use of Piazza:

The course staff (instructors and TAs) will monitor Piazza and answer your questions in a timely manner. If a question has already been answered in a previous post we may not respond to you. If a question does not follow the guidelines above we may not answer it. If we find that a private question is relevant to a larger audience, we may make it anonymous and post it publicly to help others in the course.

Moodle

Our use of Moodle will be limited to making course grades available to you. (The course syllabus, materials, and assignments will all be available of this website.)

You should have had an account automatically created for you at the beginning of the course. If you are unable to log in to moodle you should contact the instructor. If you haven’t used moodle before it is your responsibility to become acquainted with its interface and main features.

Grades will be available through the moodle gradebook. You should orient yourself with how to find it and stay on top of your grades to avoid any grading issues.

Gradescope

We will use a tool called Gradescope for grading your programming assignments, midterms and exams, and discussion section assignments. Gradescope allows us to provide fast and accurate feedback on your work. You should have an account within a few days of signing up for the course. Gradescope will email you with your account details. If you do not, please contact the instructors immediately.

The autograder will provide you with some limited feedback on programming assignments: does it compile, does it pass the public and private tests, what your score is, etc. It will not tell you which private tests it has run, nor should it. It is your responsibility to thoroughly test your own programs!

We will grade your midterms and exams through gradescope as well. This allows us to parallelize the grading of your assignments and to use a standard rubric for programming questions. This also frees us all from handing back tons exams in class.

Turning in discussion section assignments: TBD.

Late Submissions

Late submissions for any assessment component will not be accepted. It is your responsibility for maintaining your own schedule and being prompt with your submissions. We expect that you become familiar with the course submission software and verify that your submission has been properly uploaded. We will not accept late submissions due to lack of checking on this. We assume:

To ensure that you submit assignments on time you should begin them early and not wait until the last minute to submit. You will be able to submit multiple times so submit early and often to ensure you have something submitted.

Academic Dishonesty

It is very important in all courses that you be honest in all the work that you complete. In this course you must complete all assignments, exams, etc. on your own unless otherwise specified. If you do not you are doing a disservice to yourself, the instructors for the course, the College of Information and Computer Sciences, the University of Massachusetts, and your future. We design our courses to provide you the necessary understanding and skill that will make you an excellent computer scientist. Assignments and exams are designed to test your knowledge and understanding of the material. Plagiarism and academic dishonesty of any kind may seem like an easy way to solve an immediate problem, however, it can have a substantial negative impact on your career as a computer science student. There are many computing jobs out there and many more people working hard to get those positions. If you do not know your stuff you will have a very difficult time finding a job. Please take this seriously.

Specifics for this course:

  1. Assignments in this course are individual, not group, and direct collaboration is inappropriate. Any group work we will clearly explain as such.

  2. While we support learning from your peers, the rule of thumb is that any learning should be in your head. Therefore you should not leave an encounter with another student (in person or electronic) with anything written down (or electronically recorded) that you did not have before. Thus, giving or receiving electronic files is specifically considered cheating.

  3. Use of materials from previous offerings of this course, no matter the source, and even if you are re-taking the course, is prohibited.

  4. We will employ various means, electronic and otherwise, to check for compliance with these course policies. We will pursue sanctions vigorously and the usual sanction we will pursue is an immediate F in the course.

Unfortunately, in past semesters 10-15% of 187 students ignored this advice and were failed. This consumed huge amounts of instructor time. So instead of checking assignments we have decided to leave this up to the students to do the right thing. Typically grades on assignments are extremely high so the difference in letter grades is primarily determined by performance on exams. And students that do not complete the assignments do not do well on the exams.

Resources available to you:

  1. The instructor and teaching assistant(s) are eager to help you learn and to work through any difficulty. Please contact your instructor if you are struggling to complete assignments. We strive for ready accessibility by email and online discussion forums, and will make a strong effort to meet you in person.

  2. The Learning Resource Center on the 10th floor of the main library offers support for this course with trained tutors for free, available on a wide schedule. They can be reached at lrc@acad.umass.edu and 1-413-545-5334.

Other Academic Regulations

The Office of the Registrar publishes Academic Regulations yearly. You should be familiar with them. Particularly relevant are the policies on attendance, absences due to religious observance, and examinations.