## Course syllabus for ICS332

### Overview

In this class we will understand the role(s) of an operating system and its design principles, discussing both Linux and Windows. We will study the way in which an operating system manages running programs, memory, inter-process/thread communication, and file systems This syllabus and an overall view of the course is further described in these slides

The ordered list of course topics is:

• Introduction and OS overview (Week 1)
• Brief review of Computer Architecture (Week 1)
• OS overview and structures (Week 2)
• Processes (Week 3,4)
• Scheduling (Week 6)
• Synchronization and Concurrency Issues (Week 7)
• Main Memory (Weeks 8,9,10)
• Virtual Memory (Weeks 11,12,13)
• Storage (Week 14)
• File Systems (Week 15)

The above schedule is not absolutely set in stone. Hopefully the course is dynamic due to interaction with students and some topics may require more or less time than indicated above.

### Course-Specific Student Learning Outcomes

• Understanding of the need for, the history of, and the role of modern Operating Systems
• Knowledge of and hands-on experience with the way in which Operating Systems enable concurrent processes and threads
• Introductory notions about concurrency issues and the solutions to these issues
• Knowledge of and hands-on experience with the way in which Operating Systems manage memory
• Knowledge of the main features of storage media (mainly hard drives and solid state drives), and of the way file systems are designed to manage storage

### Program Student Outcomes

• An ability to apply mathematical foundations, algorithmic principles, and computer science theory to the modeling and design of computer-based systems
• An ability to define the computing requirements of a problem and to design appropriate solutions based on established design principles and with an understanding of the trade-offs involved in design choices
• An ability to use sound development principles to implement computer-based and software systems of varying complexity, and to evaluate such systems
• An ability to use current techniques, skills, and tools necessary for computing practice

### Prerequisites

(ICS 311 or EE 367) and ICS 314.

Note that there will be some simple C programming (All of you should have taken the required ICS 212 course).

### Instructor

Henri Casanova
Office/Phone: POST 310C / 808-956-2649
Office hours: Tue 2PM-4PM, or by appointment
e-mail: henric@hawaii.edu

### Teaching Assistant

Evan Law
Office: POST 314-10
Office hours: Mon/Fri 4:30PM-5:30PM e-mail: evanlaw@hawaii.edu

### Course Website

http://henricasanova.github.io/ics332_fall2017

The Website is the authoritative source for all course material.

### Lectures

Tue/Thu 12PM-1:15PM
Location: MSB 100

### Inverted Lectures

A few lectures will be inverted in this course. This means that podcasts will be watched by students outside of lecture periods. Some lecture periods will be spent doing practice exercises based on the podcasts. The goal is that for more difficult or more technical (e.g., mathematical) content students will have the opportunity to listen to the lecture at their own pace and will have supervised practice time during lecture periods.

### Textbook

The main text for this course is Operating Systems: Three Easy Pieces (a.k.a. OSTEP), by R.H. Arpaci-Dusseau and A.C. Arpaci-Dusseau. The chapters from this textbook are Freely Available, but you can purchase hardcover ($36), softcover ($21), or PDF (\$10). See the book’s Web site. The course will make frequent references to this textbook, and there will be reading assignments from it.

There are of course many Operating System textbooks around. ICS332 used to be taught with Operating System Concepts'' (by Silberschatz, Galvin, and Gagne), which is full of good information. Also, a classic textbook is Modern Operating Systems’’ by A. S. Tanenbaum (PDF available online). Feel free to check these out as complementary sources.

The grade is computed on a total of 1000 points, broken down as follows:

• In-class quizzes: 70 points (8 quizzes, each 10 points, the worst quiz grade is ignored)
• Homework and programming assignments: 500 points
• Midterm: 150 points
• Final: 280 points

• A: ≥ 90%
• B: ≥ 80% and < 90%
• C: ≥ 70% and < 80%
• D: ≥ 60% and < 70%
• F: < 60%

### Assignment policy

#### What to turn in?

Turn in your own work. It is okay to discuss homework with others, and in fact is encourage as it can lead to fruitful discussions and discoveries, but the work you turn in should always be your own. Answers should always include how the answer was derived..

#### How to turn in?

All assignments are be turned in via Laulima

#### When to turn in?

Assignments are due at 11:55PM on the due day. Late work will be accepted, with a 10% grade penalty for <24 hours of lateness and a 50% grade penalty for <48 hours of lateness. For instance, if the assignment is due on 3/10 and is turned in on 3/11 at 11AM, a 10% penalty if applied to the grade. If the assignment is turned in on 3/12 at 2AM, then a 50% penalty is applied. Turning in assignments more than 48h late will always result in a 0.

All occurrences of academic dishonesty, as defined below, will result in a grade of 0 for the assignment or exam, and in a memo in your ICS department file describing the incident. Which will be done for all students involved. Should there be more than one memo of this type in your file, the incident will be referred to the Dean of Students. Disciplinary sanctions range from a warning to expulsion from the university, as seen at: http://www.catalog.hawaii.edu/about-uh/campus-policies1.htm

See relevant excerpts below:

The integrity of a university depends upon academic honesty, which consists of independent learning and research. Academic dishonesty includes cheating and plagiarism. The following are examples of violations of the Student Conduct Code that may result in suspension or expulsion from UH Manoa.

#### Cheating

Cheating includes, but is not limited to, giving unauthorized help during an examination, obtaining unauthorized information about an examination before it is administered, using inappropriate sources of information during an examination, altering the record of any grade, altering an answer after an examination has been submitted, falsifying any official UH Manoa record, and misrepresenting the facts in order to obtain exemptions from course requirements.

#### Plagiarism

Plagiarism includes, but is not limited to, submitting, to satisfy an academic requirement, any document that has been copied in whole or in part from another individual’s work without identifying that individual; neglecting to identify as a quotation a documented idea that has not been assimilated into the student’s language and style; paraphrasing a passage so closely that the reader is misled as to the source; submitting the same written or oral material in more than one course without obtaining authorization from the instructors involved; and “dry-labbing,” which includes obtaining and using experimental data from other students without the express consent of the instructor, utilizing experimental data and laboratory write-ups from other sections of the course or from previous terms, and fabricating data to fit the expected results.

#### Disciplinary Action

The faculty member must notify the student of the alleged academic misconduct and discuss the incident in question. The faculty member may take academic action against the student as the faculty member deems appropriate. These actions may be appealed through the Academic Grievance Procedure, available in the Office of Judicial Affairs. In instances in which the faculty member believes that additional action (i.e., disciplinary sanctions and a UH Manoa record) should be established, the case should be forwarded to the Office of Judicial Affairs.