The course covers the fundamentals of operating systems examining issues such as concurrency, threads, processes, memory allocation, file systems, etc.
- Understanding of threading and synchronization primitives.
- Ability to identify race conditions and solve them with appropriate synchronization primitives.
- Understanding of scheduling policies and an ability to identify their advantages and disadvantages.
- Understanding of the difference between user and kernel mode operation and an ability to identify what takes place in each mode.
- Understanding of system calls and typical implementation techniques.
- Understanding of how the operating system and processor provide memory protection.
- Ability to describe and implement a basic paged virtual memory system.
- Ability to describe file system implementations with their advantages and disadvantages.
- Understanding of operating system techniques to apply caching to mitigate response time (latency).
Basic issues in concurrency, deadlock control, synchronization scheduling, memory management, protection and access control, inter-process communication, and structured design. Laboratory experiences with Unix-like operating system. Duplicates credit in CSCI 402.
- CSCI 201 - Principles of Software Development
- CSCI 356 or EE 352 - Computer Systems (Organization or Architecture)
The following point structure will be used in determining the grade for the course. Your final grade will depend solely on your own performance, graded according to the scale given below.
Class participation and attendance is strongly encouraged, but will not be enforced or affect grades directly. (Experience shows, however, that attendance and participation correlate highly with success in classes.)
Assignment of Letter Grades
The class will be curved at the end of the semester. All grades will be added up according to the above weightings, and then a scale will be assigned by the instructor. However, the curve will not hurt your grade. We will guarantee a standard grading scale (90-100 = A range, 80-89 = B range, etc.) and lower that scale at the end of the semester as warranted in the likely event that scores are lower.
Operating Systems: Principles & Practices, 2nd Ed. Anderson & Dahlin, Recursive Books, 2014 (ISBN 978-0985673529)
The textbook is required. The class will generally follow the content though the order or presentation may differ. The textbook is an excellent source for much of the material.
In addition to the textbook and lecture notes, we strongly recommend that each student have access to a quality book on the C programming language, such as The C Programming Language by Kernighan and Ritchie
It is strongly recommended that students read the relevant chapters of the textbook before coming to class. Class will proceed at a brisk pace and often be more focused on providing extra intuition and discussions rather than rehashing the book content in great detail.
Lecture notes and slides may also be provided for supplementing the material in the textbook. These resources will be available via the class website or Piazza.
Statement on Academic Conduct and Support Systems
Plagiarism - someone else's ideas as your own, either verbatim or recast in your own words - is a serious academic offense with serious consequences. Please familiarize yourself with the discussion of plagiarism in SCampus in Section 11, Behavior Violating University Standards https://scampus.usc.edu/1100-behavior-violating-university-standards-and-appropriate-sanctions/. Other forms of academic dishonesty are equally unacceptable. See additional information in SCampus and university policies on scientific misconduct, http://policy.usc.edu/scientific-misconduct/.
Discrimination, sexual assault, and harassment are not tolerated by the university. You are encouraged to report any incidents to the Office of Equity and Diversity http://equity.usc.edu/ or to the Department of Public Safety http://capsnet.usc.edu/department/department-public-safety/online-forms/contact-us. This is important for the safety whole USC community. Another member of the university community - such as a friend, classmate, advisor, or faculty member - can help initiate the report, or can initiate the report on behalf of another person. The Center for Women and Men http://www.usc.edu/student-affairs/cwm/ provides 24/7 confidential support, and the sexual assault resource center webpage email@example.com describes reporting options and other resources.
A number of USC's schools provide support for students who need help with scholarly writing. Check with your advisor or program staff to find out more. Students whose primary language is not English should check with the American Language Institute http://dornsife.usc.edu/ali, which sponsors courses and workshops specifically for international graduate students. The Office of Disability Services and Programs http://sait.usc.edu/academicsupport/centerprograms/dsp/home_index.html provides certification for students with disabilities and helps arrange the relevant accommodations. If an officially declared emergency makes travel to campus infeasible, USC Emergency Information http://emergency.usc.edu/ will provide safety and other updates, including ways in which instruction will be continued by means of blackboard, teleconferencing, and other technology.
Emergency Preparedness/Course Continuity in a Crisis
In case of a declared emergency if travel to campus is not feasible, USC executive leadership will announce an electronic way for instructors to teach students in their residence halls or homes using a combination of Blackboard, teleconferencing, and other technologies.